Класс I18n
I18n обрабатывает перевод строк текста и форматов времени.
Краткое описание констант
-
string'en_US'
Краткое описание свойств
- Коллекция переводчиков
Aura\Intl\TranslatorLocator - Значение по умолчанию локали окружения
string
Краткое описание методов
-
Уничтожает все экземпляры переводчиков и создаёт новую пустую коллекцию переводов.
-
Регистрирует вызываемый объект, который можно использовать для создания новых экземпляров переводчиков для одного и того же домена переводов. Загрузчики будут вызываться всякий раз, когда запрашивается объект переводчика для домена, который ещё не настроен или загружен.
-
Устанавливает имя форматера сообщений по умолчанию для использования в будущих экземплярах переводчиков. По умолчанию доступны форматеры
defaultиsprintf. -
Возвращает локаль по умолчанию до любых изменений, то есть значение, хранящееся в настройке
intl.default_localePHP перед любыми манипуляциями этим классом. -
Устанавливает локаль по умолчанию для использования в будущих экземплярах переводчиков. Это также влияет на настройку
intl.default_localePHP. -
Возвращает экземпляр переводчика, настроенного для имени и переданной локали. Если локаль не передана, то берется значение, возвращаемое методом
locale(). -
Возвращает экземпляр коллекции переводчиков. Его можно использовать для получения конкретных переводчиков на основе их имени и локали или для настройки некоторых аспектов будущих переводов, которые ещё не созданы.
- Использовать обратный поиск домена.
Подробное описание методов
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 Вызываемый объект, который должен вернуть экземпляр пакета, используемый для сборки нового переводчика.
defaultFormatter()source public static
defaultFormatter( string|null $name null )
Устанавливает имя форматера сообщений по умолчанию для будущих экземпляров переводчика. По умолчанию доступны форматеры default и sprintf.
Если вызов не содержит аргументов, возвращает текущее значение конфигурации.
Параметры
- string|null
$nameнеобязательно null - Имя форматера для использования.
Возвращает
stringИмя форматера.
defaultLocale()source public static
defaultLocale( )
Возвращает локаль по умолчанию до любых изменений, т.е. значение, хранящееся в настройке PHP intl.default_locale до любой обработки этим классом.
Возвращает
stringlocale()source public static
locale( string|null $locale null )
Устанавливает локаль по умолчанию для будущих экземпляров переводчика. Это также влияет на настройку PHP intl.default_locale.
При вызове без аргументов возвращает текущую конфигурированную локаль, хранящуюся в настройке PHP intl.default_locale.
Параметры
- string|null
$localeнеобязательно null - Имя локали для установки по умолчанию.
Возвращает
string|nullИмя локали по умолчанию.
translator()source 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');
); Параметры
- string
$nameнеобязательно 'default' - Домен сообщений перевода.
- string|null
$localeнеобязательно null - Локаль для переводчика.
- callable
$loaderнеобязательно null Функция обратного вызова или вызываемый класс, ответственный за создание экземпляра пакета переводов.
Возвращает
Aura\Intl\Translator|nullНастроенный переводчик.
translators()source public static
translators( )
Возвращает экземпляр коллекции переводчиков. Он может использоваться для получения конкретных переводчиков на основе их имени и локали или для настройки некоторых аспектов будущих переводов, которые еще не созданы.
Возвращает
Aura\Intl\TranslatorLocatorКоллекция переводчиков.
useFallback()source public static
useFallback( boolean $enable true )
Устанавливает, используется ли обращение к резервному домену.
Параметры
- boolean
$enableнеобязательно true - Флаг для включения или отключения резервного домена
Подробное описание свойств
END_OF_DOCUMENT_MARKER
© 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.2/class-Cake.I18n.I18n.html