Traduce archivos Mozilla Fluent .ftl
Los mensajes Fluent pueden contener variables, referencias a términos y expresiones select completas. KAERIS traduce cada parte de texto y mantiene la estructura alrededor, luego verifica las variables y referencias a términos.
KAERIS ha traducido esta página y revisado cada línea traduciéndola de vuelta. Un hablante nativo aún no la ha revisado. Original en inglés
Cómo se construye un archivo Fluent
Los mensajes son id = texto, con variables { $name }, referencias a términos { -brand-name }, atributos (.title) y expresiones select con variantes [one] y un valor por defecto *. Los comentarios comienzan con #.
# 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 }
Qué tener en cuenta en las traducciones Fluent
Variables y términos
{ $name }y{ -brand-name }deben mantenerse. En la ejecución real abajo, ambos se conservaron.Expresiones select
Cada variante es un texto propio para traducir. El valor por defecto
*permanece marcado; en el análisis arriba, las dos variantes de email son cadenas separadas.Términos
Un término como
-brand-namees una entrada propia; una traducción que lo omite se reporta como faltante.Comentarios
Los comentarios de la fuente se reemiten con el archivo.
Una ejecución real: traducido al alemán y verificado
Una ejecución real, 27 de octubre de 2026, nada editado a mano: kaeris translate en.ftl --langs de con kaeris 0.2.35, 2.1 segundos, modelo google/gemini-2.5-flash-lite, el predeterminado de nivel gratuito. Abajo, el archivo alemán que escribió y lo que kaeris check dice sobre él.
# 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
Lo que KAERIS hace con él
Estructura mantenida
Se recorren y reescriben mensajes, términos, atributos y variantes select en la misma forma.
Referencias contadas
Una pérdida de
{ $name }o{ -term }se detecta sin modelo.Chequeo gratuito para este formato
El chequeo gratuito en /check lee este formato y funciona sin clave ni cuenta. El comando de terminal
kaeris checktambién lo lee: soporta los 13 formatos desde kaeris 0.2.35, con las mismas reglas y sin enviar nada a ningún lado.
Ejecuta en tres pasos
Instala el CLI
Ejecuta
pip install kaeris.Traduce el archivo
Ejecuta
kaeris translate locales/en/app.ftl --langs de,ja.Verifica el resultado
Sube el archivo fuente y el .ftl traducido en la página de chequeo gratuito.
pip install kaeris kaeris translate locales/en/app.ftl --langs de,ja --verify
Preguntas
¿Se soportan expresiones select?
Sí. Cada variante se traduce por separado y la estructura se reescribe.
¿Qué pasa con términos como -brand-name?
Son entradas propias y se comparan con la fuente; una traducción que omite uno se reporta como clave faltante.
¿Es gratis?
Sí, sin cuenta: 10.000 caracteres por archivo y hasta 8 idiomas por ejecución. Una clave API gratuita eleva el límite de archivos a 50.000 caracteres. La licencia vitalicia cuesta $79 una vez, con tu propia clave OpenRouter; los planes mensuales empiezan en $19. Precios
¿Puedo ejecutarlo desde la terminal o en CI?
Sí. pip install kaeris, luego kaeris translate locales/en/app.ftl --langs de,ja. El GitHub Action ejecuta la misma traducción en un pull request. Documentación CLI · GitHub Action
Seguir adelante
Referencia CLI · Referencia de verificación · Traducir en el navegador · Verificación gratuita · Convertir formatos · Pseudo-localización
Otros formatos: JSON · YAML · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Android XML