load_plugin_textdomain()
Подключает .mo файл перевода из указанной папки. Не работает с MU плагинами.
.mo файл должен называться: ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo
, где локаль это код языка (см. get_locale()). Например, если ДОМЕН_ПЕРЕВОДА=my-plugin и выбран русский язык (ЛОКАЛЬ=ru_RU
), то файлы должны назваться: my-plugin-ru_RU.mo
и my-plugin-ru_RU.po
.
Вызывать функцию рекомендуется на хуке plugins_loaded, но можно и позже, главное, чтобы он был подключен до того, как будут использоваться функции перевода.
С версии 4.6. функция сначала пытается загрузить .mo файл с папки WP_LANG_DIR/plugins/
обычно это /wp-content/language/plugins
.
Для подключения перевода темы, используйте load_theme_textdomain().
Хуки из функции
Возвращает
true|false
. Вернет false, если .mo файл не существует по указанному пути. В остальных случаях функция вернет true.
Использование
load_plugin_textdomain( $domain, $deprecated, $plugin_rel_path );
- $domain(строка) (обязательный)
- Уникальный идентификатор для получения строки перевода.
- $deprecated(строка)
- Отмененный аргумент, работает до версии 2.7. Путь подобный ABSPATH, до .mo файла.
По умолчанию: false - $plugin_rel_path(строка)
Путь до каталога .mo файла относительно WP_PLUGIN_DIR.
Если путь не указан, то им будет корневая директория плагинов WP_PLUGIN_DIR. Т.е. путь до файла будет такой: WP_PLUGIN_DIR/domain-ru_RU.mo
По умолчанию: false
Примеры
#1 Регистрация файла перевода для плагина
Подразумевается, что этот код будет расположен в основном файле плагина или в файле, который находится в корневой директории плагина. Если это не так, то __FILE__ нужно заменить на соответствующий путь.
Файл перевода должен лежать в каталоге плагина и должен называться: my-plugin-ru_RU.mo
.
add_action( 'plugins_loaded', 'myplugin_init' ); function myplugin_init(){ load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) ); }
#2 Если мы хотим расположить файл перевода .mo в подпапку languages:
add_action( 'plugins_loaded', 'myplugin_init' ); function myplugin_init() { load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); }
#3 Регистрация файла перевода для MU плагина
В WP есть специальная функция load_muplugin_textdomain().
Список изменений
С версии 1.5.0 | Введена. |
С версии 4.6.0 | The function now tries to load the .mo file from the languages directory first. |