Este es un puerto Laravel del paquete Twig Intl Extension.
El paquete se puede utilizar en cualquier aplicación basada en Laravel para manejar rápidamente la internacionalización proporcionando funciones auxiliares en plantillas Blade o código base de Laravel.
Usar compositor:
composer require bakame/laravel-intl-formatter
Para editar la configuración predeterminada, necesita publicar la configuración del paquete en el directorio de configuración de su aplicación:
php artisan vendor:publish --provider= " BakameLaravelIntl " --tag=config El archivo de configuración se publicará en config/bakame-intl-formatter.php en el directorio de su aplicación.
Consulte el archivo de configuración para obtener una descripción general de las opciones disponibles.
Una vez instalado, el paquete proporciona las siguientes funciones auxiliares globales:
Devuelve el nombre del país dado su código de dos o cinco letras;
country name: {{ country_name ( $country , $locale ) } } echo view ( $ templatePath , [ ' country ' => ' FR ' , ' locale ' => ' NL ' ])-> render ();
// country name: FrankrijkDevuelve el nombre de la moneda dado su código de tres letras;
currency name: {{ currency_name ( $currency , $locale ) } } echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency name: Iene japonêsDevuelve el símbolo de moneda dado su código de tres letras;
currency symbol: {{ currency_symbol ( $currency , $locale ) } } echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency symbol: JP¥Devuelve el símbolo de moneda dado su código de tres letras;
language name: {{ language_name ( $language , $locale ) } } echo view ( $ templatePath , [ ' language ' => ' it ' , ' locale ' => ' nl ' ])-> render ();
// language name: ItaliaansDevuelve el símbolo de moneda dado su código de tres letras;
locale name: {{ locale_name ( $data , $locale ) } } echo view ( $ templatePath , [ ' data ' => ' sw ' , ' locale ' => ' nl ' ])-> render ();
// locale name: SwahiliDevuelve el nombre de la zona horaria dado su identificador;
timezone name: {{ locale_name ( $data , $locale ) } } echo view ( $ templatePath , [ ' timezone ' => ' Asia/Tokyo ' , ' locale ' => ' es ' ])-> render ();
// timezone name: hora de Japón (Tokio)Devuelve los identificadores de zona horaria del código de país dado;
country timezones: {{ implde ( " , " , country_timezones ( $country )) } } $ content = view ( $ templatePath , [ ' country ' => ' CD ' , ' locale ' => ' es ' ])-> render ();
echo $ content , PHP_EOL ; // country timezones: Africa/Kinshasa, Africa/LubumbashiFormatea un número como moneda;
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$Formatea un número;
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 drieFormatea una fecha y hora;
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 KatiDa formato a la parte de fecha de una fecha y hora;
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 2022Formatea la parte de hora de una fecha y hora;
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 KatiCada función utiliza los mismos argumentos en el mismo orden que los filtros/funciones del paquete Twig Extra.
Si no se especifica ninguna locale en las llamadas a funciones, la función usará el resultado de IlluminateSupportFacadesApp::currentLocale() como el valor de configuración regional a usar.
En PHP8+, puedes usar parámetros con nombre para mejorar el uso de las funciones, ya que tienden a tener muchos argumentos:
En PHP7.4
<?php
echo format_datetime ( ' 2019-08-07 23:39:12 ' , ' fr ' , null , medium', ' medium ' , '' , ' gregorian ' , ' fr ' );En PHP8+
<?php
echo format_datetime (date: ' 2019-08-07 23:39:12 ' , locale: ' fr ' );Las contribuciones son bienvenidas y serán acreditadas en su totalidad. Consulte CONTRIBUCIÓN y CÓDIGO DE CONDUCTA para obtener más detalles.
La biblioteca:
Para ejecutar las pruebas, ejecute el siguiente comando desde la carpeta del proyecto.
$ composer test Si descubre algún problema relacionado con la seguridad, envíe un correo electrónico a [email protected] en lugar de utilizar el rastreador de problemas.
Las funciones de ayuda del paquete están fuertemente inspiradas en trabajos anteriores realizados por Fabien Potencier en Twig Intl Extension.
La Licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.