Перевести файлы Mozilla Fluent .ftl
Сообщения Fluent могут содержать переменные, ссылки на термины и целые выражения select. KAERIS переводит каждую текстовую часть и сохраняет окружающую структуру, затем проверяет переменные и ссылки на термины.
Эту страницу перевёл KAERIS и проверил каждую строку обратным переводом. Носитель языка ещё не проверял. Оригинал на английском
Как устроен файл Fluent
Сообщения имеют вид id = text, с переменными { $name }, ссылками на термины { -brand-name }, атрибутами (.title) и выражениями select с вариантами [one] и значением по умолчанию *. Комментарии начинаются с #.
# 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 }
На что обратить внимание при переводе Fluent
Переменные и термины
{ $name }и{ -brand-name }должны остаться. В реальном примере ниже оба остались.Выражения Select
Каждый вариант — это отдельный текст для перевода. Значение по умолчанию
*остается отмеченным; в разобранном примере выше два варианта электронной почты являются отдельными строками.Термины
Термин, такой как
-brand-name, является отдельной записью; перевод без него сообщается как отсутствующий.Комментарии
Комментарии из исходного файла повторно включаются в выходной файл.
Реальный запуск: переведено на немецкий и проверено
Реальный запуск, 27 октября 2026 г., без ручного редактирования: kaeris translate en.ftl --langs de с kaeris 0.2.35, 2,1 секунды, модель google/gemini-2.5-flash-lite, бесплатный тариф по умолчанию. Ниже приведен немецкий файл, который он создал, и что говорит kaeris check о нем.
# 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
Что KAERIS делает с этим
Структура сохранена
Сообщения, термины, атрибуты и варианты select обходятся и записываются обратно в той же форме.
Ссылки подсчитаны
Потерянная
{ $name }или{ -term }обнаруживается без модели.Бесплатная проверка для этого формата
Бесплатная проверка на /check считывает этот формат и работает без ключа или учетной записи. Команда терминала
kaeris checkтакже считывает его: она обрабатывает все 13 форматов начиная с kaeris 0.2.35, с теми же правилами и без отправки данных куда-либо.
Выполните в три шага
Установите CLI
Выполните
pip install kaeris.Перевести файл
Выполните
kaeris translate locales/en/app.ftl --langs de,ja.Проверить результат
Загрузите исходный файл и переведенный .ftl на страницу бесплатной проверки.
pip install kaeris kaeris translate locales/en/app.ftl --langs de,ja --verify
Вопросы
Поддерживаются ли выражения select?
Да. Каждый вариант переводится отдельно, и структура записывается обратно.
Что насчет терминов вроде -brand-name?
Они являются отдельными записями и сравниваются с исходным текстом; перевод, в котором один из них отсутствует, сообщается как отсутствующий ключ.
Это бесплатно?
Да, без учетной записи: 10 000 символов на файл и до 8 языков за запуск. Бесплатный API-ключ увеличивает лимит файлов до 50 000 символов. Пожизненная лицензия стоит $79 один раз, при использовании вашего собственного ключа OpenRouter; ежемесячные планы начинаются от $19. Цены
Могу ли я запускать его из терминала или в CI?
Да. pip install kaeris, затем kaeris translate locales/en/app.ftl --langs de,ja. GitHub Action выполняет ту же операцию перевода в pull request. Документация CLI · GitHub Action
Продолжайте
Справочник по CLI · Справочник по проверке · Перевести в браузере · Бесплатная проверка · Конвертировать форматы · Псевдолокализация
Другие форматы: JSON · YAML · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Android XML