Класс 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 Вызываемый объект, который должен вернуть экземпляр Package для сборки нового переводчика.
Возвращает
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 защищенное статическое
Коллекция переводчиков
Тип
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