Перейти к основному содержанию

Конвертер PO в MO

Компилируйте файл источника трансляции .po GNU gettext в двоичный файл .mo, готовый для PHP, Python, WordPress или любого приложения на основе gettext. Работает полностью в вашем браузере — без загрузки.

Ввод

Drop a file or browse
One file · text

Читается как текст UTF-8 и вставляется прямо в поле выше.

Вывод

Your compiled .mo file will appear here to download.
Это было полезно?

Руководства

Файл .po — это редактируемая часть трансляции GNU gettext — простой текст, одна пара msgid/msgstr для каждой строки. Однако ничто, что действительно загружает трансляции во время выполнения, не читает её напрямую: PHP, Python, glibc и WordPress все ожидают скомпилированный двоичный формат .mo (Machine Object), обычно производимый инструментом командной строки msgfmt. Этот конвертер выполняет тот же шаг компиляции в вашем браузере, поэтому вы можете перейти от .po к .mo без установки gettext или цепочки инструментов PHP/Python.

Как использовать

Вставьте содержимое вашего файла .po в текстовое поле или загрузите файл напрямую — в любом случае файл никогда не покидает ваш браузер. Нажмите Компилировать в MO и загрузите полученный messages.mo.

Что поддерживается

  • Многостроковые строкиmsgid/msgstr, разделённые на несколько кавычек, объединяются обратно, как и в msgfmt.
  • Формы множественного числаmsgid_plural и индексированные msgstr[0], msgstr[1], … компилируются в закодированное нулём множественное число gettext, поэтому поиск через ngettext()/_n() работает правильно.
  • Контексты сообщенийmsgctxt включается в скомпилированный ключ ровно так, как ожидают pgettext()/_x().
  • Нечёткие и непереведённые записи пропускаются, соответствуя поведению msgfmt по умолчанию (без --use-fuzzy). Строка, помеченная как #, fuzzy, — это грубое предположение машины, которое переводчик не подтвердил — отправка её как реального перевода будет хуже, чем возврат к исходному тексту, поэтому она исключается из скомпилированного каталога, а не доверяется.
  • Устаревшие записи (с префиксом #~, оставленные msgmerge когда строка исчезает из источника) удаляются, как и при реальной компиляции.

Конфиденциальность

Всё происходит на клиентской стороне — синтаксический анализ текста .po и сборка двоичного файла .mo выполняются в вашем браузере. Ничего не загружается на сервер.

Почему мой переведённый текст не появляется в файле .mo?

Проверьте, помечена ли строка как #, fuzzy в файле .po. Нечёткие строки намеренно исключаются из скомпилированного каталога (см. выше) — удалите флаг fuzzy после того, как вы подтвердите, что перевод правильный, затем перекомпилируйте.

Работает ли скомпилированный файл с WordPress?

Да — WordPress (и любой другой потребитель PHP gettext/Gettext_PO) читает стандартные файлы .mo. Поместите скомпилированный файл в папку languages/ вашей темы или плагина, используя ожидаемое имя файла <textdomain>-<locale>.mo.

Мне нужно пойти в другую сторону, от скомпилированного .mo обратно к редактируемому .po

Это отдельный шаг декомпиляции — инструмент MO в PO планируется. А пока большинство редакторов, поддерживающих gettext (Poedit, msgunfmt из самого gettext), могут открывать файлы .mo непосредственно.

Для редактирования других структурированных форматов трансляции/конфигурации см. Форматтер файлов Java Properties.

gettextpo filemo filemsgfmttranslation filei18nl10nlocalizationwordpress translationcompile po

Другие способы использовать этот инструмент

REST API

curl -X POST https://api.iotools.cloud/v1/tool/po-to-mo \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "po": "#\nmsgid \"\"\nmsgstr \"\"\n\"Content-Type: text/plain; …"
  }'

Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.

Спросите у ИИ-агента

Use the IOTools `po-to-mo` tool (PO to MO Converter) on this input:

YOUR_INPUT_HERE

Вставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.

Виджет для встраивания

<iframe
  src="https://iotools.cloud/embed/po-to-mo/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Конвертер PO в MO — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Вставьте это на свою страницу — бесплатно, без ключа, нужна лишь обратная ссылка.

Стоимость вызоваОт 5 кредитов

Также доступно через

Нравятся инструменты? Уберите рекламу.

Один платёж навсегда убирает всю рекламу с вашего аккаунта. Без подписки, без слежки.