Ir para o conteúdo

diferença de chave i18n

Compare dois arquivos JSON de localização e liste as chaves de tradução que faltam em cada um.

Entrada
JSON B (arquivo traduzido)
Saída

diferença de chave i18n

Cole seu arquivo de localização base como JSON A e o arquivo traduzido como JSON B, e esta ferramenta nivela ambos para caminhos-chave de notação de ponto - "nav.home", "errors.notFound" - e relata exatamente onde eles divergem. Ele foi criado para o momento em que um arquivo de tradução fica para trás em relação à fonte: uma nova tela envia um punhado de strings, alguém edita a cópia em inglês diretamente ou um local foi traduzido automaticamente meses atrás e nunca mais revisado.

Escolha o que relatar: chaves ausentes em B (adicionadas à fonte, mas nunca traduzidas), chaves ausentes em A (strings restantes, um recurso removido, deixado para trás) ou ambos ao mesmo tempo. Um quarto modo, "não traduzido", lista as chaves que existem em ambos os arquivos com valores idênticos em bytes - um sinal forte de que uma string foi copiada em vez de traduzida, já que uma tradução real só corresponde à fonte por coincidência.

A saída vem como uma lista simples, um caminho por linha, ou como JSON, pronta para alimentar um script ou uma verificação de CI que falha na construção quando as traduções oscilam. A contagem acima da saída sempre mostra a imagem completa, independentemente de qual modo de relatório está selecionado – quantas chaves estão em A, quantas estão em B e quantas estão faltando em cada lado – para que você possa perceber o desvio rapidamente antes de ler os detalhes. JSON inválido em qualquer arquivo é relatado pelo nome, citando a própria mensagem do analisador, para que você saiba imediatamente qual arquivo corrigir.

Tudo é executado localmente no seu navegador: ambos os arquivos são analisados e comparados no seu dispositivo e nunca carregados em qualquer lugar, o que é importante, já que os arquivos de localização geralmente carregam nomes de recursos não lançados e terminologia interna antes do lançamento. Use-o para revisar a solicitação pull de um tradutor, auditar uma localidade antes de um lançamento ou encontrar cada string que um refatorador descartou silenciosamente.

FAQ

O que conta como “chave” para comparação?
Cada valor folha no JSON, endereçado por seu caminho de ponto completo - um objeto aninhado como {"nav":{"home":"Home"}} produz a chave "nav.home". As matrizes são comparadas como valores inteiros, não divididas em chaves indexadas.
O que o modo "não traduzido" realmente detecta?
Chaves que existem em ambos os arquivos com valor idêntico. Ele sinaliza strings provavelmente não traduzidas, mas um valor curto que é legitimamente o mesmo em ambos os idiomas (um nome de marca, um número) também aparecerá - trate-o como um lead a ser verificado, não como um erro garantido.
O que acontece se uma chave contém um objeto em um arquivo e uma string simples no outro?
Cada lado é achatado de forma independente, de modo que a incompatibilidade surge naturalmente: as próprias chaves aninhadas do objeto aparecem como ausentes no lado da string e a chave da string aparece como ausente no lado do objeto.
Existe um limite para o tamanho do arquivo?
Não há limite fixo além do limite de saída de 10 MB que a maioria das ferramentas compartilha. O processamento é executado no seu dispositivo, portanto, mesmo catálogos grandes com milhares de chaves são comparados em milissegundos.
Meus arquivos de localização são carregados em algum lugar?
Não. Tanto o JSON A quanto o JSON B são analisados e comparados inteiramente no seu navegador — nenhum dos arquivos sai do seu dispositivo.