Функция парсит указанный в параметрах .mo файл и добавляет данные из него в данные переводов WordPress - в глобальную переменную $l10n:
$l10n[ $domain ] = & $mo;
Если указанный домен уже существует в данных, то подключаемые строки локализации объединяться с имеющимися (сливаются в единый массив).
Файл перевода должен быть подключен до того, как он будет использован. Поэтому load_textdomain() принято вызывать во время события plugins_loaded.
Для перевода любой строки в WordPress, у строки должен быть перевод, а чтобы он был нужно подключить данные перевода, среди которых будет перевод нужной строки. Подключить данные перевода, а именно загрузить .mo файл перевода в глобальные данные локализации можно с помощью:
В этом примере переведем строку __('book', 'mydomain'). Подразумевается, что .mo файл для перевода уже создан и в нем есть данные для перевода этой строки:
// здесь .mo файл должен лежать в папке lang, которая находится в папке где находится сам файл в котором вызывается эта строка
// Подключаем имеющийся файл .mo (название файла: ru_RU.mo или другое, зависит от локали)
add_action( 'plugins_loaded', 'load_my_textdomain' );
function load_my_textdomain(){
$mo_file_path = dirname(__FILE__) . '/lang/'. determine_locale() . '.mo';
load_textdomain( 'mydomain', $mo_file_path );
}
Для версий WP меньше 5.0 используйте get_locale() вместо determine_locale().
Теперь в теме используем:
<?php _e( 'book', 'mydomain' ); ?>
Выведет "книга".
Заметки
Global. MO[]. $l10n An array of all currently loaded text domains.
Global. MO[]. $l10n_unloaded An array of all text domains that have been unloaded again.