Internacionalização e Traduções
A TrucklineMP usa um sistema de internacionalização (i18n) unificado, construído sobre o Next-Intl, para gerir o encaminhamento multilíngue, os catálogos de tradução e as contribuições de tradução.
Catálogos de Tradução
Seção intitulada “Catálogos de Tradução”Todas as strings traduzíveis na aplicação Web são definidas em ficheiros de mensagens JSON organizados por idioma (locale) em messages/:
messages/├── en/ # Inglês (Catálogo de Origem)│ ├── common.json│ ├── account.json│ └── ...├── pl/ # Polski (Polaco)│ ├── common.json│ └── ...└── de/ # Deutsch (Alemão) ├── common.json └── ...Formatação de Mensagens
Seção intitulada “Formatação de Mensagens”As chaves de mensagens suportam funcionalidades de tradução ICU padrão, como interpolação e plurais:
{ "welcome": "Welcome back, {username}!", "memberCount": "{count, plural, =0 {No members} =1 {1 member} other {# members}}"}Espaços de Trabalho de Tradução
Seção intitulada “Espaços de Trabalho de Tradução”A TrucklineMP disponibiliza espaços de trabalho integrados para gerir e rever traduções:
- Espaço de Trabalho do Utilizador (
/translations): Permite que membros da comunidade submetam contribuições de tradução para chaves incompletas nos idiomas que escolherem. - Espaço de Trabalho de Revisão (
/translations/[locale]/review): Uma interface de fluxo de trabalho para os moderadores de tradução inspecionarem, aprovarem ou rejeitarem submissões de tradução.
A equipa da plataforma gere a configuração de idiomas e a implementação de traduções através de ferramentas exclusivas da equipa.
Conteúdo Oficial
Seção intitulada “Conteúdo Oficial”Conteúdo ao nível do sistema, como definições de distintivos, opções dinâmicas de listas pendentes ou regras oficiais da plataforma, é registado em:
Os programadores devem usar as funções auxiliares neste módulo para registar strings do sistema e garantir que são processadas e catalogadas pelo runtime de tradução.
Ferramentas CLI de Tradução
Seção intitulada “Ferramentas CLI de Tradução”Estão disponíveis vários scripts de CLI para sincronizar, validar e verificar os catálogos de tradução durante o desenvolvimento.
Sincronizar Catálogos
Seção intitulada “Sincronizar Catálogos”Sincroniza todos os catálogos de idiomas de destino (messages/pl/*.json, messages/de/*.json, etc.) com a estrutura do catálogo de origem em inglês, adicionando as chaves em falta e removendo as chaves descontinuadas:
npm run i18n:syncVerificar Catálogos
Seção intitulada “Verificar Catálogos”Valida que todos os ficheiros JSON dos catálogos estão bem formados e têm sintaxe válida:
npm run i18n:checkVerificar Marcadores de Formatação
Seção intitulada “Verificar Marcadores de Formatação”Verifica se as variáveis de formatação ICU (por exemplo, {username}) correspondem exatamente entre o ficheiro de origem em inglês e todos os ficheiros traduzidos:
npm run i18n:layoutCobertura de Avaliação
Seção intitulada “Cobertura de Avaliação”Calcula as métricas de percentagem de cobertura de tradução em todos os idiomas configurados:
npm run i18n:coverageSuite de Verificação
Seção intitulada “Suite de Verificação”Executa as verificações de validação completas (Check, Cobertura Estrita, verificações de Layout e testes unitários em src/i18n/__tests__/ para prevenir ataques de segurança e de injeção cross-site scripting (XSS) através de traduções). Esta suite é executada pelo pipeline de CI antes de fazer merge de qualquer pull request:
npm run i18n:verify