Perguntas frequentes

Tudo o que precisa de saber sobre i18n-keyless antes de começar.

Preciso de gerir ficheiros de tradução?

Não. Não existem ficheiros JSON, nem etapa de extração de chaves, nem plugin de compilação. Escreve as tuas frases na tua língua de origem, o SDK envia-as para a API no primeiro pedido, a API traduz com IA, e cada pedido subsequente é servido a partir da cache. O teu código é a única fonte de verdade.

O que acontece quando mudo o texto de origem?

O texto de origem é a chave. Ao mudá-lo, obterá uma nova chave com uma tradução de IA fresca. A chave antiga simplesmente deixa de ser solicitada e o painel de controlo limpa-a após 30 dias sem utilização. Corrigir um erro de digitação é igual: corrija-o no código, implemente e o novo texto será traduzido no primeiro pedido.

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 — €4 até 1.000, €9 até 5.000, €29 até 50.000, €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 as minhas traduções?

Sim. O painel de controlo tem um botão "Exportar JSON" que baixa todas as traduções do seu projeto como um único ficheiro JSON. A exportação inclui todas as linhas, não apenas as usadas nos últimos 30 dias, por isso é um backup completo. Não há qualquer bloqueio: os seus dados estão sempre a um clique de distância.

Que 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 o seu texto numa chamada de tradução, e a API devolve a tradução para o idioma atual. Os SDKs do servidor são seguros para threads e armazenam as 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 é apenas 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?

Todos os SDKs armazenam 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 armazenadas em cache. Os seus utilizadores veem a última tradução conhecida, nunca uma string vazia. Quando a API voltar, o SDK atualiza silenciosamente.

Que provedor de IA ele utiliza?

Cinco provedores são suportados: Mistral, OpenAI, Anthropic, Google e qualquer ponto de extremidade compatível com OpenAI, como Ollama, Groq ou Together. O operador escolhe 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 substitui 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 existe um guia de migração passo a passo para i18next, react-intl e Lokalise. A API tem um ponto de extremidade de migração que importa as suas traduções existentes uma a uma, sem chamadas de IA ou cobranças. O servidor MCP tem a mesma ferramenta, por isso um agente de IA pode fazer a migração por si.

Existe algum plano gratuito?

A edição auto-hospedada é totalmente gratuita com projetos ilimitados — instale a imagem Docker, use a sua própria chave de IA e mantenha os 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 estão sob licença 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 pessoa 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ódigo
O 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ódigo
Posso rever a cópia em um pull request?

Sim. A string de origem está no código, por isso cada alteração 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 na base 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ódigo
Por 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ódigo
Auto-hospedado ou assinatura: qual?

Auto-hospedado: a mesma imagem Docker no seu próprio servidor, completamente gratuita com projetos ilimitados, com a sua própria chave de IA e os seus dados em casa. Gosta? Deixe-me uma gorjeta! Assinatura: nós gerimos, as atualizações são automáticas, um preço fixo a partir de 4 € por mês por projeto. Escolha a assinatura se preferir não gerir um servidor.

Leia a resposta completa, com o código
Como 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ódigo
Como 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ódigo
Como formatar datas, números e moedas?

O SDK não os formata, o seu runtime é que o faz. Utilize o Intl.DateTimeFormat e o Intl.NumberFormat com o idioma atual do SDK e, em seguida, coloque 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ódigo
Posso personalizar o prompt de tradução?

Não, e não precisas de o fazer. O prompt lê o teu contexto para cada chave: é aí que se definem o tom, o público-alvo e o significado, e é isso que faz com que a mesma palavra se traduza de forma diferente em dois locais. E qualquer tradução pode ser substituída manualmente no painel de controlo; a API nunca substitui o que escreveste.

Leia a resposta completa, com o código
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 gerir membros do projeto — as mesmas operações que um humano faz no painel de controlo. Ligue-o a partir do Claude Code, Cursor, Windsurf ou de 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 traduz uma string de interface do utilizador. Os SDKs do servidor armazenam em cache as traduções na memória e atualizam-nas em segundo plano, por isso não adicionam latência ao seu pedido.

A minha equipa toda pode trabalhar nas traduções?

Sim. Adicione membros da equipe a um projeto a partir do painel ou através da 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