load_plugin_textdomain() WP 1.5.0

Підключає .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() .

Працює на основі:
load_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_UA.mo

Типово: false

Приклади

0

#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__ ) ) ));
}
0

#2 Якщо ми хочемо розмістити файл перекладу .mo в підпапку languages ​​:

add_action( 'plugins_loaded', 'myplugin_init');
function myplugin_init() {
	 load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
0

#3 Реєстрація файлу перекладу для MU плагіна

У WP є спеціальна функція load_muplugin_textdomain() .

список змін

З версії 1.5.0Введено.
З версії 4.6.0Функція now tries to load the .mo file from the languages ​​directory first.

Код load_plugin_textdomain() WP 6.0.2

function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path = false ) {
	/**
	 * Filters a plugin's locale.
	 *
	 * @ Since 3.0.0
	 *
	 * @param string $locale Plugin's current locale.
	 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
	 */
	$locale = apply_filters( 'plugin_locale', determine_locale(), $domain );

	$mofile = $domain. '-'. $locale . '.mo';

	// Try to load from the languages ​​directory first.
	if ( load_textdomain( $domain, WP_LANG_DIR . '/plugins/' . $mofile ) ) {
		return true;
	}

	if ( false !== $plugin_rel_path ) {
		$ path = WP_PLUGIN_DIR . '/'. trim($plugin_rel_path, '/');
	} elseif ( false !== $deprecated ) {
		_deprecated_argument( __FUNCTION__, '2.7.0');
		$ path = ABSPATH . trim($deprecated, '/');
	} else {
		$ path = WP_PLUGIN_DIR;
	}

	return load_textdomain( $domain, $path . '/' . $mofile );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *