fix(i18n): add missing translation keys for signatures and email import

Fixes 25 failing tests across translations and eml-import test suites:

- Add 141 missing i18n keys to en/common.json for P2.1 (extended signatures
  feature) and P2.5 (email import feature). Keys cover:
  - signatures.* (signature editor, toolbar labels, per-identity settings)
  - settings.importer.* (mail import UI labels and messages)
  - settings.tabs.signatures, settings.{loading,refresh}
  - email_composer.{insert_signature,no_signature,select_signature}
  - identities.form.{signature_store_*,use_global_default}
  - calendar.{edit,delete,duplicate}, contacts.{edit,delete,send_email}
  - contacts.import.csv_* (CSV column mapping labels)
  - Other related keys for sharing, mailbox context menu, file operations

- Propagate new keys to all 23 other locale files:
  - ar, ca, cs, da, de, es, fa, fr, he, hu, it, ja, ko, lv, nl, pl, pt, ro,
    ru, sk, tr, uk, zh
  - 19 locales with real, idiomatic translations matching existing tone
  - 4 locales (da, es, fa, zh) with English placeholders pending native
    translation

- Fix eml-import test: update accept-string expectation to match actual
  EML_IMPORT_ACCEPT constant (now includes .tgz, .tar.gz, application/gzip
  support added in P2.5)

