Иногда возникает необходимость добавить поддержку нового языка в административную панель WordPress без установки дополнительных плагинов. Это может быть полезно для сайтов с уникальными требованиями к локализации, когда существует желание минимизировать использование сторонних решений и контролировать все процессы самостоятельно.
Что значит поддержка нового языка в админпанели WordPress
Поддержка языка в админпанели WordPress — это набор файлов перевода, которые позволяют интерфейсу CMS отображать элементы управления, сообщения, меню и подсказки на нужном языке. По умолчанию WordPress использует файлы локализации из папки wp-content/languages, а язык выбирается в настройках пользователя или сайта.
Добавление нового языка подразумевает:
- Подключение файлов
.moи.poс переводами для админпанели. - Регистрацию языка в системе WordPress.
- Обеспечение загрузки переводов при работе в админке.
Если нужного языка нет в официальном репозитории переводов, добавить поддержку можно вручную.
Подготовка файлов перевода нового языка
Первый шаг — получить или создать файлы перевода для нужного языка. Для этого можно использовать инструменты:
- Poedit — удобный редактор переводов .po/.mo файлов.
- WordPress Polyglots — официальный источник переводов, откуда можно скачать шаблон
wp.potи создать локальные переводы.
Файлы должны иметь имена по стандарту: wp-<код_языка>.mo и wp-<код_языка>.po. Например, для языка эсперанто — wp-eo.mo.
Разместите эти файлы в папку wp-content/languages. Если такой папки нет, создайте её.
Добавление нового языка в WordPress программно
Чтобы WordPress распознал новый язык, его нужно зарегистрировать. Это можно сделать, добавив код в файл functions.php вашей темы или в отдельный плагин.
Регистрация языка через фильтр locale
Фильтр позволяет задать локаль для сайта или текущего пользователя. Например, для переключения админпанели на новый язык для всех администраторов:
add_filter('locale', 'wplangs_set_custom_admin_locale');
function wplangs_set_custom_admin_locale($locale) {
if (is_admin() && current_user_can('manage_options')) {
return 'eo'; // код языка, например, эсперанто
}
return $locale;
}
Этот код заставит WordPress использовать язык eo (эсперанто) в админке для пользователей с правами администратора.
Загрузка файлов перевода вручную
Чтобы убедиться, что переводы загружаются корректно, можно вызвать функцию загрузки текстового домена с указанием пути к файлам:
add_action('admin_init', 'wplangs_load_custom_admin_textdomain');
function wplangs_load_custom_admin_textdomain() {
load_textdomain('default', WP_CONTENT_DIR . '/languages/wp-eo.mo');
}
Это гарантирует, что WordPress будет использовать нужный файл перевода для админпанели.
Как переключать язык админпанели для отдельных пользователей
Начиная с версии WordPress 4.7, каждый пользователь может выбирать язык интерфейса в своих настройках профиля. Если новый язык добавлен корректно, он появится в списке доступных.
Чтобы добавить новый язык в список доступных, достаточно разместить в wp-content/languages корректные файлы и зарегистрировать локаль, как показано выше. Пользователь сможет выбрать язык в меню "Пользователи → Ваш профиль".
Пример кода для добавления языка в dropdown выбора языка
Если нужно программно добавить язык в список доступных для выбора, можно использовать фильтр available_languages:
add_filter('available_languages', 'wplangs_add_custom_language');
function wplangs_add_custom_language($languages) {
$languages[] = 'eo'; // добавляем эсперанто
return $languages;
}
Рекомендации по работе с локализацией без плагинов
Хотя ручное добавление языка даёт полный контроль, учтите, что:
- Обновления WordPress и тем могут содержать новые строки для перевода — файлы нужно обновлять вручную.
- Отсутствие плагина может усложнить управление переводами и выбором языка для пользователей.
- Для автоматизации перевода административных сообщений можно использовать API, например, WPML или WPGPT, но это уже плагин-решения.
Если хотите минимизировать использование плагинов, но всё же облегчить работу с языками, рассмотрите плагин WPLangs от WPShop, который упрощает добавление и управление языками в админпанели.
Заключение
Добавление поддержки нового языка в админпанель WordPress без плагинов требует создания и размещения файлов перевода, регистрации локали через хуки и, при необходимости, программного управления загрузкой переводов. Такой подход подходит для разработчиков, желающих иметь максимальный контроль над локализацией и минимизировать зависимости от сторонних компонентов.
Используйте приведённые примеры кода, чтобы быстро добавить новый язык, и не забывайте обновлять переводы при необходимости.