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: Frankrijk
Devuelve 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ês
Devuelve 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: Italiaans
Devuelve 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: Swahili
Devuelve 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/Lubumbashi
Formatea 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 drie
Formatea 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 Kati
Da 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 2022
Formatea 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 Kati
Cada 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.