Перевод YAML-файлов локализации в стиле Rails
YAML-файл в стиле Rails начинается с кода языка, под которым все вложено, а строки содержат переменные %{name}. KAERIS переводит значения, перезаписывает корневой ключ для целевого языка и проверяет, что каждая переменная сохранилась.
Эту страницу перевёл KAERIS и проверил каждую строку обратным переводом. Носитель языка ещё не проверял. Оригинал на английском
Как устроен YAML-файл локализации
Первая строка — это локаль (en:); под ней находятся все ключи. Формы множественного числа представлены простыми ключами, такими как one и other. Списки поддерживаются. Файл, представляющий собой плоское отображение без корневой локали, также считывается, и его составные ключи остаются без изменений.
en: greeting: "Welcome back, %{name}!" inbox: one: "%{count} new message" other: "%{count} new messages" errors: blank: "can't be blank" too_short: "is too short (minimum is %{count} characters)" checkout: total: "Total: <strong>%{amount}</strong>"
На что обратить внимание при переводе YAML
Корневой ключ соответствует файлу
en:должен статьde:в немецком файле, иначе Rails его не найдет. KAERIS записывает целевой язык как корневой.%{variables} и HTML
Интерполяция Rails имеет вид
%{name}; некоторые проекты используют{{name}}. Оба варианта сравниваются с исходным кодом. Встроенные теги, такие как<strong>, проверяются таким же образом.Кавычки
Переведенное значение, которое начинается с
[,*или&, или содержит:, не является допустимым YAML, если оно не заключено в кавычки. Автор сам решает, использовать ли кавычки: в примере выходных данных значение, начинающееся с%{count}, возвращается в кавычках.Комментарии не переносятся
Комментарии YAML в исходном коде не переносятся в переведенный файл. Заметки для переводчиков храните в сервисных ключах (ключ, начинающийся с
_, не переводится) или в вашем репозитории.
Реальный запуск: переведено на немецкий и проверено
Реальный запуск, 27 октября 2026 г., без ручного редактирования: kaeris translate en.yml --langs de с kaeris 0.2.35, 3 секунды, модель google/gemini-2.5-flash-lite, бесплатный тариф по умолчанию. Ниже приведен немецкий файл, который он создал, и что говорит kaeris check.
de: greeting: Willkommen zurück, %{name}! inbox: one: '%{count} neue Nachricht' other: '%{count} neue Nachrichten' errors: blank: darf nicht leer sein too_short: ist zu kurz (mindestens %{count} Zeichen) checkout: total: 'Gesamt: <strong>%{amount}</strong>'
$ kaeris check --source en.yml --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Что KAERIS делает с этим
Структура сохранена
Вложенность, порядок ключей и списки возвращаются без изменений; корневой ключ локали перезаписывается для каждого языка.
Переменные и теги проверены
Потерянная
%{name}или<strong>обнаруживается путем подсчета, без участия модели.Бесплатная проверка для этого формата
Бесплатная проверка на /check считывает этот формат и работает без ключа или учетной записи. Команда терминала
kaeris checkтакже считывает его: она обрабатывает все 13 форматов начиная с kaeris 0.2.35, с теми же правилами и без отправки данных куда-либо.
Выполните в три шага
Установите CLI
Выполните
pip install kaeris.Перевести файл
Запустите
kaeris translate config/locales/en.yml --langs de,ja. Выходные файлы именуются по языку.Проверить результат
Загрузите исходный и переведенный файлы на бесплатную страницу проверки; она покажет потерянные переменные, теги и отсутствующие ключи.
pip install kaeris kaeris translate config/locales/en.yml --langs de,ja --verify
Вопросы
Работает ли это для en.yml в Rails?
Да. Корневой ключ en:, вложенные ключи и переменные %{name} обрабатываются. См. также страницу Rails.
Что насчет комментариев в моем YAML?
Они остаются в вашем исходном файле. Переведенный файл записывается без них.
Это бесплатно?
Да, без учетной записи: 10 000 символов на файл и до 8 языков за запуск. Бесплатный API-ключ увеличивает лимит файлов до 50 000 символов. Пожизненная лицензия стоит $79 один раз, при использовании вашего собственного ключа OpenRouter; ежемесячные планы начинаются от $19. Цены
Могу ли я запускать его из терминала или в CI?
Да. pip install kaeris, затем kaeris translate config/locales/en.yml --langs de,ja. GitHub Action выполняет тот же перевод в pull request. Документация CLI · GitHub Action
Продолжайте
Справочник по CLI · Справочник по проверке · Перевести в браузере · Бесплатная проверка · Конвертировать форматы · Псевдолокализация
Другие форматы: JSON · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML