Класс I18n
I18n обрабатывает перевод строк текста и форматов времени.
Краткое описание констант
-
stringDEFAULT_LOCALE'en_US'
Краткое описание свойств
- Коллекция переводчиков
- По умолчанию используемый локаль
string
Краткое описание методов
-
Уничтожает все экземпляры переводчиков и создаёт новую пустую коллекцию переводов.
-
Регистрирует вызываемый объект, который может использоваться для создания новых экземпляров переводчиков для того же домена переводов. Загрузчики будут вызываться всякий раз, когда запрашивается объект переводчика для домена, который ещё не был настроен или загружен.
-
Устанавливает имя форматировщика сообщений по умолчанию для будущих экземпляров переводчика.
-
Возвращает локаль по умолчанию до любых изменений, т.е. значение, хранящееся в
intl.default_localeнастройке PHP до любых манипуляций этим классом. - Возвращает текущий настроенный форматировщик по умолчанию.
- Возвращает локаль по умолчанию.
-
Вернёт текущую настроенную локаль, как хранится в
intl.default_localeнастройке PHP. - Возвращает экземпляр переводчика, который был настроен для имени и локали.
-
Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на
intl.default_localeнастройку PHP. -
Устанавливает имя форматировщика сообщений по умолчанию для будущих экземпляров переводчика. По умолчанию доступны форматировщики
defaultиsprintf. -
Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на
intl.default_localeнастройку PHP. - Устанавливает переводчика.
-
Возвращает экземпляр переводчика, который был настроен для имени и переданной локали. Если локаль не передана, то используется значение, возвращаемое методом
getLocale(). -
Возвращает экземпляр коллекции переводчиков. Он может использоваться для получения конкретных переводчиков на основе их имени и локали или для настройки некоторых аспектов будущих переводов, которые ещё не построены.
- Устанавливает, используется ли обращение к резервному домену.
Подробное описание методов
clear()source public static
clear( )
Уничтожает все экземпляры переводчиков и создаёт новую пустую коллекцию переводов.
config()source public static
config( string $name , callable $loader )
Регистрирует вызываемый объект, который может использоваться для создания новых экземпляров переводчиков для того же домена переводов. Загрузчики будут вызываться всякий раз, когда запрашивается объект переводчика для домена, который ещё не был настроен или загружен.
Регистрация загрузчиков полезна, когда вам нужно лениво использовать переводы на нескольких разных локалях для одного и того же домена и не хотите использовать встроенную службу перевода на основе gettext файлов.
Объекты загрузчика будут получать два аргумента: имя домена, который нужно создать, и запрашиваемую локаль. Эти объекты могут собирать сообщения из любого источника, но должны вернуть объект Aura\Intl\Package.
Пример:
use Cake\I18n\MessagesFileLoader;
I18n::config('my_domain', function ($name, $locale) {
// Load src/Locale/$locale/filename.po
$fileLoader = new MessagesFileLoader('filename', $locale, 'po');
return $fileLoader();
}); Вы также можете собрать объект пакета самостоятельно:
use Aura\Intl\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;
}); Параметры
- строка
$name - Имя переводчика, для которого нужно создать загрузчик
- вызываемый объект
$loader Вызываемый объект, который должен вернуть экземпляр Package, используемый для сборки нового переводчика.
defaultFormatter()source public static deprecated
defaultFormatter( string|null $name = null )
Устанавливает имя форматировщика сообщений по умолчанию для будущих экземпляров переводчика.
По умолчанию доступны форматировщики default и sprintf.
Если вызван без аргументов, вернёт текущее настроенное значение.
Устаревшее
3.5 Используйте getDefaultFormatter() и setDefaultFormatter().Параметры
- строка|null
$nameнеобязательно null - Имя форматировщика для использования.
Возвращает
строкаИмя форматировщика.
defaultLocale()source public static deprecated
defaultLocale( )
Возвращает локаль по умолчанию до любых изменений, т.е. значение, хранящееся в intl.default_locale настройке PHP до любых манипуляций этим классом.
Устаревшее
3.5 Используйте getDefaultLocale()Возвращает
строкаgetDefaultFormatter()source public static
getDefaultFormatter( )
Возвращает текущий настроенный форматировщик по умолчанию.
Возвращает
строкаИмя форматировщика.
getDefaultLocale()source public static
getDefaultLocale( )
Возвращает локаль по умолчанию.
Возвращает локаль по умолчанию до любых изменений, т.е. значение, хранящееся в intl.default_locale настройке PHP до любых манипуляций этим классом.
Возвращает
строкаgetLocale()source public static
getLocale( )
Вернёт текущую настроенную локаль, как хранится в intl.default_locale настройке PHP.
Возвращает
строкаИмя локали по умолчанию.
getTranslator()source public static
getTranslator( string $name = 'default' , string|null $locale = null )
Возвращает экземпляр переводчика, который был настроен для имени и локали.
Если локаль не передана, то используется значение, возвращаемое методом getLocale().
Параметры
- строка
$nameнеобязательно 'default' - Домен сообщений перевода.
- строка|null
$localeнеобязательно null - Локаль для переводчика.
Возвращает
Aura\Intl\TranslatorInterfaceНастроенный переводчик.
Исключения
Aura\Intl\Exceptionlocale()source public static deprecated
locale( string|null $locale = null )
Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на intl.default_locale параметр PHP.
При вызове без аргументов возвращает текущую конфигурированную локаль, сохранённую в intl.default_locale параметре PHP.
Устаревшее
3.5 Используйте setLocale() и getLocale().Параметры
- string|null
$localeoptional null - Имя локали, устанавливаемой по умолчанию.
Возвращает
string|nullИмя локали по умолчанию.
setDefaultFormatter()source public static
setDefaultFormatter( string $name )
Устанавливает имя форматера сообщений по умолчанию для будущих экземпляров переводчика. По умолчанию доступны форматеры default и sprintf.
Параметры
- string
$name - Имя форматера для использования.
setLocale()source public static
setLocale( string $locale )
Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на intl.default_locale параметр PHP.
Параметры
- string
$locale - Имя локали, устанавливаемой по умолчанию.
setTranslator()source public static
setTranslator( string $name , callable $loader , string|null $locale = null )
Устанавливает переводчик.
Конфигурирует будущих переводчиков, для этого передайте вызываемый объект в качестве последнего аргумента этой функции.
Пример:
I18n::setTranslator('default', function () {
$package = new \Aura\Intl\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 из папки src/Locale/custom вы должны сделать:
I18n::setTranslator(
'default',
new MessagesFileLoader('my_translations', 'custom', 'po'),
'fr_FR'
); Параметры
- string
$name - Домен сообщений перевода.
- callable
$loader Функция обратного вызова или вызываемый класс, отвечающий за создание экземпляра пакета переводов.
- string|null
$localeoptional null - Локаль для переводчика.
translator()source public static deprecated
translator( string $name = 'default' , string|null $locale = null , callable $loader = null )
Возвращает экземпляр переводчика, который был сконфигурирован для имени и переданной локали. Если локаль не передана, то используется значение, возвращаемое методом getLocale().
Этот метод может использоваться для настройки будущих переводчиков, для этого передайте вызываемый объект в качестве последнего аргумента этой функции.
Пример:
I18n::setTranslator('default', function () {
$package = new \Aura\Intl\Package();
$package->setMessages([
'Cake' => 'Gâteau'
]);
return $package;
}, 'fr_FR');
$translator = I18n::translator('default', 'fr_FR');
echo $translator->translate('Cake'); Вы также можете использовать класс Cake\I18n\MessagesFileLoader для загрузки определённого файла из папки. Например, для загрузки файла my_translations.po из папки src/Locale/custom вы должны сделать:
I18n::translator(
'default',
'fr_FR',
new MessagesFileLoader('my_translations', 'custom', 'po');
); Устаревшее
3.5 Используйте getTranslator() и setTranslator()Параметры
- string
$nameoptional 'default' - Домен сообщений перевода.
- string|null
$localeoptional null - Локаль для переводчика.
- callable
$loaderoptional null Функция обратного вызова или вызываемый класс, отвечающий за создание экземпляра пакета переводов.
Возвращает
Aura\Intl\TranslatorInterface|nullНастроенный переводчик.
Вызывает исключение
Aura\Intl\Exceptiontranslators()source public static
translators( )
Возвращает экземпляр коллекции переводчиков. Он может быть использован для получения конкретных переводчиков на основе их имени и локали или для конфигурирования некоторых аспектов будущих переводов, которые ещё не созданы.
Возвращает
Cake\I18n\TranslatorRegistryКоллекция переводчиков.
useFallback()source public static
useFallback( boolean $enable = true )
Устанавливает, используется ли откат по домену.
Параметры
- boolean
$enableoptional true - Флаг для включения или отключения отката.
Подробное описание свойств
© 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/3.8/class-Cake.I18n.I18n.html