Класс I18n
I18n обрабатывает перевод строк текста и форматов времени.
Подробное описание метода
clearsource public static
clear( )
Уничтожает все экземпляры переводчиков и создаёт новую пустую коллекцию переводов.
configsource 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 - Вызываемый объект, который должен возвращать экземпляр пакета, используемый для сборки нового переводчика.
defaultFormattersource public static
defaultFormatter( string|null $name null )
Устанавливает имя форматера сообщений по умолчанию, используемого для будущих экземпляров переводчиков. По умолчанию доступны форматеры default и sprintf.
Если вызов не содержит аргументов, возвращается текущее значение конфигурации.
Параметры
- строка|null
$nameдополнительно null - Имя форматера для использования.
Возвращает
stringИмя форматера.
defaultLocalesource public static
defaultLocale( )
Возвращает локаль по умолчанию до любых изменений, т.е. значение, хранящееся в intl.default_locale настройке PHP до любой обработки этим классом.
Возвращает
stringстрока
localesource public static
locale( string|null $locale null )
Устанавливает локаль по умолчанию для будущих экземпляров переводчиков. Это также влияет на intl.default_locale настройку PHP.
Если вызов не содержит аргументов, возвращается текущая настроенная локаль, хранящаяся в intl.default_locale настройке PHP.
Параметры
- строка|null
$localeдополнительно null - Имя локали, которая должна быть установлена по умолчанию.
Возвращает
string|nullИмя локали по умолчанию.
translatorsource public static
translator( string $name 'default' , string|null $locale null , callable $loader null )
Возвращает экземпляр переводчика, который был настроен для имени и переданной локали. Если локаль не передана, используется значение, возвращаемое методом locale().
Этот метод может использоваться для настройки будущих переводчиков, для чего в качестве последнего аргумента передаётся вызываемый объект.
Пример:
I18n::translator('default', 'fr_FR', function () { $package = new \Aura\Intl\Package(); $package->setMessages([ 'Cake' => 'Gâteau' ]); return $package; }); $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'); );
Параметры
- строка
$nameдополнительно 'default' - Домен сообщений перевода.
- строка|null
$localeдополнительно null - Локаль для переводчика.
- вызываемый объект
$loaderдополнительно null - Функция обратного вызова или вызываемый класс, ответственный за создание экземпляра пакета переводов.
Возвращает
Aura\Intl\Translator|nullНастроенный переводчик.
translatorssource public static
translators( )
Возвращает экземпляр коллекции переводчиков. Его можно использовать для получения конкретных переводчиков по их имени и локали или для настройки некоторых аспектов будущих переводов, которые ещё не созданы.
Возвращает
Aura\Intl\TranslatorLocatorКоллекция переводчиков.
useFallbacksource public static
useFallback( boolean $enable true )
Устанавливает, используется ли обратный домен.
Параметры
- булево
$enableдополнительно true - Флаг для включения или отключения обратного вызова.
Краткое описание констант
string | DEFAULT_LOCALE Локаль по умолчанию | 'en_US' |
Краткое описание свойств
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.I18n.I18n.html