is_textdomain_loaded()
Определяет загружен ли файл локализации для указанного домена (ключа перевода).
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
Примеры
#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 ) );
} #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[].
$l10nAn array of all currently loaded text domains.
Список изменений
| С версии 3.0.0 | Введена. |
Код is_textdomain_loaded() is textdomain loaded WP 6.9.4
function is_textdomain_loaded( $domain ) {
global $l10n;
return isset( $l10n[ $domain ] ) && ! $l10n[ $domain ] instanceof NOOP_Translations;
}