WP_Locale{} WP 2.1.0

Клас, де зберігаються перекладені дані для локалі, такі як дні тижня, місяці, формат відображення часу.

Про цей клас можна думати, як про масив (колекцію) з базовими перекладами локалі.

Окрім іншого, клас реєструє глобальні змінні:

$weekday
$weekday_initial
$weekday_abbrev
$month
$month_abbrev

  • З версії 4.6.0 з файлу wp-includes/locale.php перенесено з власного файлу wp-includes/class-wp-locale.php .
Основа для:
wp_date() ,
Хуків немає.

Повертає

Нічого.

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

$WP_Locale = новий WP_Locale();
// Виклик методів або звернення до властивостей класу

Властивості

$weekday
(масив) (public)

Зберігає переведені повні імена днів тижня

// Ru
Array (
	[0] => Неділя
	[1] => Понеділок
	[2] => Вівторок
	[3] => Середа
	[4] => Четвер
	[5] => П'ятниця
	[6] => Субота
)

// En
Array (
	[0] => Sunday
	[1] => Monday
	[2] => Tuesday
	[3] => Wednesday
	[4] => Thursday
	[5] => Friday
	[6] => Saturday
)
$weekday_initial
(масив) (public)

Зберігає переведені рядки для односимвольних імен днів тижня.

