Tradutor de arquivos de localização
Traduza arquivos de localização de apps com todas as chaves e placeholders intactos
Envie seus arquivos JSON, PO, strings.xml, .strings, .xcstrings ou XLIFF, escolha um idioma e receba os mesmos arquivos traduzidos, prontos para colocar no seu projeto. Chaves, comentários, ordem e formatação continuam exatamente como estavam, e todo placeholder, como {name}, {{count}} ou %1$s, é verificado em cada string. As primeiras strings são grátis e sem cadastro; a tarefa inteira, com até 20 arquivos e 5,000 strings, custa $5 em pagamento único, sem assinatura. Um chatbot dá conta de uma dúzia de strings, mas um arquivo com milhares de chaves costuma voltar cortado, com chaves renomeadas ou placeholders alterados.
- Até 300 strings grátis por inteiro, primeiras strings de tarefas maiores grátis, sem cadastro
- Tarefa inteira por $5, pagamento único: até 20 arquivos e 5,000 strings
- Chaves, aninhamento, comentários e ordem mantidos; só os valores são traduzidos
- Placeholders, plurais ICU e tags inline verificados em cada string
- Formas de plural escritas para o idioma de destino (PO, Android, Xcode)
- 41 idiomas, tom formal ou informal, glossário e nomes a manter
{
"home.greeting": "Good morning, {name}Buenos días, {name}",
"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",
"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",
"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",
"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."
}
Amarelo: placeholders e sintaxe de plural ICU, verificados em cada texto. Verde-azulado: tags, escapes e emojis, mantidos como estão.
Mesmas chaves. Mesmos placeholders. Novo idioma.
Só os valores mudam. O arquivo volta com o mesmo aninhamento e a mesma ordem, com o nome es.json, e qualquer texto que perca um placeholder é refeito antes de chegar ao seu build.
App de demonstração criado para esta página; os textos em espanhol são resultado real da ferramenta, a partir de um arquivo de 85 textos.
O que você recebe
Você recebe seus arquivos no mesmo formato, com o nome e o local que cada plataforma espera: en.json vira es.json, strings.xml vai para uma pasta values-es, Localizable.strings para es.lproj. Vários arquivos são baixados juntos em um único ZIP. Antes de baixar, cada string traduzida aparece na tela ao lado do original, e você pode editar qualquer uma delas.
- JSON e ARB: chaves aninhadas, arrays, ordem das chaves, indentação e espaçamento como no seu arquivo. Mensagens ICU como {count, plural, one {# item} other {# items}} mantêm a estrutura. No ARB, os metadados "@" permanecem e @@locale é definido.
- PO e POT: msgid e msgctxt nunca mudam; entradas vazias e fuzzy são traduzidas, e as que já têm tradução ficam como estão. As entradas de plural recebem quantos msgstr[n] o idioma de destino precisar, e o cabeçalho recebe Language e Plural-Forms.
- strings.xml do Android: <string>, <string-array> e <plurals>; translatable="false" é ignorado; apóstrofos e aspas são escapados como o Android exige; o conteúdo de <xliff:g> nunca é traduzido.
- iOS e macOS: arquivos .strings mantêm os comentários e a codificação (muitas vezes UTF-16); String Catalogs .xcstrings ganham uma nova localização para o seu idioma, com variações de plural, e as strings já traduzidas são mantidas.
- XLIFF 1.2 e 2.0: um <target> depois de cada <source> não traduzido, códigos inline como <g>, <x/>, <ph> e <pc> mantidos, e o idioma de destino definido no arquivo.
Traduzir arquivos de strings com um chatbot e com esta ferramenta
Assistentes de chat traduzem bem textos curtos de interface, e uma dúzia de strings coladas no chat geralmente volta certa. O problema de um arquivo de localização de verdade é o tamanho e a sintaxe: milhares de chaves, placeholders, regras de plural e escapes que um compilador ou uma biblioteca rejeita se um único caractere estiver errado.
| Sua situação | Um chatbot | Esta ferramenta |
|---|---|---|
| Dez rótulos de botão | Geralmente traduz bem | Traduz e devolve o arquivo pronto |
| Um arquivo com 3.000 chaves | A resposta precisa ter o tamanho do arquivo, então costuma parar no meio | Traduz todas as strings em blocos de até 60, com até 5,000 strings por tarefa |
| Chaves e aninhamento | Reescreve o arquivo inteiro, então chaves podem ser traduzidas, renomeadas ou perdidas | As chaves nunca são enviadas para tradução; o arquivo é reconstruído a partir do seu |
| Placeholders como {name}, %1$s ou :attribute | Geralmente os mantém, mas nada verifica | Verifica cada string; a que perde um placeholder é traduzida de novo e, se falhar, fica no idioma original e entra numa lista |
| Plurais em russo, polonês ou árabe | Muitas vezes copia as duas formas do inglês | Escreve todas as formas de plural de que o idioma de destino precisa, com números de exemplo para cada uma |
| Apóstrofos em strings do Android | Pode deixar um apóstrofo sem escape que quebra o build | Escapa apóstrofos e aspas como o Android exige |
Como traduzir um arquivo de localização
-
1
Envie seus arquivos e escolha um idioma
Solte um ou mais arquivos do mesmo projeto: JSON, ARB, PO ou POT, strings.xml, .strings, .xcstrings ou XLIFF. Escolha o idioma de destino e o tom, e liste os nomes de produtos que devem ser mantidos.
-
2
Confira as primeiras strings grátis
As primeiras strings aparecem na tela com as chaves ao lado do texto original. Edite qualquer uma diretamente. Esta etapa não exige conta.
-
3
Desbloqueie e baixe
Gostou das primeiras strings? Desbloqueie a tarefa inteira por $5 e baixe os arquivos traduzidos, além de uma lista de avisos se algo precisar de atenção.
Por que arquivos de strings longos atrapalham assistentes de IA genéricos
Um arquivo de localização é tanto código quanto texto. Para traduzi-lo num chat, o assistente precisa reescrever o arquivo inteiro, com chaves, colchetes, escapes e tudo, e um arquivo com alguns milhares de strings é mais longo do que cabe numa resposta. Ele para no meio ou pede que você continue, e você acaba tendo que juntar os pedaços.
A sintaxe é o segundo problema. Uma chave traduzida por engano, um {count} que vira {cuenta}, um %1$s que perdeu o cifrão, um apóstrofo sem escape no strings.xml: cada um é uma pequena mudança numa resposta longa, e cada um pode quebrar um build ou mostrar um placeholder cru para os seus usuários.
Esta ferramenta nunca pede a um modelo que reescreva o seu arquivo. Ela lê o arquivo em strings, envia apenas o texto, com a chave e qualquer comentário do desenvolvedor como contexto, em blocos de até 60 strings, e exige uma resposta para cada string. As tags inline são trocadas antes por marcadores curtos. Cada resposta é verificada: mesmos placeholders, mesmos escapes como \n, mesmos marcadores, os nomes que você listou e todas as formas de plural. Uma string que falha é pedida de novo; se falhar duas vezes, o texto original permanece e a string entra numa lista para você. Depois o arquivo é reconstruído a partir do seu original.
O que as pessoas traduzem
- Apps em React, Vue, Angular e Next.js: arquivos JSON do i18next, vue-i18n, react-intl e ngx-translate
- Apps em Flutter: arquivos .arb, com as descrições de @metadata usadas como contexto
- Plugins e temas do WordPress, Django e outros projetos gettext: modelos .pot e arquivos .po
- Apps Android: res/values/strings.xml com arrays de strings e plurais
- Apps para iOS e macOS: Localizable.strings e String Catalogs (.xcstrings)
- Arquivos exportados de uma plataforma de tradução ou do Xcode como XLIFF
O que a ferramenta não faz
Ainda não lê arquivos YAML, .properties, .resx ou .stringsdict, e não adiciona chaves de plural do i18next (key_one, key_few) que estejam faltando no seu arquivo de origem: ela traduz as chaves que você tem. Em arquivos .xcstrings, strings que usam substituições ou variações por dispositivo são mantidas como estão.
Ela não sobrescreve traduções que você já tem: entradas PO preenchidas, destinos XLIFF marcados como traduzidos e entradas do String Catalog no seu idioma permanecem como estão. Um pagamento cobre até 20 arquivos e 5,000 strings; o Ilimitado cobre até 15,000 strings por tarefa.
É tradução automática com verificações estruturais. Serve muito bem para lançar rapidamente uma primeira versão de um idioma e manter um projeto sincronizado. Para fichas de loja, textos jurídicos ou qualquer coisa com a voz da marca, peça a revisão de um falante nativo.
Como obter um bom resultado
O contexto faz a diferença entre "Save" no sentido de salvar e "Save" no sentido de desconto. Chaves como settings.save_button e comentários no seu arquivo (#. em PO, descrições @key em ARB, /* comentários */ em .strings) são enviados junto com cada string, então um arquivo com chaves significativas e alguns comentários é traduzido melhor.
Liste os nomes dos seus apps e produtos em "Nunca traduzir" e escolha o tratamento formal ou informal nos idiomas que têm os dois. Use as strings grátis como teste e, depois de desbloquear, confira a lista de avisos: cada item mostra a chave, o problema e o que o modelo retornou.
Por idioma e situação
Traduzir um arquivo JSON i18n
Envie o en.json (ou vários arquivos de namespace) e receba o es.json de volta com as mesmas chaves aninhadas,...
Saiba mais →Traduza um arquivo PO online
Envie um modelo .pot ou um arquivo .po parcialmente traduzido e receba de volta um .po com todos os msgstr vaz...
Saiba mais →Quanto custa
Tarefas pequenas, primeiras strings
Grátis
Uma tarefa de até 300 strings é grátis por inteiro, com downloads incluídos. Exibida na tela, sem cadastro. 1 tarefa por dia, ou 3 por dia com uma conta grátis.
Tarefa inteira
$5
Um pagamento para até 20 arquivos e 5,000 strings. Sem assinatura, nunca expira.
Ilimitado
$19 / semana
Todas as ferramentas do site, com tarefas de até 15,000 strings.
Perguntas e respostas
O ChatGPT consegue traduzir um arquivo de localização JSON?
Um arquivo pequeno, geralmente sim. Já um arquivo com milhares de chaves precisa voltar em uma única resposta, então o chatbot tende a parar no meio, e nada garante que todas as chaves e placeholders sobreviveram. Esta ferramenta traduz os valores em blocos, verifica cada placeholder e reconstrói o arquivo a partir do seu.
Quais formatos são compatíveis?
JSON (i18next, vue-i18n, react-intl, ngx-translate e similares), Flutter ARB, gettext PO e POT, Android strings.xml, .strings e .xcstrings do iOS e macOS, e XLIFF 1.2 e 2.0. Os arquivos podem ter até 10 MB cada, com até 20 arquivos em uma tarefa.
As chaves e os placeholders são mantidos?
As chaves nunca são enviadas para tradução. Placeholders como {name}, {{count}}, %s, %1$d, %@, :attribute e %{name}, caracteres de escape como \n, tags inline e emojis são verificados em todas as strings. Se uma string perder algum deles, ela é traduzida de novo; se ainda assim falhar, o texto de origem é mantido e a string aparece na lista de avisos.
Como os plurais são tratados?
As mensagens ICU mantêm a estrutura e recebem as categorias de plural usadas pelo idioma de destino. Entradas PO com msgid_plural recebem quantas formas msgstr[n] o idioma de destino precisar, e o cabeçalho recebe o Plural-Forms correspondente. Os <plurals> do Android e as variações de plural do Xcode são escritos com as categorias do idioma de destino, como one, few, many e other no russo.
O que acontece com as strings que já estão traduzidas?
Elas são mantidas. Somente entradas PO vazias ou fuzzy, unidades XLIFF sem um destino finalizado e entradas do String Catalog sem o seu idioma são traduzidas. Em JSON, .strings e strings.xml, todo valor é tratado como texto de origem.
Para quais idiomas ela pode traduzir?
41 idiomas, incluindo espanhol, francês, alemão, italiano, português (Brasil e Portugal), holandês, polonês, russo, ucraniano, turco, árabe, hebraico, hindi, indonésio, vietnamita, tailandês, japonês, coreano e chinês (simplificado e tradicional).
É grátis?
As primeiras strings de cada tarefa são traduzidas de graça e exibidas na tela, sem cadastro. A tarefa inteira, com os downloads, custa $5 em pagamento único. O Ilimitado, por $19 por semana, vale para todas as ferramentas do site. Tarefas pequenas são exceção: uma tarefa de até 300 strings é grátis por inteiro, downloads incluídos.
Meus arquivos são privados?
Só você pode abrir a sua tarefa. As strings são enviadas a um provedor de modelo de IA apenas para serem traduzidas, por rotas que não usam seus dados para treinamento. As tarefas enviadas sem conta são excluídas após 7 dias, e você pode excluir qualquer tarefa quando quiser.
Atualizado em 23 de outubro de 2026 · APPFACT STUDIO LTD