get_locale() WP 1.5.0

Встановлює глобальну змінну $locale та отримує поточну локаль (індекс мови сайту, наприклад, en_US ).

Другий та наступні рази спрацьовування, функція повертатиме змінну $locale пропущену через фільтр locale .

Зазвичай функція використовується у функціях локалізації (перекладу), наприклад, load_textdomain() .

З версії WP 5.0 замість цієї функції краще використовувати обгортку determine_locale() .

Список локалей дивіться тут .

До WP 4.0 локаль встановлювалася в константі WPLANG файлу wp-config.php . Тепер ця константа вважається застарілою.

Основа для:
determine_locale()
1 раз – 0.000015 сек
(дуже швидко) | 50000 разів – 0.05 сек
(швидкість світла)

Хуки з функції

Повертає

Строку. Значення локалі.

Використання

$locale = get_locale();

Приклади

0

#1 Подивимося, що у нас в локалі в даний момент:

echo get_locale();
// отримаємо 'ru_RU', якщо сайт російською
0

#2 Як встановити локаль на сервері

Цей приклад показує, як встановити локаль LC_MONETARY. Якщо базова локаль не встановлена, то вкажемо локаль ‘en_US’ жорстко:

setlocale(LC_MONETARY, get_locale());
$my_local_settings = localeconv();
if( $my_local_settings['int_curr_symbol'] == '' )
	  setlocale(LC_MONETARY, 'en_US');
0

#3 Як переглянути значення встановленої локалі:

setlocale(LC_MONETARY, get_locale());
$my_local_settings = localeconv();
print_r ($ my_local_settings);

нотатки

  • Global. Рядок. $locale The current locale.
  • Global. Рядок. $wp_local_package Locale code of the package.

список змін

З версії 1.5.0Введено.

Код get_locale() WP 6.0.2

function get_locale() {
	Global $locale, $wp_local_package;

	if ( isset ( $ locale ) ) {
		/** Цей filter is documented в wp-includes/l10n.php */
		return apply_filters( 'locale', $locale );
	}

	if ( isset ( $ wp_local_package ) ) {
		$locale = $wp_local_package;
	}

	// WPLANG was defined in wp-config.
	if ( defined( 'WPLANG' ) ) {
		$locale = WPLANG;
	}

	// If multisite, check options.
	if ( is_multisite() ) {
		// Не виходить blog option when installing.
		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';
	}

	/**
	 * Filters the locale ID of the WordPress installation.
	 *
	 * @ Since 1.5.0
	 *
	 * @param string $locale The locale ID.
	 */
	return apply_filters( 'locale', $locale );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *