Traduzir arquivos .ftl do Mozilla Fluent
Mensagens Fluent podem conter variáveis, referências a termos e expressões de seleção completas. KAERIS traduz cada parte do texto e mantém a estrutura ao redor, então verifica as variáveis e referências de termos.
KAERIS traduziu esta página e verificou cada linha traduzindo-a de volta. Um falante nativo ainda não revisou. Original em inglês
Como um arquivo Fluent é construído
Mensagens são id = text, com variáveis { $name }, referências de termos { -brand-name }, atributos (.title) e expressões de seleção com variantes [one] e um padrão *. Comentários começam com #.
# Shown on the home screen welcome = Welcome back, { $name }! emails = { $count -> [one] You have { $count } new email. *[other] You have { $count } new emails. } -brand-name = Firefox about = About { -brand-name }
O que observar em traduções Fluent
Variáveis e termos
{ $name }e{ -brand-name }devem permanecer. Na execução real abaixo, ambos permaneceram.Expressões de seleção
Cada variante é seu próprio texto para traduzir. O padrão
*permanece marcado; na análise acima, as duas variantes de e-mail são strings separadas.Termos
Um termo como
-brand-nameé uma entrada própria; uma tradução sem ele é relatada como ausente.Comentários
Comentários da origem são reemitidos com o arquivo.
Uma execução real: traduzido para Alemão e verificado
Uma execução real, 27 de outubro de 2026, nada editado manualmente: kaeris translate en.ftl --langs de com kaeris 0.2.35, 2,1 segundos, modelo google/gemini-2.5-flash-lite, o padrão de nível gratuito. Abaixo, o arquivo alemão que ele escreveu e o que kaeris check diz sobre ele.
# Shown on the home screen welcome = Willkommen zurück, { $name }! emails = { $count -> [one] Sie haben { $count } neue E-Mail. *[other] Sie haben { $count } neue E-Mails. } -brand-name = Firefox about = Über { -brand-name }
$ kaeris check --source en.ftl --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
O que o KAERIS faz com isso
Estrutura mantida
Mensagens, termos, atributos e variantes de seleção são percorridos e escritos de volta na mesma forma.
Referências contadas
Um
{ $name }ou{ -term }perdido é encontrado sem um modelo.Verificação gratuita para este formato
A verificação gratuita em /check lê este formato e executa sem chave ou conta. O comando de terminal
kaeris checktambém o lê: ele aceita todos os 13 formatos desde kaeris 0.2.35, com as mesmas regras e nada enviado para lugar nenhum.
Execute em três etapas
Instale o CLI
Execute
pip install kaeris.Traduza o arquivo
Execute
kaeris translate locales/en/app.ftl --langs de,ja.Verifique o resultado
Faça o upload da origem e do .ftl traduzido na página de verificação gratuita.
pip install kaeris kaeris translate locales/en/app.ftl --langs de,ja --verify
Perguntas
Expressões de seleção são suportadas?
Sim. Cada variante é traduzida por conta própria e a estrutura é escrita de volta.
E termos como -brand-name?
Eles são entradas próprias e são comparados com a origem; uma tradução que deixa um de fora é relatada como uma chave ausente.
É gratuito?
Sim, sem conta: 10.000 caracteres por arquivo e até 8 idiomas por execução. Uma chave API gratuita eleva o limite para 50.000 caracteres. A licença vitalícia custa $79 uma vez, usando sua própria chave OpenRouter; planos mensais começam em $19. Preços
Posso rodar pelo terminal ou em CI?
Sim. pip install kaeris, então kaeris translate locales/en/app.ftl --langs de,ja. O GitHub Action executa a mesma tradução em um pull request. Docs do CLI · GitHub Action
Continue
Referência do CLI · Referência de verificação · Traduzir no navegador · Verificação gratuita · Converter formatos · Pseudo-localização
Outros formatos: JSON · YAML · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Android XML