load_textdomain()
Підключає вказаний переклад.
Функція парсит вказаний у параметрах .mo файл і додає дані з нього до даних перекладів WordPress – у глобальну змінну $l10n :
$l10n[ $domain ] = & $mo;
Якщо зазначений домен вже існує в даних, то рядки локалізації, що підключаються, об’єднуватися з наявними (зливаються в єдиний масив).
Файл перекладу має бути підключений до використання. Тому load_textdomain() прийнято викликати під час події plugins_loaded .
Для перекладу будь-якого рядка в WordPress, у рядка має бути переклад, а щоб він був потрібно підключити дані перекладу, серед яких буде переклад потрібного рядка. Підключити дані перекладу, а саме завантажити .mo файл перекладу у глобальні дані локалізації можна за допомогою:
- load_textdomain() – цією функцією.
- load_theme_textdomain() – обгортка для цієї функції.
- load_child_theme_textdomain() – обгортка для цієї функції.
- load_plugin_textdomain() – обгортка для цієї функції.
Хуки з функції
Повертає
true|false
. Поверне false, якщо .mo файл не існує вказаним шляхом. За інших випадках функція поверне true.
Використання
load_textdomain( $domain, $mofile )
-
$domain
(рядок) (обов’язковий) - Унікальний ідентифікатор, яким, для перекладу рядка, надалі можна буде звертатися.
-
$mofile
(рядок) (обов’язковий) -
Абсолютний шлях до .mo файлу (
home/example.com/wp-content/plugins/my-plugin.mo ).
Приклади
#1 Переклад рядка у WordPress
У цьому прикладі переведемо рядок __('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 Залишити все поточно loaded text domains.
- Global. MO[]. $l10n_unloaded Залишити весь текст домашніх тварин, які повинні бути завантажені.
список змін
З версії 1.5.0 | Введено. |