Класс I18n
I18n обрабатывает перевод строк текста и форматов времени.
Постоянные значения
-
stringDEFAULT_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
Уничтожает все экземпляры переводчика и создаёт новую пустую коллекцию переводов.
Возвращает
voidconfig() 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 Вызываемый объект, который должен вернуть экземпляр пакета, используемого для сборки нового переводчика.
Возвращает
voidgetDefaultFormatter() public static
getDefaultFormatter(): string
Возвращает текущий настроенный по умолчанию форматер.
Возвращает
stringgetDefaultLocale() public static
getDefaultLocale(): string
Возвращает локаль по умолчанию.
Это возвращает локаль по умолчанию до любых изменений, т.е. значение, сохранённое в настройке PHP intl.default_locale до любых манипуляций этим классом.
Возвращает
stringgetLocale() public static
getLocale(): string
Возвращает текущую настроенную локаль, сохранённую в настройке PHP intl.default_locale.
Возвращает
stringgetTranslator() 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\I18nExceptionsetDefaultFormatter() public static
setDefaultFormatter(string $name): void
Устанавливает имя форматера сообщений по умолчанию для будущих экземпляров переводчика. По умолчанию доступны форматеры default и sprintf.
Параметры
-
string$name Имя форматера для использования.
Возвращает
voidsetLocale() public static
setLocale(string $locale): void
Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на настройку PHP intl.default_locale.
Параметры
-
string$locale Имя локали, устанавливаемой по умолчанию.
Возвращает
voidsetTranslator() 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 Локаль для переводчика.
Возвращает
voidtranslators() public static
translators(): Cake\I18n\TranslatorRegistry
Возвращает экземпляр коллекции переводчиков. Его можно использовать для получения конкретных переводчиков на основе их имени и локали или для настройки некоторых аспектов будущих переводов, которые ещё не созданы.
Возвращает
Cake\I18n\TranslatorRegistryuseFallback() 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