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 de Preservação de Estrutura JSON?

Já tentou copiar JSON no Google Translate e acabou com chaves quebradas, colchetes ausentes ou sintaxe distorcida? É exatamente esse o problema que esta ferramenta resolve.

Um tradutor de preservação de estrutura JSON converte os valores de string dentro dos seus objetos JSON para outro idioma, mantendo todo o resto intacto — as chaves permanecem iguais, números continuam números, booleanos continuam booleanos, e sua estrutura aninhada não colapsa.

Eis o que torna isso diferente de ferramentas de tradução comuns: quando você traduz um arquivo i18n típico com 50+ chaves aninhadas, você precisa que a estrutura permaneça idêntica para que seu código ainda possa referenciar user.profile.displayName em espanhol, francês ou japonês. Quebre essa estrutura, e você estará depurando por horas.

Esta ferramenta lida com a travessia recursiva automaticamente, identificando quais strings precisam de tradução e quais elementos (como chaves de API, valores de configuração ou IDs numéricos) devem permanecer exatamente como estão.

Como a Preservação da Estrutura JSON Funciona

Por que a Preservação da Estrutura é Importante

Quando você está trabalhando com tradução de JSON, geralmente está lidando com um destes cenários:

  • Arquivos i18n onde seu aplicativo espera que en.json e fr.json tenham chaves idênticas
  • Respostas de API que precisam manter uma estrutura consistente entre idiomas para análise do cliente
  • Arquivos de configuração onde alterar o nome de uma chave quebra todo o seu aplicativo
  • Exportações de banco de dados onde relacionamentos dependem de nomes de campos específicos

O desafio: JSON não é apenas texto. É um dado estruturado com um esquema no qual seu código confia. Mudar "userName" para "nomeUsuario" durante a tradução, e seu aplicativo lança um erro undefined.

Como o Processo de Tradução Funciona

Aqui está o que acontece nos bastidores quando você traduz JSON:

1. Análise e Validação A ferramenta primeiro valida a sintaxe do seu JSON. Se estiver faltando uma vírgula ou tiver um colchete extra, você receberá uma mensagem de erro clara antes que qualquer tradução comece—evitando saída corrompida.

2. Travessia Recursiva Começando pela raiz, o algoritmo percorre cada nó na árvore JSON. Para cada elemento, ele verifica o tipo de dado:

  • String? Coloca na fila para tradução
  • Número, booleano, nulo? Pula completamente
  • Objeto ou array? Recorre dentro dele

3. Tradução Segura por Tipo Apenas valores de string são enviados para a API de tradução. Seu "quantidade": 42 permanece 42, não "quarenta e dois". Seu "estaAtivo": true permanece true, não "verdadeiro".

4. Preservação de Chaves Todas as chaves de objeto permanecem no idioma original. Isso é crítico porque translations.header.welcomeMessage deve ser o mesmo caminho em cada arquivo de idioma.

5. Reassemblagem da Estrutura Strings traduzidas são inseridas de volta nas mesmas posições exatas, mantendo todos os níveis de aninhamento, índices de array e hierarquias de objetos.

Uma armadilha comum: Alguns desenvolvedores tentam usar JSON.stringify() no objeto, traduzir toda a string e depois fazer parse de volta. Isso quebra porque o tradutor modifica chaves, colchetes e sintaxe. A abordagem recursiva evita isso completamente.

Usando o Tradutor de Preservação de Estrutura JSON

Guia Passo a Passo

1. Cole Seu JSON Copie seu objeto JSON e cole-o no painel esquerdo. A ferramenta lida com qualquer JSON válido—seja um objeto simples com 5 chaves ou uma estrutura profundamente aninhada com arrays e múltiplos níveis.

2. Selecione o Idioma de Destino Escolha no menu suspenso de idiomas: Espanhol, Francês, Alemão, Italiano, Português, Chinês, Japonês, Coreano, Russo e mais. Se estiver traduzindo para um projeto i18next, use o código de idioma que sua estrutura espera.

3. Obtenha Tradução Instantânea A saída traduzida aparece automaticamente no painel direito. Nenhum botão "Traduzir" necessário—processa assim que você tem um JSON válido e um idioma selecionado.

4. Copie e Use Clique no botão "Copiar" para capturar o JSON traduzido. Está pronto para colar diretamente no seu projeto—sem necessidade de limpeza.

5. Limpe para Próxima Tradução Clique em "Limpar Tudo" quando estiver pronto para traduzir outro arquivo. A ferramenta redefine os dois painéis instantaneamente.

Problemas Comuns e Soluções

