-
Notifications
You must be signed in to change notification settings - Fork 0
I18n
Плагин предоставляет механизмы интернационализации проекта, используя файлы локализации вида:
// Файл _locale/ru_RU.php
return [
'hello' => 'привет',
...
];
- domain - адрес каталога, содержащего файлы локализации для данного домена (_locale по умолчанию)
// Файл articles/index.php
$sp = [
'i18n' => [
'domain' => '_locale', // Каталог для локализации текущей страницы
],
...
];
...
i18n_get_locale(int $category) : array
Предоставляет информацию о локали и кодировки для данной категории (см. setlocale).
list($locale, $encoding) = i18n_get_locale(LC_CTYPE);
i18n_load_translate(string $domain, [string $locale]) : array
Загружает локализацию для данного домена и локали (LC_CTYPE по умолчанию).
$translate = i18n_load_translate('_locale', 'ru_RU');
i18n(string $string, [string $domain], [string $locale]) : string
Выполняет локализацию сообщения для данного домена (_locale по умолчанию) и локали (LC_CTYPE по умолчанию).
$loc = i18n('hello');
i18n_plural(numeric $number, string $plural, [string $domain], [string $locale]) : string
Выполняет плюрализацию числа в соответствии с конфигурацией для данного домена (_locale по умолчанию) и локали (LC_CTYPE по умолчанию).
$plural = i18n_plural(5, '%d articles');
Важно: для плюрализации числа необходимо указать в конфигурации правила выбора формы.
Пример конфигурации для плюрализации:
// Файл _locale/ru_RU.php
[
'' => [
// Правило плюрализации
'plural_forms' => function($n){
if($n % 10 == 1 && $n % 100 != 11){
return 0;
}
elseif($n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 || $n % 100 >= 20)){
return 1;
}
else{
return 2;
}
}
],
'%d articles' => [
'%d статья',
'%d статьи',
'%d статей'
],
]
Не получается разобраться? Спросите в чате!
- Быстрый старт
- Плагины