L10n.dev - AI Localization Agent
O Agente de Localização de IA adiciona localização profissional. Em vez de carregar grandes arquivos i18n no contexto da IA, ele os traduz no lado do servidor via MCP (o pacote ai-l10n-mcp, construído sobre o SDK e CLI ai-l10n), economizando tokens e mantendo o agente focado na codificação. Ele preserva formatos de arquivo, placeholders e traduções existentes, suporta 165 idiomas, aplica glossários persistentes e instruções linguísticas personalizadas, e traduz apenas strings alteradas para uma localização rápida e pronta para produção.
Documentação
ai-l10n-mcp
Servidor MCP que dá acesso a agentes de IA ao l10n.dev — um serviço profissional de localização projetado especificamente para arquivos de i18n de software.
Quando um agente de IA precisa traduzir seu aplicativo, a abordagem ingênua é colar o conteúdo do arquivo no chat. Isso falha rapidamente: arquivos de localização são grandes, formatos são rígidos, placeholders devem sobreviver verbatim, glossários se perdem entre sessões, e o agente não tem memória entre execuções. Este MCP substitui esse fluxo de trabalho frágil por um mecanismo de localização dedicado que o agente chama como ferramenta — obtendo resultados de nível profissional sem desperdiçar a janela de contexto com o conteúdo bruto dos arquivos.
Pense nisso como dar ao seu agente de IA um copiloto profissional de localização: o agente lida com intenção e orquestração; o l10n.dev lida com a tradução real com precisão, consistência e garantias de formato.
Por que usar isso em vez de perguntar diretamente ao seu agente de IA?
| AI agent alone | ai-l10n-mcp | |
|---|---|---|
| Suporte a 165 idiomas | Varia, frequentemente limitado | ✅ Cobertura completa |
| Manuseio de arquivos grandes | Trunca ou ignora | ✅ Tratado inteiramente no servidor |
| Preservação de formato | Frágil — quebra placeholders, chaves, estrutura | ✅ Garantido — formato de origem validado após a tradução |
| Consistência de glossário | Perdido entre sessões e partes de arquivos | ✅ Glossário persistido aplicado em todos os arquivos e partes |
| Pós-edição necessária? | Geralmente sim | ✅ Não — saída pronta para produção |
| Custo de tokens | Alto — arquivo bruto no contexto | ✅ Baixo — apenas metadados retornados |
| Atualizações incrementais | Leitura completa e retradução a cada vez | ✅ Apenas strings novas/alteradas |
Recursos
- 165 idiomas — traduza para toda a gama de idiomas mundiais em uma única chamada
- Formato garantido — JSON, JSONC, Flutter ARB, YAML, PO (gettext), XLIFF, MD e todos os formatos de i18n baseados em texto; placeholders, chaves e estrutura preservados e validados após a tradução
- Detecção automática de idiomas de destino a partir da estrutura do projeto
- Glossário persistente — gere um glossário a partir do seu conteúdo, salve-o e tenha-o aplicado automaticamente em cada arquivo e parte subsequente para terminologia consistente
- Instruções linguísticas — salve regras de estilo/tom por par de idiomas (ex.: "Use tom formal")
- Tradução incremental — detecção de alterações baseada em hash ignora strings já traduzidas, economizando cota e protegendo traduções existentes
- Controle de qualidade proativo — verifica instruções e glossário para cada par de idiomas antes de traduzir, não depois
Conecte Claude Desktop, Cursor, Windsurf, GitHub Copilot, OpenAI Codex ou qualquer agente compatível com MCP diretamente ao mecanismo de tradução do l10n.dev.
Instalação e Configuração
Obtendo uma chave de API
Crie uma conta gratuita e obtenha sua chave de API em https://l10n.dev/ws/api-keys
Dica: Em vez de definir
L10N_API_KEYem cada configuração, você pode pedir à IA para armazenar sua chave coml10n_set_api_key. A chave é salva em~/.ai-l10n/config.jsone usada automaticamente.
Claude Desktop
No Claude Desktop, abra Configurações > Desenvolvedor > Editar Config. O Claude Desktop abrirá o arquivo de configuração MCP correto para sua instalação. No macOS, isso é tipicamente ~/Library/Application Support/Claude/claude_desktop_config.json. No Windows, o caminho de suporte pode variar conforme a instalação, então prefira Editar Config em vez de navegar manualmente. Adicione:
{
"mcpServers": {
"l10n": {
"command": "npx",
"args": ["-y", "ai-l10n-mcp"],
"env": {
"L10N_API_KEY": "your-api-key-here"
}
}
}
}
Cursor
Abra Personalizar no Cursor para adicionar e gerenciar servidores MCP. Para uma configuração baseada em arquivo, crie um destes configs:
~/.cursor/mcp.jsonpara uma configuração de usuário.cursor/mcp.jsonno seu projeto para uma configuração específica do workspace
Adicione:
{
"mcpServers": {
"l10n": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ai-l10n-mcp"],
"env": {
"L10N_API_KEY": "your-api-key-here"
}
}
}
}
Windsurf
No Windsurf, abra o painel MCPs no Cascade, ou vá para Configurações Devin > Cascade > Servidores MCP. Se precisar adicionar manualmente, edite ~/.codeium/windsurf/mcp_config.json e adicione:
{
"mcpServers": {
"l10n": {
"command": "npx",
"args": ["-y", "ai-l10n-mcp"],
"env": {
"L10N_API_KEY": "your-api-key-here"
}
}
}
}
GitHub Copilot (VS Code)
Abra a Paleta de Comandos e selecione MCP: Abrir Configuração do Usuário. Alternativamente, crie um arquivo .vscode/mcp.json no seu workspace ou nas configurações do usuário. Adicione:
{
"servers": {
"l10n": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ai-l10n-mcp"],
"env": {
"L10N_API_KEY": "your-api-key-here"
}
}
}
}
OpenAI Codex (CLI e IDE)
Adicione a ~/.codex/config.toml para uma configuração de usuário, ou .codex/config.toml em um projeto confiável:
[mcp_servers.l10n]
command = "npx"
args = ["-y", "ai-l10n-mcp"]
[mcp_servers.l10n.env]
L10N_API_KEY = "your-api-key-here"
Você também pode adicioná-lo a partir do terminal:
codex mcp add l10n --env L10N_API_KEY=your-api-key-here -- npx -y ai-l10n-mcp
Claude Code (CLI e extensão VS Code)
Adicione o servidor a partir do terminal:
claude mcp add --env L10N_API_KEY=your-api-key-here --transport stdio l10n -- npx -y ai-l10n-mcp
Para uma configuração de projeto compartilhado, o Claude Code também pode armazenar servidores MCP em um arquivo .mcp.json na raiz do seu projeto.
Ferramentas Disponíveis
Tradução
| Ferramenta | Descrição |
|---|---|
l10n_translate_file | Traduzir um arquivo de origem i18n para um ou mais idiomas de destino |
l10n_detect_project_structure | Escanear um arquivo de origem para detectar tipo de estrutura, idioma de origem, idiomas de destino e caminhos de arquivos de destino |
Ambas as ferramentas detectam códigos de idioma em pastas de código de idioma (locales/en/common.json,
relatados como folder-based) e em nomes de arquivo (file-based) — seja o nome o código
em si (locales/en.json) ou o contenha junto com outras partes (app_en.arb,
locales/emails.en.json, locales/en-US.common.json, messages_en_US.properties). Para
convenções de nomenclatura não reconhecidas, passe languageCodeRegex, uma regex contendo um
grupo (?<language>...), ex.: ^emails\.(?<language>[\w-]+)\.json$. O texto ao redor do
grupo é reutilizado para arquivos de destino, então emails.en.json produz emails.ru-RU.json.
Instruções Linguísticas
| Ferramenta | Descrição |
|---|---|
l10n_list_instructions | Listar todas as instruções linguísticas salvas (tom, estilo, voz da marca) |
l10n_create_instruction | Criar uma nova instrução para um par de idiomas |
l10n_update_instruction | Atualizar uma instrução existente |
l10n_delete_instruction | Excluir uma instrução |
Glossário
| Ferramenta | Descrição |
|---|---|
l10n_list_glossaries | Listar todos os glossários salvos |
l10n_get_glossary | Obter detalhes completos e entradas de um glossário específico |
l10n_create_glossary | Criar um novo glossário vazio |
l10n_update_glossary | Atualizar nome do glossário ou status ativo |
l10n_delete_glossary | Excluir permanentemente um glossário |
l10n_add_glossary_entry | Adicionar um mapeamento de termo a um glossário |
l10n_delete_glossary_entry | Remover um mapeamento de termo de um glossário |
Conta
| Ferramenta | Descrição |
|---|---|
l10n_get_balance | Verificar saldo de caracteres restante |
l10n_set_api_key | Armazenar uma chave de API localmente para uso automático |
l10n_get_api_key_status | Verificar se uma chave de API está configurada |
Prompts Disponíveis
l10n_project_setup
Orienta na verificação e configuração de instruções linguísticas e glossários para qualidade ideal de tradução. Invoque-o no início de um novo projeto ou ao revisar as configurações do l10n.dev.
Argumentos:
sourceLanguage— código do idioma de origem (padrão:en)targetLanguages— códigos de idioma de destino separados por vírgula (ex.:es,fr,de)
l10n_setup_automation
Escaneia o projeto em busca de arquivos de origem i18n (usando l10n_detect_project_structure), verifica instruções linguísticas, glossário e saldo, e então configura interativamente a tradução totalmente automatizada via GitHub Actions ou scripts npm.
Para GitHub Actions, orienta por quatro opções de gatilho:
- A) Em cada push para
main— traduzir e commitar de volta diretamente - B) Em pull requests — traduzir e abrir um PR para revisão
- C) Em um agendamento — traduzir diariamente ou em um cron
- D) Apenas gatilho manual —
workflow_dispatch
Escreve ai-l10n.config.json e .github/workflows/translate.yml (ou atualiza scripts package.json), então informa onde adicionar a chave de API e o que acontece no próximo gatilho.
Argumentos:
sourceLanguage— código do idioma de origem (padrão:en)targetLanguages— códigos de idioma de destino separados por vírgula (ex.:es,fr,de)
Exemplo de Fluxo de Trabalho
Usuário: "Traduza meu aplicativo para espanhol e francês"
Claude (com este servidor MCP) fará:
- Chamar
l10n_list_instructions— não encontra instrução para os pares de idiomases/fr - Perguntar: "Nenhuma instrução encontrada para espanhol/francês — gostaria de definir uma regra de tom/estilo antes de traduzir? (ex.: formal, casual, manter termos da marca sem tradução)"
- Usuário diz: "O tom deve ser informal, é para um aplicativo de comida na América Latina"
- Chamar
l10n_create_instructioncom a regra de estilo - Chamar
l10n_list_glossaries— não encontra glossário ativo paraes/fr - Perguntar: "Nenhum glossário encontrado para espanhol/francês — habilitar geração de glossário para esta execução? Isso salva termos-chave para traduções futuras consistentes."
- Usuário diz: "Sim"
- Detectar que
es.jsonefr.jsonjá existem — perguntar: "Os arquivos de destino já existem — habilitar modo incremental para pular strings inalteradas e economizar cota?" - Usuário diz: "Sim"
- Chamar
l10n_translate_filecomsourceFile,targetLanguages: ["es", "fr"],instruction,generateGlossary: true,translateOnlyNewStrings: true - Relatar resultados
Tradução Incremental
Para formatos baseados em JSON, habilite translateOnlyNewStrings: true para pular strings que já estão traduzidas. Um hash de cada string de origem (não o conteúdo em si) é armazenado no servidor l10n.dev para detecção de alterações — apenas strings adicionadas ou alteradas são traduzidas, economizando sua cota de caracteres.
Nota: Na primeira tradução, apenas strings adicionadas são traduzidas, pois a tabela de hash está vazia para detectar strings alteradas.
Automação: CLI e GitHub Actions
Para automação CI/CD e uso de linha de comando, veja:
- ai-l10n CLI — traduzir arquivos a partir do terminal ou pipelines de CI
- GitHub Action — tradução automática em push, PR ou gatilho manual
Preços
- Plano gratuito — 10.000 caracteres grátis todo mês, sem necessidade de cartão de crédito.
- Pague conforme o uso — Preços acessíveis baseados em caracteres, sem assinatura necessária.
- Pacotes atuais — Visite l10n.dev/#pricing para preços atualizados.
Privacidade e Segurança
- Sem retenção de dados — O texto de origem e as traduções não são armazenados nos servidores do l10n.dev além do tempo necessário para processar a solicitação.
- Comunicação criptografada — Todas as chamadas de API usam HTTPS.
- Privacidade em primeiro lugar — Construído por desenvolvedores para desenvolvedores, com privacidade, confiabilidade e qualidade como prioridades principais.
Suporte
| support@l10n.dev | |
| 🐛 Problemas | GitHub Issues |
| 📚 Documentação da API | api.l10n.dev/doc |
| 🌐 Site | l10n.dev |
Licença
MIT