Spec-Zone.ru › CakePHP 4.2

Класс I18n

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

Пространство имён: Cake\I18n

Постоянные значения

  • string
    DEFAULT_LOCALE
    'en_US'

    Локаль по умолчанию

Краткое описание свойств

  • $_collection protected static
    Cake\I18n\TranslatorRegistry|null

    Коллекция переводчиков

  • $_defaultLocale protected static
    string|null

    Локаль по умолчанию среды

Краткое описание методов

  • clear() public static

    Уничтожает все экземпляры переводчика и создаёт новую пустую коллекцию переводов.

  • config() public static

    Регистрирует вызываемый объект, который можно использовать для создания новых экземпляров переводчика для одного и того же домена переводов. Загрузчики будут вызываться всякий раз, когда запрашивается объект переводчика для домена, который ещё не был настроен или загружен.

  • getDefaultFormatter() public static

    Возвращает текущий настроенный по умолчанию форматер.

  • getDefaultLocale() public static

    Возвращает локаль по умолчанию.

  • getLocale() public static

    Возвращает текущую настроенную локаль, сохранённую в настройке PHP intl.default_locale.

  • getTranslator() public static

    Возвращает экземпляр переводчика, настроенный для имени и локали.

  • setDefaultFormatter() public static

    Устанавливает имя форматера сообщений по умолчанию для будущих экземпляров переводчика. По умолчанию доступны форматеры default и sprintf.

  • setLocale() public static

    Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на настройку PHP intl.default_locale.

  • setTranslator() public static

    Устанавливает переводчик.

  • translators() public static

    Возвращает экземпляр коллекции переводчиков. Его можно использовать для получения конкретных переводчиков на основе их имени и локали или для настройки некоторых аспектов будущих переводов, которые ещё не созданы.

  • useFallback() public static

    Устанавливает, используется ли обратный поиск по домену.

Подробное описание методов

clear() public static

clear(): void

Уничтожает все экземпляры переводчика и создаёт новую пустую коллекцию переводов.

Возвращает

void

config() public static

config(string $name, callable $loader): void

Регистрирует вызываемый объект, который можно использовать для создания новых экземпляров переводчика для одного и того же домена переводов. Загрузчики будут вызываться всякий раз, когда запрашивается объект переводчика для домена, который ещё не был настроен или загружен.

Регистрация загрузчиков полезна, когда вам нужно лениво использовать переводы на разных локалях для одного домена и вы не хотите использовать встроенную службу перевода на основе файлов gettext.

Объекты загрузчика получат два аргумента: имя домена, который нужно создать, и запрашиваемую локаль. Эти объекты могут собирать сообщения из любого источника, но должны вернуть объект Cake\I18n\Package.

Пример:

use Cake\I18n\MessagesFileLoader;
 I18n::config('my_domain', function ($name, $locale) {
     // Load resources/locales/$locale/filename.po
     $fileLoader = new MessagesFileLoader('filename', $locale, 'po');
     return $fileLoader();
 });

Вы также можете собрать объект пакета самостоятельно:

use Cake\I18n\Package;
 I18n::config('my_domain', function ($name, $locale) {
     $package = new Package('default');
     $messages = (...); // Fetch messages for locale from external service.
     $package->setMessages($message);
     $package->setFallback('default');
     return $package;
 });

Параметры

string $name

Имя переводчика, для которого нужно создать загрузчик

callable $loader

Вызываемый объект, который должен вернуть экземпляр пакета, используемого для сборки нового переводчика.

Возвращает

void

getDefaultFormatter() public static

getDefaultFormatter(): string

Возвращает текущий настроенный по умолчанию форматер.

Возвращает

string

getDefaultLocale() public static

getDefaultLocale(): string

Возвращает локаль по умолчанию.

Это возвращает локаль по умолчанию до любых изменений, т.е. значение, сохранённое в настройке PHP intl.default_locale до любых манипуляций этим классом.

Возвращает

string

getLocale() public static

getLocale(): string

Возвращает текущую настроенную локаль, сохранённую в настройке PHP intl.default_locale.

Возвращает

string

getTranslator() public static

getTranslator(string $name = 'default', string|null $locale = null): Cake\I18n\Translator

Возвращает экземпляр переводчика, настроенный для имени и локали.

Если локаль не передана, она берётся из значения, возвращённого методом getLocale().

Параметры

string $name optional

Домен сообщений перевода.

string|null $locale optional

Локаль для переводчика.

Возвращает

Cake\I18n\Translator

Исключения

Cake\I18n\Exception\I18nException

setDefaultFormatter() public static

setDefaultFormatter(string $name): void

Устанавливает имя форматера сообщений по умолчанию для будущих экземпляров переводчика. По умолчанию доступны форматеры default и sprintf.

Параметры

string $name

Имя форматера для использования.

Возвращает

void

setLocale() public static

setLocale(string $locale): void

Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на настройку PHP intl.default_locale.

Параметры

string $locale

Имя локали, устанавливаемой по умолчанию.

Возвращает

void

setTranslator() public static

setTranslator(string $name, callable $loader, string|null $locale = null): void

Устанавливает переводчик.

Настраивает будущих переводчиков, это достигается передачей вызываемого объекта в качестве последнего аргумента этой функции.

Пример:

I18n::setTranslator('default', function () {
     $package = new \Cake\I18n\Package();
     $package->setMessages([
         'Cake' => 'Gâteau'
     ]);
     return $package;
 }, 'fr_FR');

$translator = I18n::getTranslator('default', 'fr_FR');
 echo $translator->translate('Cake');

Вы также можете использовать класс Cake\I18n\MessagesFileLoader для загрузки определённого файла из папки. Например, для загрузки файла my_translations.po из папки resources/locales/custom, вы бы сделали:

I18n::setTranslator(
 'default',
 new MessagesFileLoader('my_translations', 'custom', 'po'),
 'fr_FR'
);

Параметры

string $name

Домен сообщений перевода.

callable $loader

Функция обратного вызова или вызываемый класс, ответственный за создание экземпляра пакета переводов.

string|null $locale optional

Локаль для переводчика.

Возвращает

void

translators() public static

translators(): Cake\I18n\TranslatorRegistry

Возвращает экземпляр коллекции переводчиков. Его можно использовать для получения конкретных переводчиков на основе их имени и локали или для настройки некоторых аспектов будущих переводов, которые ещё не созданы.

Возвращает

Cake\I18n\TranslatorRegistry

useFallback() public static

useFallback(bool $enable = true): void

Устанавливает, используется ли обратный поиск по домену.

Параметры

bool $enable optional

Флаг для включения или выключения обратного поиска.

Возвращает

void

Подробное описание свойства

$_collection protected static

Коллекция переводчиков

Тип

Cake\I18n\TranslatorRegistry|null

$_defaultLocale protected static

Значение локали по умолчанию среды

Тип

string|null

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.I18n.I18n.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API