Как добавить поддержку языков в собственном плагине WordPress

При разработке собственного плагина для WordPress очень часто возникает необходимость сделать его многоязычным. Это позволяет расширить аудиторию и сделать продукт доступным для пользователей из разных стран. В этой статье мы подробно разберём, как правильно добавить поддержку языков в собственный плагин WordPress, какие функции использовать, как создать и подключить файлы переводов, а также приведём примеры кода.

Почему важно добавлять поддержку языков в плагинах WordPress

WordPress — это глобальная платформа с миллионами пользователей по всему миру. Если ваш плагин не поддерживает локализацию, он будет понятен только на одном языке, что серьёзно ограничит его распространение и использование. Кроме того, наличие переводов повышает рейтинг плагина в официальном репозитории и улучшает пользовательский опыт.

Добавление поддержки языков позволяет:

  • Переводить текстовые строки плагина без изменения исходного кода.
  • Использовать стандартные инструменты WordPress для локализации.
  • Поддерживать несколько языков одновременно.
  • Облегчить работу переводчиков и сообществ.

Далее рассмотрим, как реализовать это на практике.

Подготовка плагина к локализации: функции и структура файлов

Первый шаг — использование функций для локализации текста. В WordPress для этого применяются функции __() и _e(). Они позволяют отмечать строки, которые нужно переводить.

Например, вместо echo 'Привет, мир!'; нужно писать:

echo __('Привет, мир!', 'wptranslate');

Где 'wptranslate' — это текстовый домен плагина, он должен быть уникальным и совпадать с названием папки плагина или файла плагина.

Используйте функцию __() для получения перевода строки, а _e() — если нужно сразу вывести её на экран.

Далее необходимо загрузить текстовый домен в основной файл плагина, чтобы WordPress знал, где искать файлы переводов. Обычно это делают в хук plugins_loaded:

function wptranslate_load_textdomain() {
    load_plugin_textdomain('wptranslate', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'wptranslate_load_textdomain');

Здесь /languages/ — папка внутри плагина, где будут храниться файлы переводов.

Создание и подключение файлов перевода (.pot, .po, .mo)

Чтобы перевести плагин, необходимо подготовить шаблон перевода (.pot), а затем переводы для нужных языков (.po) и скомпилированные файлы (.mo).

Для создания файла .pot можно использовать такие инструменты, как Poedit или WP-CLI команду:

wp i18n make-pot . languages/wptranslate.pot --exclude=node_modules,vendor

После создания шаблона перевода, откройте его в Poedit и создайте переводы для нужных языков. Например, для русского языка сохраните файл как wptranslate-ru_RU.po, а затем Poedit автоматически сгенерирует wptranslate-ru_RU.mo.

Эти файлы нужно положить в папку /languages/ вашего плагина.

Пример структуры плагина с переводами

wptranslate-plugin/
├── wptranslate-plugin.php
├── languages/
│   ├── wptranslate-ru_RU.po
│   └── wptranslate-ru_RU.mo
└── includes/
    └── ...

Пример использования локализации в коде плагина

Рассмотрим отрывок кода из плагина, где выводится сообщение на экран с поддержкой перевода:

function wptranslate_admin_notice() {
    echo '<div class="notice notice-success is-dismissible">';
    echo '<p>' . __('Плагин успешно активирован!', 'wptranslate') . '</p>';
    echo '</div>';
}
add_action('admin_notices', 'wptranslate_admin_notice');

Если в языковых файлах будет переведена строка "Плагин успешно активирован!", WordPress автоматически подставит нужный перевод.

Автоматическое определение языка и переключение переводов

WordPress автоматически подгружает перевод в зависимости от текущего языка сайта, установленного в настройках. Вам не нужно писать дополнительный код для переключения языков — достаточно правильно подготовить файлы переводов и загрузить текстовый домен.

Однако, если ваш плагин выводит строки в JavaScript, потребуется отдельный подход для локализации скриптов с помощью функции wp_localize_script(). Например:

function wptranslate_enqueue_scripts() {
    wp_enqueue_script('wptranslate-script', plugin_dir_url(__FILE__) . 'js/script.js', array('jquery'), '1.0', true);
    wp_localize_script('wptranslate-script', 'wptranslateData', array(
        'greeting' => __('Привет из скрипта!', 'wptranslate'),
    ));
}
add_action('wp_enqueue_scripts', 'wptranslate_enqueue_scripts');

В вашем JavaScript можно использовать объект wptranslateData.greeting для вывода локализованной строки.

Советы по работе с переводами и оптимизации

Для удобства перевода и поддержки плагина рекомендуем:

  • Всегда использовать функции локализации для всех строк, выводимых пользователю.
  • Соблюдать единый текстовый домен во всём плагине.
  • Регулярно обновлять файлы переводов при изменении текста.
  • Использовать WP-CLI для генерации и обновления .pot файлов.
  • Проверять корректность кодировки файлов перевода — UTF-8 без BOM.

Также вы можете использовать плагины, такие как Loco Translate, для удобной работы с переводами прямо в админке WordPress.

Вывод

Добавление поддержки языков в собственном плагине — это несложный, но важный шаг для повышения качества и доступности вашего продукта. Следуя приведённым рекомендациям и используя стандартные функции WordPress, вы сможете обеспечить качественную локализацию и расширить аудиторию пользователей.

Если хотите посмотреть примеры и приобрести готовые решения для расширения функционала, например, для автоперевода или оптимизации плагинов, обратите внимание на продукты из каталога WPSHOP.

Как использовать Polylang для автоперевода товаров WooCommerce
06.05.2026
Как автоматически перевести атрибуты товаров WooCommerce в WordPress
29.04.2026
Автоматический перевод пользовательских текстовых полей WooCommerce в WordPress
18.07.2026
Как автоматизировать перевод динамического контента WordPress с помощью хуков и AJAX
17.04.2026
Как добавить поддержку мультиязычности в тему WordPress без плагинов
27.12.2025