Pular para o conteúdo principal

Métodos de Tradução

O Rosetta suporta dez métodos de tradução. Cada par de idiomas pode usar um método diferente — você não fica preso a uma única abordagem para todo o seu projeto.

Comparação de Métodos

Provedores de LLM

Foco em qualidade, compatível com Markdown, suporte a coaching. Ideal para projetos com muito conteúdo.

MétodoChaveO que faz
llm (padrão)OPENROUTER_API_KEYLLM via OpenRouter — mais de 200 modelos, roteamento automático
llm-coachedOPENROUTER_API_KEYLLM + regras gramaticais, dicionários, notas de estilo
openaiOPENAI_API_KEYAPI direta da OpenAI (gpt-4o, gpt-4o-mini)
anthropicANTHROPIC_API_KEYAPI direta da Anthropic (Claude Sonnet, Haiku, Opus)
geminiGEMINI_API_KEYAPI direta do Google Gemini (Flash, Pro) — nível gratuito

MT Tradicional

Foco em velocidade e custo. Ideal para grandes volumes de pares chave-valor.

MétodoChaveO que faz
google-translateGOOGLE_TRANSLATE_API_KEYGoogle Cloud Translation API v2 (mais de 130 idiomas)
deeplDEEPL_API_KEYAPI do DeepL com suporte a glossário (mais de 30 idiomas)
microsoft-translatorMICROSOFT_TRANSLATOR_API_KEYAzure Cognitive Services Translator (mais de 100 idiomas)
libretranslate(auto-hospedado)LibreTranslate auto-hospedado (AGPL, gratuito)

Infraestrutura

MétodoChaveO que faz
api(por provedor)Cliente HTTP leve (thin client) para qualquer endpoint REST de tradução

Árvore de Decisão


llm — Tradução por LLM (Padrão)

Traduz via qualquer LLM no OpenRouter. Este é o método padrão e o mais versátil.

Como funciona:

  1. Agrupa chaves em lotes (padrão de 30/lote) com instruções de registro e contexto
  2. Envia para o OpenRouter como um prompt estruturado
  3. Analisa a resposta em JSON
  4. Valida cada tradução através do quality gate
  5. Grava as traduções aprovadas, tenta novamente ou rejeita as falhas

Quando usar: Na maioria dos projetos. Especialmente em sites com muito conteúdo em Markdown, onde blocos de código e shortcodes precisam ser protegidos.

Configuração:

{
"defaultMethod": "llm",
"model": "google/gemini-3.5-flash"
}

llm-coached — Tradução por LLM com Coaching

Igual ao llm, mas com regras gramaticais, dicionários de termos e notas de estilo injetados em cada prompt.

Como funciona:

  1. Carrega os dados de coaching de .rosetta/coaching/<locale>.json ou do diretório coaching/ de um plugin
  2. Injeta regras gramaticais, termos de dicionário e notas de estilo no prompt do sistema
  3. Termos do dicionário que correspondem às chaves de origem são incluídos como terminologia obrigatória
  4. A tradução prossegue como no llm, com os dados de coaching adicionando precisão

Quando usar: Idiomas com poucos recursos, terminologia de domínio específico (jurídico, médico), registros formais ou qualquer caso em que a saída genérica do LLM não seja precisa o suficiente.

Formato dos dados de coaching:

.rosetta/coaching/fr.json
{
"grammar_rules": [
"French adjectives agree in gender and number with the noun they modify",
"Use 'vous' for formal contexts, 'tu' for informal"
],
"dictionary": {
"dashboard": "tableau de bord",
"deployment": "déploiement",
"settings": "paramètres"
},
"style_notes": "Prefer active voice. Avoid anglicisms where a native French term exists."
}

Veja também: Guia de Idiomas com Poucos Recursos


openai — API Direta da OpenAI

Traduz diretamente através da API Chat Completions da OpenAI. Sem o OpenRouter como intermediário — sua chave, sua conta, seu painel de uso.

Modelos: gpt-4o (padrão), gpt-4o-mini

Recursos:

  • ✅ Compatível com Markdown (tradução de conteúdo)
  • ✅ Suporte a coaching (regras gramaticais, substituições de dicionário, notas de estilo)
  • ✅ Modo JSON para saída estruturada de chave-valor
  • ✅ Backoff exponencial com novas tentativas

