Translations workflow and tools (#768)

* Translations workflow and tools

* improved the name of the workflow

* need this commit to trigger the workflow for the first time

* swift tools can now run on CI

* only strings and stringsdict will be committed

* fixed a workflow issue

* starting the workflow to save it

* fixing downgrade issues

* fixing URL usage

* install localazy

* fixing add-paths typo

* downloaded strings

* removing on push trigger

* Update Tools/Sources/DownloadTranslations.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* Added locheck for string verification

* code formatting improvement

* Update Tools/Sources/Locheck.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* pr suggestion

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
This commit is contained in:
Mauro 2023-04-05 19:36:51 +02:00 committed by GitHub
parent 9998fadd3b
commit 8a56649289
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 616 additions and 144 deletions

37
.github/workflows/translations-pr.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Open Translations PR
on:
schedule:
# At 00:00 on every Monday UTC
- cron: '0 0 * * 1'
workflow_dispatch:
jobs:
open-translations-pr:
runs-on: macos-12
# Skip in forks
if: github.repository == 'vector-im/element-x-ios'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Localazy and Mint
run: brew install mint localazy/tools/localazy
- name: Download All Translations
run: swift run tools download-strings --all-languages
- name: Verify Translations
run: swift run tools locheck
- name: Create PR for Translations
uses: peter-evans/create-pull-request@v5
with:
commit-message: Translations update
title: Translations update
body: |
- Translations update
branch: translations/update
base: develop
add-paths: |
*.strings
*.stringsdict

View File

@ -0,0 +1,281 @@
"Notification" = "Notificación";
"a11y_hide_password" = "Ocultar contraseña";
"a11y_send_files" = "Enviar archivos";
"a11y_show_password" = "Mostrar contraseña";
"a11y_user_menu" = "Menú de usuario";
"action_back" = "Atrás";
"action_cancel" = "Cancelar";
"action_clear" = "Borrar";
"action_close" = "Cerrar";
"action_complete_verification" = "Completar verificación";
"action_confirm" = "Confirmar";
"action_continue" = "Continuar";
"action_copy" = "Copiar";
"action_copy_link" = "Copiar enlace";
"action_create_a_room" = "Crear una sala";
"action_disable" = "Desactivar";
"action_done" = "Hecho";
"action_edit" = "Editar";
"action_enable" = "Activar";
"action_invite" = "Invitar";
"action_invite_friends_to_app" = "Invitar amigos a %1$@";
"action_learn_more" = "Más información";
"action_leave" = "Salir";
"action_leave_room" = "Salir de la sala";
"action_next" = "Siguiente";
"action_no" = "No";
"action_not_now" = "Ahora no";
"action_ok" = "OK";
"action_quick_reply" = "Respuesta rápida";
"action_quote" = "Citar";
"action_remove" = "Eliminar";
"action_reply" = "Responder";
"action_report_bug" = "Informar de un error";
"action_report_content" = "Reportar Contenido";
"action_retry" = "Reintentar";
"action_retry_decryption" = "Reintentar descifrado";
"action_save" = "Guardar";
"action_search" = "Buscar";
"action_send" = "Enviar";
"action_share" = "Compartir";
"action_share_link" = "Compartir enlace";
"action_skip" = "Saltar";
"action_start" = "Comenzar";
"action_start_chat" = "Iniciar chat";
"action_start_verification" = "Iniciar la verificación";
"action_view_source" = "Ver Fuente";
"action_yes" = "Sí";
"common_about" = "Acerca de";
"common_audio" = "Sonido";
"common_bubbles" = "Burbujas";
"common_creating_room" = "Creando sala…";
"common_current_user_left_room" = "Saliste de la sala";
"common_decryption_error" = "Error de descifrado";
"common_developer_options" = "Opciones de desarrollador";
"common_edited_suffix" = "(editado)";
"common_editing" = "Edición";
"common_encryption_enabled" = "Cifrado activado";
"common_error" = "Error";
"common_file" = "Archivo";
"common_gif" = "GIF";
"common_image" = "Imagen";
"common_link_copied_to_clipboard" = "Enlace copiado al portapapeles";
"common_loading" = "Cargando…";
"common_message" = "Mensaje";
"common_message_layout" = "Diseño del mensaje";
"common_message_removed" = "Mensaje eliminado";
"common_modern" = "Moderno";
"common_no_results" = "No hay resultados";
"common_offline" = "Sin conexión";
"common_password" = "Contraseña";
"common_people" = "Personas";
"common_permalink" = "Enlace permanente";
"common_reactions" = "Reacciones";
"common_replying_to" = "Respondiendo a %1$@";
"common_report_a_bug" = "Informar de un error";
"common_report_submitted" = "Informe enviado";
"common_search_for_someone" = "Buscar a alguien";
"common_security" = "Seguridad";
"common_select_your_server" = "Selecciona tu servidor";
"common_sending" = "Enviando…";
"common_server_not_supported" = "Servidor no compatible";
"common_server_url" = "Dirección del servidor";
"common_settings" = "Ajustes";
"common_sticker" = "Sticker";
"common_success" = "Terminado";
"common_suggestions" = "Sugerencias";
"common_topic" = "Tema";
"common_unable_to_decrypt" = "No se puede descifrar";
"common_unsupported_event" = "Evento no compatible";
"common_username" = "Usuario";
"common_verification_cancelled" = "Verificación cancelada";
"common_verification_complete" = "Verificación completada";
"common_video" = "Vídeo";
"common_waiting" = "Esperando…";
"crash_detection_dialog_content" = "%1$@ se cerró inesperadamente la última vez que se lo usaste. ¿Quieres compartir un informe de error con nosotros?";
"dialog_title_confirmation" = "Confirmar";
"dialog_title_error" = "Error";
"dialog_title_success" = "Terminado";
"dialog_title_warning" = "Atención";
"emoji_picker_category_activity" = "Actividades";
"emoji_picker_category_flags" = "Banderas";
"emoji_picker_category_foods" = "Comida y bebida";
"emoji_picker_category_nature" = "Animales y naturaleza";
"emoji_picker_category_objects" = "Objetos";
"emoji_picker_category_people" = "Emojis y personas";
"emoji_picker_category_places" = "Viajes y lugares";
"emoji_picker_category_symbols" = "Símbolos";
"error_failed_creating_the_permalink" = "No se pudo crear el enlace permanente";
"error_failed_loading_messages" = "Error al cargar mensajes";
"error_no_compatible_app_found" = "No se encontró ninguna aplicación compatible con esta acción.";
"error_some_messages_have_not_been_sent" = "Algunos mensajes no se han enviado";
"error_unknown" = "Lo siento, se ha producido un error";
"invite_friends_text" = "Hola, puedes hablar conmigo en %1$@: %2$@";
"leave_room_alert_empty_subtitle" = "¿Estás seguro de que quieres salir de esta sala? Eres la única persona aquí. Si te vas, nadie podrá unirse en el futuro, ni siquiera tú.";
"leave_room_alert_private_subtitle" = "¿Estás seguro de que quieres abandonar esta sala? Esta sala no es pública y no podrás volver a entrar sin una invitación.";
"leave_room_alert_subtitle" = "¿Seguro que quieres salir de la habitación?";
"login_initial_device_name_ios" = "%1$@ iOS";
"preference_rageshake" = "Agitar con fuerza para informar de un error";
"rageshake_detection_dialog_content" = "Parece que sacudes el teléfono con frustración. ¿Quieres abrir la pantalla de informe de errores?";
"rageshake_dialog_content" = "Parece que sacudes el teléfono con frustración. ¿Quieres abrir la pantalla de informe de errores?";
"report_content_explanation" = "Este mensaje se notificará al administrador de su homeserver. No podrán leer ningún mensaje cifrado.";
"report_content_hint" = "Motivo para denunciar este contenido";
"rich_text_editor_bullet_list" = "Lista de puntos";
"rich_text_editor_code_block" = "Bloque de código";
"rich_text_editor_composer_placeholder" = "Mensaje…";
"rich_text_editor_format_bold" = "Aplicar formato negrita";
"rich_text_editor_format_italic" = "Aplicar formato cursiva";
"rich_text_editor_format_strikethrough" = "Aplicar formato tachado";
"rich_text_editor_format_underline" = "Aplicar formato de subrayado";
"rich_text_editor_full_screen_toggle" = "Pantalla completa";
"rich_text_editor_indent" = "Añadir sangría";
"rich_text_editor_inline_code" = "Código";
"rich_text_editor_link" = "Enlazar";
"rich_text_editor_numbered_list" = "Lista numérica";
"rich_text_editor_quote" = "Cita";
"rich_text_editor_unindent" = "Quitar sangría";
"room_timeline_beginning_of_room" = "Este es el principio de %1$@.";
"room_timeline_beginning_of_room_no_name" = "Este es el principio de esta conversación.";
"room_timeline_read_marker_title" = "Nuevos";
"screen_bug_report_attach_screenshot" = "Adjuntar captura de pantalla";
"screen_bug_report_contact_me" = "Podéis poneros en contacto conmigo para resolver dudas relacionadas";
"screen_bug_report_edit_screenshot" = "Editar captura de pantalla";
"screen_bug_report_editor_description" = "Describe el problema. ¿Qué hiciste? ¿Qué esperabas que ocurriera? ¿Qué ocurrió en realidad? Por favor, detállalo todo lo que puedas.";
"screen_bug_report_editor_placeholder" = "Describe el error…";
"screen_bug_report_editor_supporting" = "Si es posible, escriba la descripción en inglés.";
"screen_bug_report_include_crash_logs" = "Enviar registros de fallos";
"screen_bug_report_include_logs" = "Enviar registros para ayudar";
"screen_bug_report_include_screenshot" = "Enviar captura de pantalla";
"screen_bug_report_logs_description" = "Para comprobar que todo funciona correctamente, se enviarán registros de fallos con su mensaje. Serán privados. Para enviar sólo tu mensaje, desactiva esta opción.";
"screen_bug_report_rash_logs_alert_title" = "%1$@ se cerró inesperadamente la última vez que se lo usaste. ¿Quieres compartir un informe de error con nosotros?";
"screen_change_server_error_invalid_homeserver" = "No hemos podido acceder a este servidor. Comprueba que has introducido correctamente la dirección del servidor. Si la dirección es correcta, ponte en contacto con el administrador del servidor para obtener más ayuda.";
"screen_change_server_error_no_sliding_sync_message" = "Este servidor no soporta sliding sync.";
"screen_change_server_form_header" = "Dirección del homeserver";
"screen_change_server_form_notice" = "Solo puedes conectarte a un servidor que soporte sliding sync. El administrador de tu servidor tendrá que configurarlo. %1$@";
"screen_change_server_submit" = "Continuar";
"screen_change_server_subtitle" = "¿Cuál es la dirección de tu servidor?";
"screen_change_server_title" = "Selecciona tu servidor";
"screen_create_room_action_create_room" = "Nueva sala";
"screen_create_room_action_invite_people" = "Invitar gente";
"screen_create_room_add_people_title" = "Añadir personas";
"screen_dm_details_block_alert_action" = "Bloquear";
"screen_dm_details_block_alert_description" = "Los usuarios bloqueados no podrán enviarte mensajes y se ocultarán todos sus mensajes. Puedes revertir esta acción en cualquier momento.";
"screen_dm_details_block_user" = "Bloquear usuario";
"screen_dm_details_unblock_alert_action" = "Desbloquear";
"screen_dm_details_unblock_alert_description" = "Al desbloquear al usuario, podrás volver a ver todos sus mensajes.";
"screen_dm_details_unblock_user" = "Desbloquear usuario";
"screen_login_error_deactivated_account" = "Esta cuenta ha sido desactivada.";
"screen_login_error_invalid_credentials" = "Usuario y/o contraseña incorrectos";
"screen_login_error_invalid_user_id" = "Este no es un id de usuario válido. Formato esperado: '@user:homeserver.org'";
"screen_login_error_unsupported_authentication" = "El servidor seleccionado no admite contraseñas ni inicio de sesión OIDC. Póngase en contacto con su administrador o elija otro homeserver.";
"screen_login_form_header" = "Introduce tus datos";
"screen_login_password_hint" = "Contraseña";
"screen_login_server_header" = "Donde viven tus conversaciones";
"screen_login_submit" = "Continuar";
"screen_login_title" = "¡Hola de nuevo!";
"screen_login_username_hint" = "Usuario";
"screen_onboarding_welcome_subtitle" = "Bienvenido a la beta de %1$@. Vitaminado, para mayor rapidez y sencillez.";
"screen_onboarding_welcome_title" = "Siéntente en tu Elemento";
"screen_report_content_block_user" = "Bloquear usuario";
"screen_report_content_block_user_hint" = "Marque si quieres ocultar todos los mensajes actuales y futuros de este usuario";
"screen_room_details_encryption_enabled_subtitle" = "Los mensajes están protegidos con \"candados\". Sólo tú y los destinatarios tenéis las llaves únicas para abrirlos.";
"screen_room_details_encryption_enabled_title" = "Cifrado de mensajes activado";
"screen_room_details_invite_people_title" = "Invitar a otras personas";
"screen_room_details_leave_room_title" = "Salir de la sala";
"screen_room_details_people_title" = "Personas";
"screen_room_details_security_title" = "Seguridad";
"screen_room_details_share_room_title" = "Compartir sala";
"screen_room_details_topic_title" = "Tema";
"screen_room_member_details_block_alert_action" = "Bloquear";
"screen_room_member_details_block_alert_description" = "Los usuarios bloqueados no podrán enviarte mensajes y se ocultarán todos sus mensajes. Puede revertir esta acción en cualquier momento.";
"screen_room_member_details_block_user" = "Bloquear usuario";
"screen_room_member_details_unblock_alert_action" = "Desbloquear";
"screen_room_member_details_unblock_alert_description" = "Al desbloquear al usuario, podrás volver a ver todos sus mensajes.";
"screen_room_member_details_unblock_user" = "Desbloquear usuario";
"screen_roomlist_a11y_create_message" = "Crear una nueva conversación o sala";
"screen_roomlist_main_space_title" = "Todos los chats";
"screen_session_verification_cancelled_subtitle" = "Algo no fue bien. Se agotó el tiempo de espera de la solicitud o se rechazó.";
"screen_session_verification_cancelled_title" = "Verificación cancelada";
"screen_session_verification_compare_emojis_subtitle" = "Confirma que los emojis que aparecen a continuación coinciden con los que aparecen en tu otra sesión.";
"screen_session_verification_compare_emojis_title" = "Comparar emojis";
"screen_session_verification_complete_subtitle" = "Tu nueva sesión ya está verificada. Tienes acceso a tus mensajes cifrados y otros usuarios lo considerarán de confianza.";
"screen_session_verification_open_existing_session_subtitle" = "Demuestra que eres tú para acceder a tu historial de mensajes cifrados.";
"screen_session_verification_open_existing_session_title" = "Abrir una sesión existente";
"screen_session_verification_positive_button_canceled" = "Reintentar la verificación";
"screen_session_verification_positive_button_initial" = "Estoy listo";
"screen_session_verification_positive_button_ready" = "Comenzar";
"screen_session_verification_positive_button_verifying_ongoing" = "Esperando a que coincida";
"screen_session_verification_request_accepted_subtitle" = "Compara los emoji, asegurándote de que aparecen en el mismo orden.";
"screen_session_verification_they_dont_match" = "No coinciden";
"screen_session_verification_they_match" = "Coinciden";
"screen_session_verification_waiting_to_accept_subtitle" = "Acepta la solicitud para iniciar el proceso de verificación en tu otra sesión para continuar.";
"screen_session_verification_waiting_to_accept_title" = "A la espera de aceptar la solicitud";
"screen_signout_confirmation_dialog_content" = "¿Estás seguro de que quieres cerrar sesión?";
"screen_signout_confirmation_dialog_submit" = "Cerrar sesión";
"screen_signout_confirmation_dialog_title" = "Cerrar sesión";
"screen_signout_in_progress_dialog_content" = "Cerrando sesión…";
"screen_signout_preference_item" = "Cerrar sesión";
"screen_start_chat_error_starting_chat" = "Se ha producido un error al intentar iniciar un chat";
"screen_start_chat_unknown_profile" = "No podemos validar el ID de Matrix de este usuario. Es posible que no reciba la invitación.";
"session_verification_banner_message" = "Parece que estás usando un nuevo dispositivo. Verifica que eres tú para acceder a tus mensajes cifrados.";
"session_verification_banner_title" = "Accede a tu historial de mensajes";
"settings_rageshake" = "Agitar con fuerza";
"settings_rageshake_detection_threshold" = "Umbral de detección";
"settings_title_general" = "General";
"settings_version_number" = "Versión: %1$@ (%2$@)";
"state_event_avatar_changed_too" = "(el avatar también cambió)";
"state_event_avatar_url_changed" = "%1$@ cambió su avatar";
"state_event_avatar_url_changed_by_you" = "Cambiaste tu avatar";
"state_event_display_name_changed_from" = "%1$@ cambió su nombre de %2$@ a %3$@";
"state_event_display_name_changed_from_by_you" = "Cambiaste tu nombre de %1$@ a %2$@";
"state_event_display_name_removed" = "%1$@ eliminó su nombre (era %2$@)";
"state_event_display_name_removed_by_you" = "Eliminaste tu nombre (era %1$@)";
"state_event_display_name_set" = "%1$@ cambió su nombre a %2$@";
"state_event_display_name_set_by_you" = "Cambiaste tu nombre a %1$@";
"state_event_room_avatar_changed" = "%1$@ cambió el avatar de la sala";
"state_event_room_avatar_changed_by_you" = "Cambiaste el avatar de la sala";
"state_event_room_avatar_removed" = "%1$@ eliminó el avatar de la sala";
"state_event_room_avatar_removed_by_you" = "Eliminaste el avatar de la sala";
"state_event_room_ban" = "%1$@ expulsó permanentemente a %2$@";
"state_event_room_ban_by_you" = "Expulsaste permanentemente a %1$@";
"state_event_room_created" = "%1$@ creó la sala";
"state_event_room_created_by_you" = "Tú creaste la sala";
"state_event_room_invite" = "%1$@ invitó a %2$@";
"state_event_room_invite_accepted" = "%1$@ aceptó la invitación";
"state_event_room_invite_accepted_by_you" = "Aceptaste la invitación";
"state_event_room_invite_by_you" = "Invitaste a %1$@";
"state_event_room_invite_you" = "%1$@ te invitó.";
"state_event_room_join" = "%1$@ se unió a la sala";
"state_event_room_join_by_you" = "Te uniste a la sala";
"state_event_room_knock" = "%1$@ solicitó unirse";
"state_event_room_knock_accepted" = "%1$@ permitió que %2$@ se uniera";
"state_event_room_knock_accepted_by_you" = "%1$@ te permitió unirte";
"state_event_room_knock_by_you" = "Solicitaste unirte";
"state_event_room_knock_denied" = "%1$@ rechazó la solicitud de %2$@ para unirse";
"state_event_room_knock_denied_by_you" = "Rechazaste la solicitud de %1$@ para unirte";
"state_event_room_knock_denied_you" = "%1$@ rechazó su solicitud para unirte";
"state_event_room_knock_retracted" = "%1$@ ya no está interesado en unirse";
"state_event_room_knock_retracted_by_you" = "Cancelaste tu solicitud de unirte";
"state_event_room_leave" = "%1$@ salió de la sala";
"state_event_room_leave_by_you" = "Saliste de la sala";
"state_event_room_name_changed" = "%1$@ cambió el nombre de la sala a: %2$@";
"state_event_room_name_changed_by_you" = "Cambiaste el nombre de la sala a: %1$@";
"state_event_room_name_removed" = "%1$@ eliminó el nombre de la sala";
"state_event_room_name_removed_by_you" = "Eliminaste el nombre de la sala";
"state_event_room_reject" = "%1$@ rechazó la invitación";
"state_event_room_reject_by_you" = "Rechazaste la invitación";
"state_event_room_remove" = "%1$@ echó a %2$@";
"state_event_room_remove_by_you" = "Echaste a %1$@";
"state_event_room_third_party_invite" = "%1$@ envió una invitación a %2$@ para unirse a la sala";
"state_event_room_third_party_invite_by_you" = "Enviaste una invitación a %1$@ para unirse a la sala";
"state_event_room_third_party_revoked_invite" = "%1$@ revocó la invitación a %2$@ para unirse a la sala";
"state_event_room_third_party_revoked_invite_by_you" = "Revocaste la invitación de %1$@ para unirse a la sala";
"state_event_room_topic_changed" = "%1$@ cambió el tema a: %2$@";
"state_event_room_topic_changed_by_you" = "Cambiaste el tema a: %1$@";
"state_event_room_topic_removed" = "%1$@ eliminó el tema de la sala";
"state_event_room_topic_removed_by_you" = "Eliminaste el tema de la sala";
"state_event_room_unban" = "%1$@ readmitió a %2$@";
"state_event_room_unban_by_you" = "Readmitiste a %1$@";
"state_event_room_unknown_membership_change" = "%1$@ realizó un cambio desconocido en su membresía";
"test_language_identifier" = "es";
"test_untranslated_default_language_identifier" = "en";

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>common_member_count</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@COUNT@</string>
<key>COUNT</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%1$d miembro</string>
<key>other</key>
<string>%1$d miembros</string>
</dict>
</dict>
<key>room_timeline_state_changes</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@COUNT@</string>
<key>COUNT</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%1$d cambio en la sala</string>
<key>other</key>
<string>%1$d cambios en la sala</string>
</dict>
</dict>
<key>screen_room_member_list_header_title</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@COUNT@</string>
<key>COUNT</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>Una persona</string>
<key>other</key>
<string>%1$d personas</string>
</dict>
</dict>
</dict>
</plist>

View File

@ -48,7 +48,7 @@
"common_about" = "Informazioni"; "common_about" = "Informazioni";
"common_audio" = "Audio"; "common_audio" = "Audio";
"common_bubbles" = "Fumetti"; "common_bubbles" = "Fumetti";
"common_creating_room" = "Creazione stanza..."; "common_creating_room" = "Creazione stanza";
"common_current_user_left_room" = "Hai lasciato la stanza"; "common_current_user_left_room" = "Hai lasciato la stanza";
"common_decryption_error" = "Errore di decrittazione"; "common_decryption_error" = "Errore di decrittazione";
"common_developer_options" = "Opzioni sviluppatore"; "common_developer_options" = "Opzioni sviluppatore";
@ -141,7 +141,7 @@
"screen_bug_report_contact_me" = "Potete contattarmi per qualsiasi altra domanda"; "screen_bug_report_contact_me" = "Potete contattarmi per qualsiasi altra domanda";
"screen_bug_report_edit_screenshot" = "Modifica istantanea schermo"; "screen_bug_report_edit_screenshot" = "Modifica istantanea schermo";
"screen_bug_report_editor_description" = "Descrivi il bug. Che cosa hai fatto? Cosa ti aspettavi che accadesse? Cosa è effettivamente accaduto. Si prega di inserire il maggior numero di dettagli possibile."; "screen_bug_report_editor_description" = "Descrivi il bug. Che cosa hai fatto? Cosa ti aspettavi che accadesse? Cosa è effettivamente accaduto. Si prega di inserire il maggior numero di dettagli possibile.";
"screen_bug_report_editor_placeholder" = "Descrivi il problema..."; "screen_bug_report_editor_placeholder" = "Descrivi il problema";
"screen_bug_report_editor_supporting" = "Se possibile, scrivere la descrizione in inglese."; "screen_bug_report_editor_supporting" = "Se possibile, scrivere la descrizione in inglese.";
"screen_bug_report_include_crash_logs" = "Invia i log degli arresti anomali"; "screen_bug_report_include_crash_logs" = "Invia i log degli arresti anomali";
"screen_bug_report_include_logs" = "Invia i log per aiutarci"; "screen_bug_report_include_logs" = "Invia i log per aiutarci";
@ -213,7 +213,7 @@
"screen_signout_confirmation_dialog_content" = "Sei sicuro di voler uscire?"; "screen_signout_confirmation_dialog_content" = "Sei sicuro di voler uscire?";
"screen_signout_confirmation_dialog_submit" = "Esci"; "screen_signout_confirmation_dialog_submit" = "Esci";
"screen_signout_confirmation_dialog_title" = "Esci"; "screen_signout_confirmation_dialog_title" = "Esci";
"screen_signout_in_progress_dialog_content" = "Uscita in corso..."; "screen_signout_in_progress_dialog_content" = "Uscita in corso";
"screen_signout_preference_item" = "Esci"; "screen_signout_preference_item" = "Esci";
"screen_start_chat_error_starting_chat" = "Si è verificato un errore durante il tentativo di avviare una chat"; "screen_start_chat_error_starting_chat" = "Si è verificato un errore durante il tentativo di avviare una chat";
"screen_start_chat_unknown_profile" = "Non possiamo convalidare l'ID Matrix di questo utente. L'invito potrebbe non essere ricevuto."; "screen_start_chat_unknown_profile" = "Non possiamo convalidare l'ID Matrix di questo utente. L'invito potrebbe non essere ricevuto.";

View File

@ -1,55 +1,55 @@
"Notification" = "Notificare"; "Notification" = "Notificare";
"a11y_hide_password" = "Ascunde parola"; "a11y_hide_password" = "Ascundeți parola";
"a11y_send_files" = "Trimite fișiere"; "a11y_send_files" = "Trimiteți fișiere";
"a11y_show_password" = "Arata parola"; "a11y_show_password" = "Afișați parola";
"a11y_user_menu" = "Meniu utilizator"; "a11y_user_menu" = "Meniu utilizator";
"action_back" = "Înapoi"; "action_back" = "Înapoi";
"action_cancel" = "Anulează"; "action_cancel" = "Anulați";
"action_clear" = "Șterge"; "action_clear" = "Ștergeți";
"action_close" = "Închide"; "action_close" = "Închideți";
"action_complete_verification" = "Verificare completă"; "action_complete_verification" = "Verificare completă";
"action_confirm" = "Confirmă"; "action_confirm" = "Confirmați";
"action_continue" = "Continuă"; "action_continue" = "Continuați";
"action_copy" = "Copia"; "action_copy" = "Copiați";
"action_copy_link" = "Copia linkul"; "action_copy_link" = "Copiați linkul";
"action_create_a_room" = "Crea o cameră"; "action_create_a_room" = "Creați o cameră";
"action_disable" = "Dezactivează"; "action_disable" = "Dezactivați";
"action_done" = "Gata"; "action_done" = "Efectuat";
"action_edit" = "Editează"; "action_edit" = "Editați";
"action_enable" = "Activează"; "action_enable" = "Activați";
"action_invite" = "Invită"; "action_invite" = "Invitați";
"action_invite_friends_to_app" = "Invită prieteni în %1$@"; "action_invite_friends_to_app" = "Invitați prieteni în %1$@";
"action_learn_more" = "Află mai multe"; "action_learn_more" = "Aflați mai multe";
"action_leave" = "Părăsește"; "action_leave" = "Părăsiți";
"action_leave_room" = "Părăsește camera"; "action_leave_room" = "Părăsiți camera";
"action_next" = "Următorul"; "action_next" = "Următorul";
"action_no" = "Nu"; "action_no" = "Nu";
"action_not_now" = "Nu acum"; "action_not_now" = "Nu acum";
"action_ok" = "OK"; "action_ok" = "OK";
"action_quick_reply" = "Raspuns rapid"; "action_quick_reply" = "Raspuns rapid";
"action_quote" = "Citează"; "action_quote" = "Citat";
"action_remove" = "Șterge"; "action_remove" = "Ștergeți";
"action_reply" = "Răspunde"; "action_reply" = "Răspundeți";
"action_report_bug" = "Raportează o eroare"; "action_report_bug" = "Raportați o eroare";
"action_report_content" = "Raportează conținutul"; "action_report_content" = "Raportați conținutul";
"action_retry" = "Reîncearcă"; "action_retry" = "Reîncercați";
"action_retry_decryption" = "Reîncearcă decriptarea"; "action_retry_decryption" = "Reîncercați decriptarea";
"action_save" = "Salvează"; "action_save" = "Salvați";
"action_search" = "Caută"; "action_search" = "Căutați";
"action_send" = "Trimite"; "action_send" = "Trimiteți";
"action_share" = "Partajează"; "action_share" = "Partajați";
"action_share_link" = "Partajează linkul"; "action_share_link" = "Partajați linkul";
"action_skip" = "Omite"; "action_skip" = "Omiteți";
"action_start" = "Începe"; "action_start" = "Începeți";
"action_start_chat" = "Începe discuția"; "action_start_chat" = "Începeți discuția";
"action_start_verification" = "Începe verificarea"; "action_start_verification" = "Începeți verificarea";
"action_view_source" = "Vezi sursa"; "action_view_source" = "Vedeți sursă";
"action_yes" = "Da"; "action_yes" = "Da";
"common_about" = "Despre"; "common_about" = "Despre";
"common_audio" = "Audio"; "common_audio" = "Audio";
"common_bubbles" = "Baloane"; "common_bubbles" = "Baloane";
"common_creating_room" = "Se creează camera…"; "common_creating_room" = "Se creează camera…";
"common_current_user_left_room" = "Left room"; "common_current_user_left_room" = "Ați parăsit camera";
"common_decryption_error" = "Eroare de decriptare"; "common_decryption_error" = "Eroare de decriptare";
"common_developer_options" = "Opțiuni programator"; "common_developer_options" = "Opțiuni programator";
"common_edited_suffix" = "(editat)"; "common_edited_suffix" = "(editat)";
@ -72,11 +72,11 @@
"common_permalink" = "Permalink"; "common_permalink" = "Permalink";
"common_reactions" = "Reacții"; "common_reactions" = "Reacții";
"common_replying_to" = "Răspuns pentru %1$@"; "common_replying_to" = "Răspuns pentru %1$@";
"common_report_a_bug" = "Raporteaza o eroare"; "common_report_a_bug" = "Raportați o eroare";
"common_report_submitted" = "Raport trimis"; "common_report_submitted" = "Raport trimis";
"common_search_for_someone" = "Caută pe cineva"; "common_search_for_someone" = "Căutați pe cineva";
"common_security" = "Securitate"; "common_security" = "Securitate";
"common_select_your_server" = "Selectează serverul"; "common_select_your_server" = "Selectați serverul";
"common_sending" = "Se trimite…"; "common_sending" = "Se trimite…";
"common_server_not_supported" = "Serverul nu este compatibil"; "common_server_not_supported" = "Serverul nu este compatibil";
"common_server_url" = "Adresa URL a serverului"; "common_server_url" = "Adresa URL a serverului";
@ -92,7 +92,7 @@
"common_verification_complete" = "Verificare completă"; "common_verification_complete" = "Verificare completă";
"common_video" = "Video"; "common_video" = "Video";
"common_waiting" = "Se aşteaptă…"; "common_waiting" = "Se aşteaptă…";
"crash_detection_dialog_content" = "%1$@ s-a blocat ultima dată când a fost folosit. Dorești să ne trimiti un raport?"; "crash_detection_dialog_content" = "%1$@ s-a blocat ultima dată când a fost folosit. Doriți să ne trimiteți un raport?";
"dialog_title_confirmation" = "Confirmare"; "dialog_title_confirmation" = "Confirmare";
"dialog_title_error" = "Eroare"; "dialog_title_error" = "Eroare";
"dialog_title_success" = "Succes"; "dialog_title_success" = "Succes";
@ -111,171 +111,171 @@
"error_some_messages_have_not_been_sent" = "Unele mesaje nu au fost trimise"; "error_some_messages_have_not_been_sent" = "Unele mesaje nu au fost trimise";
"error_unknown" = "Ne pare rău, a apărut o eroare"; "error_unknown" = "Ne pare rău, a apărut o eroare";
"invite_friends_text" = "Hei, vorbește cu mine pe %1$@: %2$@"; "invite_friends_text" = "Hei, vorbește cu mine pe %1$@: %2$@";
"leave_room_alert_empty_subtitle" = "Ești sigur că vrei să părăsești această cameră? Ești singura persoană de aici. Dacă o părasești, nimeni nu se va mai putea alătura în viitor, inclusiv tu."; "leave_room_alert_empty_subtitle" = "Sunteți sigur că vreți să părăsiți această cameră? Sunteți singura persoană de aici. Dacă o părasiți, nimeni nu se va mai putea alătura în viitor, inclusiv dumneavoastra.";
"leave_room_alert_private_subtitle" = "Ești sigur că vrei să părăsești această cameră? Această cameră nu este publică și nu te vei putea alătura din nou fără o invitație."; "leave_room_alert_private_subtitle" = "Sunteți sigur că vrei să părăsiți această cameră? Această cameră nu este publică și nu va veti putea alătura din nou fără o invitație.";
"leave_room_alert_subtitle" = "Ești sigur că vrei să părăsești camera?"; "leave_room_alert_subtitle" = "Sunteți sigur că vreți să părăsiți camera?";
"login_initial_device_name_ios" = "%1$@ iOS"; "login_initial_device_name_ios" = "%1$@ iOS";
"preference_rageshake" = "Rageshake pentru a raporta erori"; "preference_rageshake" = "Rageshake pentru a raporta erori";
"rageshake_detection_dialog_content" = "Se pare că scuturi telefonul de frustrare. Dorești să deschizi ecranul de raportare a unei erori?"; "rageshake_detection_dialog_content" = "Se pare că scuturați telefonul de frustrare. Doriți să deschdeți ecranul de raportare a unei erori?";
"rageshake_dialog_content" = "Se pare că scuturi telefonul de frustrare. Dorești să deschizi ecranul de raportare a unei erori?"; "rageshake_dialog_content" = "Se pare că scuturați telefonul de frustrare. Doriți să deschdeți ecranul de raportare a unei erori?";
"report_content_explanation" = "Acest mesaj va fi raportat administratorilor homeserver-ului tau. Ei nu vor putea citi niciun mesaj criptat."; "report_content_explanation" = "Acest mesaj va fi raportat administratorilor homeserver-ului tau. Ei nu vor putea citi niciun mesaj criptat.";
"report_content_hint" = "Motivul raportării acestui conținut"; "report_content_hint" = "Motivul raportării acestui conținut";
"rich_text_editor_bullet_list" = "Comutează lista cu puncte"; "rich_text_editor_bullet_list" = "Comutați lista cu puncte";
"rich_text_editor_code_block" = "Comutează blocul de cod"; "rich_text_editor_code_block" = "Comutați blocul de cod";
"rich_text_editor_composer_placeholder" = "Mesaj…"; "rich_text_editor_composer_placeholder" = "Mesaj…";
"rich_text_editor_format_bold" = "Aplică formatul aldin"; "rich_text_editor_format_bold" = "Aplicați formatul aldin";
"rich_text_editor_format_italic" = "Aplică formatul italic"; "rich_text_editor_format_italic" = "Aplicați formatul italic";
"rich_text_editor_format_strikethrough" = "Aplică formatul barat"; "rich_text_editor_format_strikethrough" = "Aplicați formatul barat";
"rich_text_editor_format_underline" = "Aplică formatul de subliniere"; "rich_text_editor_format_underline" = "Aplică formatul de subliniere";
"rich_text_editor_full_screen_toggle" = "Comută modul ecran intreg"; "rich_text_editor_full_screen_toggle" = "Comutați modul ecran complet";
"rich_text_editor_indent" = "Indentare"; "rich_text_editor_indent" = "Indentare";
"rich_text_editor_inline_code" = "Aplică formatul de cod in linie"; "rich_text_editor_inline_code" = "Aplicați formatul de cod inline";
"rich_text_editor_link" = "Setați linkul"; "rich_text_editor_link" = "Setați linkul";
"rich_text_editor_numbered_list" = "Comută lista numerotată"; "rich_text_editor_numbered_list" = "Comutați lista numerotată";
"rich_text_editor_quote" = "Aplică citatul"; "rich_text_editor_quote" = "Aplicați citatul";
"rich_text_editor_unindent" = "Dez-identare"; "rich_text_editor_unindent" = "Dez-identare";
"room_timeline_beginning_of_room" = "Acesta este începutul conversației %1$@."; "room_timeline_beginning_of_room" = "Acesta este începutul conversației %1$@.";
"room_timeline_beginning_of_room_no_name" = "Acesta este începutul acestei conversații."; "room_timeline_beginning_of_room_no_name" = "Acesta este începutul acestei conversații.";
"room_timeline_read_marker_title" = "Nou"; "room_timeline_read_marker_title" = "Nou";
"screen_bug_report_attach_screenshot" = "Atașează o captură de ecran"; "screen_bug_report_attach_screenshot" = "Atașați o captură de ecran";
"screen_bug_report_contact_me" = "Puteți să mă contactați dacă aveți întrebări suplimentare"; "screen_bug_report_contact_me" = "Puteți să mă contactați dacă aveți întrebări suplimentare";
"screen_bug_report_edit_screenshot" = "Editează captura de ecran"; "screen_bug_report_edit_screenshot" = "Editați captura de ecran";
"screen_bug_report_editor_description" = "Te rugăm să descrii eroarea. Ce-ai făcut? Ce te aşteptai să se întâmple? Ce s-a întâmplat de fapt. Te rugam să intri în cât mai multe detalii cu putință."; "screen_bug_report_editor_description" = "Vă rugăm să descrieți eroarea. Ce ați făcut? Ce vă aşteptați să se întâmple? Ce s-a întâmplat de fapt. Vă rugam să intrați în cât mai multe detalii cu putință.";
"screen_bug_report_editor_placeholder" = "Descrie eroarea…"; "screen_bug_report_editor_placeholder" = "Descrieți eroarea…";
"screen_bug_report_editor_supporting" = "Dacă posibil, te rugăm să scrii descrierea în engleză."; "screen_bug_report_editor_supporting" = "Dacă posibil, vă rugăm să scrieți descrierea în engleză.";
"screen_bug_report_include_crash_logs" = "Trimite log-uri"; "screen_bug_report_include_crash_logs" = "Trimiteți log-uri";
"screen_bug_report_include_logs" = "Trimite log-uri pentru a ajuta"; "screen_bug_report_include_logs" = "Trimiteți log-uri pentru a ajuta";
"screen_bug_report_include_screenshot" = "Trimite captură de ecran"; "screen_bug_report_include_screenshot" = "Trimiteți captură de ecran";
"screen_bug_report_logs_description" = "Pentru a verifica că lucrurile funcționează conform așteptărilor, log-uri vor fi trimise împreună cu mesajul. Acestea vor fi private. Pentru a trimite doar mesajul, dezactivați această setare."; "screen_bug_report_logs_description" = "Pentru a verifica că lucrurile funcționează conform așteptărilor, log-uri vor fi trimise împreună cu mesajul. Acestea vor fi private. Pentru a trimite doar mesajul, dezactivați această setare.";
"screen_bug_report_rash_logs_alert_title" = "%1$@ s-a blocat ultima dată când a fost folosit. Dorești să ne trimiti un raport?"; "screen_bug_report_rash_logs_alert_title" = "%1$@ s-a blocat ultima dată când a fost folosit. Dorești să ne trimiti un raport?";
"screen_change_server_error_invalid_homeserver" = "Nu am putut accesa acest homeserver. Te rugăm să verifici că ai introdus corect adresa URL a homeserver-ului. Dacă adresa URL este corectă, contactează administratorul homeserver-ului pentru ajutor suplimentar."; "screen_change_server_error_invalid_homeserver" = "Nu am putut accesa acest homeserver. Te rugăm să verifici că ai introdus corect adresa URL a homeserver-ului. Dacă adresa URL este corectă, contactează administratorul homeserver-ului pentru ajutor suplimentar.";
"screen_change_server_error_no_sliding_sync_message" = "Momentan acest server nu oferă suport pentru sliding sync."; "screen_change_server_error_no_sliding_sync_message" = "Momentan acest server nu oferă suport pentru sliding sync.";
"screen_change_server_form_header" = "Adresa URL a homeserver-ului"; "screen_change_server_form_header" = "Adresa URL a homeserver-ului";
"screen_change_server_form_notice" = "Te poți conecta numai la un server existent care oferă suport pentru sliding sync. Administratorul homeserver-ului tău va trebui să îl configureze. %1$@"; "screen_change_server_form_notice" = "Vă putețo conecta numai la un server existent care oferă suport pentru sliding sync. Administratorul homeserver-ului dumneavoastră va trebui să îl configureze. %1$@";
"screen_change_server_submit" = "Continuă"; "screen_change_server_submit" = "Continuați";
"screen_change_server_subtitle" = "Care este adresa serverului tău?"; "screen_change_server_subtitle" = "Care este adresa serverului dumneavoastră?";
"screen_change_server_title" = "Selectează serverul"; "screen_change_server_title" = "Selectați serverul";
"screen_create_room_action_create_room" = "Cameră nouă"; "screen_create_room_action_create_room" = "Cameră nouă";
"screen_create_room_action_invite_people" = "Invită persoane"; "screen_create_room_action_invite_people" = "Invitați persoane";
"screen_create_room_add_people_title" = "Adaugă persoane"; "screen_create_room_add_people_title" = "Adaugați persoane";
"screen_dm_details_block_alert_action" = "Blochează"; "screen_dm_details_block_alert_action" = "Blocați";
"screen_dm_details_block_alert_description" = "Utilizatorii blocați nu iți vor putea trimite mesaje și toate mesajele lor vor fi ascunse. Poți anula această acțiune oricând."; "screen_dm_details_block_alert_description" = "Utilizatorii blocați nu vă vor putea trimite mesaje și toate mesajele lor vor fi ascunse. Puteți anula această acțiune oricând.";
"screen_dm_details_block_user" = "Blochează utilizatorul"; "screen_dm_details_block_user" = "Blocați utilizatorul";
"screen_dm_details_unblock_alert_action" = "Deblochează"; "screen_dm_details_unblock_alert_action" = "Deblocați";
"screen_dm_details_unblock_alert_description" = "La deblocarea utilizatorului, vei putea vedea din nou toate mesajele de la acesta."; "screen_dm_details_unblock_alert_description" = "La deblocarea utilizatorului, veți putea vedea din nou toate mesajele de la acesta.";
"screen_dm_details_unblock_user" = "Deblochează utilizatorul"; "screen_dm_details_unblock_user" = "Deblocați utilizatorul";
"screen_login_error_deactivated_account" = "Acest cont a fost dezactivat."; "screen_login_error_deactivated_account" = "Acest cont a fost dezactivat.";
"screen_login_error_invalid_credentials" = "Utilizator și/sau parolă incorecte"; "screen_login_error_invalid_credentials" = "Utilizator și/sau parolă incorecte";
"screen_login_error_invalid_user_id" = "Acesta nu este un identificator de utilizator valid. Format așteptat: „@user:homeserver.org”"; "screen_login_error_invalid_user_id" = "Acesta nu este un identificator de utilizator valid. Format așteptat: „@user:homeserver.org”";
"screen_login_error_unsupported_authentication" = "Homeserver-ul selectat nu acceptă autentificarea prin parola sau OIDC. Te rugăm să contactezi administratorul sau să alegi un alt homeserver."; "screen_login_error_unsupported_authentication" = "Homeserver-ul selectat nu acceptă autentificarea prin parola sau OIDC. Te rugăm să contactezi administratorul sau să alegi un alt homeserver.";
"screen_login_form_header" = "Introdu-ți detaliile"; "screen_login_form_header" = "Introduceți detaliile";
"screen_login_password_hint" = "Parolă"; "screen_login_password_hint" = "Parolă";
"screen_login_server_header" = "Locul unde trăiesc conversațiile tale"; "screen_login_server_header" = "Locul unde trăiesc conversațiile tale";
"screen_login_submit" = "Continuă"; "screen_login_submit" = "Continuați";
"screen_login_title" = "Bine ai revenit!"; "screen_login_title" = "Bine ați revenit!";
"screen_login_username_hint" = "Utilizator"; "screen_login_username_hint" = "Utilizator";
"screen_onboarding_welcome_subtitle" = "Bun venit la versiunea beta a %1$@. Supraalimentat, pentru viteză și simplitate."; "screen_onboarding_welcome_subtitle" = "Bun venit la versiunea beta a %1$@. Supraalimentat, pentru viteză și simplitate.";
"screen_onboarding_welcome_title" = "Fii în Elementul tău"; "screen_onboarding_welcome_title" = "Fii în Elementul tău";
"screen_report_content_block_user" = "Blochează utilizatorul"; "screen_report_content_block_user" = "Blocați utilizatorul";
"screen_report_content_block_user_hint" = "Verifică că dorești să ascunzi toate mesajele curente și viitoare de la acest utilizator"; "screen_report_content_block_user_hint" = "Confirmați că doriți să ascundeți toate mesajele curente și viitoare de la acest utilizator";
"screen_room_details_encryption_enabled_subtitle" = "Mesajele sunt securizate cu încuietori. Doar tu și destinatarii aveți cheile unice pentru a le debloca."; "screen_room_details_encryption_enabled_subtitle" = "Mesajele sunt securizate cu încuietori. Doar dumneavoastră și destinatarii aveți cheile unice pentru a le debloca.";
"screen_room_details_encryption_enabled_title" = "Criptarea mesajelor este activată"; "screen_room_details_encryption_enabled_title" = "Criptarea mesajelor este activată";
"screen_room_details_invite_people_title" = "Invită persoane"; "screen_room_details_invite_people_title" = "Invitați persoane";
"screen_room_details_leave_room_title" = "Părăsește camera"; "screen_room_details_leave_room_title" = "Părăsiți camera";
"screen_room_details_people_title" = "Persoane"; "screen_room_details_people_title" = "Persoane";
"screen_room_details_security_title" = "Securitate"; "screen_room_details_security_title" = "Securitate";
"screen_room_details_share_room_title" = "Partajează camera"; "screen_room_details_share_room_title" = "Partajați camera";
"screen_room_details_topic_title" = "Subiect"; "screen_room_details_topic_title" = "Subiect";
"screen_room_member_details_block_alert_action" = "Blochează"; "screen_room_member_details_block_alert_action" = "Blocați";
"screen_room_member_details_block_alert_description" = "Utilizatorii blocați nu iți vor putea trimite mesaje și toate mesajele lor vor fi ascunse. Poți anula această acțiune oricând."; "screen_room_member_details_block_alert_description" = "Utilizatorii blocați nu vă vor putea trimite mesaje și toate mesajele lor vor fi ascunse. Puteți anula această acțiune oricând.";
"screen_room_member_details_block_user" = "Blocați utilizatorul"; "screen_room_member_details_block_user" = "Blocați utilizatorul";
"screen_room_member_details_unblock_alert_action" = "Deblochează"; "screen_room_member_details_unblock_alert_action" = "Deblocați";
"screen_room_member_details_unblock_alert_description" = "La deblocarea utilizatorului, vei putea vedea din nou toate mesajele de la acesta."; "screen_room_member_details_unblock_alert_description" = "La deblocarea utilizatorului, veți putea vedea din nou toate mesajele de la acesta.";
"screen_room_member_details_unblock_user" = "Deblochează utilizatorul"; "screen_room_member_details_unblock_user" = "Deblocați utilizatorul";
"screen_roomlist_a11y_create_message" = "Crea o conversație sau o cameră nouă"; "screen_roomlist_a11y_create_message" = "Creați o conversație sau o cameră nouă";
"screen_roomlist_main_space_title" = "Toate conversatiile"; "screen_roomlist_main_space_title" = "Toate conversatiile";
"screen_session_verification_cancelled_subtitle" = "Ceva nu este în regulă. Fie cererea a expirat, fie a fost respinsă."; "screen_session_verification_cancelled_subtitle" = "Ceva nu este în regulă. Fie cererea a expirat, fie a fost respinsă.";
"screen_session_verification_cancelled_title" = "Verificare anulată"; "screen_session_verification_cancelled_title" = "Verificare anulată";
"screen_session_verification_compare_emojis_subtitle" = "Confirmă că emoticoanele de mai jos se potrivesc cu cele afișate în cealaltă sesiune."; "screen_session_verification_compare_emojis_subtitle" = "Confirmați că emoticoanele de mai jos se potrivesc cu cele afișate în cealaltă sesiune.";
"screen_session_verification_compare_emojis_title" = "Compară emoticoanele"; "screen_session_verification_compare_emojis_title" = "Comparați emoticoanele";
"screen_session_verification_complete_subtitle" = "Noua ta sesiune este acum verificată. Are acces la mesajele tale criptate, iar alți utilizatori îl te vor vedea ca fiind de încredere."; "screen_session_verification_complete_subtitle" = "Noua dumneavoastră sesiune este acum verificată. Are acces la mesajele dumneavoastră criptate, iar alți utilizatori vă vor vedea ca fiind de încredere.";
"screen_session_verification_open_existing_session_subtitle" = "Demonstreaza-ți identitatea pentru a accesa istoricul mesajelor tale criptate."; "screen_session_verification_open_existing_session_subtitle" = "Demonstrați-vă identitatea pentru a accesa istoricul mesajelor criptate.";
"screen_session_verification_open_existing_session_title" = "Deschide o sesiune existentă"; "screen_session_verification_open_existing_session_title" = "Deschideți o sesiune existentă";
"screen_session_verification_positive_button_canceled" = "Reîncearcă verificarea"; "screen_session_verification_positive_button_canceled" = "Reîncercați verificarea";
"screen_session_verification_positive_button_initial" = "Sunt pregătit"; "screen_session_verification_positive_button_initial" = "Sunt pregătit";
"screen_session_verification_positive_button_ready" = "Începe"; "screen_session_verification_positive_button_ready" = "Începeți";
"screen_session_verification_positive_button_verifying_ongoing" = "Se așteaptă confirmarea"; "screen_session_verification_positive_button_verifying_ongoing" = "Se așteaptă confirmarea";
"screen_session_verification_request_accepted_subtitle" = "Compară emoticoalene asigurându-te că apar în aceeași ordine."; "screen_session_verification_request_accepted_subtitle" = "Comparăți emoticoalene asigurându-vă că apar în aceeași ordine.";
"screen_session_verification_they_dont_match" = "Nu se potrivesc"; "screen_session_verification_they_dont_match" = "Nu se potrivesc";
"screen_session_verification_they_match" = "Se potrivesc"; "screen_session_verification_they_match" = "Se potrivesc";
"screen_session_verification_waiting_to_accept_subtitle" = "Acceptă solicitarea de a începe procesul de verificare în cealaltă sesiune pentru a continua."; "screen_session_verification_waiting_to_accept_subtitle" = "Acceptați solicitarea de a începe procesul de verificare în cealaltă sesiune pentru a continua.";
"screen_session_verification_waiting_to_accept_title" = "Se așteptă acceptarea cererii"; "screen_session_verification_waiting_to_accept_title" = "Se așteptă acceptarea cererii";
"screen_signout_confirmation_dialog_content" = "Ești sigur că vrei să te deconectezi?"; "screen_signout_confirmation_dialog_content" = "Sunteți sigur că vreți să vă deconectați?";
"screen_signout_confirmation_dialog_submit" = "Deconectează-te"; "screen_signout_confirmation_dialog_submit" = "Deconectați-vă";
"screen_signout_confirmation_dialog_title" = "Deconectează-te"; "screen_signout_confirmation_dialog_title" = "Deconectați-vă";
"screen_signout_in_progress_dialog_content" = "Deconectare în curs…"; "screen_signout_in_progress_dialog_content" = "Deconectare în curs…";
"screen_signout_preference_item" = "Deconectează-te"; "screen_signout_preference_item" = "Deconectați-vă";
"screen_start_chat_error_starting_chat" = "A apărut o eroare la încercarea începerii conversației"; "screen_start_chat_error_starting_chat" = "A apărut o eroare la încercarea începerii conversației";
"screen_start_chat_unknown_profile" = "Nu am putut valida ID-ul Matrix al acestui utilizator. Este posibil ca invitația să nu fi fost primită."; "screen_start_chat_unknown_profile" = "Nu am putut valida ID-ul Matrix al acestui utilizator. Este posibil ca invitația să nu fi fost primită.";
"session_verification_banner_message" = "Se pare că folosești un dispozitiv nou. Verifică-ți identitatea pentru acces la mesajele tale criptate."; "session_verification_banner_message" = "Se pare că folosiți un dispozitiv nou. Verificați-vă identitatea pentru acces la mesajele dumneavoastră criptate.";
"session_verification_banner_title" = "Accesează istoricul mesajelor"; "session_verification_banner_title" = "Accesați istoricul mesajelor";
"settings_rageshake" = "Rageshake"; "settings_rageshake" = "Rageshake";
"settings_rageshake_detection_threshold" = "Prag de detecție"; "settings_rageshake_detection_threshold" = "Prag de detecție";
"settings_title_general" = "General"; "settings_title_general" = "General";
"settings_version_number" = "Versiunea: %1$@ (%2$@)"; "settings_version_number" = "Versiunea: %1$@ (%2$@)";
"state_event_avatar_changed_too" = "(s-a schimbat si avatarul)"; "state_event_avatar_changed_too" = "(s-a schimbat si avatarul)";
"state_event_avatar_url_changed" = "%1$@ și-a schimbat avatarul"; "state_event_avatar_url_changed" = "%1$@ și-a schimbat avatarul";
"state_event_avatar_url_changed_by_you" = "Ți-ai schimbat avatarul"; "state_event_avatar_url_changed_by_you" = "V-ați schimbat avatarul";
"state_event_display_name_changed_from" = "%1$@ și-a schimbat numele din %2$@ în %3$@"; "state_event_display_name_changed_from" = "%1$@ și-a schimbat numele din %2$@ în %3$@";
"state_event_display_name_changed_from_by_you" = "Ți-ai schimbat numele din %1$@ în %2$@"; "state_event_display_name_changed_from_by_you" = "V-ați schimbat numele din %1$@ în %2$@";
"state_event_display_name_removed" = "%1$@ și-a sters numele (era %2$@)"; "state_event_display_name_removed" = "%1$@ și-a sters numele (era %2$@)";
"state_event_display_name_removed_by_you" = "Ți-ai sters numele (era %1$@)"; "state_event_display_name_removed_by_you" = "V-ați sters numele (era %1$@)";
"state_event_display_name_set" = "%1$@ și-a schimbat numele %2$@"; "state_event_display_name_set" = "%1$@ și-a schimbat numele %2$@";
"state_event_display_name_set_by_you" = "Ți-ai schimbat numele în %1$@"; "state_event_display_name_set_by_you" = "V-ați schimbat numele în %1$@";
"state_event_room_avatar_changed" = "%1$@ a schimbat avatarul camerei"; "state_event_room_avatar_changed" = "%1$@ a schimbat avatarul camerei";
"state_event_room_avatar_changed_by_you" = "Ai schimbat avatarul camerei"; "state_event_room_avatar_changed_by_you" = "Ați schimbat avatarul camerei";
"state_event_room_avatar_removed" = "%1$@ a șters avatarul camerei"; "state_event_room_avatar_removed" = "%1$@ a șters avatarul camerei";
"state_event_room_avatar_removed_by_you" = "Ai șters avatarul camerei"; "state_event_room_avatar_removed_by_you" = "Ați șters avatarul camerei";
"state_event_room_ban" = "%1$@ a adăugat o interdicție pentru %2$@"; "state_event_room_ban" = "%1$@ a adăugat o interdicție pentru %2$@";
"state_event_room_ban_by_you" = "Ai adăugat o interdicție pentru %1$@"; "state_event_room_ban_by_you" = "Ați adăugat o interdicție pentru %1$@";
"state_event_room_created" = "%1$@ a creat camera"; "state_event_room_created" = "%1$@ a creat camera";
"state_event_room_created_by_you" = "Ai creat camera"; "state_event_room_created_by_you" = "Ați creat camera";
"state_event_room_invite" = "%1$@ l-a invitat pe %2$@"; "state_event_room_invite" = "%1$@ l-a invitat pe %2$@";
"state_event_room_invite_accepted" = "%1$@ a acceptat invitația"; "state_event_room_invite_accepted" = "%1$@ a acceptat invitația";
"state_event_room_invite_accepted_by_you" = "Ai acceptat invitația"; "state_event_room_invite_accepted_by_you" = "Ați acceptat invitația";
"state_event_room_invite_by_you" = "L-ai invitat pe %1$@"; "state_event_room_invite_by_you" = "L-ați invitat pe %1$@";
"state_event_room_invite_you" = "%1$@ te-a invitat"; "state_event_room_invite_you" = "%1$@ v-a invitat";
"state_event_room_join" = "%1$@ a intrat în cameră"; "state_event_room_join" = "%1$@ a intrat în cameră";
"state_event_room_join_by_you" = "Ai intrat în cameră"; "state_event_room_join_by_you" = "Ați intrat în cameră";
"state_event_room_knock" = "%1$@ a solicitat să se alăture camerei"; "state_event_room_knock" = "%1$@ a solicitat să se alăture camerei";
"state_event_room_knock_accepted" = "%1$@ i-a permis lui %2$@ să se alăture camerei"; "state_event_room_knock_accepted" = "%1$@ i-a permis lui %2$@ să se alăture camerei";
"state_event_room_knock_accepted_by_you" = "%1$@ ți-a permis să te alături camerei"; "state_event_room_knock_accepted_by_you" = "%1$@ v-a permis să vă alăturați camerei";
"state_event_room_knock_by_you" = "Ai solicitat să te alături camerei"; "state_event_room_knock_by_you" = "Ați solicitat să vă alăturați camerei";
"state_event_room_knock_denied" = "%1$@ a respins solicitarea de alăturare a lui %2$@"; "state_event_room_knock_denied" = "%1$@ a respins solicitarea de alăturare a lui %2$@";
"state_event_room_knock_denied_by_you" = "Ai respins solicitarea de alăturare a lui %1$@"; "state_event_room_knock_denied_by_you" = "Ați respins solicitarea de alăturare a lui %1$@";
"state_event_room_knock_denied_you" = "%1$@ a respins cererea ta de alăturare"; "state_event_room_knock_denied_you" = "%1$@ a respins cererea dumneavoastră de alăturare";
"state_event_room_knock_retracted" = "%1$@ nu mai este interesat să se alăture camerei"; "state_event_room_knock_retracted" = "%1$@ nu mai este interesat să se alăture camerei";
"state_event_room_knock_retracted_by_you" = "Ți-ai anulat cererea de alăturare"; "state_event_room_knock_retracted_by_you" = "i anulat cererea de alăturare";
"state_event_room_leave" = "%1$@ a părăsit camera"; "state_event_room_leave" = "%1$@ a părăsit camera";
"state_event_room_leave_by_you" = "Ai părăsit camera"; "state_event_room_leave_by_you" = "Ați părăsit camera";
"state_event_room_name_changed" = "%1$@ a schimbat numele camerei în: %2$@"; "state_event_room_name_changed" = "%1$@ a schimbat numele camerei în: %2$@";
"state_event_room_name_changed_by_you" = "Ai schimbat numele camerei în: %1$@"; "state_event_room_name_changed_by_you" = "Ați schimbat numele camerei în: %1$@";
"state_event_room_name_removed" = "%1$@ a sters numele camerei"; "state_event_room_name_removed" = "%1$@ a sters numele camerei";
"state_event_room_name_removed_by_you" = "Ai șters numele camerei"; "state_event_room_name_removed_by_you" = "Ați șters numele camerei";
"state_event_room_reject" = "%1$@ a respins invitația"; "state_event_room_reject" = "%1$@ a respins invitația";
"state_event_room_reject_by_you" = "Ai respins invitația"; "state_event_room_reject_by_you" = "Ați respins invitația";
"state_event_room_remove" = "%1$@ l-a îndepărtat pe %2$@"; "state_event_room_remove" = "%1$@ l-a îndepărtat pe %2$@";
"state_event_room_remove_by_you" = "L-ai îndepărtat pe %1$@"; "state_event_room_remove_by_you" = "L-ați îndepărtat pe %1$@";
"state_event_room_third_party_invite" = "%1$@ a trimis o invitație către %2$@ pentru a se alătura camerei"; "state_event_room_third_party_invite" = "%1$@ a trimis o invitație către %2$@ pentru a se alătura camerei";
"state_event_room_third_party_invite_by_you" = "Ai trimis o invitație către %1$@ pentru a se alătura camerei"; "state_event_room_third_party_invite_by_you" = "Ați trimis o invitație către %1$@ pentru a se alătura camerei";
"state_event_room_third_party_revoked_invite" = "%1$@ a revocat invitația pentru %2$@ de a se alătura camerei"; "state_event_room_third_party_revoked_invite" = "%1$@ a revocat invitația pentru %2$@ de a se alătura camerei";
"state_event_room_third_party_revoked_invite_by_you" = "Ai revocat invitația pentru %1$@ de a se alătura camerei"; "state_event_room_third_party_revoked_invite_by_you" = "Ați revocat invitația pentru %1$@ de a se alătura camerei";
"state_event_room_topic_changed" = "%1$@ a schimbat subiectul în: %2$@"; "state_event_room_topic_changed" = "%1$@ a schimbat subiectul în: %2$@";
"state_event_room_topic_changed_by_you" = "Ai schimbat subiectul în: %1$@"; "state_event_room_topic_changed_by_you" = "Ați schimbat subiectul în: %1$@";
"state_event_room_topic_removed" = "%1$@ a șters subiectul camerei"; "state_event_room_topic_removed" = "%1$@ a șters subiectul camerei";
"state_event_room_topic_removed_by_you" = "Ai șters subiectul camerei"; "state_event_room_topic_removed_by_you" = "Ați șters subiectul camerei";
"state_event_room_unban" = "%1$@ a anulat interdicția pentru %2$@"; "state_event_room_unban" = "%1$@ a anulat interdicția pentru %2$@";
"state_event_room_unban_by_you" = "Ai anulat interdicția pentru %1$@"; "state_event_room_unban_by_you" = "Ați anulat interdicția pentru %1$@";
"state_event_room_unknown_membership_change" = "%1$@ a făcut o modificare necunoscută asupra calității sale de membru"; "state_event_room_unknown_membership_change" = "%1$@ a făcut o modificare necunoscută asupra calității sale de membru";
"test_language_identifier" = "ro"; "test_language_identifier" = "ro";
"test_untranslated_default_language_identifier" = "en"; "test_untranslated_default_language_identifier" = "en";

View File

@ -6,7 +6,7 @@ import PackageDescription
let package = Package( let package = Package(
name: "Element Swift", name: "Element Swift",
platforms: [ platforms: [
.macOS(.v13) .macOS(.v12)
], ],
products: [ products: [
.executable(name: "tools", targets: ["Tools"]) .executable(name: "tools", targets: ["Tools"])

View File

@ -28,7 +28,7 @@ struct BuildSDK: ParsableCommand {
var profile: Profile = .debug var profile: Profile = .debug
private var parentDirectoryURL: URL { Utilities.projectDirectoryURL.deletingLastPathComponent() } private var parentDirectoryURL: URL { Utilities.projectDirectoryURL.deletingLastPathComponent() }
private var sdkDirectoryURL: URL { parentDirectoryURL.appending(path: "matrix-rust-sdk") } private var sdkDirectoryURL: URL { parentDirectoryURL.appendingPathComponent("matrix-rust-sdk") }
enum Error: LocalizedError { enum Error: LocalizedError {
case rustupOutputFailure case rustupOutputFailure
@ -109,7 +109,7 @@ struct BuildSDK: ParsableCommand {
/// Update project.yml with the local path of the SDK. /// Update project.yml with the local path of the SDK.
func updateProjectYAML() throws { func updateProjectYAML() throws {
let yamlURL = Utilities.projectDirectoryURL.appending(path: "project.yml") let yamlURL = Utilities.projectDirectoryURL.appendingPathComponent("project.yml")
let yamlString = try String(contentsOf: yamlURL) let yamlString = try String(contentsOf: yamlURL)
guard var projectConfig = try Yams.compose(yaml: yamlString) else { throw Error.failureParsingProjectYAML } guard var projectConfig = try Yams.compose(yaml: yamlString) else { throw Error.failureParsingProjectYAML }

View File

@ -0,0 +1,18 @@
import ArgumentParser
import Foundation
struct DownloadStrings: ParsableCommand {
static var configuration = CommandConfiguration(abstract: "A tool to download localizable strings from localazy")
@Flag(help: "Use to download translation keys for all languages")
var allLanguages = false
func run() throws {
try localazyDownload()
}
private func localazyDownload() throws {
let json = allLanguages ? "localazy-all.json" : "localazy-en.json"
try Utilities.zsh("localazy download --config \(json)")
}
}

View File

@ -0,0 +1,44 @@
import ArgumentParser
import Foundation
struct Locheck: ParsableCommand {
enum LocheckError: LocalizedError {
case missingMint
case outputError
var errorDescription: String? {
switch self {
case .missingMint:
return "💥 Unable to find mint. Fix by running:\nbrew install mint\n"
case .outputError:
return "💥 Failed to read the output from locheck."
}
}
}
static var configuration = CommandConfiguration(abstract: "A tool that verifies bad strings contained in localization files")
private var stringsDirectoryURL: URL {
Utilities.projectDirectoryURL.appendingPathComponent("ElementX/Resources/Localizations")
}
func run() throws {
try checkMint()
try checkStrings()
}
func checkStrings() throws {
guard let output = try Utilities.zsh("mint run locheck discoverlproj --ignore-missing --ignore lproj_file_missing_from_translation --treat-warnings-as-errors \(stringsDirectoryURL.path)") else {
throw LocheckError.missingMint
}
print(output)
}
private func checkMint() throws {
let result = try Utilities.zsh("which mint")
if result?.contains("not found") == true {
throw LocheckError.missingMint
}
}
}

View File

@ -4,7 +4,7 @@ import Foundation
struct OutdatedPackages: ParsableCommand { struct OutdatedPackages: ParsableCommand {
static var configuration = CommandConfiguration(abstract: "A tool to check outdated package dependencies. Please make sure you have already run setup-project before using this tool.") static var configuration = CommandConfiguration(abstract: "A tool to check outdated package dependencies. Please make sure you have already run setup-project before using this tool.")
private var projectSwiftPMDirectoryURL: URL { Utilities.projectDirectoryURL.appending(path: "ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm") } private var projectSwiftPMDirectoryURL: URL { Utilities.projectDirectoryURL.appendingPathComponent("ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm") }
func run() throws { func run() throws {
try checkToolsDependencies() try checkToolsDependencies()

View File

@ -15,7 +15,7 @@ struct SetupProject: ParsableCommand {
} }
func brewBundleInstall() throws { func brewBundleInstall() throws {
try Utilities.zsh("brew install xcodegen swiftgen swiftlint swiftformat git-lfs sourcery kiliankoe/formulae/swift-outdated localazy/tools/localazy") try Utilities.zsh("brew install xcodegen swiftgen swiftlint swiftformat git-lfs sourcery mint kiliankoe/formulae/swift-outdated localazy/tools/localazy")
} }
func xcodegen() throws { func xcodegen() throws {

View File

@ -6,5 +6,7 @@ struct Tools: ParsableCommand {
static var configuration = CommandConfiguration(abstract: "A collection of command line tools for ElementX", static var configuration = CommandConfiguration(abstract: "A collection of command line tools for ElementX",
subcommands: [BuildSDK.self, subcommands: [BuildSDK.self,
SetupProject.self, SetupProject.self,
OutdatedPackages.self]) OutdatedPackages.self,
DownloadStrings.self,
Locheck.self])
} }

View File

@ -13,13 +13,13 @@ enum Utilities {
} }
} }
static var projectDirectoryURL: URL { URL(filePath: FileManager.default.currentDirectoryPath) } static var projectDirectoryURL: URL { URL(fileURLWithPath: FileManager.default.currentDirectoryPath) }
/// Runs a command in zsh. /// Runs a command in zsh.
@discardableResult @discardableResult
static func zsh(_ command: String, workingDirectoryURL: URL = projectDirectoryURL) throws -> String? { static func zsh(_ command: String, workingDirectoryURL: URL = projectDirectoryURL) throws -> String? {
let process = Process() let process = Process()
process.executableURL = URL(filePath: "/bin/zsh") process.executableURL = URL(fileURLWithPath: "/bin/zsh")
process.arguments = ["-cu", command] process.arguments = ["-cu", command]
process.currentDirectoryURL = workingDirectoryURL process.currentDirectoryURL = workingDirectoryURL

36
localazy-en.json Normal file
View File

@ -0,0 +1,36 @@
{
"readKey": "a7876306080832595063-aa37154bb3772f6146890fca868d155b2228b492c56c91f67abdcdfb74d6142d",
"conversion": {
"actions": [
{
"type": "ios-strings",
"output": "ElementX/Resources/Localizations/${iosLprojFolder}/Localizable.strings",
"excludeKeys": ["REGEX:.*_android"],
"conditions": [
"equals: ${languageCode}, en"
],
"filterPlurals": true,
"replacements": {
"%s": "%@",
"$s": "$@"
}
},
{
"type": "ios-stringsdict",
"output": "ElementX/Resources/Localizations/${iosLprojFolder}/Localizable.stringsdict",
"excludeKeys": ["REGEX:.*_android"],
"conditions": [
"equals: ${languageCode}, en"
],
"replacements": {
"%s": "%@",
"$s": "$@"
},
"params": {
"variable": "COUNT"
}
}
]
}
}