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
+168 -11
View File
@@ -567,7 +567,8 @@
"copied": "Copiato!",
"copy_failed": "Copia non riuscita"
},
"send_now": "Invia ora"
"send_now": "Invia ora",
"create_appointment": "Crea appuntamento"
},
"email_composer": {
"read_receipt_on": "Conferma di lettura richiesta (clicca per disattivare)",
@@ -712,7 +713,10 @@
"delete_table": "Elimina tabella",
"pick_size": "Scegli dimensione"
},
"send_filing_warning": "Inviato - ma la pulizia successiva non è riuscita, potrebbe restare una bozza obsoleta."
"send_filing_warning": "Inviato - ma la pulizia successiva non è riuscita, potrebbe restare una bozza obsoleta.",
"insert_signature": "Inserisci firma",
"no_signature": "Nessuna firma",
"select_signature": "Seleziona firma"
},
"confirm_dialog": {
"confirm": "Conferma",
@@ -888,7 +892,10 @@
"downloads": "Download",
"content_senders": "Contenuto e mittenti",
"about_data": "Informazioni e dati",
"debug": "Debug"
"debug": "Debug",
"import": "Importa",
"sharing": "Condivisione",
"signatures": "Firme"
},
"tab_groups": {
"general": "Generale",
@@ -2007,7 +2014,39 @@
"scoped": {
"back": "Torna al mio account",
"managing": "Gestione: {name}"
}
},
"importer": {
"action_label": "Importa",
"cancel": "Annulla",
"choose_files": "Scegli file",
"conflict_copy": "Mantieni entrambi",
"conflict_description": "Scegli cosa fare quando un messaggio importato esiste già.",
"conflict_label": "Gestione dei duplicati",
"conflict_replace": "Sostituisci i duplicati",
"conflict_skip": "Salta i duplicati",
"description": "Importa messaggi email da file .eml in una cartella.",
"error_details": "{count, plural, one {# errore} other {# errori}}",
"fail": "Importazione non riuscita",
"file_description": "Seleziona uno o più file .eml da importare.",
"file_label": "File",
"files_selected": "{count, plural, one {# file selezionato} other {# file selezionati}}",
"folder_description": "Scegli la cartella in cui importare i messaggi.",
"folder_label": "Cartella di destinazione",
"import_complete": "Importazione completata",
"import_more": "Importa altro",
"importing": "Importazione in corso...",
"progress_failed": "{count} non riusciti",
"progress_imported": "{count} importati",
"progress_skipped": "{count} saltati",
"start_import": "{count, plural, one {Importa # file} other {Importa # file}}",
"success": "{count, plural, one {# messaggio importato} other {# messaggi importati}}",
"summary_failed": "{count, plural, one {# messaggio non riuscito} other {# messaggi non riusciti}}",
"summary_imported": "{count, plural, one {# messaggio importato} other {# messaggi importati}}",
"summary_skipped": "{count, plural, one {# messaggio saltato} other {# messaggi saltati}}",
"title": "Importa posta"
},
"loading": "Caricamento...",
"refresh": "Aggiorna"
},
"errors": {
"page_error_title": "Qualcosa è andato storto",
@@ -2085,7 +2124,8 @@
"toast_error_delete_has_email": "La cartella non è vuota. Svuotarla prima.",
"placeholder_folder_name": "Nome cartella",
"create": "Crea",
"rename_confirm": "Rinomina"
"rename_confirm": "Rinomina",
"share_folder": "Condividi cartella..."
},
"shortcuts": {
"title": "Scorciatoie da tastiera",
@@ -2184,7 +2224,11 @@
"save": "Salva identità",
"cancel": "Annulla",
"creating": "Creazione...",
"updating": "Aggiornamento..."
"updating": "Aggiornamento...",
"signature_store_default": "Firma predefinita",
"signature_store_mapping": "Mappatura firma",
"signature_store_reply": "Firma di risposta",
"use_global_default": "Usa predefinito globale"
},
"sub_address": {
"button_tooltip": "Usa sotto-indirizzo",
@@ -2510,7 +2554,29 @@
"success": "{count, plural, one {1 contatto importato} other {# contatti importati}}",
"failed": "Importazione fallita",
"close": "Chiudi",
"file_too_large": "Il file è troppo grande (max 5 MB)"
"file_too_large": "Il file è troppo grande (max 5 MB)",
"csv_address": "Indirizzo",
"csv_address_book": "Rubrica",
"csv_back": "Indietro",
"csv_city": "Città",
"csv_company": "Azienda",
"csv_country": "Paese",
"csv_email": "Email",
"csv_first_name": "Nome",
"csv_ignore": "Ignora questa colonna",
"csv_job_title": "Titolo professionale",
"csv_last_name": "Cognome",
"csv_load_all": "Carica tutto",
"csv_map_columns": "Mappa colonne",
"csv_nickname": "Soprannome",
"csv_note": "Nota",
"csv_phone": "Telefono",
"csv_postcode": "Codice postale",
"csv_preview": "Anteprima",
"csv_preview_title": "Anteprima ({count, plural, one {# riga} other {# righe}})",
"csv_region": "Stato / Regione",
"csv_website": "Sito web",
"file_types_csv": "File .csv"
},
"export": {
"title": "Esporta contatti",
@@ -2569,7 +2635,10 @@
"has_phone": "Con telefono",
"has_photo": "Con foto"
},
"open_categories": "Apri categorie"
"open_categories": "Apri categorie",
"delete": "Elimina",
"edit": "Modifica",
"send_email": "Invia email"
},
"calendar": {
"title": "Calendario",
@@ -2988,7 +3057,37 @@
"bah": "Bahman",
"esf": "Esfand"
},
"nav_open_menu": "Apri menu"
"nav_open_menu": "Apri menu",
"delete": "Elimina",
"duplicate": "Duplica",
"edit": "Modifica",
"freeBusy": {
"busy": "Occupato",
"check": "Verifica disponibilità",
"click_to_select": "Fai clic su uno slot libero per selezionare questo orario",
"free": "Libero",
"hide": "Nascondi disponibilità",
"loading": "Caricamento...",
"no_participants": "Aggiungi partecipanti per verificare la disponibilità.",
"tentative": "Provvisorio",
"timezone": "Fuso orario",
"title": "Disponibilità",
"unavailable": "Fuori ufficio",
"unknown": "Nessuna informazione"
},
"resources": {
"clear_all": "Cancella tutto",
"filter_all": "Tutte",
"hide": "Nascondi risorse",
"no_resources": "Nessuna risorsa disponibile",
"remove": "Rimuovi {name}",
"search_placeholder": "Cerca risorse...",
"title": "Risorse",
"type_equipment": "Attrezzature",
"type_other": "Altro",
"type_room": "Sale",
"type_vehicle": "Veicoli"
}
},
"advanced_search": {
"title": "Ricerca avanzata",
@@ -3153,7 +3252,8 @@
"open_folder_tree": "Apri albero cartelle",
"other_accounts": "Altri account",
"migration_title": "Aggiornamento dei tuoi file…",
"migration_description": "Organizzazione di cartelle e file nella loro struttura corretta. Questo avviene solo una volta."
"migration_description": "Organizzazione di cartelle e file nella loro struttura corretta. Questo avviene solo una volta.",
"send_as_attachment": "Invia come allegato"
},
"smime": {
"your_certificates": "I tuoi certificati",
@@ -3308,7 +3408,14 @@
"readWrite": "Lettura e scrittura",
"manager": "Gestore",
"custom": "Personalizzato"
}
},
"accept": "Accetta",
"decline": "Rifiuta",
"no_shares_by_me": "Non hai ancora condiviso nulla.",
"no_shares_with_me": "Nessuna cartella condivisa con te per ora.",
"shared_by": "Condiviso da",
"tab_shared_by_me": "Condivisi da me",
"tab_shared_with_me": "Condivisi con me"
},
"quote_header": {
"reply_line": "Il {date}, {from} ha scritto:",
@@ -3324,5 +3431,55 @@
"install": "Installa",
"dont_remind": "Non ricordarmelo più",
"dismiss_aria": "Chiudi avviso di installazione"
},
"signatures": {
"add_signature": "Aggiungi firma",
"default": "Predefinita",
"default_signature": {
"description": "Utilizzata per i nuovi messaggi salvo diversa impostazione per identità.",
"label": "Firma predefinita"
},
"delete_message": "Sei sicuro di voler eliminare \"{name}\"? Questa azione non può essere annullata.",
"delete_title": "Eliminare la firma?",
"description": "Crea e gestisci le firme email da usare quando componi o rispondi.",
"duplicate": "Duplica",
"edit_signature": "Modifica firma",
"editor_label": "Firma",
"html_preview_label": "Anteprima HTML",
"name_label": "Nome",
"name_placeholder": "es. Lavoro, Personale",
"name_required": "Il nome è obbligatorio",
"new_signature": "Nuova firma",
"no_signature": "Nessuna firma",
"no_signatures": "Nessuna firma ancora",
"per_identity_signatures": {
"description": "Sovrascrivi la firma predefinita e di risposta per le singole identità.",
"label": "Firme per identità"
},
"plain_text_preview_label": "Anteprima testo semplice",
"reply": "Di risposta",
"reply_signature": {
"description": "Utilizzata quando rispondi o inoltri, salvo diversa impostazione per identità.",
"label": "Firma di risposta"
},
"show_editor": "Mostra editor",
"show_preview": "Mostra anteprima",
"title": "Firme",
"toolbar": {
"align_center": "Centra",
"align_left": "Allinea a sinistra",
"align_right": "Allinea a destra",
"bold": "Grassetto",
"bullet_list": "Elenco puntato",
"italic": "Corsivo",
"link": "Link",
"ordered_list": "Elenco numerato",
"remove_color": "Rimuovi colore",
"strikethrough": "Barrato",
"text_color": "Colore del testo",
"underline": "Sottolineato"
},
"use_global_default": "Usa predefinito globale",
"your_signatures": "Le tue firme ({count})"
}
}