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
- Cole seu objeto JSON no campo JSON de Origem.
- Selecione seu idioma de destino no menu suspenso.
- O JSON traduzido aparecerá automaticamente no painel direito.
- Clique no botão Copiar para copiar o JSON traduzido para a área de transferência.
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
O JSON tem quatro tipos primitivos (strings, números, booleanos e null) e dois tipos estruturados (objetos e arrays). Um array é uma lista ordenada de valores. Um objeto é um conjunto de pares nome/valor, em que cada nome (chave) é uma string.
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:
texttorna-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.
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
- Cole um objeto JSON no campo "JSON de origem" à esquerda.
- 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.
- O painel à direita é atualizado automaticamente. Não é necessário clicar em nenhum botão.
- Clique em "Copiar" para copiar o resultado para a área de transferência.
- Clique em "Limpar tudo" para redefinir os dois painéis e começar novamente.
Exemplo
JSON de entrada:
1{
2 "app": {
3 "title": "My Store",
4 "version": 2,
5 "isBeta": false,
6 "tags": ["sale", "new"]
7 }
8}
9Com 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}
12Observe 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 JSON | Resultado |
|---|---|
| Valor de string | Recebe o prefixo [language code] |
| Número | Inalterado |
true / false | Inalterado |
null | Inalterado |
| Chave de objeto | Sempre inalterada |
| Ordem do array | Sempre 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 JSON inválido. Verifique sua entrada." Isso aparece quando o texto colado não é um JSON válido. As causas típicas são uma vírgula faltando entre as entradas, uma vírgula final após o último item, aspas simples em vez de aspas duplas ou um caractere especial sem escape dentro de uma string. Passar a entrada antes por um validador de JSON pode ajudar a encontrar o ponto exato.
"Falha na tradução. Tente novamente."
Isso aparece em um caso específico: quando a entrada colada é apenas a palavra null, sem mais nada. Como não há estrutura para percorrer, a ferramenta não tem o que processar. Envolver o valor em um objeto, como {"value": null}, evita o problema.
Deixar o campo de entrada vazio mostra uma mensagem de exemplo e não é tratado como erro.
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 roda apenas no navegador e não envia dados a lugar nenhum. Ela marca cada string com o código do idioma de destino em vez de produzir palavras traduzidas.
Por que a minha saída mostra [es] Hello em vez de Hola?
Essa marcação entre colchetes é o comportamento provisório da versão atual. Ela mostra quais strings seriam traduzidas e para qual idioma, sem fazer a tradução de verdade.
Ela vai alterar as chaves ou os números do meu objeto?
Não. Chaves, números, true/false e null passam sem alteração em todos os níveis de aninhamento, inclusive dentro de arrays.
Ela precisa de conexão com a internet? Não. A análise e a marcação acontecem localmente, na aba do navegador.
Posso usar isso para i18next ou arquivos de tradução semelhantes? A saída mantém a mesma estrutura de chaves da entrada, então serve para qualquer framework que espere chaves correspondentes entre os arquivos de idioma. Os valores das strings ainda precisam ser substituídos por traduções reais antes do uso.
O que acontece com JSON muito aninhado ou com arrays dentro de arrays? A ferramenta processa todos os níveis, por mais profundos que sejam, e todos os itens de array, aplicando a mesma regra a cada vez.
Referências
- Internet Engineering Task Force. RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format. RFC 8259 — os quatro tipos primitivos e os dois tipos estruturados, arrays ordenados e objetos como pares nome/valor com nomes em forma de string.
- MDN Web Docs (Mozilla). JSON.parse(). Referência de JSON.parse() — o JSON não permite vírgulas finais, e as strings devem usar aspas duplas, não simples.