CloudCastle Clock API

CalendarLocale
in package

FinalYes

Локализация календаря на шести языках (ru, en, de, fr, es, it) для {@see CalendarDate}: названия месяцев и дней недели плюс согласование единиц с числительными для человекочитаемой разницы ({@see CalendarDate::diffForHumans()}).

Счётные формы («5 дней», «2 года») строит Inflector из экосистемы CloudCastle — он корректно различает три славянские формы русского (1 день / 2 дня / 5 дней, с учётом 11 и 21) и множественное число германо-романских языков. Итальянский инфлектор пока не покрывает — для него применяется встроенная пара форм. Тяжёлые ICU-локали/ext-intl не подключаются.

Table of Contents

Constants

LOCALES  : array<int, non-empty-string> = ['ru', 'en', 'de', 'fr', 'es', 'it']
Поддерживаемые языки локализации.

Methods

assertLocale()  : non-empty-string
Проверка и нормализация кода языка.
monthName()  : string
Название месяца.
unit()  : non-empty-string
Число с согласованной единицей: «5 дней», «2 года», «1 Tag».
weekdayName()  : string
Название дня недели.
wrap()  : non-empty-string
Обернуть фразу разницы в прошлое/будущее: «5 дней назад», «in 2 hours».

Constants

LOCALES

Поддерживаемые языки локализации.

public array<int, non-empty-string> LOCALES = ['ru', 'en', 'de', 'fr', 'es', 'it']

Methods

assertLocale()

Проверка и нормализация кода языка.

public static assertLocale(string $locale) : non-empty-string
Parameters
$locale : string

код языка

Tags
throws
InvalidClockValueException

если язык не поддерживается

Return values
non-empty-string —

поддерживаемый код в нижнем регистре

monthName()

Название месяца.

public static monthName(int $month, string $locale[, bool $short = false ]) : string
Parameters
$month : int

номер месяца 1–12

$locale : string

код языка

$short : bool = false

короткая форма (первые 3 символа полного названия)

Tags
throws
InvalidClockValueException

если месяц вне диапазона или язык не поддержан

Return values
string —

локализованное название месяца

unit()

Число с согласованной единицей: «5 дней», «2 года», «1 Tag».

public static unit(int $count, non-empty-string $unit, non-empty-string $locale[, bool $governed = true ]) : non-empty-string

Русские и германо-романские формы строит инфлектор CloudCastle; итальянский — встроенной парой форм.

Parameters
$count : int

количество (учитывается модуль)

$unit : non-empty-string

ключ единицы (y/m/w/d/h/i/s)

$locale : non-empty-string

поддерживаемый код языка

$governed : bool = true

фраза управляется предлогом «через/назад», «vor/in»; false — самостоятельная фраза в именительном падеже

Return values
non-empty-string —

число с единицей в нужной форме

weekdayName()

Название дня недели.

public static weekdayName(int $weekday, string $locale[, bool $short = false ]) : string
Parameters
$weekday : int

день недели 0=воскресенье … 6=суббота

$locale : string

код языка

$short : bool = false

короткая форма (первые 3 символа полного названия)

Tags
throws
InvalidClockValueException

если день вне диапазона или язык не поддержан

Return values
string —

локализованное название дня недели

wrap()

Обернуть фразу разницы в прошлое/будущее: «5 дней назад», «in 2 hours».

public static wrap(non-empty-string $phrase, bool $future, non-empty-string $locale) : non-empty-string
Parameters
$phrase : non-empty-string

готовая фраза единицы

$future : bool

момент в будущем

$locale : non-empty-string

поддерживаемый код языка

Return values
non-empty-string —

обёрнутая человекочитаемая разница

On this page

Search results