wplangs.ru wordpress WP Langs

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

Иногда возникает необходимость добавить поддержку нового языка в административную панель 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 без плагинов требует создания и размещения файлов перевода, регистрации локали через хуки и, при необходимости, программного управления загрузкой переводов. Такой подход подходит для разработчиков, желающих иметь максимальный контроль над локализацией и минимизировать зависимости от сторонних компонентов.

Используйте приведённые примеры кода, чтобы быстро добавить новый язык, и не забывайте обновлять переводы при необходимости.

×
День SEO
Время сделать подарок своему WordPress!
-20% на премиум

шаблоны и плагины

Порадуй свой сайт ⋙