Как добавить поддержку языков в собственном плагине 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.

Как добавить поддержку языков в собственном Gutenberg-блоке WordPress
16.02.2026
Как добавить автоперевод форм в WordPress
16.01.2026
Как создать собственный переводчик для WordPress
14.11.2025
Как использовать хук doretranslate для дополнительного перевода в WordPress
12.02.2026
Как использовать WPML для перевода производительных тем WordPress
06.12.2025