LOAD_MUPLUGIN_TEXTDOMAIN() │ WP 3.0.0
Функция load_muplugin_textdomain() загружает переведенные строки для плагина, который находится в директории mu-plugins. Это полезно, если вы хотите сделать свой плагин доступным для разных языков.
Использование
Эта функция использует другую функцию load_textdomain() для загрузки переведенных строк.
Возвращаемое значение
Функция возвращает:
true— если текстовая домен успешно загружена,false— в противном случае.
Синтаксис
load_muplugin_textdomain( $domain, $mu_plugin_rel_path );
- $domain (строка, обязательный параметр) — это уникальный идентификатор для получения переводов.
- $mu_plugin_rel_path (строка) — относительный путь к директории mu-plugins, где хранится ваш
.moфайл. По умолчанию — пустая строка.
Примеры
Пример 1: Регистрация файла перевода для mu-плагина
Файл перевода должен находиться в директории плагина и иметь имя, например: my-plugin-fr_FR.mo.
add_action( 'muplugins_loaded', 'myplugin_init' );
function myplugin_init() {
load_muplugin_textdomain( 'my-plugin', dirname( plugin_basename( __FILE__ ) ) );
}
Пример 2: Если вы хотите разместить файл .mo в подпапке lang
Мы можем изменить местоположение файла перевода. Например, разместим его в подпапке lang. Файл должен называться: my-plugin-ru_RU.mo.
add_action( 'muplugins_loaded', 'myplugin_init' );
function myplugin_init() {
load_muplugin_textdomain( 'my-plugin', dirname( plugin_basename( __FILE__ ) ) . '/lang/' );
}
Заметки
- Глобальная переменная:
$wp_textdomain_registry— это регистратор текстовых доменов в WordPress. - Глобальная переменная:
$l10n— массив, в котором хранятся все загруженные текстовые домены и их переводы.
Изменения
- С версии 3.0.0 — функция была введена.
- С версии 4.6.0 — функция сначала пытается загрузить файл
.moиз директории языков. - С версии 6.7.0 — переводы больше не загружаются сразу, а передаются в механизм загрузки по мере необходимости.
Код функции
function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
global $wp_textdomain_registry, $l10n;
if ( ! is_string( $domain ) ) {
return false;
}
$path = WPMU_PLUGIN_DIR . '/' . ltrim( $mu_plugin_rel_path, '/' );
$wp_textdomain_registry->set_custom_path( $domain, $path );
// Если механизм загрузки по требованию был вызван ранее, сбросим запись, чтобы поп��обовать заново.
if ( isset( $l10n[ $domain ] ) && $l10n[ $domain ] instanceof NOOP_Translations ) {
unset( $l10n[ $domain ] );
}
return true;
}
Эта функция позволяет разработчикам загружать переводы для своих mu-плагинов, упрощая жизнь пользователям, говорящим на разных языках.