Verificador de Localizable.strings
Solte dois ou mais arquivos .strings e veja o que falta, o que está duplicado, o que nunca foi de fato traduzido e quais linhas o parser não consegue ler. Nada é enviado — costumam ser arquivos de produção, e eles ficam nesta página.
A regra do valor duplicado
Duas chaves com o mesmo valor em inglês são o bug que sempre volta. Quem traduz vê a mesma frase duas vezes, traduz duas vezes e chega a dois resultados diferentes — ou pior: um idioma que precisa de palavras diferentes para os dois contextos recebe a mesma para ambos e ninguém percebe até um falante nativo reclamar. A verificação ignora maiúsculas e pontuação final, porque “Done” e “Done.” são o mesmo problema com outra roupa.
Idêntico não é o mesmo que sem tradução
Um valor igual ao do arquivo base geralmente quer dizer que ninguém chegou a traduzir aquela string. Às vezes está certo: um nome de marca, uma unidade, uma abreviação que fica igual em todo idioma. A ferramenta marca esses casos e deixa o julgamento com você, porque a alternativa é deixar passar lacunas de verdade ou encher a paciência a cada OK.
Linhas com erro são informadas, não ignoradas em silêncio
A gramática do .strings é pequena, mas seus casos limite são reais: comentários de bloco, aspas escapadas dentro dos valores, um ponto e vírgula que falta, uma aspa tipográfica colada de uma planilha. Um parser que pula em silêncio o que não consegue ler vai dizer que o arquivo está em ordem enquanto uma chave sumiu caladinha. Por isso toda linha que não faz parse é listada com o número dela, para você ir conferir.
UTF-16 também
O Xcode escreve arquivos .strings em UTF-16 há anos, e muitos repositórios ainda os contêm. Por isso cada arquivo é inspecionado em busca de uma marca de ordem de bytes e decodificado de acordo, para que um arquivo UTF-16 não chegue como um muro de bytes nulos e cem erros de parse.
Perguntas frequentes
Funciona com .xcstrings?
Ainda não. O catálogo de strings é JSON com outro formato, e merece um tratamento próprio em vez de uma camada de conversão que só funciona pela metade.
Qual arquivo deve ser a base?
Aquele que for a referência — em geral o idioma de desenvolvimento. Tudo é comparado com ele, então uma chave que falta na base mas existe em outro arquivo é apontada como sobrando, não como faltando.
O que conta como problema?
Uma chave que falta, um valor duplicado, um valor idêntico ao da base ou uma linha que o parser não consegue ler. A contagem soma tudo isso em todos os arquivos.
Meus arquivos são enviados?
Não. Eles são lidos com o leitor de arquivos do navegador e comparados aqui. Isso importa mais nesta ferramenta que nas outras, porque são arquivos de produto de verdade.
Feito pela equipe da GO AI, que vivia esbarrando nisto. Todas as ferramentas gratuitas