load_theme_textdomain()
Завантажує файл перекладу теми ( .mo ) на згадку, для подальшої роботи з ним.
Файл .mo повинен бути в кореневій директорії теми і мати назву ЛОКАЛЬ.mo
, наприклад: ru_RU.mo .
З версії 4.6. функція спочатку намагається завантажити .mo файл ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo
із папки /wp-content/language/themes
. Приклад назви такого файлу: twentyeleven-ru.UA .
Функцію слід викликати під час хука after_setup_theme .
Щоб підключити переклад плагіна, використовуйте load_plugin_textdomain() .
Інтернаціоналізація (Internationalization) та локалізація (localization) означає адаптацію комп’ютерних програм під різні мови.
- l10n – це скорочення для localization.
- i18n – це скорочення для internationalization. 18 – це кількість літер між початковою і кінцевою n.
load_textdomain()
load_child_theme_textdomain()
Хуки з функції
Повертає
true|false
. Логічний. true – якщо файл перекладу завантажено, false – якщо не вдалося отримати.
Використання
load_theme_textdomain($domain, $path);
-
$domain
(рядок) (обов’язковий) -
Унікальний ідентифікатор, за яким пізніше у функціях перекладу:
__() ,
_e() можна буде звернутися саме до цього рядка перекладу. -
$path
(рядок) -
Шлях до директорії в якій розташований
.mo файл (без слеша, що закінчує). За промовчанням вказується шлях до каталогу теми:
get_template_directory() .
Типово: false
Приклади
#1 Як прийнято викликати функцію
Функція зазвичай викликається під час події after_setup_theme або можна безпосередньо засунути у functions.php теми:
add_action( 'after_setup_theme', 'my_theme_setup'); function my_theme_setup(){ load_theme_textdomain( 'my_theme', get_template_directory() . '/languages' ); }
Спочатку WP спробує завантажити файл перекладу з папки /wp-content/language/themes
– /wp-content/language/themes/my_theme-ru_RU.mo
.
Якщо там потрібного файлу немає, то спробує завантажити його з папки теми/wp-content/themes/my_theme/language/ru_RU.mo
Тут my_theme – це вказаний домен перекладу, а ru_RU це поточна локаль…
#2 Перемикання мови перекладу
Цей приклад можна використовувати, коли потрібно перемикати мову. Для перемикання буде використовуватися змінна, що передається в URL. Наприклад, для перемикання на російську URL буде виглядати так: www.example.com/?l=ru_UA . Так буде знайдено файл ru_RU.mo , в каталозі language в директорії теми:
// Зміна мови локалізації // Треба викликати до виклику load_theme_textdomain() add_filter( 'locale', 'my_theme_localized'); function my_theme_localized( $locale ){ if ( ! isset( $_GET['l'] ) ) return esc_attr($_GET['l']); return $locale; } // Встановлюємо каталог перекладу на тему // Переклади теми мають бути розміщені в каталозі my_theme/languages/ // Переклади WordPress мають бути розміщені в каталозі wp-content/languages add_action('after_setup_theme', 'my_theme_setup'); function my_theme_setup(){ load_theme_textdomain('my_theme', get_template_directory() . '/languages'); }
список змін
З версії 1.5.0 | Введено. |
З версії 4.6.0 | Функція now tries to load the .mo file from the languages directory first. |