Configuração:

{
"pairs": {
"en:fr": { "method": "openai", "model": "gpt-4o-mini" }
}
}
export OPENAI_API_KEY=sk-proj-...

Obtenha sua chave em platform.openai.com/api-keys.

anthropic — API Direta da Anthropic

Traduz diretamente através da API Messages da Anthropic. Usa o parâmetro system para dados de coaching, ativando o cache de prompt da Anthropic.

Modelos: claude-sonnet-4-6 (padrão), claude-haiku-4-5, claude-opus-4-7

Recursos:

  • ✅ Compatível com Markdown (tradução de conteúdo)
  • ✅ Suporte a coaching (regras gramaticais, substituições de dicionário, notas de estilo)
  • ✅ Cache de prompt do sistema (amortiza o custo de coaching entre os lotes)
  • ✅ Backoff exponencial com novas tentativas

Configuração:

{
"pairs": {
"en:ja": { "method": "anthropic", "model": "claude-haiku-4-5" }
}
}
export ANTHROPIC_API_KEY=sk-ant-...

Obtenha sua chave em console.anthropic.com.

gemini — API Direta do Google Gemini

Traduz diretamente através da API generateContent do Google Gemini. Nível gratuito disponível — o melhor ponto de partida com custo zero.

Modelos: gemini-2.5-flash (padrão), gemini-2.5-pro

Recursos:

  • ✅ Compatível com Markdown (tradução de conteúdo)
  • ✅ Suporte a coaching (regras gramaticais, substituições de dicionário, notas de estilo)
  • ✅ Modo de resposta em JSON via responseMimeType
  • ✅ Nível gratuito (cota diária generosa)
  • ✅ Backoff exponencial com novas tentativas

Configuração:

{
"pairs": {
"en:ko": { "method": "gemini", "model": "gemini-2.5-pro" }
}
}
export GEMINI_API_KEY=AI...

Obtenha sua chave em aistudio.google.com/apikey.

Validação de Modelo

Os provedores diretos de LLM (openai, anthropic, gemini) validam a string do seu modelo no primeiro uso. Isso detecta três categorias de erros:

Formato de método incorreto — Usar um caminho de modelo no estilo OpenRouter com um provedor direto:

[WARN] OpenAI: model "google/gemini-3.5-flash" looks like an OpenRouter path.
Direct providers use bare model names (e.g., "gpt-4o").
To use OpenRouter models, set method to 'llm' instead.

Provedor incorreto — Usar um modelo de um provedor totalmente diferente:

[WARN] Gemini: model "claude-sonnet-4-6" is an Anthropic model.
This provider (gemini) cannot serve Anthropic models.
Use --method anthropic or set "method": "anthropic" in config.

Modelo obsoleto ou com erro de digitação — Na primeira chamada da API, o rosetta busca a lista de modelos ativos do provedor e verifica o seu modelo em relação a ela:

[WARN] Gemini: model "gemini-1.5-flash" not found in available models.
Similar models: gemini-2.0-flash, gemini-2.5-flash, gemini-2.5-pro
The API call will proceed — the provider will give the final verdict.

:::note Estes são avisos, não erros A validação de modelo registra avisos, mas não bloqueia a chamada da API. A API do provedor dá o veredito final — o nome de um modelo futuro pode corresponder a um padrão diferente, e não queremos bloquear com base em heurísticas. :::


google-translate — Google Cloud Translation API

Integração direta com a Google Cloud Translation API v2. Usa a API REST — sem SDK, sem conta de serviço. Apenas a chave da API.

Quando usar: Grandes volumes de pares de strings chave-valor onde velocidade e custo importam mais do que nuances. Suporta mais de 130 idiomas nativamente.

Limitações:

  • ⚠️ Não é compatível com Markdown. Irá corromper blocos de código, shortcodes e variáveis de interpolação.
  • Sem controle de registro/tom
  • Sem coaching ou aplicação de terminologia
npx i18n-rosetta sync --method google-translate

:::tip Detecção automática Se apenas GOOGLE_TRANSLATE_API_KEY estiver configurado (sem chave do OpenRouter), o rosetta muda automaticamente para o Google Translate. Nenhuma alteração de configuração é necessária. :::

