Pular para o conteúdo

Tradutor JSON que Preserva a Estrutura | Ferramenta i18n Gratuita

Tradutor JSON gratuito que mantém sua estrutura intacta. Traduza arquivos i18n, respostas de API e JSON aninhados, preservando chaves, tipos de dados e formatação. Perfeito para aplicativos i18next e multilíngues.

Tradutor de Estrutura JSON

Esta ferramenta traduz o conteúdo de objetos JSON preservando sua estrutura. Cole seu JSON no painel esquerdo, selecione um idioma de destino e veja a saída traduzida no painel direito.

A saída traduzida aparecerá aqui...

Como Usar

  1. Cole seu objeto JSON no campo JSON de Origem.
  2. Selecione seu idioma de destino no menu suspenso.
  3. O JSON traduzido aparecerá automaticamente no painel direito.
  4. Clique no botão Copiar para copiar o JSON traduzido para a área de transferência.
Calculadora de carregamento...
📚

Documentação

O que é um tradutor que preserva a estrutura do JSON?

Um tradutor que preserva a estrutura do JSON é uma ferramenta que percorre um documento JSON e altera apenas os valores de texto dentro dele. As chaves dos objetos, os números, os valores true/false e null permanecem exatamente como estavam. Somente as strings são alteradas.

Esta versão da ferramenta não envia nenhum texto para um serviço de tradução. Ela é executada inteiramente no navegador. Para cada string encontrada, adiciona o código do idioma de destino entre colchetes antes do texto original, por exemplo, [es] Hello. Isso permite que um desenvolvedor visualize exatamente quais partes de um arquivo JSON seriam traduzidas e confirme que a estrutura permanece intacta durante o processo, antes de conectar um serviço de tradução real.

Como funciona

A ferramenta aplica uma regra, repetida em todos os níveis da árvore JSON:

  • Se um valor for uma string, adicione o código do idioma de destino entre colchetes antes dele: text torna-se [code] text. Uma string vazia permanece como "".
  • Se um valor for um número, true, false ou null, deixe-o inalterado.
  • Se um valor for um array, aplique esta regra a cada item, na mesma ordem.
  • Se um valor for um objeto, aplique esta regra a cada valor e mantenha todas as chaves inalteradas.

O documento inteiro não precisa ser um objeto. Um texto JSON pode ser qualquer valor único; portanto, um array, uma string, um número, true, false ou null isolado também é aceito e processado pela mesma regra.

A ferramenta verifica primeiro se o JSON de entrada tem sintaxe válida. Se o JSON não puder ser analisado, ela para e exibe um erro em vez de tentar adivinhar.

Como usar a ferramenta

  1. Cole o JSON no campo "JSON de origem", à esquerda. Um objeto, um array ou um valor único funcionam.
  2. Escolha um idioma de destino no menu suspenso. Nove idiomas estão disponíveis: espanhol, francês, alemão, italiano, português, chinês, japonês, coreano e russo.
  3. O painel à direita é atualizado automaticamente. Não é necessário clicar em nenhum botão.
  4. Clique em "Copiar" para copiar o resultado para a área de transferência.
  5. Clique em "Limpar tudo" para redefinir os dois painéis e começar novamente.

Exemplo resolvido

JSON de entrada:

1{
2  "app": {
3    "title": "My Store",
4    "version": 2,
5    "isBeta": false,
6    "tags": ["sale", "new"]
7  }
8}
9

Com o espanhol (es) selecionado como idioma de destino, a ferramenta produz:

1{
2  "app": {
3    "title": "[es] My Store",
4    "version": 2,
5    "isBeta": false,
6    "tags": [
7      "[es] sale",
8      "[es] new"
9    ]
10  }
11}
12

Observe que "title" e "tags" permanecem como chaves, 2 e false permanecem inalterados, e somente os valores de string recebem a etiqueta [es]. O aninhamento e a ordem dos arrays são idênticos aos da entrada.

O que muda e o que permanece igual

Elemento JSONResultado
Valor de stringRecebe o prefixo [language code]
NúmeroInalterado
true / falseInalterado
nullInalterado
Chave de objetoSempre inalterada, inclusive uma chave chamada literalmente __proto__
Ordem do arraySempre inalterada
String vazia ""Inalterado

Isso é especialmente importante para arquivos cuja estrutura transmite significado, como um arquivo de internacionalização (i18n) usado por um aplicativo web ou uma resposta de API que o código cliente lê pelo nome da chave. Se uma chave como "welcomeMessage" mudasse durante a tradução, o código que procura welcomeMessage deixaria de funcionar. Esta ferramenta nunca altera as chaves, portanto esse risco não se aplica aqui.

Erros comuns

"Formato de JSON inválido. Verifique sua entrada." Essa mensagem aparece quando o texto colado não é um JSON válido. As causas comuns são uma vírgula ausente entre as entradas, uma vírgula após o último item, aspas simples em vez de aspas duplas ou um caractere especial não escapado dentro de uma string. Executar a entrada primeiro em um validador de JSON pode ajudar a encontrar o ponto exato.

"Falha na tradução. Tente novamente." Esta é a mensagem alternativa para uma falha que não seja um erro de sintaxe. Isso é raro. A causa mais provável é uma entrada tão grande que o resultado formatado ultrapassaria o limite do navegador para o comprimento de um único trecho de texto. Dividir um arquivo muito grande em partes menores evita esse problema.

Deixar o campo de entrada vazio exibe uma mensagem de espaço reservado e não é tratado como erro. Colar o valor único null também não é um erro: null é um JSON válido, e a ferramenta retorna null.

Por que a preservação da estrutura é importante

Arquivos JSON que armazenam traduções de aplicativos, como en.json e fr.json, geralmente precisam ter chaves idênticas para que o código ao redor possa procurar o mesmo caminho em qualquer idioma, por exemplo, user.profile.displayName. O mesmo vale para respostas de API lidas pelo nome do campo e para arquivos de configuração nos quais a alteração do nome de uma chave pode interromper uma implantação. Preservar a estrutura enquanto marca as strings traduzíveis é um primeiro passo útil antes que essas strings sejam enviadas a um serviço de tradução real ou revisadas por um tradutor.

Perguntas frequentes

Esta ferramenta chama um serviço de tradução real? Não. Ela é executada apenas no navegador e não envia dados para lugar algum. Ela marca cada string com o código do idioma de destino em vez de produzir palavras traduzidas.

Por que minha saída mostra [es] Hello em vez de Hola? Essa etiqueta entre colchetes é o comportamento de espaço reservado da versão atual. Ela mostra quais strings seriam traduzidas e para qual idioma, sem realizar uma tradução real.

Ela altera as chaves dos meus objetos ou os números? Não. Chaves, números, true/false e null passam inalterados por todos os níveis de aninhamento, inclusive dentro de arrays. Isso também vale para nomes de chaves incomuns, como __proto__, que alguns códigos JavaScript descartam acidentalmente.

Ela precisa de conexão com a internet? Não. A análise e a marcação ocorrem localmente na aba do navegador.

Posso usar isto para arquivos de tradução do i18next ou semelhantes? A saída mantém a mesma estrutura de chaves da entrada, portanto é compatível com qualquer framework que espere chaves correspondentes entre arquivos de idiomas. Os próprios valores de string ainda precisam ser substituídos por traduções reais antes do uso.

O que acontece com JSON profundamente aninhado ou arrays dentro de arrays? A ferramenta processa todos os níveis, por mais profundos que sejam, e cada item de cada array, aplicando a mesma regra todas as vezes.

Referências