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": "Copiado!",
"copy_failed": "Falha ao copiar"
},
"send_now": "Enviar agora"
"send_now": "Enviar agora",
"create_appointment": "Criar evento"
},
"email_composer": {
"read_receipt_on": "Confirmação de leitura solicitada (clique para desativar)",
@@ -712,7 +713,10 @@
"delete_table": "Excluir tabela",
"pick_size": "Escolher tamanho"
},
"send_filing_warning": "Enviado - mas a limpeza posterior falhou, um rascunho antigo pode permanecer."
"send_filing_warning": "Enviado - mas a limpeza posterior falhou, um rascunho antigo pode permanecer.",
"insert_signature": "Inserir assinatura",
"no_signature": "Sem assinatura",
"select_signature": "Selecionar assinatura"
},
"confirm_dialog": {
"confirm": "Confirmar",
@@ -888,7 +892,10 @@
"downloads": "Downloads",
"content_senders": "Conteúdo e remetentes",
"about_data": "Sobre e dados",
"debug": "Depuração"
"debug": "Depuração",
"import": "Importar",
"sharing": "Compartilhamento",
"signatures": "Assinaturas"
},
"tab_groups": {
"general": "Geral",
@@ -2007,7 +2014,39 @@
"scoped": {
"back": "Voltar para minha conta",
"managing": "Gerenciando: {name}"
}
},
"importer": {
"action_label": "Importar",
"cancel": "Cancelar",
"choose_files": "Escolher arquivos",
"conflict_copy": "Manter ambos",
"conflict_description": "Escolha o que fazer quando uma mensagem importada já existir.",
"conflict_label": "Tratamento de duplicados",
"conflict_replace": "Substituir duplicados",
"conflict_skip": "Ignorar duplicados",
"description": "Importe mensagens de e-mail de arquivos .eml para uma pasta.",
"error_details": "{count, plural, one {# erro} other {# erros}}",
"fail": "Falha na importação",
"file_description": "Selecione um ou mais arquivos .eml para importar.",
"file_label": "Arquivos",
"files_selected": "{count, plural, one {# arquivo selecionado} other {# arquivos selecionados}}",
"folder_description": "Escolha a pasta para a qual importar as mensagens.",
"folder_label": "Pasta de destino",
"import_complete": "Importação concluída",
"import_more": "Importar mais",
"importing": "Importando...",
"progress_failed": "{count} com falha",
"progress_imported": "{count} importados",
"progress_skipped": "{count} ignorados",
"start_import": "{count, plural, one {Importar # arquivo} other {Importar # arquivos}}",
"success": "{count, plural, one {# mensagem importada} other {# mensagens importadas}}",
"summary_failed": "{count, plural, one {# mensagem falhou} other {# mensagens falharam}}",
"summary_imported": "{count, plural, one {# mensagem importada} other {# mensagens importadas}}",
"summary_skipped": "{count, plural, one {# mensagem ignorada} other {# mensagens ignoradas}}",
"title": "Importar E-mail"
},
"loading": "Carregando...",
"refresh": "Atualizar"
},
"errors": {
"page_error_title": "Algo deu errado",
@@ -2085,7 +2124,8 @@
"toast_error_delete_has_email": "A pasta não está vazia. Esvazie-a primeiro.",
"placeholder_folder_name": "Nome da pasta",
"create": "Criar",
"rename_confirm": "Renomear"
"rename_confirm": "Renomear",
"share_folder": "Compartilhar pasta..."
},
"shortcuts": {
"title": "Atalhos de Teclado",
@@ -2184,7 +2224,11 @@
"save": "Salvar Identidade",
"cancel": "Cancelar",
"creating": "Criando...",
"updating": "Atualizando..."
"updating": "Atualizando...",
"signature_store_default": "Assinatura padrão",
"signature_store_mapping": "Mapeamento de assinatura",
"signature_store_reply": "Assinatura de resposta",
"use_global_default": "Usar padrão global"
},
"sub_address": {
"button_tooltip": "Usar sub-endereço",
@@ -2510,7 +2554,29 @@
"success": "{count, plural, one {1 contato importado} other {# contatos importados}}",
"failed": "Falha na importação",
"close": "Fechar",
"file_too_large": "Arquivo muito grande (máx. 5 MB)"
"file_too_large": "Arquivo muito grande (máx. 5 MB)",
"csv_address": "Endereço",
"csv_address_book": "Catálogo de endereços",
"csv_back": "Voltar",
"csv_city": "Cidade",
"csv_company": "Empresa",
"csv_country": "País",
"csv_email": "E-mail",
"csv_first_name": "Nome",
"csv_ignore": "Ignorar esta coluna",
"csv_job_title": "Cargo",
"csv_last_name": "Sobrenome",
"csv_load_all": "Carregar tudo",
"csv_map_columns": "Mapear colunas",
"csv_nickname": "Apelido",
"csv_note": "Nota",
"csv_phone": "Telefone",
"csv_postcode": "Código postal",
"csv_preview": "Pré-visualização",
"csv_preview_title": "Pré-visualização ({count, plural, one {# linha} other {# linhas}})",
"csv_region": "Estado/Região",
"csv_website": "Site",
"file_types_csv": "Arquivos .csv"
},
"export": {
"title": "Exportar contatos",
@@ -2569,7 +2635,10 @@
"has_phone": "Com telefone",
"has_photo": "Com foto"
},
"open_categories": "Abrir categorias"
"open_categories": "Abrir categorias",
"delete": "Excluir",
"edit": "Editar",
"send_email": "Enviar e-mail"
},
"calendar": {
"title": "Calendário",
@@ -2988,7 +3057,37 @@
"due_tomorrow": "Vence amanhã",
"overdue": "Atrasada"
},
"nav_open_menu": "Abrir menu"
"nav_open_menu": "Abrir menu",
"delete": "Excluir",
"duplicate": "Duplicar",
"edit": "Editar",
"freeBusy": {
"busy": "Ocupado",
"check": "Verificar disponibilidade",
"click_to_select": "Clique em um horário livre para selecionar este horário",
"free": "Livre",
"hide": "Ocultar disponibilidade",
"loading": "Carregando...",
"no_participants": "Adicione participantes para verificar a disponibilidade.",
"tentative": "Provisório",
"timezone": "Fuso horário",
"title": "Disponibilidade",
"unavailable": "Fora do escritório",
"unknown": "Sem informação"
},
"resources": {
"clear_all": "Limpar tudo",
"filter_all": "Todos",
"hide": "Ocultar recursos",
"no_resources": "Nenhum recurso disponível",
"remove": "Remover {name}",
"search_placeholder": "Pesquisar recursos...",
"title": "Recursos",
"type_equipment": "Equipamento",
"type_other": "Outro",
"type_room": "Salas",
"type_vehicle": "Veículos"
}
},
"advanced_search": {
"title": "Pesquisa avançada",
@@ -3153,7 +3252,8 @@
"open_folder_tree": "Abrir árvore de pastas",
"other_accounts": "Outras contas",
"migration_title": "Atualizando seus arquivos…",
"migration_description": "Organizando pastas e arquivos em sua estrutura adequada. Isso acontece apenas uma vez."
"migration_description": "Organizando pastas e arquivos em sua estrutura adequada. Isso acontece apenas uma vez.",
"send_as_attachment": "Enviar como anexo"
},
"smime": {
"your_certificates": "Seus certificados",
@@ -3308,7 +3408,14 @@
"readWrite": "Leitura e escrita",
"manager": "Gerente",
"custom": "Personalizado"
}
},
"accept": "Aceitar",
"decline": "Recusar",
"no_shares_by_me": "Você ainda não compartilhou nada.",
"no_shares_with_me": "Nenhuma pasta foi compartilhada com você ainda.",
"shared_by": "Compartilhado por",
"tab_shared_by_me": "Compartilhado por mim",
"tab_shared_with_me": "Compartilhado comigo"
},
"quote_header": {
"reply_line": "Em {date}, {from} escreveu:",
@@ -3324,5 +3431,55 @@
"install": "Instalar",
"dont_remind": "Não lembrar novamente",
"dismiss_aria": "Dispensar aviso de instalação"
},
"signatures": {
"add_signature": "Adicionar assinatura",
"default": "Padrão",
"default_signature": {
"description": "Usada em novas mensagens, a menos que seja substituída por identidade.",
"label": "Assinatura padrão"
},
"delete_message": "Tem certeza de que deseja excluir \"{name}\"? Esta ação não pode ser desfeita.",
"delete_title": "Excluir assinatura?",
"description": "Crie e gerencie assinaturas de e-mail para usar ao redigir ou responder.",
"duplicate": "Duplicar",
"edit_signature": "Editar assinatura",
"editor_label": "Assinatura",
"html_preview_label": "Pré-visualização HTML",
"name_label": "Nome",
"name_placeholder": "ex. Trabalho, Pessoal",
"name_required": "Nome é obrigatório",
"new_signature": "Nova assinatura",
"no_signature": "Sem assinatura",
"no_signatures": "Ainda não há assinaturas",
"per_identity_signatures": {
"description": "Substitua a assinatura padrão e a de resposta para identidades específicas.",
"label": "Assinaturas por identidade"
},
"plain_text_preview_label": "Pré-visualização em texto simples",
"reply": "Resposta",
"reply_signature": {
"description": "Usada ao responder ou encaminhar, a menos que seja substituída por identidade.",
"label": "Assinatura de resposta"
},
"show_editor": "Mostrar editor",
"show_preview": "Mostrar pré-visualização",
"title": "Assinaturas",
"toolbar": {
"align_center": "Centralizar",
"align_left": "Alinhar à esquerda",
"align_right": "Alinhar à direita",
"bold": "Negrito",
"bullet_list": "Lista com marcadores",
"italic": "Itálico",
"link": "Link",
"ordered_list": "Lista numerada",
"remove_color": "Remover cor",
"strikethrough": "Tachado",
"text_color": "Cor do texto",
"underline": "Sublinhado"
},
"use_global_default": "Usar padrão global",
"your_signatures": "Suas assinaturas ({count})"
}
}