Когда работаешь с WordPress, часто возникает задача локализовать сайт под нужный язык, особенно если стандартных переводов для темы или плагина недостаточно. В этой статье подробно разберём, как самостоятельно добавить и подключить собственные языковые файлы, чтобы ваши переводы были максимально точными и не зависели от сторонних сервисов и плагинов.
Почему стоит использовать собственные языковые файлы в WordPress
WordPress использует систему gettext для локализации, которая базируется на файлах .po и .mo. По умолчанию многие темы и плагины поставляются с набором переводов, но они могут быть неполными, устаревшими или не содержать специфической терминологии вашего проекта.
Добавление собственных языковых файлов позволяет:
- Контролировать качество и точность перевода.
- Обновлять переводы без риска потерять изменения при обновлении темы или плагина.
- Поддерживать уникальную терминологию и сленг, характерный для вашего сайта.
Где и как создаются файлы перевода .po и .mo
Файлы .po (Portable Object) — это текстовые файлы с парами "оригинальный текст — перевод". Файлы .mo (Machine Object) — это бинарные файлы, которые WordPress загружает для отображения перевода.
Для создания и редактирования .po-файлов можно использовать программы:
- Poedit — самый популярный редактор с удобным интерфейсом и проверкой синтаксиса.
- Loco Translate — плагин для WordPress, позволяющий работать с переводами прямо из админки.
- Poedit и Loco Translate генерируют файлы .mo автоматически.
Создание файла перевода в Poedit
Откройте Poedit и выберите "Создать новый перевод". В качестве исходного файла укажите .pot или .po файл темы/плагина. Далее переведите необходимые строки, сохраните файл с именем, соответствующим языковому коду, например ru_RU.po. После сохранения Poedit автоматически создаст ru_RU.mo.
Где размещать собственные языковые файлы в WordPress
Важно хранить собственные переводы в правильных папках, чтобы изменения не затерялись при обновлении. Существует несколько вариантов:
- wp-content/languages/themes/ — для переводов тем.
- wp-content/languages/plugins/ — для переводов плагинов.
- Внутри папки темы или плагина — не рекомендуется, так как при обновлении они перезапишутся.
Для темы с названием "mytheme" и языком ru_RU файл должен называться mytheme-ru_RU.mo и лежать в wp-content/languages/themes/.
Пример подключения собственного перевода в functions.php
Если вы хотите убедиться, что ваш перевод загружается корректно, добавьте в файл functions.php темы следующий код с префиксом wptranslate_ для функций:
function wptranslate_load_custom_theme_textdomain() {
load_theme_textdomain('mytheme', get_stylesheet_directory() . '/languages');
}
add_action('after_setup_theme', 'wptranslate_load_custom_theme_textdomain');В этом примере мы загружаем переводы из папки /languages внутри дочерней темы. Если вы храните файлы в wp-content/languages/themes/, WordPress загрузит их автоматически.
Как проверить, что перевод работает
Чтобы убедиться, что ваши переводы применяются:
- Установите язык сайта в админке WordPress в «Настройки» → «Общие» → «Язык сайта».
- Очистите кэш, если используете плагин кеширования.
- Перейдите на фронтенд и проверьте переведённые строки.
Если строки не перевелись, проверьте соответствие домена текста в функции __() и _e() с указанным в load_theme_textdomain().
Пример создания собственного перевода для плагина
Допустим, у вас есть плагин с текстовым доменом myplugin. Вы создали перевод myplugin-ru_RU.po и myplugin-ru_RU.mo. Для загрузки перевода добавьте в основной файл плагина следующий код:
function wptranslate_load_custom_plugin_textdomain() {
load_plugin_textdomain('myplugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'wptranslate_load_custom_plugin_textdomain');Это гарантирует, что перевод будет подхвачен из папки /languages/ внутри плагина.
Автоматизация обновления переводов с помощью WP-CLI
Если вы часто обновляете переводы, удобно использовать WP-CLI для управления языковыми файлами.
Команда для обновления языковых файлов темы:
wp language theme update mythemeАналогично для плагинов:
wp language plugin update mypluginЭто позволит быстро подтянуть официальные переводы или обновить собственные, если они размещены в официальном репозитории.
Полезные плагины для работы с переводами и локализацией
- Loco Translate — позволяет редактировать .po файлы прямо из админки, автоматически создаёт .mo.
- Say What? — позволяет заменять строки без редактирования файлов перевода, полезно для быстрых исправлений.
- Codestyling Localization — ещё один редактор переводов, но сейчас менее актуален из-за отсутствия поддержки.
Итог
Добавление собственных скачиваемых переводов в WordPress — это эффективный способ обеспечить качественную локализацию вашего сайта без зависимости от внешних сервисов и плагинов. Следуя рекомендациям по созданию, размещению и подключению файлов .po и .mo, вы сможете полностью контролировать процесс перевода и гарантировать его корректность.