.po и .mo: где WordPress хранит переводы и почему один файл не работает без другого
.po — это рабочий текстовый файл. В нём переводчик видит исходные строки, контекст и может править их вручную. .mo — это уже скомпилированная бинарная версия, которую WordPress и плагины читают быстрее. Если загрузить только .po, перевод часто просто не подхватится.
Для локализации сайта обычно нужен такой порядок:
• собрать или выгрузить .po из темы/плагина;
• перевести строки и проверить одинаковые плейсхолдеры %s, %1$s;
• сохранить рядом пару файлов с одинаковым именем, но разным расширением;
• положить их в правильную папку языка, чтобы система нашла файл автоматически.
Самая частая ошибка — править .mo вручную или переименовывать файлы как попало. WordPress ищет совпадение по домену и языку, поэтому достаточно одной буквы мимо — и перевод не загрузится. Ещё одна проблема — битые кодировки и потерянные переносы: в интерфейсе это видно как кривые символы или пустые строки. 🛠
Если сайт многоязычный, держите .po как исходник, а .mo — как готовый артефакт. Тогда перевод проще обновлять, переносить между проектами и не ломать при следующей правке темы или плагина.
Локализация сайтов WordPress
@wp_translation_localization_ww
.po и .mo: где WordPress хранит переводы и почему один файл не работает без другого
Этот пост опубликован в Telegram-канале Локализация сайтов WordPress. Подписаться можно по ссылке: @wp_translation_localization_ww.