Erro "Formato JSON Inválido" Você verá isso quando houver um problema de sintaxe. Causas comuns:

  • Vírgula ausente entre pares de chave-valor
  • Vírgula após o último item (válido em JavaScript, não em JSON)
  • Aspas simples em vez de aspas duplas
  • Caracteres especiais não escapados em strings

Correção rápida: Passe seu JSON por um validador como JSONLint antes de colar.

Tradução Falha Silenciosamente Se o painel de saída permanecer vazio:

  • Verifique sua conexão com a internet—tradução requer acesso à API
  • Confirme se selecionou um idioma de destino
  • Tente com um trecho JSON menor para isolar o problema

Resultados Inesperados na Tradução Tradução automática funciona bem para frases padrão, mas tem dificuldades com:

  • Jargão técnico ou termos específicos de domínio
  • Nomes de marca (que geralmente devem permanecer sem tradução)
  • Sintaxe de espaços reservados como {{username}} ou %s

Para aplicações de produção, use esta ferramenta como primeira passagem e depois tenha um falante nativo revisando conteúdo específico de domínio ou voltado ao cliente.

Dicas Profissionais para Melhores Resultados

Mantenha Strings Técnicas Separadas Se seu JSON mistura texto voltado ao usuário com identificadores técnicos, considere dividi-los. Por exemplo:

1{
2  "display": {"welcome": "Bem-vindo de volta"},
3  "config": {"apiKey": "abc123", "endpoint": "https://api.example.com"}
4}
5

Traduza o objeto display separadamente para evitar processar acidentalmente os valores de config.

Use Contexto em Suas Strings "Enviar" pode se traduzir diferentemente dependendo do contexto. "Enviar formulário" ou "Enviar pagamento" fornece aos tradutores (humanos ou automáticos) melhor contexto para resultados precisos.

Teste com Dados Reais Antes de traduzir todo o seu arquivo i18n com 500+ chaves, teste com uma amostra pequena que inclua todos os seus tipos de dados—strings, números, objetos aninhados, arrays.

Exemplos de Código

Traduzindo JSON com JavaScript

1// Exemplo de como você pode implementar funcionalidade semelhante em JavaScript
2function translateJsonStructure(jsonObj, targetLanguage) {
3  // Função auxiliar para traduzir uma string
4  function translateString(str, lang) {
5    // Em uma implementação real, isso chamaria uma API de tradução
6    return `[${lang}] ${str}`;
7  }
8  
9  // Função recursiva para percorrer e traduzir JSON
10  function processNode(node) {
11    if (node === null) return null;
12    
13    if (typeof node === 'string') {
14      return translateString(node, targetLanguage);
15    }
16    
17    if (Array.isArray(node)) {
18      return node.map(item => processNode(item));
19    }
20    
21    if (typeof node === 'object') {
22      const result = {};
23      for (const key in node) {
24        result[key] = processNode(node[key]);
25      }
26      return result;
27    }
28    
29    // Retorna números, booleanos, etc. sem alteração
30    return node;
31  }
32  
33  return processNode(jsonObj);
34}
35
36// Exemplo de uso
37const sourceJson = {
38  "product": {
39    "name": "Fones de Ouvido Sem Fio",
40    "description": "Fones de ouvido sem fio de alta qualidade com cancelamento de ruído",
41    "features": ["Bluetooth 5.0", "Bateria de 40 horas", "Design dobrável"],
42    "price": 99.99,
43    "inStock": true
44  }
45};
46
47const translatedJson = translateJsonStructure(sourceJson, "es");
48console.log(JSON.stringify(translatedJson, null, 2));
49

Traduzindo JSON com Python

1import json
2
3def translate_json_structure(json_obj, target_language):
4    """
5    Traduz valores de string em um objeto JSON, preservando a estrutura.
6    
7    Args:
8        json_obj: O objeto JSON analisado
9        target_language: Código do idioma de destino (por exemplo, 'es', 'fr')
10        
11    Returns:
12        Objeto JSON traduzido com estrutura preservada
13    """
14    def translate_string(text, lang):
15        # Em uma implementação real, isso chamaria uma API de tradução
16        return f"[{lang}] {text}"
17    
18    def process_node(node):
19        if node is None:
20            return None
21        
22        if isinstance(node, str):
23            return translate_string(node, target_language)
24        
25        if isinstance(node, list):
26            return [process_node(item) for item in node]
27        
28        if isinstance(node, dict):
29            result = {}
30            for key, value in node.items():
31                result[key] = process_node(value)
32            return result
33        
34        # Retorna números, booleanos, etc. sem alteração
35        return node
36    
37    return process_node(json_obj)
38
39# Exemplo de uso
40source_json = {
41    "user": {
42        "name": "Jane Smith",
43        "bio": "Desenvolvedora de software e contribuidora de código aberto",
44        "skills": ["JavaScript", "Python", "React"],
45        "active": True,
46        "followers": 245
47    }
48}
49
50translated_json = translate_json_structure(source_json, "fr")
51print(json.dumps(translated_json, indent=2))
52

Traduzindo JSON com PHP

1<?php
2/**
3 * Traduz a estrutura JSON preservando a estrutura original
4 * 
5 * @param mixed $jsonObj O objeto JSON analisado
6 * @param string $targetLanguage O código do idioma de destino
7 * @return mixed O objeto JSON traduzido
8 */
9function translateJsonStructure($jsonObj, $targetLanguage) {
10    // Função auxiliar para traduzir uma string
11    function translateString($text, $lang) {
12        // Em uma implementação real, isso chamaria uma API de tradução
13        return "[$lang] $text";
14    }
15    
16    // Função recursiva para processar cada nó
17    function processNode($node, $lang) {
18        if ($node === null) {
19            return null;
20        }
21        
22        if (is_string($node)) {
23            return translateString($node, $lang);
24        }
25        
26        if (is_array($node)) {
27            // Verifica se é um array associativo (objeto) ou indexado
28            if (array_keys($node) !== range(0, count($node) - 1)) {
29                // Array associativo (objeto)
30                $result = [];
31                foreach ($node as $key => $value) {
32                    $result[$key] = processNode($value, $lang);
33                }
34                return $result;
35            } else {
36                // Array indexado
37                return array_map(function($item) use ($lang) {
38                    return processNode($item, $lang);
39                }, $node);
40            }
41        }
42        
43        // Retorna números, booleanos, etc. sem alteração
44        return $node;
45    }
46    
47    return processNode($jsonObj, $targetLanguage);
48}
49
50// Exemplo de uso
51$sourceJson = [
52    "company" => [
53        "name" => "Soluções Tecnológicas Globais",
54        "description" => "Empresa inovadora de desenvolvimento de software",
55        "founded" => 2010,
56        "services" => ["Desenvolvimento Web", "Aplicativos Móveis", "Soluções em Nuvem"],
57        "active" => true
58    ]
59];
60
61$translatedJson = translateJsonStructure($sourceJson, "de");
62echo json_encode($translatedJson, JSON_PRETTY_PRINT);
63?>
64

Casos de Uso no Mundo Real

Arquivos de i18n para Aplicações Web

A maioria dos frameworks modernos como Next.js, React ou Vue armazenam traduções em formato JSON. Quando você precisa adicionar um novo idioma ao seu aplicativo, está diante de uma escolha: copiar e colar manualmente e traduzir cada chave (propenso a erros), ou usar esta ferramenta para gerar um primeiro rascunho em minutos.

Um cenário real: Seu aplicativo tem en.json com mais de 200 chaves de tradução em categorias aninhadas—navegação, formulários, mensagens de erro, dicas de ferramentas. Você precisa de versões em francês e alemão até o próximo sprint.

Entrada (en.json):

1{
2  "common": {
3    "welcome": "Bem-vindo ao nosso aplicativo",
4    "login": "Entrar",
5    "signup": "Cadastrar-se",
6    "errorMessages": {
7      "required": "Este campo é obrigatório",
8      "invalidEmail": "Por favor, insira um endereço de e-mail válido"
9    }
10  }
11}
12

Traduza para francês, obtenha fr.json com estrutura idêntica. Seu código ainda referencia t('common.errorMessages.required') sem alterações.

O que descobri que funciona bem: Gere traduções com esta ferramenta e, em seguida, peça a um membro da equipe bilíngue para verificar os termos técnicos e rótulos de botões. Isso captura casos em que "Enviar" pode precisar de traduções diferentes para "Enviar formulário" vs. "Enviar pagamento".

Localização de Respostas de API

Construindo uma API que atende a vários países? Você precisa de estruturas de resposta consistentes em diferentes idiomas. Uma API de notificações pode retornar:

1{
2  "status": "sucesso",
3  "notification": {
4    "title": "Pedido Enviado",
5    "message": "Seu pedido #12345 foi enviado",
6    "priority": 1,
7    "timestamp": 1678901234
8  }
9}
10

Seu aplicativo móvel analisa notification.title e notification.message. Se a tradução em francês alterar a estrutura da chave, o aplicativo quebrará para usuários franceses.

Esta ferramenta garante que notification.title permaneça notification.title em todos os idiomas, com apenas os valores de string traduzidos. Seu código cliente funciona de forma idêntica em todos os locais.

Uma limitação a observar: A tradução automatizada não entende seu domínio. "Enviado" no contexto de e-commerce pode ser traduzido diferentemente do que em um contexto de logística ou marítimo. Para APIs voltadas para o cliente, revise a saída antes de implantar.

Tradução de Conteúdo de CMS Headless

Plataformas de CMS Headless como Contentful ou Strapi geralmente exportam conteúdo como JSON. Quando você tem 50 postagens de blog com metadados estruturados (autor, tags, URLs de imagens em destaque, datas de publicação), deseja traduzir o corpo e o título sem tocar nos metadados.

Uma exportação típica inclui strings de conteúdo e configuração:

  • Conteúdo: corpo do artigo, título, resumo
  • Estrutura: IDs de autor, caminhos de imagens, slugs de categorias, carimbos de tempo

A tradução manual arrisca alterar um slug de tecnologia para tecnología, quebrando seu roteamento. A tradução que preserva a estrutura lida apenas com os campos de conteúdo.

Arquivos de Configuração para Implantações Multi-Região

Implantando em várias regiões? Seus arquivos de configuração podem precisar de strings localizadas, mantendo endpoints, credenciais e sinalizadores de recursos idênticos:

1{
2  "region": "eu-west",
3  "welcomeMessage": "Bem-vindo ao nosso serviço",
4  "endpoint": "https://api.eu.example.com",
5  "retryAttempts": 3,
6  "features": {"darkMode": true}
7}
8

Traduza welcomeMessage para alemão, deixando endpoint, retryAttempts e features intactos.

Comparando Abordagens de Tradução

MétodoMelhor ParaVelocidadePrecisãoSegurança da EstruturaCusto
Esta FerramentaGeração rápida de arquivos i18n, protótipos, ferramentas internasInstantâneoBom para conteúdo padrão100% preservadoGratuito
Google Translate (copiar/colar)Frases únicas, texto não técnicoInstantâneoVariaQuebra JSONGratuito
Tradução ProfissionalConteúdo voltado ao cliente, documentos legais, marketingDiasExcelenteTrabalho manual necessárioR$ 0,08-0,15/palavra
Sistemas de Gerenciamento de Tradução (Lokalise, Phrase)Aplicativos empresariais, fluxos de trabalho de colaboraçãoHoras-DiasExcelente com revisãoSuporte a JSON integrado$$$+

Quando usar esta ferramenta: Projetos em estágio inicial, gerando rascunhos para revisão, aplicações internas onde a tradução perfeita não é crítica.

Quando investir em tradução profissional: Conteúdo voltado ao cliente, texto legal/conformidade, mensagens de marca, ou quando o nuance cultural importa mais que a velocidade.

Considerações Técnicas e Casos Extremos

O Que É Traduzido (e O Que Não É)

A ferramenta usa verificação de tipo para determinar o que traduzir:

Traduzido:

  • Valores de string: "Welcome""Bem-vindo"
  • Strings em arrays: ["Hello", "World"]["Olá", "Mundo"]
  • Strings em qualquer nível de aninhamento

Não Traduzido:

  • Números: 42, 3.14, -10 permanecem inalterados
  • Booleanos: true e false permanecem como estão
  • Nulo: null permanece null
  • Chaves de objetos: "userName" como chave permanece "userName"
  • Strings vazias: "" permanece ""

Tratamento de Caracteres Especiais

Unicode e Emoji A ferramenta lida corretamente com UTF-8, então emoji e caracteres não latinos funcionam bem:

1{"greeting": "👋 Hello"}
2

Traduz para português como:

1{"greeting": "👋 Olá"}
2

Sequências de Escape Sequências de escape JSON (\n, \t, \") são preservadas:

1{"message": "Line 1\nLine 2"}
2

O \n permanece intacto na tradução.

Marcadores de Posição Aqui está um possível problema: Se suas strings contiverem marcadores de posição como {username} ou %s, eles podem ser traduzidos ou reordenados. Em línguas como árabe ou hebraico com texto da direita para a esquerda, as posições dos marcadores podem mudar. Revise-os cuidadosamente.

Desempenho de JSON Grande

A ferramenta baseada na web lida com arquivos i18n típicos (abaixo de 500KB) sem problemas. Para conjuntos de dados maiores:

  • 500KB - 2MB: Funciona, mas pode ser lento no navegador
  • Acima de 2MB: Considere dividir em partes lógicas (por exemplo, arquivos separados por recurso ou seção)

A memória do navegador é o fator limitante, não o algoritmo em si.

Perguntas Frequentes

Como isso difere de colar JSON no Google Translate?

O Google Translate trata JSON como texto simples, o que significa que tenta traduzir tudo — incluindo chaves, caracteres de sintaxe e valores numéricos. Você obterá uma saída como:

1{ "nom d'utilisateur": "Jean Dupont", "âge": "vingt-cinq" }
2

Observe como "username" se tornou "nom d'utilisateur" e o número 25 se transformou na string "vingt-cinq"? Seu código quebra instantaneamente.

Esta ferramenta entende a estrutura JSON e traduz apenas valores de string, deixando as chaves e outros tipos de dados intactos.

Vai lidar com JSON com níveis profundos de aninhamento e arrays?

Sim. O algoritmo recursivo processa todos os níveis de aninhamento:

1{
2  "users": [
3    {"name": "John", "roles": ["admin", "editor"]},
4    {"name": "Jane", "roles": ["viewer"]}
5  ]
6}
7

Ele traduz todos os valores de string ("John", "Jane", "admin", "editor", "viewer") mantendo a estrutura exata.

E se meu JSON tiver conteúdo em inglês e já traduzido?

A ferramenta traduz todas as strings que encontra, mesmo que algumas já estejam no idioma de destino. Se você estiver adicionando novas chaves a um arquivo de tradução existente, traduza apenas a nova seção separadamente e depois mescle os resultados.

Posso usar isso para arquivos i18next ou react-intl?

Absolutamente. A estrutura de saída corresponde ao que esses frameworks esperam. Um arquivo JSON i18next como:

1{"translation": {"welcome": "Hello", "goodbye": "Goodbye"}}
2

Se torna:

1{"translation": {"welcome": "Hola", "goodbye": "Adiós"}}
2

Suas chamadas t('translation.welcome') permanecem inalteradas.

Quão precisa é a tradução automatizada para conteúdo técnico?

Depende do contexto:

  • Texto geral de interface: "Salvar", "Cancelar", "Enviar" → Geralmente preciso
  • Jargão técnico: "webhook", "OAuth2", "idempotente" → Pode ser mal traduzido ou deixado como está
  • Termos específicos de domínio: "registro de paciente" (médico) vs "paciente" (paciência) → Contexto frequentemente perdido

Para aplicativos em produção, use isso como uma primeira passada e depois peça a alguém para revisar termos técnicos e específicos de domínio.

E quanto a idiomas com conjuntos de caracteres diferentes (Chinês, Árabe, Russo)?

A ferramenta lida corretamente com Unicode, então todos os conjuntos de caracteres funcionam. Uma coisa para observar: Árabe e Hebraico são da direita para a esquerda (RTL), o que pode afetar como os marcadores de posição aparecem em strings traduzidas. A estrutura JSON permanece correta, mas revise o texto traduzido para legibilidade.

Vai preservar minha formatação (recuo, quebras de linha)?

A saída é JSON válido, mas a formatação (espaço em branco, recuo) pode diferir da sua entrada. Se precisar de formatação específica, passe a saída por um formatador JSON com suas configurações preferidas.

Posso traduzir valores de configuração como URLs ou chaves de API?

A ferramenta traduz todas as strings, incluindo URLs e valores de configuração. Para evitar isso:

  1. Divida seu JSON em conteúdo voltado para o usuário e configuração
  2. Traduza apenas a seção de conteúdo
  3. Mantenha a configuração não traduzida

Melhor ainda, estruture seus arquivos para separar conteúdo traduzível de valores técnicos desde o início.

Isso é gratuito? Existem limites de taxa?

A ferramenta baseada na web é gratuita para uso típico. Tradução de alto volume (centenas de arquivos por minuto) pode atingir limites de taxa no serviço de tradução subjacente. Para a maioria dos fluxos de trabalho de desenvolvimento, você não encontrará limites.

Referências e Leituras Adicionais

Para um entendimento mais profundo da estrutura JSON, padrões de internacionalização e melhores práticas:

Comece a Traduzir Seus Arquivos JSON

Precisa gerar rapidamente arquivos de tradução para seu aplicativo multilíngue? Cole seu JSON, selecione um idioma de destino e obtenha traduções que preservam a estrutura instantaneamente. Funciona com i18next, react-intl, vue-i18n e qualquer framework que espere uma estrutura JSON consistente entre idiomas.

Comece a tradução agora: