Os formatos de arquivo que realmente quebram em produção
A localização de software parece simples até você colocá-la no ar. Uma equipe escreve en.json e supõe que espanhol, alemão e árabe seguirão o mesmo caminho. Mas não seguirão. Cada formato de arquivo tem uma peculiaridade que quebra o build de uma agência despreparada. Após 14 anos e vários milhares de lançamentos SaaS, temos uma lista curta dos casos que pegam até equipes de engenharia maduras.
JSON, YAML e o problema do apóstrofo
JSON puro não tem comentários e não tem suporte a plurais — funciona bem para inglês, mas é frágil em produção quando tradutores adicionam apóstrofos curvos (' vs '), espaços não separáveis estreitos em torno da pontuação francesa, ou aspas alemãs (», «). Um tradutor francês que escreve o correto L'application com um apóstrofo tipográfico passará no QA linguístico e quebrará um parser JSON frágil. Normalizamos apóstrofos na importação, validamos a presença de UTF-8 BOM e executamos uma passagem de sintaxe antes de qualquer locale ser enviado.
Android strings.xml: o escape silencioso
O Android armazena apóstrofos como \' e ampersands como &. Tradutores rotineiramente colam caracteres curvos do Microsoft Word que parecem idênticos e enviam — até que o layout renderize mojibake em tempo de execução. Usamos um round-trip XLIFF personalizado para assets Android, para que o tradutor nunca veja o XML bruto, e re-escapamos na exportação.
iOS .strings e .stringsdict
O problema clássico são as regras de plural. O iOS usa as categorias plurais CLDR (zero, one, two, few, many, other) através do .stringsdict. Um tradutor ingênuo tratará o arquivo como um-para-um e perderá variantes plurais — seu app em alemão então dirá "1 Nachrichten". Usamos um editor com reconhecimento de plurais que expõe cada categoria CLDR conforme necessário para o locale de destino e recusa a exportação se alguma categoria estiver faltando.
.NET .resx e Java .properties
O .resx aceita comentários XML e referências de código incorporadas; .properties usa ISO-8859-1 por padrão (toolchains modernos suportam UTF-8, mas a combinação errada ainda envia escapes \uXXXX que frustram os tradutores). Forçamos UTF-8 na importação e emitimos escapes nativos apenas no momento do build.
O round trip XLIFF
Sempre que possível, extraímos arquivos de origem para XLIFF 1.2 ou 2.0, traduzimos dentro do nosso editor com contexto anexado e re-mesclamos. Isso permite que os tradutores vejam o comentário de origem, a captura de tela e a restrição (limite de caracteres, forma plural ICU, flag de espelhamento RTL) sem nunca tocar no arquivo de origem. O pipeline de build mescla de volta ao formato que seus desenvolvedores commitaram.