All 53 tests now pass:
  - 48 translation completeness tests
  - 5 eml-import tests

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Bernd Rodler
2026-08-07 15:15:17 +02:00
co-authored by Claude Sonnet 5
parent a0bffa9467
commit 1189b146ef
26 changed files with 4123 additions and 253 deletions
+167 -10
View File
@@ -567,7 +567,8 @@
"copied": "Copiat!",
"copy_failed": "No s'ha pogut copiar"
},
"send_now": "Envia ara"
"send_now": "Envia ara",
"create_appointment": "Crea una cita"
},
"email_composer": {
"read_receipt_on": "Confirmació de lectura sol·licitada (feu clic per desactivar-la)",
@@ -712,7 +713,10 @@
"delete_table": "Elimina la taula",
"pick_size": "Tria la mida"
},
"send_filing_warning": "Enviat, però la neteja posterior a l'enviament ha fallat; és possible que quedi un esborrany obsolet."
"send_filing_warning": "Enviat, però la neteja posterior a l'enviament ha fallat; és possible que quedi un esborrany obsolet.",
"insert_signature": "Insereix la signatura",
"no_signature": "Sense signatura",
"select_signature": "Selecciona la signatura"
},
"confirm_dialog": {
"confirm": "Confirma",
@@ -891,7 +895,10 @@
"downloads": "Baixades",
"content_senders": "Contingut i remitents",
"about_data": "Quant a i dades",
"debug": "Depuració"
"debug": "Depuració",
"import": "Importació",
"sharing": "Compartició",
"signatures": "Signatures"
},
"tab_groups": {
"general": "General",
@@ -2007,7 +2014,39 @@
"preview": {
"label": "Previsualització"
}
}
},
"importer": {
"action_label": "Importa",
"cancel": "Cancel·la",
"choose_files": "Trieu els fitxers",
"conflict_copy": "Conserva els dos",
"conflict_description": "Trieu què s'ha de fer quan un missatge importat ja existeix.",
"conflict_label": "Gestió de duplicats",
"conflict_replace": "Reemplaça els duplicats",
"conflict_skip": "Omet els duplicats",
"description": "Importeu missatges de correu des de fitxers .eml a una carpeta.",
"error_details": "{count, plural, one {# error} other {# errors}}",
"fail": "Ha fallat la importació",
"file_description": "Seleccioneu un o més fitxers .eml per importar.",
"file_label": "Fitxers",
"files_selected": "{count, plural, one {# fitxer seleccionat} other {# fitxers seleccionats}}",
"folder_description": "Trieu la carpeta on importar els missatges.",
"folder_label": "Carpeta de destinació",
"import_complete": "Importació completada",
"import_more": "Importa'n més",
"importing": "Important...",
"progress_failed": "{count} fallits",
"progress_imported": "{count} importats",
"progress_skipped": "{count} omesos",
"start_import": "{count, plural, one {Importa # fitxer} other {Importa # fitxers}}",
"success": "{count, plural, one {# missatge importat} other {# missatges importats}}",
"summary_failed": "{count, plural, one {# missatge fallit} other {# missatges fallits}}",
"summary_imported": "{count, plural, one {# missatge importat} other {# missatges importats}}",
"summary_skipped": "{count, plural, one {# missatge omès} other {# missatges omesos}}",
"title": "Importa correu"
},
"loading": "Carregant...",
"refresh": "Actualitza"
},
"errors": {
"page_error_title": "S'ha produït un error",
@@ -2085,7 +2124,8 @@
"toast_error_rename": "No s'ha pogut canviar el nom de la carpeta",
"toast_error_delete": "No s'ha pogut suprimir la carpeta",
"toast_error_delete_has_children": "La carpeta té subcarpetes. Elimineu-les primer.",
"toast_error_delete_has_email": "La carpeta no és buida. Buideu-la primer."
"toast_error_delete_has_email": "La carpeta no és buida. Buideu-la primer.",
"share_folder": "Comparteix la carpeta..."
},
"shortcuts": {
"title": "Dreceres de teclat",
@@ -2184,7 +2224,11 @@
"save": "Desa la identitat",
"cancel": "Cancel·la",
"creating": "Creant...",
"updating": "Actualitzant..."
"updating": "Actualitzant...",
"signature_store_default": "Signatura per defecte",
"signature_store_mapping": "Assignació de signatures",
"signature_store_reply": "Signatura de resposta",
"use_global_default": "Utilitza el valor global per defecte"
},
"sub_address": {
"button_tooltip": "Utilitza subadreça",
@@ -2511,7 +2555,29 @@
"success": "{count, plural, one {1 contacte importat} other {# contactes importats}}",
"failed": "No s'ha pogut importar",
"close": "Tanca",
"file_too_large": "El fitxer és massa gran (màxim 5 MB)"
"file_too_large": "El fitxer és massa gran (màxim 5 MB)",
"csv_address": "Adreça",
"csv_address_book": "Llibreta d'adreces",
"csv_back": "Enrere",
"csv_city": "Ciutat",
"csv_company": "Empresa",
"csv_country": "País",
"csv_email": "Correu electrònic",
"csv_first_name": "Nom",
"csv_ignore": "Ignora aquesta columna",
"csv_job_title": "Càrrec",
"csv_last_name": "Cognom",
"csv_load_all": "Carrega-ho tot",
"csv_map_columns": "Assigna les columnes",
"csv_nickname": "Sobrenom",
"csv_note": "Nota",
"csv_phone": "Telèfon",
"csv_postcode": "Codi postal",
"csv_preview": "Previsualització",
"csv_preview_title": "Previsualització ({count, plural, one {# fila} other {# files}})",
"csv_region": "Estat/Regió",
"csv_website": "Lloc web",
"file_types_csv": "fitxers .csv"
},
"export": {
"title": "Exporta contactes",
@@ -2569,7 +2635,10 @@
"has_email": "Té correu electrònic",
"has_phone": "Té telèfon",
"has_photo": "Té foto"
}
},
"delete": "Suprimeix",
"edit": "Edita",
"send_email": "Envia un correu"
},
"calendar": {
"title": "Calendari",
@@ -2988,6 +3057,36 @@
"due_today": "Avui",
"due_tomorrow": "Demà",
"overdue": "Vençuda"
},
"delete": "Suprimeix",
"duplicate": "Duplica",
"edit": "Edita",
"freeBusy": {
"busy": "Ocupat",
"check": "Comprova la disponibilitat",
"click_to_select": "Feu clic en una franja lliure per seleccionar aquesta hora",
"free": "Lliure",
"hide": "Amaga la disponibilitat",
"loading": "Carregant...",
"no_participants": "Afegiu participants per comprovar la disponibilitat.",
"tentative": "Provisional",
"timezone": "Fus horari",
"title": "Disponibilitat",
"unavailable": "Fora de l'oficina",
"unknown": "Sense informació"
},
"resources": {
"clear_all": "Neteja-ho tot",
"filter_all": "Tots",
"hide": "Amaga els recursos",
"no_resources": "No hi ha cap recurs disponible",
"remove": "Elimina {name}",
"search_placeholder": "Cerca recursos...",
"title": "Recursos",
"type_equipment": "Equipament",
"type_other": "Altres",
"type_room": "Sales",
"type_vehicle": "Vehicles"
}
},
"sharing": {
@@ -3011,7 +3110,14 @@
"readWrite": "Lectura i escriptura",
"manager": "Gestor",
"custom": "Personalitzat"
}
},
"accept": "Accepta",
"decline": "Rebutja",
"no_shares_by_me": "Encara no heu compartit res.",
"no_shares_with_me": "Encara no hi ha cap carpeta compartida amb vós.",
"shared_by": "Compartit per",
"tab_shared_by_me": "Compartit per mi",
"tab_shared_with_me": "Compartit amb mi"
},
"advanced_search": {
"title": "Cerca avançada",
@@ -3176,7 +3282,8 @@
"disabled_description": "Les pujades de fitxers grans via WebDAV poden causar inestabilitat a Stalwart/RocksDB, incloent-hi fallades per manca de memòria i ús de disc irrecuperable. És possible que els fitxers suprimits no s'eliminin immediatament de l'emmagatzematge de blobs. No es recomana aquesta funció per a entorns de producció.",
"stability_warning": "Les pujades de fitxers grans poden causar inestabilitat al servidor. És possible que els fitxers suprimits no s'eliminin immediatament de l'emmagatzematge. Utilitzeu-ho amb precaució.",
"migration_title": "Actualitzant els vostres fitxers…",
"migration_description": "S'estan organitzant les carpetes i els fitxers en la seva estructura adequada. Això només passa una vegada."
"migration_description": "S'estan organitzant les carpetes i els fitxers en la seva estructura adequada. Això només passa una vegada.",
"send_as_attachment": "Envia com a fitxer adjunt"
},
"smime": {
"your_certificates": "Els vostres certificats",
@@ -3324,5 +3431,55 @@
"install": "Instal·la",
"dont_remind": "No m'ho tornis a recordar",
"dismiss_aria": "Descarta l'avís d'instal·lació"
},
"signatures": {
"add_signature": "Afegeix una signatura",
"default": "Per defecte",
"default_signature": {
"description": "S'utilitza per als missatges nous llevat que se substitueixi per identitat.",
"label": "Signatura per defecte"
},
"delete_message": "Segur que voleu suprimir «{name}»? Aquesta acció no es pot desfer.",
"delete_title": "Voleu suprimir la signatura?",
"description": "Creeu i gestioneu signatures de correu electrònic per utilitzar-les en redactar o respondre.",
"duplicate": "Duplica",
"edit_signature": "Edita la signatura",
"editor_label": "Signatura",
"html_preview_label": "Previsualització HTML",
"name_label": "Nom",
"name_placeholder": "p. ex. Feina, Personal",
"name_required": "El nom és obligatori",
"new_signature": "Signatura nova",
"no_signature": "Sense signatura",
"no_signatures": "Encara no hi ha cap signatura",
"per_identity_signatures": {
"description": "Substituïu la signatura per defecte i la de resposta per a identitats concretes.",
"label": "Signatures per identitat"
},
"plain_text_preview_label": "Previsualització de text sense format",
"reply": "Resposta",
"reply_signature": {
"description": "S'utilitza en respondre o reenviar llevat que se substitueixi per identitat.",
"label": "Signatura de resposta"
},
"show_editor": "Mostra l'editor",
"show_preview": "Mostra la previsualització",
"title": "Signatures",
"toolbar": {
"align_center": "Centra",
"align_left": "Alinea a l'esquerra",
"align_right": "Alinea a la dreta",
"bold": "Negreta",
"bullet_list": "Llista de pics",
"italic": "Cursiva",
"link": "Enllaç",
"ordered_list": "Llista numerada",
"remove_color": "Elimina el color",
"strikethrough": "Ratllat",
"text_color": "Color del text",
"underline": "Subratllat"
},
"use_global_default": "Utilitza el valor global per defecte",
"your_signatures": "Les vostres signatures ({count})"
}
}