deepl — API do DeepL

Integração direta com a API de tradução do DeepL. Suporta glossários para uma terminologia consistente.

Quando usar: Idiomas europeus onde o DeepL se destaca (alemão, francês, espanhol, holandês, polonês, etc.). O suporte a glossário aplica uma terminologia consistente sem dados de coaching.

Recursos:

  • ✅ Detecção automática de endpoint gratuito/pro (sufixo :fx em chaves gratuitas)
  • ✅ Criação e gerenciamento de glossários
  • ✅ Controle de nível de formalidade
  • ⚠️ Não é compatível com Markdown — apenas pares chave-valor

Configuração:

{
"pairs": {
"en:de": { "method": "deepl" }
}
}
export DEEPL_API_KEY=your-key-here

Obtenha sua chave em deepl.com/pro-api.

microsoft-translator — Azure Cognitive Services

Integração direta com a Microsoft Translator Text API v3.

Quando usar: Ambientes corporativos com infraestrutura Azure existente. Suporta mais de 100 idiomas, incluindo muitos que o Google Translate não cobre.

Recursos:

  • ✅ Até 100 segmentos por solicitação (alto rendimento)
  • ✅ Parâmetro de região opcional para otimização de latência
  • ⚠️ Não é compatível com Markdown — apenas pares chave-valor
  • ⚠️ Sem tradução de conteúdo — apenas pares chave-valor

Configuração:

{
"pairs": {
"en:ar": { "method": "microsoft-translator" }
}
}
export MICROSOFT_TRANSLATOR_API_KEY=your-key
export MICROSOFT_TRANSLATOR_REGION=global # optional

Obtenha sua chave no Portal do Azure → Cognitive Services → Translator.

libretranslate — Tradução Auto-hospedada

Tradução de código aberto auto-hospedada usando o LibreTranslate. Roda localmente ou na sua própria infraestrutura — zero custos de API, total soberania de dados.

Quando usar: Projetos que exigem tradução offline, conformidade com privacidade de dados (GDPR) ou operação com custo zero. Especialmente útil para pipelines de CI que não devem depender de APIs externas.

Recursos:

  • ✅ Auto-hospedado — sem chamadas de API externas
  • ✅ Gratuito e de código aberto (AGPL-3.0)
  • ✅ Implantação via Docker disponível
  • ⚠️ Não é compatível com Markdown — apenas pares chave-valor
  • ⚠️ Sem tradução de conteúdo — apenas pares chave-valor
  • ⚠️ A qualidade varia de acordo com o par de idiomas

Configuração:

# Run LibreTranslate locally with Docker
docker run -d -p 5000:5000 libretranslate/libretranslate

# Configure (optional — defaults to localhost:5000)
export LIBRETRANSLATE_API_URL=http://localhost:5000/translate
{
"pairs": {
"en:es": { "method": "libretranslate" }
}
}

api — API de Tradução Remota

Um cliente HTTP leve (thin client) para endpoints de tradução hospedados pela comunidade ou protegidos por IP. O Rosetta envia as chaves e recebe as traduções de volta — ele não contém nenhuma lógica de tradução.

Quando usar: Quando os métodos de tradução são hospedados no lado do servidor (por exemplo, dados de coaching proprietários, modelos ajustados, pipelines FST que não podem ser distribuídos).

{
"pairs": {
"en:crk": {
"method": "api",
"endpoint": "https://api.example.com/v1/translate",
"apiKey": "your-key"
}
}
}

:::note Tradução Comunitária Compatível com OCAP O método api é a ponte para a tradução hospedada pela comunidade compatível com OCAP. Comunidades indígenas e de idiomas minoritários podem hospedar seus próprios endpoints de tradução — mantendo dados de coaching, modelos ajustados e a propriedade intelectual linguística sob controle da comunidade — enquanto o Rosetta se conecta a eles como um cliente leve.

Veja Apoiar um Idioma com Poucos Recursos para o passo a passo completo de hospedagem comunitária, e Servindo um Método via API para os requisitos do endpoint. :::


Configuração por Par de Idiomas

O verdadeiro poder está em misturar métodos por par de idiomas:

i18n-rosetta.config.json
{
"version": 3,
"pairs": {
"en:fr": { "method": "deepl" },
"en:ja": { "method": "openai", "model": "gpt-4o" },
"en:ko": { "method": "gemini" },
"en:ar": { "method": "microsoft-translator" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}

Isso traduz o francês via DeepL (suporte a glossário), o japonês via OpenAI (qualidade), o coreano via Gemini (nível gratuito), o árabe via Microsoft Translator (cobertura) e o Cree das Planícies via um plugin com coaching (especializado).

Plugins

Plugins são receitas de tradução pré-empacotadas para pares de idiomas específicos. Eles são manifestos em JSON — não código — que dizem ao rosetta qual método usar, com quais configurações e qual qualidade foi avaliada.

:::tip Do ambiente de avaliação (eval harness) para a produção em um comando Plugins desenvolvidos e comprovados no ambiente de avaliação podem ser instalados diretamente — o método que você valida lá é implantado aqui com um único comando plugin install. Veja Avaliação de MT para o fluxo de trabalho de avaliação completo. :::

i18n-rosetta plugin install ./french-formal-v1/
i18n-rosetta plugin list
i18n-rosetta plugin remove french-formal-v1

Veja a Especificação de Plugin para o formato completo do manifesto.


Trocando de Provedores

Mudando de método? O formato do modelo e a variável de ambiente mudam — aqui está o mapa:

OpenRouter → Provedor Direto

i18n-rosetta.config.json
{
"pairs": {
"en:fr": {
- "method": "llm",
- "model": "openai/gpt-4o"
+ "method": "openai",
+ "model": "gpt-4o"
}
}
}
Environment variables
- export OPENROUTER_API_KEY=sk-or-v1-...
+ export OPENAI_API_KEY=sk-proj-...

Principais diferenças:

  • O OpenRouter usa o formato provider/model (ex.: openai/gpt-4o). Provedores diretos usam apenas os nomes dos modelos (ex.: gpt-4o).
  • Cada provedor direto tem sua própria variável de ambiente (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY).
  • Se você usar o formato de modelo incorreto, o rosetta irá avisá-lo — veja Validação de Modelo.

Provedor Direto → OpenRouter

i18n-rosetta.config.json
{
"pairs": {
"en:ja": {
- "method": "anthropic",
- "model": "claude-sonnet-4-6"
+ "method": "llm",
+ "model": "anthropic/claude-sonnet-4-6"
}
}
}

:::tip Quando usar OpenRouter vs Direto Use o OpenRouter quando quiser alternar entre modelos sem alterar as variáveis de ambiente, ou quando quiser acesso a mais de 200 modelos a partir de uma única chave. Use provedores diretos quando quiser um faturamento mais simples, menor latência (sem intermediários) ou acesso a recursos específicos do provedor, como o cache de prompt da Anthropic. :::


Comparação de Custos

Custo aproximado por 1.000 chaves traduzidas (assume ~10 tokens por chave, 30 chaves por lote):

MétodoCusto / 1K ChavesVelocidadeQualidadeIdeal Para
gemini (Flash)Gratuito (dentro do nível)RápidaBoaIniciantes, projetos pessoais
google-translate~$0.02Muito RápidaAdequadaAlto volume, idiomas europeus
deepl~$0.02RápidaBoaIdiomas europeus, terminologia
microsoft-translator~$0.01RápidaAdequadaAmbientes Azure, ampla cobertura de idiomas
libretranslateGratuito (auto-hospedado)VariávelRazoávelAmbientes isolados (air-gapped), GDPR, pipelines de CI
gemini (Pro)~$0.07MédiaMuito boaFoco em qualidade, cota gratuita
openai (GPT-4o-mini)~$0.01RápidaBoaLLM econômico
openai (GPT-4o)~$0.10MédiaMuito boaFoco em qualidade
anthropic (Haiku)~$0.01RápidaBoaLLM econômico
anthropic (Sonnet)~$0.10MédiaMuito boaFoco em qualidade
anthropic (Opus)~$0.50LentaExcelenteQualidade máxima
llm (OpenRouter)Varia por modeloVariávelVariávelComparação de modelos, experimentação

:::note Estas são estimativas Os custos reais dependem do tamanho do texto de origem, do tamanho do lote e das alterações de preços do provedor. Verifique a página de preços atual de cada provedor para obter as taxas exatas. :::


Veja Também