Функция GET_LOCALE() в WordPress: описание и примеры использования

Функция 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 и расширить функциональность вашего сайта.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *