Polyglot
Suas strings de app e site em 43 idiomas, traduzidas pelo seu próprio modelo e verificadas string por string.
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

O que ele faz
O Polyglot pega nas strings em inglês que seu app e seu site já têm e as escreve em até 42 idiomas adicionais, nos arquivos e pastas que cada plataforma espera, usando um modelo que você executa por conta própria. Cada string retorna verificada: se um placeholder, uma tag ou um nome que você mantém se perder, ou se a resposta não estiver no alfabeto do idioma, a string é solicitada novamente, e uma string que ainda falhar é deixada de fora e reportada em vez de ser enviada quebrada.
- Os formatos que você usa. Arquivos de mensagens JSON (i18next, vue-i18n, next-intl, react-intl), ARB do Flutter, strings.xml do Android, .strings da Apple, .po do gettext e documentos Markdown, escritos em values-de, de.lproj, app_de.arb ou locale/de.
- Verificado string por string. %1$s, {name}, {{count}}, tags HTML, quebras de linha, URLs e seus nomes mantidos devem retornar exatamente; o alfabeto correto, sem respostas vazias ou descontroladas, nada deixado em inglês.
- Formas plurais reais. O russo tem one, few, many e other, o árabe seis formas, o japonês uma única forma: plurais do Android e mensagens ICU seguem as regras próprias de cada idioma.
- Apenas o que mudou. Cada boa tradução é lembrada, então editar uma string em inglês envia uma string, não o arquivo inteiro.
- Seu tom e seus termos. Uma descrição do produto, um tom, nomes nunca traduzir e um glossário vão em cada solicitação, e seus comentários viajam junto como notas.
- Seu modelo, sua máquina. Qualquer servidor OpenAI-compatible: vLLM, llama.cpp, Ollama ou LM Studio, ou uma API hospedada se você escolher. Sem cobrança por palavra.
Testado em um modelo real
- Um modelo real, seis formatos, cinco alfabetos: um app de exemplo com 70 strings em JSON, ARB do Flutter, Android, .strings da Apple, gettext e Markdown, para alemão, russo, japonês, árabe e espanhol, com um modelo aberto de 27 bilhões de parâmetros em nossa própria máquina: 346 de 350 strings passaram nas verificações na entrada, em 7,5 minutos em um servidor compartilhado ocupado.
- As quatro que não passaram foram erros em nossas verificações, não do modelo: um empréstimo em alemão, um endereço de e-mail e uma mensagem plural em japonês. Corrigimos as verificações; a próxima execução enviou apenas essas quatro strings e escreveu todas as 350 em 45 segundos.
- Formas plurais corretas de primeira: one, few, many e other para russo, seis formas para árabe, uma única para japonês.
- Todas as 42 línguas: as 22 cadeias web do exemplo em todas as línguas que o Polyglot conhece, do amárico ao chinês tradicional: 924 de 924 cadeias escritas, em 15 minutos.
- E o que as verificações não veem: em khmer, "You are offline" voltou como "you are online". É um khmer perfeito, por isso passou. É por isso que a documentação pede um falante nativo para as cadeias mais importantes.
O que está incluído
O tradutor
Lotes para o seu modelo, verificações, novas tentativas com o problema identificado, uma memória de tradução, línguas em paralelo.
Seis formatos
Leitores e escritores que preservam as sequências de escape, pastas e regras de plural de cada plataforma.
As verificações
Utilizáveis por si só: verifique uma tradução que já tenha contra a sua fonte em inglês.
Uma aplicação de exemplo
Uma pequena aplicação nos seis formatos com a sua configuração, para experimentar antes da sua própria.
Requisitos
- Linux ou macOS com Python 3.9 ou mais recente; nada a instalar via pip.
- Um servidor de modelos compatível com OpenAI com um modelo de instrução multilingue; o nosso é um modelo aberto de 27 mil milhões de parâmetros.
Boas informações
- As verificações detetam o que quebra uma aplicação, não o significado errado: tenha um falante nativo a ler a ficha do produto, o paywall e o texto legal.
- As entradas de plural gettext permanecem em inglês nesta versão.
- A velocidade depende do seu modelo.
- As verificações são gratuitas e de código aberto: translation-checks no GitHub. O kit adiciona o tradutor, os seis formatos, as formas de plural, a memória e um ano de atualizações.
From our field notes
Perguntas
Quais línguas?
Árabe, amárico, búlgaro, checo, alemão, grego, espanhol, persa, finlandês, filipino, francês, gaélico escocês, hebraico, crioulo haitiano, húngaro, arménio, indonésio, italiano, japonês, khmer, canarês, coreano, macedónio, malaio, neerlandês, norueguês, oromo, punjabe, polaco, português (Brasil), romeno, russo, eslovaco, esloveno, sérvio, sueco, tailandês, turco, ucraniano, vietnamita e chinês, simplificado e tradicional, a partir do inglês.
Precisa de uma GPU?
O Polyglot em si não; o seu servidor de modelos decide. Um modelo pequeno corre numa CPU, lentamente; uma GPU faz de um ficheiro grande em muitas línguas uma questão de minutos.
O que acontece com uma string que o modelo erra?
Ela é solicitada novamente de forma isolada, com o problema identificado. Se ainda assim falhar, é excluída do arquivo, de modo que seu app exibe a string em inglês e a execução a lista com o motivo. Nada quebrado é gravado.
Posso usar uma API hospedada em vez disso?
Sim: qualquer serviço com um endpoint de chat compatível com OpenAI. Coloque a URL base e o nome do modelo em polyglot.json e a chave em um arquivo.
Atualizado: