WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

determine_locale() WP 5.0.0

Получает текущую локаль сайта (язык сайта, например, en_US), которая подходит для текущего запроса.

  • Для форнта вернет значение функции get_locale().
  • Для админки вернет значение функции get_user_locale().
  • Для JSON запроса вернет значение функции get_user_locale(), если в GET параметре запроса указано ?_locale=user.
  • На странице wp-login.php можно изменить локаль, указав локаль в GET параметре запроса wp_lang, например, ?wp_lang=ru_RU.

Эта новая функция во многих случаях должна заменить get_locale() и get_user_locale().

Работает на основе: get_locale(), get_user_locale()
✈ 1 раз = 0.000001с = скорость света | 50000 раз = 0.09с = скорость света | PHP 7.2.5, WP 5.0
Хуки из функции:
Возвращает

Строку. Локаль, например, ru_RU.

Использование

$locale = determine_locale();

Примеры

#1 Что возвращает функция

echo determine_locale();
// выведет 'ru_RU', если сайт на русском

#2 Пример подгрузки файла перевода

add_action( 'plugins_loaded', 'load_my_textdomain' );
function load_my_textdomain(){
	$mo_file_path = dirname(__FILE__) . '/lang/'. determine_locale() . '.mo';
	load_textdomain( 'mytexdomain', $mo_file_path );
}

Код determine_locale: wp-includes/l10n.php VER 5.0.1

<?php
function determine_locale() {
	/**
	 * Filters the locale for the current request prior to the default determination process.
	 *
	 * Using this filter allows to override the default logic, effectively short-circuiting the function.
	 *
	 * @since 5.0.0
	 *
	 * @param string|null The locale to return and short-circuit, or null as default.
	 */
	$determined_locale = apply_filters( 'pre_determine_locale', null );
	if ( ! empty( $determined_locale ) && is_string( $determined_locale ) ) {
		return $determined_locale;
	}

	$determined_locale = get_locale();

	if ( is_admin() ) {
		$determined_locale = get_user_locale();
	}

	if ( isset( $_GET['_locale'] ) && 'user' === $_GET['_locale'] && wp_is_json_request() ) {
		$determined_locale = get_user_locale();
	}

	if ( ! empty( $_GET['wp_lang'] ) && 'wp-login.php' === $GLOBALS['pagenow'] ) {
		$determined_locale = sanitize_text_field( $_GET['wp_lang'] );
	}

	/**
	 * Filters the locale for the current request.
	 *
	 * @since 5.0.0
	 *
	 * @param string $locale The locale.
	 */
	return apply_filters( 'determine_locale', $determined_locale );
}

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

Из метки: locale (локаль язык сайта)

Еще из раздела: Локализация

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться