Функция GET_LOCALE() в WordPress
Общее описание
Функция get_locale() устанавливает глобальную переменную $locale и возвращает текущую локализацию сайта (например, en_US).
При последующих вызовах функция возвращает значение переменной $locale, которое прошло через фильтр locale.
Важно
До версии 4.0 локализация устанавливалась с помощью константы WPLANG в файле wp-config.php. С версии 4.0 эта константа больше не используется.
Чаще всего эту функцию используют в других функциях локализации, таких как load_textdomain().
С версии 5.0 рекомендуется использовать более удобную альтернативу — determine_locale().
Применение функции
Вызов функции осуществляется с помощью:
get_locale();
Примеры
Пример 1: Получение текущей локализации
echo get_locale();
// на выходе будет en_US
Пример 2: Установка локализации для сервера
В данном примере мы устанавливаем локализацию для формата валюты. Если основная локализация не установлена, то можно указать локализацию 'en_US' следующим образом:
setlocale(LC_MONETARY, get_locale());
$my_local_settings = localeconv();
if (!$my_local_settings['int_curr_symbol']) {
setlocale(LC_MONETARY, 'en_US');
}
Пример 3: Получение значения текущей локализации
setlocale(LC_MONETARY, get_locale());
$my_local_settings = localeconv();
print_r($my_local_settings);
Возвращаемое значение
Функция возвращает строку, которая представляет локализацию вашего блога или локализацию из фильтра locale.
Примечания
- Глобальная переменная:
$locale— это текущая локализация. - Глобальная переменная:
$wp_local_package— код локализации пакета.
Изменения в версии
- С 1.5.0: Функция была введена.
Код функции
Ниже приведен код самой функции get_locale():
function get_locale() {
global $locale, $wp_local_package;
if (isset($locale)) {
return apply_filters('locale', $locale);
}
if (isset($wp_local_package)) {
$locale = $wp_local_package;
}
// Проверка на наличие определенной локализации.
if (defined('WPLANG')) {
$locale = WPLANG;
}
if (is_multisite()) {
if (wp_installing()) {
$ms_locale = get_site_option('WPLANG');
} else {
$ms_locale = get_option('WPLANG');
if (false === $ms_locale) {
$ms_locale = get_site_option('WPLANG');
}
}
if (false !== $ms_locale) {
$locale = $ms_locale;
}
} else {
$db_locale = get_option('WPLANG');
if (false !== $db_locale) {
$locale = $db_locale;
}
}
if (empty($locale)) {
$locale = 'en_US';
}
return apply_filters('locale', $locale);
}
Связанные функции
Некоторые другие полезные функции, связанные с локализацией:
determine_locale()get_user_locale()is_locale_switched()sanitize_locale_name()switch_to_locale()
Эти функции помогут вам лучше управлять локализацией в WordPress и расширить функциональность вашего сайта.