CloudCastle UnitConvertor

Formatter
in package
implements FormatterInterface

FinalYes

Локализованное форматирование величин: числовые соглашения локали, локализованные символы и плюрализованные имена единиц на 6 языках.

Данные локали отсутствуют или не содержат единицу — фолбэк на международный символ: форматирование никогда не падает из-за пробела в переводах.

Table of Contents

Interfaces

FormatterInterface
Локализованное форматирование величин.

Constants

SYMBOL  : mixed = 0
Позиция локализованного символа в записи данных локали.

Properties

$localePath  : string|null
$locales  : array<string, array{decimal: string, plural: string, units: array>}>

Methods

__construct()  : mixed
format()  : string
Форматирует величину по соглашениям локали.
unitName()  : string
Локализованное имя единицы, согласованное с числом; фолбэк — символ.
unitSymbol()  : string
Локализованный символ единицы; фолбэк — международный символ.
formatNumber()  : string
Форматирует число с десятичным разделителем локали.
localeData()  : array{decimal: string, plural: string, units: array>}
Данные локали с ленивой загрузкой; неизвестная локаль — пустой фолбэк.
parseLocale()  : array{decimal: string, plural: string, units: array>}
Валидирует сырые данные локали, отбрасывая нестроковые элементы.
pluralIndex()  : int
Индекс формы множественного числа по правилам локали.
russianPluralIndex()  : int
Русская плюрализация: 1 километр / 2 километра / 5 километров; дробные значения — форма родительного падежа (1,5 километра).
stringForms()  : array<int, string>
Отбирает строковые формы записи единицы.
stringOr()  : string
Строковое поле сырого массива или значение по умолчанию.

Constants

SYMBOL

Позиция локализованного символа в записи данных локали.

private mixed SYMBOL = 0

Properties

$localePath read-only

private string|null $localePath = null

$locales

private array<string, array{decimal: string, plural: string, units: array>}> $locales = []

Methods

__construct()

public __construct([null|string $localePath = null ]) : mixed
Parameters
$localePath : null|string = null

каталог данных локалей; null — встроенный

format()

Форматирует величину по соглашениям локали.

public format(Quantity $quantity[, int|null $precision = null ][, string $locale = 'ru' ][, bool $long = false ]) : string
Parameters
$quantity : Quantity
$precision : int|null = null

знаков после запятой; null — без округления

$locale : string = 'ru'

код локали («ru», «en», «de», «fr», «es», «it»)

$long : bool = false
Attributes
#[Override]
Return values
string

unitName()

Локализованное имя единицы, согласованное с числом; фолбэк — символ.

public unitName(Unit $unit, float $count[, string $locale = 'ru' ]) : string
Parameters
$unit : Unit
$count : float
$locale : string = 'ru'
Attributes
#[Override]
Return values
string

unitSymbol()

Локализованный символ единицы; фолбэк — международный символ.

public unitSymbol(Unit $unit[, string $locale = 'ru' ]) : string
Parameters
$unit : Unit
$locale : string = 'ru'
Attributes
#[Override]
Return values
string

formatNumber()

Форматирует число с десятичным разделителем локали.

private formatNumber(float $value, int|null $precision, string $decimal) : string
Parameters
$value : float
$precision : int|null
$decimal : string
Return values
string

localeData()

Данные локали с ленивой загрузкой; неизвестная локаль — пустой фолбэк.

private localeData(string $locale) : array{decimal: string, plural: string, units: array>}
Parameters
$locale : string
Return values
array{decimal: string, plural: string, units: array>}

parseLocale()

Валидирует сырые данные локали, отбрасывая нестроковые элементы.

private parseLocale(array<string|int, mixed> $raw) : array{decimal: string, plural: string, units: array>}
Parameters
$raw : array<string|int, mixed>
Return values
array{decimal: string, plural: string, units: array>}

pluralIndex()

Индекс формы множественного числа по правилам локали.

private pluralIndex(string $rule, float $count, int $formsCount) : int

Правила: «ru» — one/few/many (дробные — few); «fr» — one при |n| < 2; остальные — one/other.

Parameters
$rule : string
$count : float
$formsCount : int
Return values
int

russianPluralIndex()

Русская плюрализация: 1 километр / 2 километра / 5 километров; дробные значения — форма родительного падежа (1,5 километра).

private russianPluralIndex(float $abs, bool $isInteger) : int
Parameters
$abs : float
$isInteger : bool
Return values
int

stringForms()

Отбирает строковые формы записи единицы.

private stringForms(array<string|int, mixed> $forms) : array<int, string>
Parameters
$forms : array<string|int, mixed>
Return values
array<int, string>

stringOr()

Строковое поле сырого массива или значение по умолчанию.

private stringOr(array<string|int, mixed> $raw, string $key, string $default) : string
Parameters
$raw : array<string|int, mixed>
$key : string
$default : string
Return values
string
On this page

Search results