Переклад 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
Запитання
Чи працює це для Rails en.yml?
Так. Кореневий ключ 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-запиті. Документація CLI · GitHub Action
Продовжуйте
Довідник CLI · Довідник перевірки · Переклад у браузері · Безкоштовна перевірка · Конвертація форматів · Псевдолокалізація
Інші формати: JSON · .po · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML