Perguntas frequentes
Tudo o que você precisa saber sobre i18n-keyless antes de começar.
Preciso gerenciar arquivos de tradução?
Não. Não há arquivos JSON, nem etapa de extração de chaves, nem plugin de compilação. Você escreve suas frases no seu idioma de origem, o SDK envia para a API na primeira solicitação, a API traduz com IA, e toda solicitação subsequente é servida do cache. Seu código é a única fonte de verdade.
O que acontece quando eu altero o texto de origem?
O texto de origem é a chave. Ao mudá-lo, você obterá uma nova chave com uma tradução de IA fresca. A chave antiga simplesmente deixa de ser solicitada e o painel de controle a limpa após 30 dias sem uso. Corrigir um erro de digitação é igual: corrija-o no código, implemente e o novo texto será traduzido na primeira solicitação.
Quanto custa?
Auto-hospedado: completamente gratuito, projetos ilimitados, sem assinatura e sem limite de uso — instale a imagem Docker, use sua própria chave de IA. Gostou? Me dê uma gorjeta! Hospedado: um preço fixo por projeto por mês, com base em usuários ativos mensalmente — R$ 4 até 1.000, R$ 9 até 5.000, R$ 29 até 50.000, R$ 99 até 500.000 — cobrado mensalmente, cancelável a qualquer momento. Não há precificação por assento, por palavra ou por string em nenhum dos casos.
Posso exportar minhas traduções?
Sim. O painel de controle tem um botão "Exportar JSON" que baixa todas as traduções do seu projeto como um único arquivo JSON. A exportação inclui todas as linhas, não apenas as usadas nos últimos 30 dias, então é um backup completo. Não há bloqueio: seus dados estão sempre a um clique de distância.
Quais frameworks são suportados?
React, React Native, Vue, Svelte, Vanilla JS, Node.js, Ruby on Rails, Python, Go, Swift e Kotlin. Todos os SDKs funcionam da mesma forma: envolva seu texto em uma chamada de tradução, e a API retorna a tradução para o idioma atual. Os SDKs do servidor são thread-safe e armazenam traduções em cache na memória.
Quantas línguas são suportadas?
48 idiomas, incluindo variantes regionais como zh-Hans / zh-Hant, en / en-GB, fr / fr-CA, pt / pt-BR e es / es-MX. O árabe, hebraico e urdu também estão na lista, por isso as línguas da direita para a esquerda também funcionam. Adicionar um novo idioma ao seu projeto é só um clique no painel de controle.
Funciona com renderização do lado do servidor?
Sim. O Node.js SDK usa o AsyncLocalStorage para que seus loaders, funções head e componentes do servidor possam traduzir sem precisar de um provedor React. No lado do cliente, o provedor React hidrata a partir do HTML renderizado no servidor. Há guias passo a passo para Next.js, Nuxt e TanStack Start na documentação.
Isso deixa meu aplicativo mais lento?
Na primeira vez que uma nova string é solicitada, a API chama o modelo de IA — cerca de meio segundo para uma string de interface de usuário curta, mais para um parágrafo. Todas as solicitações seguintes são atendidas a partir do banco de dados, que é um acerto de cache comum. O SDK também armazena traduções localmente, então usuários recorrentes não veem nenhum atraso na rede. Se dez usuários solicitarem a mesma string ao mesmo tempo, apenas uma chamada à IA é feita.
O que acontece se o serviço cair?
Todo SDK armazena traduções localmente — no localStorage na web, no AsyncStorage no mobile e na memória no servidor. Se a API não estiver acessível, o SDK fornece as traduções em cache. Seus usuários veem a última tradução conhecida, nunca uma string vazia. Quando a API voltar, o SDK atualiza silenciosamente.
Qual provedor de IA ele utiliza?
Cinco provedores são suportados: Mistral, OpenAI, Anthropic, Google e qualquer endpoint compatível com OpenAI, como Ollama, Groq ou Together. O operador seleciona o provedor e o modelo no painel ou no ambiente. O padrão no i18n-keyless.com é o Mistral. Usuários auto-hospedados podem executar o Ollama localmente e não enviar nada a terceiros.
Posso substituir uma tradução de IA?
Sim. Clique em qualquer célula no painel, digite o texto correto e salve. A correção é permanente: a API nunca sobrescreve um valor definido manualmente. Você também pode substituir traduções pela API ou pelo servidor MCP, para que um agente de codificação de IA possa corrigir uma tradução para você.
Posso migrar do i18next ou de outra biblioteca?
Sim. Na documentação, há um guia de migração passo a passo para i18next, react-intl e Lokalise. A API tem um endpoint de migração que importa suas traduções existentes uma por uma, sem chamadas de IA ou cobranças. O servidor MCP tem a mesma ferramenta, então um agente de IA pode fazer a migração por você.
Existe algum plano gratuito?
A edição auto-hospedada é totalmente gratuita com projetos ilimitados — instale a imagem Docker, use sua própria chave de IA e mantenha seus dados no seu próprio servidor. Sem limite de tempo, sem restrições de funcionalidades. O plano hospedado começa em 4 euros por mês por projeto se preferir não executar um servidor.
O código-fonte está disponível?
O servidor, o painel de controle e a imagem Docker são publicados no GitHub sob a licença Elastic 2.0. Você pode ler cada linha, executar o código e modificá-lo. Os SDKs — React, Vue, Node, Rails e outros — estão licenciados sob a MIT. A única restrição: você não pode oferecer o software como um serviço hospedado para terceiros.
Um mantenedor: o que acontece se o projeto parar?
Os SDKs são licenciados pela MIT e permanecem disponíveis no npm, PyPI, RubyGems e outros registros. O servidor é público sob a Elastic License 2.0 e o protocolo entre eles está documentado, então qualquer um pode executá-lo, fazer um fork ou escrever um servidor contra ele. Suas traduções permanecem em um único export JSON a qualquer momento. Se o serviço hospedado parar: os aplicativos instalados continuam servindo suas traduções em cache, um novo cliente retorna ao idioma de origem, e apontar o SDK para sua própria instância com API_URL restaura tudo. O que você perderia é a tradução por IA de novas strings no i18n-keyless.com — não seus dados nem seu aplicativo.
Leia a resposta completa, com o códigoO contexto não é apenas uma chave disfarçada?
Não. Uma chave é obrigatória em cada string, deve ser única e existe em um espaço de nomes global que você mantém manualmente. Um contexto é opcional, anexado às poucas strings cujo significado é ambíguo — "Close" para fechar a janela ou "close" por distância — e descreve o significado, não nomeia a string. A maioria das strings não tem contexto. O texto original permanece como referência de busca, com ou sem contexto; duas strings idênticas com dois contextos são simplesmente duas linhas.
Leia a resposta completa, com o códigoPosso revisar a cópia em um pull request?
Sim. A string de origem está no código, então toda mudança na redação é uma diferença que o revisor lê no pull request em linguagem clara, em vez de um nome de chave. O que não está no git são as traduções para os outros idiomas: elas residem no banco de dados, como em qualquer outra plataforma de tradução, e você as revisa no painel, onde uma marcação "revisado" por célula separa o que uma pessoa verificou do que a IA escreveu, ou na exportação JSON.
Leia a resposta completa, com o códigoPor que não o Tolgee, que também é open source?
O Tolgee é uma plataforma de tradução baseada em chaves sob a licença Apache 2.0, com edição em contexto, contexto de captura de tela e memória de tradução; se você deseja esses recursos ou tradutores no processo, é uma boa escolha. O i18n-keyless não tem chaves, não tem arquivos de localização, a tradução por IA está ativada por padrão com uma substituição manual que a IA nunca reescreve, um servidor sob a licença Elastic 2.0 com SDKs MIT, e uma imagem auto-hospedada que roda em SQLite em um único contêiner. Para uma correção em contexto, tire um print da tela e envie para um agente de IA conectado ao servidor MCP: ele encontra a string e substitui a tradução. A página de comparação na documentação exibe os preços lado a lado.
Leia a resposta completa, com o códigoAuto-hospedado ou assinatura: qual?
Auto-hospedado: a mesma imagem Docker no seu próprio servidor, completamente gratuita com projetos ilimitados, com sua própria chave de IA e seus dados em casa. Gostou? Me dê uma gorjeta! Assinatura: nós gerenciamos, as atualizações são automáticas, um preço fixo a partir de R$ 4 por mês por projeto. Escolha a assinatura se preferir não gerenciar um servidor.
Leia a resposta completa, com o códigoComo lidar com valores dinâmicos como nomes ou contagens?
Use a opção de substituição. Escreva a frase com um espaço reservado — "Olá {name}, você tem {count} itens" — e passe os valores na hora de renderizar com replace: { "{name}": userName, "{count}": String(n) }. A IA vê o espaço reservado e o mantém em todas as traduções. O SDK substitui o valor no momento da execução.
Como lido com plurais?
Escreva uma forma com {count} onde o número é inserido e passe o número como count. A API armazena uma mensagem de plural ICU por idioma com exatamente as formas que o idioma precisa — duas em francês, quatro em russo, seis em árabe — verificadas contra o Intl.PluralRules, e o SDK escolhe a correta. Adicione números ordinais para classificações (1st, 2nd). Você nunca escreve as ramificações sozinho.
Leia a resposta completa, com o códigoComo eu lido com os gêneros?
Passe o valor em select — select={{ gender: "feminino" }} — e o modelo escreve uma variante por valor, em cada idioma, considerando as necessidades linguísticas. Os valores são identificadores de um conjunto fechado, no máximo 10 por variável e 2 variáveis por frase; um select e um count podem ser combinados. Valores abertos como um nome permanecem como substituição.
Leia a resposta completa, com o códigoComo formatar datas, números e moedas?
O SDK não os formata, é o seu runtime que faz isso. Use o Intl.DateTimeFormat e o Intl.NumberFormat com o idioma atual do SDK e, em seguida, insira o resultado na frase com o replace. Uma frase, uma tradução, o formato correto em cada idioma.
Leia a resposta completa, com o códigoPosso personalizar o prompt de tradução?
Não, e você não precisa fazer isso. O prompt lê seu contexto para cada chave: é aí que são definidos o tom, o público-alvo e o significado, e é isso que faz com que a mesma palavra seja traduzida de forma diferente em dois lugares. E qualquer tradução pode ser sobrescrita manualmente no painel de controle; a API nunca sobrescreve o que você escreveu.
Leia a resposta completa, com o códigoEle tem um servidor MCP para agentes de codificação de IA?
Sim. A API também é um servidor MCP com autenticação OAuth 2.1. Um agente de IA pode listar traduções, traduzir strings, substituir valores, importar traduções existentes e gerenciar membros do projeto — as mesmas operações que um humano faz no painel de controle. Conecte-o pelo Claude Code, Cursor, Windsurf ou qualquer cliente compatível com MCP.
Posso usá-lo para strings de backend e e-mails?
Sim. Os SDKs Node.js, Ruby on Rails, Python e Go são executados no servidor. Traduza um assunto de e-mail, uma mensagem de erro ou uma notificação push da mesma forma que você traduz uma string de interface do usuário. Os SDKs do servidor armazenam em cache as traduções na memória e as atualizam em segundo plano, por isso não adicionam latência à sua solicitação.
Minha equipe toda pode trabalhar nas traduções?
Sim. Adicione membros da equipe a um projeto pelo painel ou pela API. Cada membro pode ver todas as traduções, substituir qualquer valor e adicionar idiomas. Os administradores criam projetos e gerenciam membros. Não há preço por assento: adicione quantas pessoas precisar.
Como posso corrigir um erro de digitação?
O texto de origem é a chave. Corrigir um erro de digitação no texto de origem fará com que você obtenha uma nova chave com uma nova tradução; a string antiga simplesmente deixa de ser solicitada, e o painel limpa automaticamente após 30 dias sem uso. Um erro de digitação em uma tradução: edite a célula no painel e a correção é permanente.
Leia a resposta completa, com o código