Перевести

Перевод файлов .po gettext

Файл .po имеет текстовые ключи: английское предложение является ключом. Контексты, слоты для множественного числа и переменные в стиле Python находятся вокруг этого текста. KAERIS сохраняет их и записывает слоты для множественного числа, необходимые целевому языку.

Эту страницу перевёл KAERIS и проверил каждую строку обратным переводом. Носитель языка ещё не проверял. Оригинал на английском

Как устроен файл .po

Каждая запись имеет msgid (исходный текст) и msgstr (перевод). msgctxt различает два одинаковых предложения. Множественное число использует msgid_plural и один msgstr[n] для каждой формы, а строка Plural-Forms в заголовке указывает, сколько форм имеет язык.

Исходный файлen.po
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: app/views.py:12
msgid "Welcome back, %(name)s!"
msgstr ""

#: app/views.py:20
msgid "%(count)d file"
msgid_plural "%(count)d files"
msgstr[0] ""
msgstr[1] ""

msgctxt "menu"
msgid "Open"
msgstr ""

msgctxt "verb"
msgid "Open"
msgstr ""

На что обратить внимание при переводе .po

Реальный запуск: переведено на немецкий и проверено

Реальный запуск, 27 октября 2026 г., без ручного редактирования: kaeris translate en.po --langs de с kaeris 0.2.35, 3,9 секунды, модель google/gemini-2.5-flash-lite, бесплатный вариант по умолчанию. Ниже приведен немецкий файл, который он написал, и что говорит kaeris check.

Результат на немецкомde.po
# Generated by KAERIS i18n Tool
# Language: de
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de\n"

msgid "Welcome back, %(name)s!"
msgstr "Willkommen zurück, %(name)s!"

msgid "%(count)d file"
msgid_plural "%(count)d files"
msgstr[0] "%(count)d Datei"
msgstr[1] "%(count)d Dateien"

msgctxt "menu"
msgid "Open"
msgstr "Öffnen"

msgctxt "verb"
msgid "Open"
msgstr "Öffnen"
kaeris checkexit code 0
$ kaeris check --source en.po --langs de
✓ de: complete & placeholder-safe
✓ all locales complete & placeholder-safe

Что KAERIS делает с этим

Выполните в три шага

  1. Установите CLI

    Выполните pip install kaeris.

  2. Перевести каталог

    Запустите kaeris translate django.po --langs de,ja. Выходные файлы называются по языку.

  3. Проверить результат

    Загрузите исходный и переведенный .po на бесплатной странице проверки, чтобы увидеть потерянные переменные и несогласованные термины.

pip install kaeris
kaeris translate locale/en/LC_MESSAGES/django.po --langs de,ja --verify

Вопросы

Обрабатывает ли он формы множественного числа для русского или арабского языков?

Заголовок множественного числа и количество слотов msgstr[n] записываются для целевого языка. При запуске на русском языке пример исходного текста дал nplurals=3 и три слота.

Что насчет msgctxt?

Контекст остается привязанным к записи, поэтому два одинаковых источника с разными контекстами являются отдельными строками. Проверка предупреждает, когда они возвращаются переведенными по-разному.

Это бесплатно?

Да, без учетной записи: 10 000 символов на файл и до 8 языков за запуск. Бесплатный API-ключ увеличивает лимит файлов до 50 000 символов. Пожизненная лицензия стоит $79 один раз, при использовании вашего собственного ключа OpenRouter; ежемесячные планы начинаются от $19. Цены

Могу ли я запускать его из терминала или в CI?

Да. pip install kaeris, затем kaeris translate django.po --langs de,ja. См. также Django. GitHub Action выполняет ту же трансляцию в pull request. Документация CLI · GitHub Action

Продолжайте

Справочник по CLI · Справочник по проверке · Перевести в браузере · Бесплатная проверка · Конвертировать форматы · Псевдолокализация

Другие форматы: JSON · YAML · ARB · XLIFF · .strings · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML