mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-10 13:37:11 +00:00
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:
parent
9998fadd3b
commit
8a56649289
37
.github/workflows/translations-pr.yml
vendored
Normal file
37
.github/workflows/translations-pr.yml
vendored
Normal 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
|
281
ElementX/Resources/Localizations/es.lproj/Localizable.strings
Normal file
281
ElementX/Resources/Localizations/es.lproj/Localizable.strings
Normal 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";
|
@ -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>
|
@ -48,7 +48,7 @@
|
||||
"common_about" = "Informazioni";
|
||||
"common_audio" = "Audio";
|
||||
"common_bubbles" = "Fumetti";
|
||||
"common_creating_room" = "Creazione stanza...";
|
||||
"common_creating_room" = "Creazione stanza…";
|
||||
"common_current_user_left_room" = "Hai lasciato la stanza";
|
||||
"common_decryption_error" = "Errore di decrittazione";
|
||||
"common_developer_options" = "Opzioni sviluppatore";
|
||||
@ -141,7 +141,7 @@
|
||||
"screen_bug_report_contact_me" = "Potete contattarmi per qualsiasi altra domanda";
|
||||
"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_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_include_crash_logs" = "Invia i log degli arresti anomali";
|
||||
"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_submit" = "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_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.";
|
||||
|
@ -1,55 +1,55 @@
|
||||
"Notification" = "Notificare";
|
||||
"a11y_hide_password" = "Ascunde parola";
|
||||
"a11y_send_files" = "Trimite fișiere";
|
||||
"a11y_show_password" = "Arata parola";
|
||||
"a11y_hide_password" = "Ascundeți parola";
|
||||
"a11y_send_files" = "Trimiteți fișiere";
|
||||
"a11y_show_password" = "Afișați parola";
|
||||
"a11y_user_menu" = "Meniu utilizator";
|
||||
"action_back" = "Înapoi";
|
||||
"action_cancel" = "Anulează";
|
||||
"action_clear" = "Șterge";
|
||||
"action_close" = "Închide";
|
||||
"action_cancel" = "Anulați";
|
||||
"action_clear" = "Ștergeți";
|
||||
"action_close" = "Închideți";
|
||||
"action_complete_verification" = "Verificare completă";
|
||||
"action_confirm" = "Confirmă";
|
||||
"action_continue" = "Continuă";
|
||||
"action_copy" = "Copiază";
|
||||
"action_copy_link" = "Copiază linkul";
|
||||
"action_create_a_room" = "Crează o cameră";
|
||||
"action_disable" = "Dezactivează";
|
||||
"action_done" = "Gata";
|
||||
"action_edit" = "Editează";
|
||||
"action_enable" = "Activează";
|
||||
"action_invite" = "Invită";
|
||||
"action_invite_friends_to_app" = "Invită prieteni în %1$@";
|
||||
"action_learn_more" = "Află mai multe";
|
||||
"action_leave" = "Părăsește";
|
||||
"action_leave_room" = "Părăsește camera";
|
||||
"action_confirm" = "Confirmați";
|
||||
"action_continue" = "Continuați";
|
||||
"action_copy" = "Copiați";
|
||||
"action_copy_link" = "Copiați linkul";
|
||||
"action_create_a_room" = "Creați o cameră";
|
||||
"action_disable" = "Dezactivați";
|
||||
"action_done" = "Efectuat";
|
||||
"action_edit" = "Editați";
|
||||
"action_enable" = "Activați";
|
||||
"action_invite" = "Invitați";
|
||||
"action_invite_friends_to_app" = "Invitați prieteni în %1$@";
|
||||
"action_learn_more" = "Aflați mai multe";
|
||||
"action_leave" = "Părăsiți";
|
||||
"action_leave_room" = "Părăsiți camera";
|
||||
"action_next" = "Următorul";
|
||||
"action_no" = "Nu";
|
||||
"action_not_now" = "Nu acum";
|
||||
"action_ok" = "OK";
|
||||
"action_quick_reply" = "Raspuns rapid";
|
||||
"action_quote" = "Citează";
|
||||
"action_remove" = "Șterge";
|
||||
"action_reply" = "Răspunde";
|
||||
"action_report_bug" = "Raportează o eroare";
|
||||
"action_report_content" = "Raportează conținutul";
|
||||
"action_retry" = "Reîncearcă";
|
||||
"action_retry_decryption" = "Reîncearcă decriptarea";
|
||||
"action_save" = "Salvează";
|
||||
"action_search" = "Caută";
|
||||
"action_send" = "Trimite";
|
||||
"action_share" = "Partajează";
|
||||
"action_share_link" = "Partajează linkul";
|
||||
"action_skip" = "Omite";
|
||||
"action_start" = "Începe";
|
||||
"action_start_chat" = "Începe discuția";
|
||||
"action_start_verification" = "Începe verificarea";
|
||||
"action_view_source" = "Vezi sursa";
|
||||
"action_quote" = "Citat";
|
||||
"action_remove" = "Ștergeți";
|
||||
"action_reply" = "Răspundeți";
|
||||
"action_report_bug" = "Raportați o eroare";
|
||||
"action_report_content" = "Raportați conținutul";
|
||||
"action_retry" = "Reîncercați";
|
||||
"action_retry_decryption" = "Reîncercați decriptarea";
|
||||
"action_save" = "Salvați";
|
||||
"action_search" = "Căutați";
|
||||
"action_send" = "Trimiteți";
|
||||
"action_share" = "Partajați";
|
||||
"action_share_link" = "Partajați linkul";
|
||||
"action_skip" = "Omiteți";
|
||||
"action_start" = "Începeți";
|
||||
"action_start_chat" = "Începeți discuția";
|
||||
"action_start_verification" = "Începeți verificarea";
|
||||
"action_view_source" = "Vedeți sursă";
|
||||
"action_yes" = "Da";
|
||||
"common_about" = "Despre";
|
||||
"common_audio" = "Audio";
|
||||
"common_bubbles" = "Baloane";
|
||||
"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_developer_options" = "Opțiuni programator";
|
||||
"common_edited_suffix" = "(editat)";
|
||||
@ -72,11 +72,11 @@
|
||||
"common_permalink" = "Permalink";
|
||||
"common_reactions" = "Reacții";
|
||||
"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_search_for_someone" = "Caută pe cineva";
|
||||
"common_search_for_someone" = "Căutați pe cineva";
|
||||
"common_security" = "Securitate";
|
||||
"common_select_your_server" = "Selectează serverul";
|
||||
"common_select_your_server" = "Selectați serverul";
|
||||
"common_sending" = "Se trimite…";
|
||||
"common_server_not_supported" = "Serverul nu este compatibil";
|
||||
"common_server_url" = "Adresa URL a serverului";
|
||||
@ -92,7 +92,7 @@
|
||||
"common_verification_complete" = "Verificare completă";
|
||||
"common_video" = "Video";
|
||||
"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_error" = "Eroare";
|
||||
"dialog_title_success" = "Succes";
|
||||
@ -111,171 +111,171 @@
|
||||
"error_some_messages_have_not_been_sent" = "Unele mesaje nu au fost trimise";
|
||||
"error_unknown" = "Ne pare rău, a apărut o eroare";
|
||||
"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_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_subtitle" = "Ești sigur că vrei să părăsești camera?";
|
||||
"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" = "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" = "Sunteți sigur că vreți să părăsiți camera?";
|
||||
"login_initial_device_name_ios" = "%1$@ iOS";
|
||||
"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_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ă 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_hint" = "Motivul raportării acestui conținut";
|
||||
"rich_text_editor_bullet_list" = "Comutează lista cu puncte";
|
||||
"rich_text_editor_code_block" = "Comutează blocul de cod";
|
||||
"rich_text_editor_bullet_list" = "Comutați lista cu puncte";
|
||||
"rich_text_editor_code_block" = "Comutați blocul de cod";
|
||||
"rich_text_editor_composer_placeholder" = "Mesaj…";
|
||||
"rich_text_editor_format_bold" = "Aplică formatul aldin";
|
||||
"rich_text_editor_format_italic" = "Aplică formatul italic";
|
||||
"rich_text_editor_format_strikethrough" = "Aplică formatul barat";
|
||||
"rich_text_editor_format_bold" = "Aplicați formatul aldin";
|
||||
"rich_text_editor_format_italic" = "Aplicați formatul italic";
|
||||
"rich_text_editor_format_strikethrough" = "Aplicați formatul barat";
|
||||
"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_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_numbered_list" = "Comută lista numerotată";
|
||||
"rich_text_editor_quote" = "Aplică citatul";
|
||||
"rich_text_editor_numbered_list" = "Comutați lista numerotată";
|
||||
"rich_text_editor_quote" = "Aplicați citatul";
|
||||
"rich_text_editor_unindent" = "Dez-identare";
|
||||
"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_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_edit_screenshot" = "Editează 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_placeholder" = "Descrie eroarea…";
|
||||
"screen_bug_report_editor_supporting" = "Dacă posibil, te rugăm să scrii descrierea în engleză.";
|
||||
"screen_bug_report_include_crash_logs" = "Trimite log-uri";
|
||||
"screen_bug_report_include_logs" = "Trimite log-uri pentru a ajuta";
|
||||
"screen_bug_report_include_screenshot" = "Trimite captură de ecran";
|
||||
"screen_bug_report_edit_screenshot" = "Editați captura de ecran";
|
||||
"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ți eroarea…";
|
||||
"screen_bug_report_editor_supporting" = "Dacă posibil, vă rugăm să scrieți descrierea în engleză.";
|
||||
"screen_bug_report_include_crash_logs" = "Trimiteți log-uri";
|
||||
"screen_bug_report_include_logs" = "Trimiteți log-uri pentru a ajuta";
|
||||
"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_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_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_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_submit" = "Continuă";
|
||||
"screen_change_server_subtitle" = "Care este adresa serverului tău?";
|
||||
"screen_change_server_title" = "Selectează serverul";
|
||||
"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" = "Continuați";
|
||||
"screen_change_server_subtitle" = "Care este adresa serverului dumneavoastră?";
|
||||
"screen_change_server_title" = "Selectați serverul";
|
||||
"screen_create_room_action_create_room" = "Cameră nouă";
|
||||
"screen_create_room_action_invite_people" = "Invită persoane";
|
||||
"screen_create_room_add_people_title" = "Adaugă persoane";
|
||||
"screen_dm_details_block_alert_action" = "Blochează";
|
||||
"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_user" = "Blochează utilizatorul";
|
||||
"screen_dm_details_unblock_alert_action" = "Deblochează";
|
||||
"screen_dm_details_unblock_alert_description" = "La deblocarea utilizatorului, vei putea vedea din nou toate mesajele de la acesta.";
|
||||
"screen_dm_details_unblock_user" = "Deblochează utilizatorul";
|
||||
"screen_create_room_action_invite_people" = "Invitați persoane";
|
||||
"screen_create_room_add_people_title" = "Adaugați persoane";
|
||||
"screen_dm_details_block_alert_action" = "Blocați";
|
||||
"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" = "Blocați utilizatorul";
|
||||
"screen_dm_details_unblock_alert_action" = "Deblocați";
|
||||
"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" = "Deblocați utilizatorul";
|
||||
"screen_login_error_deactivated_account" = "Acest cont a fost dezactivat.";
|
||||
"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_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_server_header" = "Locul unde trăiesc conversațiile tale";
|
||||
"screen_login_submit" = "Continuă";
|
||||
"screen_login_title" = "Bine ai revenit!";
|
||||
"screen_login_submit" = "Continuați";
|
||||
"screen_login_title" = "Bine ați revenit!";
|
||||
"screen_login_username_hint" = "Utilizator";
|
||||
"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_report_content_block_user" = "Blochează utilizatorul";
|
||||
"screen_report_content_block_user_hint" = "Verifică că dorești să ascunzi 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_report_content_block_user" = "Blocați utilizatorul";
|
||||
"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 dumneavoastră și destinatarii aveți cheile unice pentru a le debloca.";
|
||||
"screen_room_details_encryption_enabled_title" = "Criptarea mesajelor este activată";
|
||||
"screen_room_details_invite_people_title" = "Invită persoane";
|
||||
"screen_room_details_leave_room_title" = "Părăsește camera";
|
||||
"screen_room_details_invite_people_title" = "Invitați persoane";
|
||||
"screen_room_details_leave_room_title" = "Părăsiți camera";
|
||||
"screen_room_details_people_title" = "Persoane";
|
||||
"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_member_details_block_alert_action" = "Blochează";
|
||||
"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_action" = "Blocați";
|
||||
"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_unblock_alert_action" = "Deblochează";
|
||||
"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_user" = "Deblochează utilizatorul";
|
||||
"screen_roomlist_a11y_create_message" = "Crează o conversație sau o cameră nouă";
|
||||
"screen_room_member_details_unblock_alert_action" = "Deblocați";
|
||||
"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" = "Deblocați utilizatorul";
|
||||
"screen_roomlist_a11y_create_message" = "Creați o conversație sau o cameră nouă";
|
||||
"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_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_title" = "Compară 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_open_existing_session_subtitle" = "Demonstreaza-ți identitatea pentru a accesa istoricul mesajelor tale criptate.";
|
||||
"screen_session_verification_open_existing_session_title" = "Deschide o sesiune existentă";
|
||||
"screen_session_verification_positive_button_canceled" = "Reîncearcă verificarea";
|
||||
"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" = "Comparați emoticoanele";
|
||||
"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" = "Demonstrați-vă identitatea pentru a accesa istoricul mesajelor criptate.";
|
||||
"screen_session_verification_open_existing_session_title" = "Deschideți o sesiune existentă";
|
||||
"screen_session_verification_positive_button_canceled" = "Reîncercați verificarea";
|
||||
"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_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_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_signout_confirmation_dialog_content" = "Ești sigur că vrei să te deconectezi?";
|
||||
"screen_signout_confirmation_dialog_submit" = "Deconectează-te";
|
||||
"screen_signout_confirmation_dialog_title" = "Deconectează-te";
|
||||
"screen_signout_confirmation_dialog_content" = "Sunteți sigur că vreți să vă deconectați?";
|
||||
"screen_signout_confirmation_dialog_submit" = "Deconectați-vă";
|
||||
"screen_signout_confirmation_dialog_title" = "Deconectați-vă";
|
||||
"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_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_title" = "Accesează istoricul mesajelor";
|
||||
"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" = "Accesați istoricul mesajelor";
|
||||
"settings_rageshake" = "Rageshake";
|
||||
"settings_rageshake_detection_threshold" = "Prag de detecție";
|
||||
"settings_title_general" = "General";
|
||||
"settings_version_number" = "Versiunea: %1$@ (%2$@)";
|
||||
"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_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_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_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_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_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_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_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_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_accepted" = "%1$@ a acceptat invitația";
|
||||
"state_event_room_invite_accepted_by_you" = "Ai acceptat invitația";
|
||||
"state_event_room_invite_by_you" = "L-ai invitat pe %1$@";
|
||||
"state_event_room_invite_you" = "%1$@ te-a invitat";
|
||||
"state_event_room_invite_accepted_by_you" = "Ați acceptat invitația";
|
||||
"state_event_room_invite_by_you" = "L-ați invitat pe %1$@";
|
||||
"state_event_room_invite_you" = "%1$@ v-a invitat";
|
||||
"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_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_by_you" = "Ai solicitat 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" = "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_by_you" = "Ai 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_by_you" = "Ați respins solicitarea de alăturare a lui %1$@";
|
||||
"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_by_you" = "Ți-ai anulat cererea de alăturare";
|
||||
"state_event_room_knock_retracted_by_you" = "Ați anulat cererea de alăturare";
|
||||
"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_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_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_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_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_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_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_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_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_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";
|
||||
"test_language_identifier" = "ro";
|
||||
"test_untranslated_default_language_identifier" = "en";
|
||||
|
@ -6,7 +6,7 @@ import PackageDescription
|
||||
let package = Package(
|
||||
name: "Element Swift",
|
||||
platforms: [
|
||||
.macOS(.v13)
|
||||
.macOS(.v12)
|
||||
],
|
||||
products: [
|
||||
.executable(name: "tools", targets: ["Tools"])
|
||||
|
@ -28,7 +28,7 @@ struct BuildSDK: ParsableCommand {
|
||||
var profile: Profile = .debug
|
||||
|
||||
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 {
|
||||
case rustupOutputFailure
|
||||
@ -109,7 +109,7 @@ struct BuildSDK: ParsableCommand {
|
||||
|
||||
/// Update project.yml with the local path of the SDK.
|
||||
func updateProjectYAML() throws {
|
||||
let yamlURL = Utilities.projectDirectoryURL.appending(path: "project.yml")
|
||||
let yamlURL = Utilities.projectDirectoryURL.appendingPathComponent("project.yml")
|
||||
let yamlString = try String(contentsOf: yamlURL)
|
||||
guard var projectConfig = try Yams.compose(yaml: yamlString) else { throw Error.failureParsingProjectYAML }
|
||||
|
||||
|
18
Tools/Sources/DownloadStrings.swift
Normal file
18
Tools/Sources/DownloadStrings.swift
Normal 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)")
|
||||
}
|
||||
}
|
44
Tools/Sources/Locheck.swift
Normal file
44
Tools/Sources/Locheck.swift
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ import Foundation
|
||||
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.")
|
||||
|
||||
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 {
|
||||
try checkToolsDependencies()
|
||||
|
@ -15,7 +15,7 @@ struct SetupProject: ParsableCommand {
|
||||
}
|
||||
|
||||
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 {
|
||||
|
@ -6,5 +6,7 @@ struct Tools: ParsableCommand {
|
||||
static var configuration = CommandConfiguration(abstract: "A collection of command line tools for ElementX",
|
||||
subcommands: [BuildSDK.self,
|
||||
SetupProject.self,
|
||||
OutdatedPackages.self])
|
||||
OutdatedPackages.self,
|
||||
DownloadStrings.self,
|
||||
Locheck.self])
|
||||
}
|
||||
|
@ -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.
|
||||
@discardableResult
|
||||
static func zsh(_ command: String, workingDirectoryURL: URL = projectDirectoryURL) throws -> String? {
|
||||
let process = Process()
|
||||
process.executableURL = URL(filePath: "/bin/zsh")
|
||||
process.executableURL = URL(fileURLWithPath: "/bin/zsh")
|
||||
process.arguments = ["-cu", command]
|
||||
process.currentDirectoryURL = workingDirectoryURL
|
||||
|
||||
|
36
localazy-en.json
Normal file
36
localazy-en.json
Normal 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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user