Spec-Zone.ru › CakePHP 4.4

Класс 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

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

Возвращает

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 защищенное статическое

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

Тип

Cake\I18n\TranslatorRegistry|null

$_defaultLocale защищенное статическое

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

Тип

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.4/class-Cake.I18n.I18n.html

Spec-Zone.ru

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