Это порт Laravel пакета Twig Intl Extension.
Пакет можно использовать в любом приложении на основе Laravel для быстрой обработки интернационализации путем предоставления вспомогательных функций в шаблонах Blade или базе кода Laravel.
Используйте композитор:
composer require bakame/laravel-intl-formatter
Чтобы изменить конфигурацию по умолчанию, вам необходимо опубликовать конфигурацию пакета в каталоге конфигурации вашего приложения:
php artisan vendor:publish --provider= " BakameLaravelIntl " --tag=config Файл конфигурации будет опубликован в config/bakame-intl-formatter.php в каталоге вашего приложения.
Пожалуйста, обратитесь к файлу конфигурации для обзора доступных опций.
После установки пакет предоставляет следующие глобальные вспомогательные функции:
Возвращает название страны с учетом ее двухбуквенного или пятибуквенного кода;
country name: {{ country_name ( $country , $locale ) } } echo view ( $ templatePath , [ ' country ' => ' FR ' , ' locale ' => ' NL ' ])-> render ();
// country name: FrankrijkВозвращает название валюты по ее трехбуквенному коду;
currency name: {{ currency_name ( $currency , $locale ) } } echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency name: Iene japonêsВозвращает символ валюты по его трехбуквенному коду;
currency symbol: {{ currency_symbol ( $currency , $locale ) } } echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency symbol: JP¥Возвращает символ валюты по его трехбуквенному коду;
language name: {{ language_name ( $language , $locale ) } } echo view ( $ templatePath , [ ' language ' => ' it ' , ' locale ' => ' nl ' ])-> render ();
// language name: ItaliaansВозвращает символ валюты по его трехбуквенному коду;
locale name: {{ locale_name ( $data , $locale ) } } echo view ( $ templatePath , [ ' data ' => ' sw ' , ' locale ' => ' nl ' ])-> render ();
// locale name: SwahiliВозвращает имя часового пояса с учетом его идентификатора;
timezone name: {{ locale_name ( $data , $locale ) } } echo view ( $ templatePath , [ ' timezone ' => ' Asia/Tokyo ' , ' locale ' => ' es ' ])-> render ();
// timezone name: hora de Japón (Tokio)Возвращает идентификаторы часового пояса данного кода страны;
country timezones: {{ implde ( " , " , country_timezones ( $country )) } } $ content = view ( $ templatePath , [ ' country ' => ' CD ' , ' locale ' => ' es ' ])-> render ();
echo $ content , PHP_EOL ; // country timezones: Africa/Kinshasa, Africa/LubumbashiФорматирует число как валюту;
format currency: {{ format_currency ( $amount , $currency , $attrs , $locale ) } } $ templateData = [
' amount ' => 100.356 ,
' currency ' => ' USD ' ,
' locale ' => ' ES ' ,
' attrs ' => [
' fraction_digit ' => 1 ,
' rounding_mode ' => ' floor ' ,
]
];
echo view ( $ templatePath , $ templateData )-> render ();
// format currency: 100,3 US$Форматирует число;
format number: {{ format_number ( $number , $locale , $attrs ) } } $ templateData = [
' number ' => 100.356 ,
' locale ' => ' nl ' ,
' style ' => ' spellout ' ,
' type ' => ' double ' ,
' attrs ' => [
' fraction_digit ' => 1 ,
' rounding_mode ' => ' floor ' ,
]
];
echo view ( $ templatePath , $ templateData )-> render ();
// format number: honderd komma drieФорматирует дату и время;
format datetime: {{ format_datetime ( $date , $locale , $timezone , $dateFormat , $timeFormat , $pattern , $calendar ) } } $ templateData = [
' date ' => ' yesterday ' ,
' dateFormat ' => ' full ' ,
' timeFormat ' => ' full ' ,
' pattern ' => '' ,
' timezone ' => ' Africa/Lubumbashi ' ,
' calendar ' => ' gregorian ' ,
' locale ' => ' sw ' ,
];
echo view ( $ templatePath , $ templateData )-> render ();
// format datetime: Alhamisi, 2 Juni 2022 00:00:00 Saa za Afrika ya KatiФорматирует часть даты в datetime;
format date: {{ format_date ( $date , $locale , $timezone , $dateFormat , $pattern , $calendar ) } } $ templateData = [
' date ' => ' yesterday ' ,
' dateFormat ' => ' long ' ,
' pattern ' => '' ,
' timezone ' => ' Africa/Lubumbashi ' ,
' calendar ' => ' gregorian ' ,
' locale ' => ' sw ' ,
];
echo view ( $ templatePath , $ templateData )-> render ();
// format date: 2 Juni 2022Форматирует временную часть даты и времени;
format time: {{ format_time ( $date , $locale , $timezone , $timeFormat , $pattern , $calendar ) } } $ templateData = [
' date ' => ' yesterday ' ,
' dateFormat ' => ' full ' ,
' pattern ' => '' ,
' timezone ' => ' Africa/Lubumbashi ' ,
' calendar ' => ' gregorian ' ,
' locale ' => ' sw ' ,
];
echo view ( $ templatePath , $ templateData )-> render ();
// format time: 00:00:00 Saa za Afrika ya KatiКаждая функция использует те же аргументы в том же порядке, что и фильтры/функции пакета Twig Extra.
Если в вызовах функций не указан locale , функция будет использовать результат IlluminateSupportFacadesApp::currentLocale() в качестве значения локали, которое будет использоваться.
В PHP8+ вы можете использовать именованные параметры для улучшения использования функций, поскольку они обычно имеют много аргументов:
В PHP7.4
<?php
echo format_datetime ( ' 2019-08-07 23:39:12 ' , ' fr ' , null , medium', ' medium ' , '' , ' gregorian ' , ' fr ' );В PHP8+
<?php
echo format_datetime (date: ' 2019-08-07 23:39:12 ' , locale: ' fr ' );Взносы приветствуются и будут полностью зачтены. Подробную информацию см. в разделах «ВКЛАД» и «КОДЕКС ПОВЕДЕНИЯ».
Библиотека:
Чтобы запустить тесты, выполните следующую команду из папки проекта.
$ composer test Если вы обнаружите какие-либо проблемы, связанные с безопасностью, отправьте электронное письмо по адресу [email protected] вместо использования системы отслеживания проблем.
Вспомогательные функции пакета во многом вдохновлены предыдущими работами Фабьена Потенсье над расширением Twig Intl.
Лицензия MIT (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.