В этой статье мы подробно рассмотрим, как расширить функциональность административной панели WordPress, добавив поддержку нового языка с помощью плагина WPLangs. Это особенно полезно для сайтов, которые ведутся командой с разными языковыми предпочтениями или для агентств, обслуживающих клиентов из разных стран.
Почему стоит использовать WPLangs для многоязычности в админке WordPress
WordPress изначально поддерживает множество языков для фронтенда и админпанели. Однако добавление или кастомизация новых языков может вызывать сложности. Плагин WPLangs создан специально для удобного управления языковыми пакетами и их интеграции в интерфейс админки.
Основные преимущества WPLangs:
- Автоматическое подключение языковых файлов (.mo/.po) без правок в ядре.
- Гибкое управление доступными языками для пользователей.
- Возможность добавлять собственные переводы и корректировать существующие.
- Интеграция с API WordPress для корректной загрузки языков.
Использование WPLangs значительно упрощает задачу, особенно если нужно добавить язык, которого нет в стандартных репозиториях WordPress.
Подготовка языковых файлов для нового языка
Для начала убедитесь, что у вас есть корректно сформированные файлы перевода — .po и .mo — для нужного языка. Если таких файлов нет, их можно создать или отредактировать с помощью редакторов, например, Poedit.
Структура файлов должна соответствовать стандарту WordPress, с правильными текстовыми доменами. Для админпанели чаще всего используется домен default или название темы/плагина, который вы хотите перевести.
Пример создания файла ru_RU.po для русского языка с переводами административных строк:
msgid "Dashboard"
msgstr "Панель управления"
msgid "Posts"
msgstr "Записи"
msgid "Settings"
msgstr "Настройки"После создания или изменения .po файла, скомпилируйте его в .mo — бинарный файл, который используется WordPress для загрузки переводов.
Установка и настройка плагина WPLangs для подключения нового языка
Для начала загрузите и установите плагин WPLangs через официальный репозиторий WordPress или скачайте с официального сайта WPSHOP.RU.
После активации плагина выполните следующие шаги:
- Перейдите в меню «WPLangs» в админпанели.
- Добавьте новый язык, указав код локали (например,
fr_FRдля французского), название и загрузите соответствующие.moи.poфайлы. - Активируйте язык для админпанели и при необходимости для фронтенда.
WPLangs автоматически интегрирует язык в систему, позволяя пользователям выбирать его в профиле.
Пример кода для программной регистрации языка в WPLangs
Для автоматизации процесса можно использовать следующий пример PHP-кода, который добавляет новый язык в базу WPLangs:
function wplangs_add_custom_language() {
if ( ! function_exists('wplangs_register_language') ) return;
wplangs_register_language(array(
'locale' => 'es_ES',
'name' => 'Испанский',
'mo_file' => WP_CONTENT_DIR . '/languages/es_ES.mo',
'po_file' => WP_CONTENT_DIR . '/languages/es_ES.po',
'active' => true,
'for_admin' => true,
'for_frontend' => false
));
}
add_action('init', 'wplangs_add_custom_language');Этот код регистрирует испанский язык для админпанели, используя языковые файлы из директории wp-content/languages/. Убедитесь, что файлы существуют по указанному пути.
Настройка переключения языков в админпанели для пользователей
После добавления языка важно предоставить пользователям возможность переключаться между доступными локалями. WPLangs поддерживает настройку выбора языка в профиле пользователя.
Для этого:
- Перейдите в «Пользователи» -> «Ваш профиль».
- В разделе выбора языка выберите нужный язык из списка.
- Сохраните изменения.
Кроме того, можно добавить виджет или кастомный селектор языков в интерфейс админки с помощью хуков WordPress.
Пример добавления селектора языка в верхнюю админ-панель
function wplangs_add_language_selector_to_admin_bar($wp_admin_bar) {
if ( ! is_admin() ) return;
$languages = wplangs_get_active_languages(); // Функция плагина для получения активных языков
$current_locale = get_user_locale();
$args = array(
'id' => 'wplangs_language_selector',
'title' => 'Язык: ' . $languages[$current_locale]['name'],
'meta' => array( 'class' => 'wplangs-language-selector' )
);
$wp_admin_bar->add_node($args);
foreach ( $languages as $locale => $lang ) {
if ( $locale === $current_locale ) continue;
$wp_admin_bar->add_node(array(
'id' => 'wplangs_lang_' . $locale,
'title' => $lang['name'],
'parent' => 'wplangs_language_selector',
'href' => add_query_arg('wplangs_switch_lang', $locale, admin_url()),
));
}
}
add_action('admin_bar_menu', 'wplangs_add_language_selector_to_admin_bar', 100);Этот код добавляет в админ-бар выпадающий список языков, позволяющий быстро переключать локаль.
Отладка и решение распространённых проблем с языками в админке
При добавлении нового языка могут возникать проблемы, например:
- Язык не отображается в списке выбора.
- Переводы не применяются — остаются строки на английском.
- Некорректное отображение символов из-за кодировки.
Решения:
- Проверьте правильность путей к
.moи.poфайлам. - Убедитесь, что файлы скомпилированы корректно и не повреждены.
- Проверьте в настройках WordPress, что локаль сайта соответствует добавленному языку.
- Очистите кеш сайта и браузера, особенно если используется кеширование.
- Проверьте, не конфликтует ли WPLangs с другими плагинами, управляющими языками.
Для отладки полезно включить логирование ошибок и посмотреть, загружаются ли языковые файлы через функцию load_textdomain().
Пример проверки загрузки языкового файла
function wplangs_check_load_textdomain() {
$loaded = load_textdomain('default', WP_CONTENT_DIR . '/languages/es_ES.mo');
if ( ! $loaded ) {
error_log('WPLangs: не удалось загрузить языковой файл es_ES.mo');
} else {
error_log('WPLangs: языковой файл es_ES.mo загружен успешно');
}
}
add_action('init', 'wplangs_check_load_textdomain');Подведение итогов и рекомендации
Добавление нового языка в админпанель WordPress с помощью WPLangs — удобное и гибкое решение для многоязычных проектов. Использование готового плагина позволяет избежать правок в ядре и быстро адаптировать интерфейс под нужды команды.
В работе важно поддерживать актуальность языковых файлов, регулярно проверять корректность их загрузки и создавать резервные копии при внесении изменений.
Для расширения функционала рекомендую ознакомиться с дополнительными возможностями WPLangs на официальном сайте, где доступны обновления и поддержка.