// Ru
Array (
	[Неділя] => Нд
	[Понеділок] => Пн
	[Вівторок] => Вт
	[Середовище] => Ср
	[Четвер] => Чт
	[п'ятниця] => Пт
	[субота] => Сб
)

// En
Array (
	[Sunday] => S
	[Monday] => M
	[Tuesday] => T
	[Wednesday] => W
	[Thursday] => T
	[Friday] => F
	[Saturday] => S
)
$weekday_abbrev
(масив) (public)

Зберігає переведені рядки для скорочених назв днів тижня.

// Ru
Array (
	[Неділя] => Нд
	[Понеділок] => Пн
	[Вівторок] => Вт
	[Середовище] => Ср
	[Четвер] => Чт
	[п'ятниця] => Пт
	[субота] => Сб
)

// En
Array (
	[Sunday] => Sun
	[Monday] => Mon
	[Tuesday] => Tue
	[Wednesday] => Wed
	[Thursday] => Thu
	[Friday] => Fri
	[Saturday] => Sat
)
$month
(масив) (public)

Зберігає перекладені рядки для повних місяців.

// Ru
Array (
	[01] => Січень
	[02] => Лютий
	[03] => Березень
	[04] => Квітень
	[05] => Травень
	[06] => Червень
	[07] => Липень
	[08] => Серпень
	[09] => Вересень
	[10] => Жовтень
	[11] => Листопад
	[12] => Грудень
)

// En
Array (
	[01] => January
	[02] => February
	[03] => March
	[04] => April
	[05] => May
	[06] => June
	[07] => July
	[08] => August
	[09] => September
	[10] => Жовтень
	[11] => Листопад
	[12] => December
)
$month_genitive
(масив) (public)

Зберігає переведені рядки для імен місяців у родовому відмінку, якщо вказано мовний стандарт.

// Ru
Array (
	[01] => січня
	[02] => лютого
	[03] => березня
	[04] => квітня
	[05] => травня
	[06] => червня
	[07] => липня
	[08] => серпня
	[09] => вересня
	[10] => жовтня
	[11] => листопада
	[12] => грудня
)

// En
Array (
	[01] => January
	[02] => February
	[03] => March
	[04] => April
	[05] => May
	[06] => June
	[07] => July
	[08] => August
	[09] => September
	[10] => Жовтень
	[11] => Листопад
	[12] => December
)
$month_abbrev
(масив) (public)

Зберігає переведені рядки для скорочених назв місяців.

// Ru
Array (
	[січень] => Січень
	[лютий] => лют
	[Березень] => Бер
	[Квітень] => Квітень
	[травень] => травень
	[Червень] => Червень
	[липень] => липень
	[Серпень] => Сер
	[Вересень] => Вересень
	[Жовтень] => жовтень
	[Листопад] => лист
	[Грудень] => Гру
)

// En
Array (
	[January] => Jan
	[February] => Feb
	[March] => Mar
	[April] => Apr
	[May] => May
	[June] => Jun
	[July] => Jul
	[August] => Aug
	[September] => Sep
	[Жовтень] => Окт
	[November] => Nov
	[December] => Dec
)
$meridiem
(масив) (public)

Зберігає перекладені рядки для «am» та «pm».

// Ru
Array (
	[am] => дп
	[pm] => пп
	[AM] => ДП
	[PM] => ПП
)

// En
Array (
	[am] => am
	[pm] => pm
	[AM] => AM
	[PM] => PM
)
$text_direction
(рядок) (public)
Напрямок тексту мови локалі. За замовчуванням
ltr(зліва направо). Можливо
rtl(праворуч ліворуч).
$number_format
(масив) (public)

Розділювач тисяч та десяткові точки, що використовуються для локалізації чисел.

// Ru
Array (
	[thousands_sep] => (пробіл)
	[decimal_point] => ,
)

// En
Array (
	[thousands_sep] => ,
	[decimal_point] =>.
)

Методи

__construct()
(public)
Конструктор. Викликає методи
init()і
register_globals(), що встановлюють властивості об’єкта та глобальні змінні.
init()
(public)
Перекладає рядки та заповнює ними властивості об’єкта.
register_globals()
(public)
Створює та заповнює глобальні змінні
weekday,
weekday_initial,
weekday_abbrev,
month,
month_abbrevінформацією з однойменних властивостей об’єкта. Залишений лише для зворотної сумісності. Не рекомендується використовувати глобальні змінні.
get_weekday( $weekday_number )
(public)
Звертається до властивості
weekdayі за переданим індексом повертає значення, наприклад, 0 дасть “неділя”, 6 дасть “субота”.
get_weekday_initial( $weekday_name )
(public)
Звертається до властивості
weekday_initialта за переданим індексом повертає значення: “Sunday” дасть “S”, “Неділя” дасть “Нд”.
get_weekday_abbrev( $weekday_name )
(public)
Звертається до властивості
weekday_abbrevта за переданим індексом повертає значення: “Sunday” дасть “Sun”.
get_month( $month_number )
(public)
Звертається до властивості
monthта за переданим індексом повертає значення: 01 або 1 дасть “Січень”.
get_month_abbrev( $month_name )
(public)
Звертається до якості
month_abbrevі за переданим індексом повертає значення: “Січень” дасть “Січень”.
get_meridiem( $meridiem )
(public)
Звертається до якості
meridiemі за переданим індексом повертає значення: “am” дасть “дп”.
is_rtl()
(public)
Перевіряє, чи є поточна локаль RTL (напис праворуч наліво).
_strings_for_pot()
(public)
Реєструє рядки дати/часу для основного
файлу POT .
rtl_src_admin_notice()
(public)
Виводить повідомлення для адміністратора, якщо каталог
/buildповинен використовуватися для RTL локалі. Виводить повідомлення “Для роботи з RTL необхідно використовувати директорію %s репозиторію develop.”

Приклади

0

#1 Виведемо форму з вибором місяця

Ініціалізувати клас не потрібно, WP робить це автоматично. Примірник класу знаходиться у глобальній змінній $wp_locale .

<?php
global $wp_locale;
?>

<form action="">
	<label for="month">Місяць</label>
	<select name="month" id="month">
		<option value="0" disabled selected>Виберіть місяць</option>
		<?php
		foreach ( $wp_locale->month as $index => $month ) {
			printf( '<option value="%s">%s</option>', $index, $month );
		}
		?>
	</select>
</form>

Для довідки. Клас ініціалізується наступним кодом:

$GLOBALS['wp_locale'] = новий WP_Locale();

список змін

З версії 2.1.0Введено.
З версії 4.6.0Переміщує його власний файл від wp-includes/locale.php.

Код WP_Locale{} WP 6.0.2

class WP_Locale {
	/**
	 * Stores translated strings for full weekday names.
	 *
	 * @ Since 2.1.0
	 * @var string[]
	 */
	public $weekday;

	/**
	 * Stores translated strings для одного character weekday names.
	 *
	 * There is a hack to make sure that Tuesday and Thursday, as well
	 * Як Sunday and Saturday, don't conflict. See init() method for more.
	 *
	 * @see WP_Locale::init() for how to handle the hack.
	 *
	 * @ Since 2.1.0
	 * @var string[]
	 */
	public $weekday_initial;

	/**
	 * Stores translated strings для abbreviated weekday names.
	 *
	 * @ Since 2.1.0
	 * @var string[]
	 */
	public $weekday_abbrev;

	/**
	 * Stores translated strings for full month names.
	 *
	 * @ Since 2.1.0
	 * @var string[]
	 */
	public $month;

	/**
	 * Stores translated strings for month names в genitive case, if the locale specifies.
	 *
	 * @ Since 4.4.0
	 * @var string[]
	 */
	public $month_genitive;

	/**
	 * Stores translated strings для abbreviated month names.
	 *
	 * @ Since 2.1.0
	 * @var string[]
	 */
	public $month_abbrev;

	/**
	 * Stores translated strings for 'am' and 'pm'.
	 *
	 * Також capitalized versions.
	 *
	 * @ Since 2.1.0
	 * @var string[]
	 */
	public $ meridiem;

	/**
	 * The text direction of the locale language.
	 *
	 * Default is left to right 'ltr'.
	 *
	 * @ Since 2.1.0
	 * @var string
	 */
	public $text_direction = 'ltr';

	/**
	 * Ті тисячі розподільників і десяткових пунктів значення використовуються для розміщення номерів.
	 *
	 * @ Since 2.3.0
	 * @var array
	 */
	public $number_format;

	/**
	 * Визначник string використовуваний для розміщення списку елементів separator.
	 *
	 * @ Since 6.0.0
	 * @var string
	 */
	public $list_item_separator;

	/**
	 * Конструктор, який дає call методи до набору об'єктів variables.
	 *
	 * @ Since 2.1.0
	 */
	public function __construct() {
		$this->init();
		$this->register_globals();
	}

	/**
	 * Sets up the translated strings and object properties.
	 *
	 * Методи створюють translatable strings for various
	 * Calendar elements. Which allows for specifying locale
	 * specific calendar names and text direction.
	 *
	 * @ Since 2.1.0
	 *
	 * @global string $text_direction
	 * @global string $wp_version The WordPress version string.
	 */
	public function init() {
		// The weekdays.
		$this->weekday[0] = /* translators: Weekday. */ __( 'Sunday' );
		$this->weekday[1] = /* translators: Weekday. */ __( 'Monday');
		$this->weekday[2] = /* translators: Weekday. */ __( 'Tuesday');
		$this->weekday[3] = /* translators: Weekday. */ __( 'Wednesday');
		$this->weekday[4] = /* translators: Weekday. */ __( 'Thursday');
		$this->weekday[5] = /* translators: Weekday. */ __( 'Friday');
		$this->weekday[6] = /* translators: Weekday. */ __('Saturday');

		// The first letter of each day.
		$this->weekday_initial[ $this->weekday[0] ] = /* translators: One-letter abbreviation of the weekday. */ _x('S', 'Sunday initial');
		$this->weekday_initial[ $this->weekday[1] ] = /* translators: One-letter abbreviation of the weekday. */ _x( 'M', 'Monday initial');
		$this->weekday_initial[ $this->weekday[2] ] = /* translators: One-letter abbreviation of the weekday. */ _x('T', 'Tuesday initial');
		$this->weekday_initial[ $this->weekday[3] ] = /* translators: One-letter abbreviation of the weekday. */ _x( 'W', 'Wednesday initial' );
		$this->weekday_initial[ $this->weekday[4] ] = /* translators: One-letter abbreviation of the weekday. */ _x( 'T', 'Thursday initial' );
		$this->weekday_initial[ $this->weekday[5] ] = /* translators: One-letter abbreviation of the weekday. */ _x( 'F', 'Friday initial' );
		$this->weekday_initial[ $this->weekday[6] ] = /* translators: One-letter abbreviation of the weekday. */ _x('S', 'Saturday initial');

		// Abbreviations for each day.
		$this->weekday_abbrev[ $this->weekday[0] ] = /* translators: Three-letter abbreviation of the weekday. */ __( 'Sun');
		$this->weekday_abbrev[ $this->weekday[1] ] = /* translators: Three-letter abbreviation of the weekday. */ __( 'Mon' );
		$this->weekday_abbrev[ $this->weekday[2] ] = /* translators: Three-letter abbreviation of the weekday. */ __( 'Tue');
		$this->weekday_abbrev[ $this->weekday[3] ] = /* translators: Three-letter abbreviation of the weekday. */ __( 'Wed');
		$this->weekday_abbrev[ $this->weekday[4] ] = /* translators: Three-letter abbreviation of the weekday. */ __( 'Thu');
		$this->weekday_abbrev[ $this->weekday[5] ] = /* translators: Three-letter abbreviation of the weekday. */ __( 'Fri');
		$this->weekday_abbrev[ $this->weekday[6] ] = /* translators: Three-letter abbreviation of the weekday. */ __( 'Sat');

		// The months.
		$this->month['01'] = /* translators: Month name. */ __( 'January' );
		$this->month['02'] = /* translators: Month name. */ __( 'February');
		$this->month['03'] = /* translators: Month name. */ __( 'March');
		$this->month['04'] = /* translators: Month name. */ __( 'April' );
		$this->month['05'] = /* translators: Month name. */ __( 'May');
		$this->month['06'] = /* translators: Month name. */ __( 'June' );
		$this->month['07'] = /* translators: Month name. */ __( 'July' );
		$this->month['08'] = /* translators: Month name. */ __( 'August' );
		$this->month['09'] = /* translators: Month name. */ __( 'September');
		$this->month['10'] = /* translators: Month name. */ __( 'October');
		$this->month['11'] = /* translators: Month name. */ __( 'November');
		$this->month['12'] = /* translators: Month name. */ __( 'December');

		// The months, genitive.
		$this->month_genitive['01'] = /* translators: Month name, genitive. */ _x( 'January', 'genitive' );
		$this->month_genitive['02'] = /* translators: Month name, genitive. */ _x( 'February', 'genitive' );
		$this->month_genitive['03'] = /* translators: Month name, genitive. */ _x( 'March', 'genitive' );
		$this->month_genitive['04'] = /* translators: Month name, genitive. */ _x( 'April', 'genitive' );
		$this->month_genitive['05'] = /* translators: Month name, genitive. */ _x( 'May', 'genitive' );
		$this->month_genitive['06'] = /* translators: Month name, genitive. */ _x( 'June', 'genitive' );
		$this->month_genitive['07'] = /* translators: Month name, genitive. */ _x( 'July', 'genitive' );
		$this->month_genitive['08'] = /* translators: Month name, genitive. */ _x( 'August', 'genitive' );
		$this->month_genitive['09'] = /* translators: Month name, genitive. */ _x( 'September', 'genitive' );
		$this->month_genitive['10'] = /* translators: Month name, genitive. */ _x( 'October', 'genitive' );
		$this->month_genitive['11'] = /* translators: Month name, genitive. */ _x( 'November', 'genitive' );
		$this->month_genitive['12'] = /* translators: Month name, genitive. */ _x( 'December', 'genitive' );

		// Abbreviations for each month.
		$this->month_abbrev[ $this->month['01'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Jan', 'January abbreviation' );
		$this->month_abbrev[ $this->month['02'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Feb', 'February abbreviation');
		$this->month_abbrev[ $this->month['03'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Mar', 'March abbreviation');
		$this->month_abbrev[ $this->month['04'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Apr', 'April abbreviation' );
		$this->month_abbrev[ $this->month['05'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'May', 'May abbreviation' );
		$this->month_abbrev[ $this->month['06'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Jun', 'June abbreviation' );
		$this->month_abbrev[ $this->month['07'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Jul', 'July abbreviation' );
		$this->month_abbrev[ $this->month['08'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Aug', 'August abbreviation' );
		$this->month_abbrev[ $this->month['09'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Sep', 'September abbreviation' );
		$this->month_abbrev[ $this->month['10'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Oct', 'October abbreviation' );
		$this->month_abbrev[ $this->month['11'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Nov', 'November abbreviation' );
		$this->month_abbrev[ $this->month['12'] ] = /* translators: Three-letter abbreviation of the month. */ _x( 'Dec', 'December abbreviation' );

		// The meridiems.
		$this->meridiem['am'] = __( 'am' );
		$this->meridiem['pm'] = __('pm');
		$this->meridiem['AM'] = __( 'AM' );
		$this->meridiem['PM'] = __( 'PM' );

		// Номери formatting.
		// See https://www.php.net/number_format

		/* translators: $thousands_sep argument for https://www.php.net/number_format, default is ',' */
		$thousands_sep = __( 'number_format_thousands_sep');

		// Зміна простору з небезперервним простором до одразу загортання.
		$thousands_sep = str_replace( ' ', ' ', $thousands_sep );

		$this->number_format['thousands_sep'] = ( 'number_format_thousands_sep' === $thousands_sep ) ? ',' : $thousands_sep;

		/* translators: $dec_point argument for https://www.php.net/number_format, default is '.' */
		$decimal_point = __( 'number_format_decimal_point' );

		$this->number_format['decimal_point'] = ( 'number_format_decimal_point' === $decimal_point ) ? '.' : $decimal_point;

		/* translators: Використовуються між літерами елементів, вони є space after the comma */
		$this->list_item_separator = __(', ');

		// Set text direction.
		if ( isset( $GLOBALS['text_direction'] ) ) {
			$this->text_direction = $GLOBALS['text_direction'];

			/* translators: 'rtl' або 'ltr'. Це означає, що прямий текст для WordPress. */
		} elseif ( 'rtl' === _x( 'ltr', 'text direction' ) ) {
			$this->text_direction = 'rtl';
		}
	}

	/**
	 * Retrieves the full translated weekday word.
	 *
	 * Week starts on translated Sunday and can be fetched
	 * by using 0 (zero). So the week starts with 0 (zero)
	 * and ends on Saturday with is fetched by using 6 (six).
	 *
	 * @ Since 2.1.0
	 *
	 * @param int $weekday_number 0 для Sunday через 6 Saturday.
	 * @return string Full translated weekday.
	 */
	public function get_weekday( $weekday_number ) {
		return $this->weekday[ $weekday_number ];
	}

	/**
	 * Retrieves the translated weekday initial.
	 *
	 * The weekday initial is retrieved by the translated
	 * full weekday word. When translating the weekday initial
	 * pay attention to make sure that the starting letter does
	 * not conflict.
	 *
	 * @ Since 2.1.0
	 *
	 * @param string $weekday_name Перейти до повного тексту weekday word.
	 * @return string Translated weekday initial.
	 */
	public function get_weekday_initial( $weekday_name ) {
		return $this->weekday_initial[ $weekday_name ];
	}

	/**
	 * Retrieves the translated weekday abbreviation.
	 *
	 * The weekday abbreviation is retrieved by the translated
	 * full weekday word.
	 *
	 * @ Since 2.1.0
	 *
	 * @param string $weekday_name Перейти до повного тексту weekday word.
	 * @return string Translated weekday abbreviation.
	 */
	public function get_weekday_abbrev( $weekday_name ) {
		return $this->weekday_abbrev[ $weekday_name ];
	}

	/**
	 * Retrieves the full translated month by month number.
	 *
	 * The $month_number parameter has to be a string
	 * because it must have the '0' in front of any number
	 * that is less than 10. Starts from '01' and ends at
	 * '12'.
	 *
	 * Ви можете використовувати integer instead and it will add the
	 * '0' before the numbers less than 10 for you.
	 *
	 * @ Since 2.1.0
	 *
	 * @param string|int $month_number '01' через '12'.
	 * @Return string Translated full month name.
	 */
	public function get_month( $month_number ) {
		return $this->month[ zeroise( $month_number, 2 ) ];
	}

	/**
	 * Retrieves translated version of month abbreviation string.
	 *
	 * Parameter $month_name є expected to be the translated or
	 * Translatable version of the month.
	 *
	 * @ Since 2.1.0
	 *
	 * @param string $month_name Translated month to get abbreviated version.
	 * @return string Translated abbreviated month.
	 */
	public function get_month_abbrev( $month_name ) {
		return $this->month_abbrev[ $month_name ];
	}

	/**
	 * Retrieves translated version of meridiem string.
	 *
	 * The $meridiem parameter is expected to not be translated.
	 *
	 * @ Since 2.1.0
	 *
	 * @param string $meridiem Either 'am', 'pm', 'AM', або 'PM'. Неперетворена версія.
	 * @return string Translated version
	 */
	public function get_meridiem( $meridiem ) {
		return $this->meridiem[ $meridiem ];
	}

	/**
	 * Global variables є deprecated.
	 *
	 * Для backward compatibility тільки.
	 *
	 * @deprecated Для backward compatibility тільки.
	 *
	 * @global array $weekday
	 * @global array $weekday_initial
	 * @global array $weekday_abbrev
	 * @global array $month
	 * @global array $month_abbrev
	 *
	 * @ Since 2.1.0
	 */
	public function register_globals() {
		$GLOBALS['weekday'] = $this->weekday;
		$GLOBALS['weekday_initial'] = $this->weekday_initial;
		$GLOBALS['weekday_abbrev'] = $this->weekday_abbrev;
		$GLOBALS['month'] = $this->month;
		$GLOBALS['month_abbrev'] = $this->month_abbrev;
	}

	/**
	 * Checks if current locale is RTL.
	 *
	 * @ Since 3.0.0
	 * @return bool Whether locale is RTL.
	 */
	public function is_rtl() {
		return 'rtl' === $this->text_direction;
	}

	/**
	 * Registers date/time format strings for general POT.
	 *
	 * Private, unused method to add some date/time formats translated
	 * on wp-admin/options-general.php до загальної POT that would
	 * Іншівикористовуються для адміністрування POT.
	 *
	 * @ Since 3.6.0
	 */
	public function _strings_for_pot() {
		/* translators: Localized date format, pozri https://www.php.net/manual/datetime.format.php */
		__( 'F j, Y');
		/* translators: Localized time format, see https://www.php.net/manual/datetime.format.php */
		__( 'g:i a' );
		/* translators: Localized date and time format, viz https://www.php.net/manual/datetime.format.php */
		__( 'F j, Y g:i a');
	}

	/**
	 * Retrieves the localized list item separator.
	 *
	 * @ Since 6.0.0
	 *
	 * @return string Localized list item separator.
	 */
	public function get_list_item_separator() {
		return $this->list_item_separator;
	}
}

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

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