is_textdomain_loaded()WP 3.0.0

Определяет загружен ли файл локализации для указанного домена (ключа перевода).

1 раз — 0.000027 сек (очень быстро) | 50000 раз — 0.01 сек (скорость света) | PHP 7.1.5, WP 4.8.2

Хуков нет.

Возвращает

true|false. true если перевод загружен и false если нет.

Использование

if( is_textdomain_loaded( $domain ) ){
	// файл локализации подгружен - перевод есть...
}
$domain(строка) (обязательный)
Домен перевода. Идентификатор, который используется в функциях перевода: __('строка', 'домен').

Заметки

  • Global. Массив. $l10n

Примеры

0

#1 Включить перевод плагина, отличный от текущей локали пользователя.

Бывают ситуации, когда требуется загрузить локаль перевода плагина, отличную от текущей локали пользователя.

Например, на многоязычных веб-сайтах создание перевода записи/виджета требует загрузки некоторых переводов для данного текстового домена плагина. Локаль пользователя (локаль панели управления) загружается по умолчанию, поэтому важно выгрузить её, если она уже была загружена, и найти файл перевода для загрузки для текстового домена для запрашиваемой локали.

if ( is_textdomain_loaded( $plugin ) ) {
	unload_textdomain( $plugin );
}

$mofile = sprintf( '%s-%s.mo', $plugin, $locale );

// сначала проверьте путь языка установки.
$domain_path = path_join( WP_LANG_DIR, 'plugins' );
load_textdomain( $plugin, path_join( $domain_path, $mofile ) );

// в противном случае проверьте папку языка плагина.
if ( ! $loaded ) { 
	$domain_path = path_join( WP_PLUGIN_DIR, "{$plugin}/languages" );
	$loaded = load_textdomain( $plugin, path_join( $domain_path, $mofile ) );
}
-1

#2 Подключим файл перевода, если он еще не подключен.

add_action('plugins_loaded', 'myplugin_init');
function myplugin_init(){
	$domain = 'my-plugin';
	if( is_textdomain_loaded( $domain ) ){
		load_plugin_textdomain( $domain, false, dirname( plugin_basename( __FILE__ ) ) ); 
	}
}

Заметки

  • Global. MO[]. $l10n An array of all currently loaded text domains.

Список изменений

С версии 3.0.0 Введена.

Код is_textdomain_loaded() WP 6.9.4

function is_textdomain_loaded( $domain ) {
	global $l10n;
	return isset( $l10n[ $domain ] ) && ! $l10n[ $domain ] instanceof NOOP_Translations;
}