Функция SANITIZE_LOCALE_NAME() в WordPress 6.2.1: Очистка имени локали

Функция SANITIZE_LOCALE_NAME() в WordPress 6.2.1

Функция sanitize_locale_name() удаляет все символы, которые не разрешены в имени локали.

Что делает эта функция?

Она очищает строку, представляющую имя локали, чтобы остались только допустимые символы.

Хуки функции

Функция использует хук sanitize_locale_name, который позволяет изменять очищенное имя локали.

Возвращаемое значение

Функция возвращает строку. Это очищенное значение имени локали.

Применение функции

sanitize_locale_name( $locale_name );
  • $locale_name (string) (обязательный) — имя локали, которое нужно очистить.

Примеры использования

Пример 1: Разница между sanitize_key() и sanitize_locale_name()

Функция sanitize_key() сначала приводит строку к нижнему регистру, а затем очищает её. Поэтому заглавные буквы в именах локалей "теряются".

$str = 'en_CA';

// Применение sanitize_key()
echo sanitize_key( $str ); //> en_ca (неправильное имя локали)

// Применение sanitize_locale_name()
echo sanitize_locale_name( $str ); //> en_CA (правильное имя локали)

Пример 2: Получение локали через $_GET / $_COOKIE и очищение её

Часть кода для функции determine_locale().

$wp_lang = '';

if ( ! empty( $_GET['wp_lang'] ) ) {
    $wp_lang = sanitize_locale_name( wp_unslash( $_GET['wp_lang'] ) );
} elseif ( ! empty( $_COOKIE['wp_lang'] ) ) {
    $wp_lang = sanitize_locale_name( wp_unslash( $_COOKIE['wp_lang'] ) );
}

Изменения

Функция была внедрена в версии 6.2.1.

Код функции SANITIZE_LOCALE_NAME

Вот код функции, который находится в файле wp-includes/formatting.php:


function sanitize_locale_name( $localename ) {
// Ограничиваем символы A-Z, a-z, 0-9, '
', '-'.
$sanitized = pregreplace( '/[^A-Za-z0-9-]/', '', $locale_name );

/**
 * Фильтрует строку очищ��нного имени локали.
 *
 * @since 6.2.1
 *
 * @param string $sanitized   Очищенное имя локали.
 * @param string $locale_name Имя локали до очистки.
 */
return apply_filters( 'sanitize_locale_name', $sanitized, $locale_name );

}

Связанные функции

Вот некоторые функции, связанные с локализацией сайта:

  • determine_locale()
  • get_locale()
  • get_user_locale()
  • is_locale_switched()
  • switch_to_locale()

А также функции для локализации:

  • __()
  • _e()
  • _n()
  • translate()

Эти функции помогают разработчикам управлять языковыми настройками на сайте WordPress.

Leave a Reply

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