Функция 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.