ForHosting KIT · Tradução

Traduzir JSON de i18n

Envie o en.json e receba o fr.json com as mesmas chaves, o mesmo aninhamento e só o texto traduzido; um valor como 3 ou true volta intacto. Variáveis como {{username}} ficam no lugar, e o arquivo novo entra direto no seu app.

● Estávelpor chaveUS$ 0,003
Use pelo WebAPIE-mailTelegramApp em breve

Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.

as chaves ficam, os valores mudam

Por que as chaves não podem mudar

Um arquivo de idioma é um contrato: as chaves são o vocabulário do código e os valores são o que a pessoa lê na tela. Quando o en.json vai para um tradutor e volta três dias depois com uma chave aninhada renomeada ou uma lista reordenada porque “ficava mais natural”, o app quebra ao procurar a chave que sumiu, e ninguém percebe até uma tela aparecer em branco para os usuários. Aqui as chaves são tratadas como identificadores fixos e só os textos podem ser traduzidos: a estrutura que você envia é exatamente a estrutura que recebe de volta.

O que é traduzido e o que passa intacto

Os textos são traduzidos e os objetos aninhados são percorridos por inteiro, então um arquivo com seções para botões, erros e boas-vindas tem todos os ramos traduzidos sem achatar a estrutura. Números, valores true e false, valores vazios e listas sem texto passam sem mudança: um contador com o valor 3 volta com 3. Variáveis como {{username}} ou %s ficam exatamente onde estavam, e só a frase ao redor muda de idioma. O erro típico da tradução à mão é justamente quebrar uma dessas variáveis, uma falha que só aparece quando a tela é exibida.

Chaves, placeholders e HTML embutido

vira "Welcome, {name}!" com o placeholder no lugar. Variáveis nos formatos mais comuns — {name}, {{count}}, %s, :id — são preservadas, e valores com marcação leve (um negrito, um link) mantêm a marcação.

Objetos aninhados e arrays passam pelo mesmo tratamento, nível por nível, sem achatar a estrutura.

Do en.json ao lançamento em outro mercado

Depois, peça para alguém do time revisar as strings mais visíveis — menu, onboarding, mensagens de erro. Interface tem contexto apertado (botão de uma palavra, título truncado), e uma revisão rápida evita constrangimento em produção.

Limites e arquivos grandes

Cada chamada aceita até 20.000 tokens. Arquivos de i18n raramente passam disso, mas se o seu projeto tem milhares de chaves, divida por namespace — common.json, checkout.json, emails.json — e mande uma chamada por arquivo. A divisão por domínio também melhora o resultado da tradução: o modelo pega o contexto de cada arquivo e escolhe termos mais consistentes dentro daquele pedaço específico do produto.

Tema ou plugin distribuído

Quem vende template ou plugin precisa entregar as strings em inglês para o marketplace. O arquivo de idioma sai traduzido em minutos e o produto passa a concorrer fora do Brasil.

E se um valor tiver uma variável tipo {nome} no meio?

Ela é preservada como está, na posição que a frase traduzida pedir. Placeholders nos formatos comuns ({x}, {{x}}, %s, :x) não são traduzidos.

Quanto custa um arquivo com 1.000 chaves?

Para orçar qualquer arquivo, basta contar as chaves.

Minhas strings têm nomes e e-mails de teste. Tem problema?

O arquivo é processado para gerar a tradução e devolvido, sem outro uso. Ainda assim, a boa prática da LGPD vale aqui como em qualquer serviço: prefira dados fictícios nos arquivos de exemplo.

Vocês emitem nota fiscal brasileira?

Não emitimos NF-e: a compra é internacional, paga em dólares via PayPal, e o comprovante da transação vem do próprio PayPal. Muitas contabilidades aceitam o comprovante como documento da despesa — confirme com o seu contador.

Números e valores true ou false também são traduzidos?

Não. Números, valores true e false, valores vazios e listas sem texto passam sem mudança, porque um tempo limite de 3000 milissegundos significa o mesmo em qualquer idioma. Só os textos são traduzidos.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/translate/json

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/translate/json \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"json":{"greeting":"Hola"},"target_lang":"en"}'
{
  "json": {
    "greeting": "Hola"
  },
  "target_lang": "en"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "translate.json",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,003
por chaveUS$ 0,0135

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_tokens20000
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.
422task_failedA tarefa falhou do nosso lado. Você não paga nada por ela.

Traduzir JSON é feito para arquivos de i18n: você envia o en.json do seu app e recebe o pt.json (ou es.json, fr.json…) com as mesmas chaves, os mesmos placeholders e só os valores traduzidos. O resultado volta como JSON válido, pronto para entrar no repositório e no build.

Chaves, placeholders e HTML embutido

A regra da ferramenta é simples: chave não se traduz, valor sim. welcome_message continua welcome_message; "Bem-vindo, {name}!"

Preço por chave, bom para arquivos de app

Como strings de interface são curtas, o modelo por chave é mais previsível que o modelo por palavra: você sabe o custo antes de rodar, contando as chaves com um script de uma linha. A cobrança é US$ 0,003 por chamada mais US$ 0,0135 por chave traduzida. Um arquivo típico de aplicativo, com 300 chaves, custa US$ 4,05 mais a base — pronto em minutos, sem depender da agenda de ninguém.

Do en.json ao lançamento em outro mercado

O fluxo que funciona: escolha o arquivo de idioma mais completo como fonte, rode uma chamada por idioma de destino e valide os resultados com JSON.parse no seu CI.

App indo para o mercado hispânico

Um app de delivery de Belo Horizonte lançou a versão em espanhol: 420 chaves traduzidas por menos de US$ 6, revisadas pela própria equipe em uma tarde — sem agência, sem planilha de strings circulando por e-mail.

SaaS com três idiomas no pipeline

O arquivo pt.json é a fonte; a cada release, o CI gera en.json e es.json por API e valida tudo com JSON.parse antes do merge. Idioma novo deixou de ser projeto e virou etapa do build.

Chatbot multilíngue

As respostas do bot, mantidas em JSON, ganham versão em espanhol com as variáveis de nome e protocolo preservadas — o fluxo de conversa não muda, só o idioma.

As chaves do JSON também mudam?

Não — se mudassem, o app quebraria. Chave, estrutura e tipos permanecem; a tradução acontece só nos valores de texto.

O resultado sempre volta JSON válido?

Sim, com a mesma estrutura do arquivo enviado. Mesmo assim, valide com JSON.parse no seu CI — custa zero e garante o merge tranquilo.

Ver a documentação completa do KIT →