O que o verificador procura
- Chaves ausentes: estão no template, mas faltam em um idioma. O app compila, mas seus usuários veem o texto do idioma do template em vez do deles.
- Chaves a mais: estão em uma tradução, mas não existem mais no template, muitas vezes restos de um recurso removido.
- Valores vazios: a chave existe, mas a tradução está em branco, algo que uma simples verificação de chaves deixa passar.
- Placeholders divergentes:
{name} virou {nom}, ou sumiu. Os placeholders dentro de plurais e selects ICU também são lidos.
As chaves que começam com @ (metadados e @@locale) são ignoradas. O arquivo de referência é o definido por template-arb-file no l10n.yaml, normalmente app_en.arb: a ferramenta tenta identificá-lo e você pode escolher outro.
Como encontrar chaves ausentes em um app Flutter
- Reúna os arquivos da sua pasta
arb-dir (lib/l10n por padrão).
- Solte todos de uma vez, incluindo o template.
- Abra cada idioma para ver os problemas e copie as chaves ausentes em formato ARB: elas reaproveitam o texto do template, prontas para traduzir.
Para uma verificação automática a cada build, a opção untranslated-messages-file do flutter gen-l10n e um pequeno script de CI são explicados no guia para encontrar chaves ausentes em arquivos ARB. Os erros de placeholders ICU estão no guia sobre plurais e placeholders.
Limitações do verificador
A ferramenta compara chaves e nomes de placeholders: não valida a sintaxe ICU completa (isso é trabalho do flutter gen-l10n), não avalia a qualidade da tradução e nunca altera seus arquivos. Para importar um projeto inteiro, traduzir e exportar com backup, você precisa de um editor de localização como o LocalePilot.