Ini adalah port Laravel dari paket Ekstensi Twig Intl.
Paket ini dapat digunakan di aplikasi berbasis Laravel apa pun untuk menangani internasionalisasi dengan cepat dengan menyediakan fungsi pembantu di template Blade atau basis kode Laravel.
Gunakan komposer:
composer require bakame/laravel-intl-formatter
Untuk mengedit konfigurasi default, Anda perlu mempublikasikan konfigurasi paket ke direktori konfigurasi aplikasi Anda:
php artisan vendor:publish --provider= " BakameLaravelIntl " --tag=config
File konfigurasi akan dipublikasikan ke config/bakame-intl-formatter.php
di direktori aplikasi Anda.
Silakan merujuk ke file konfigurasi untuk ikhtisar opsi yang tersedia.
Setelah terinstal, paket ini menyediakan fungsi pembantu global berikut:
Mengembalikan nama negara berdasarkan kode dua huruf/lima hurufnya;
country name: {{ country_name ( $country , $locale ) } }
echo view ( $ templatePath , [ ' country ' => ' FR ' , ' locale ' => ' NL ' ])-> render ();
// country name: Frankrijk
Mengembalikan nama mata uang berdasarkan kode tiga hurufnya;
currency name: {{ currency_name ( $currency , $locale ) } }
echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency name: Iene japonês
Mengembalikan simbol mata uang berdasarkan kode tiga hurufnya;
currency symbol: {{ currency_symbol ( $currency , $locale ) } }
echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency symbol: JP¥
Mengembalikan simbol mata uang berdasarkan kode tiga hurufnya;
language name: {{ language_name ( $language , $locale ) } }
echo view ( $ templatePath , [ ' language ' => ' it ' , ' locale ' => ' nl ' ])-> render ();
// language name: Italiaans
Mengembalikan simbol mata uang berdasarkan kode tiga hurufnya;
locale name: {{ locale_name ( $data , $locale ) } }
echo view ( $ templatePath , [ ' data ' => ' sw ' , ' locale ' => ' nl ' ])-> render ();
// locale name: Swahili
Mengembalikan nama zona waktu berdasarkan pengidentifikasinya;
timezone name: {{ locale_name ( $data , $locale ) } }
echo view ( $ templatePath , [ ' timezone ' => ' Asia/Tokyo ' , ' locale ' => ' es ' ])-> render ();
// timezone name: hora de Japón (Tokio)
Mengembalikan pengidentifikasi zona waktu dari kode negara tertentu;
country timezones: {{ implde ( " , " , country_timezones ( $country )) } }
$ content = view ( $ templatePath , [ ' country ' => ' CD ' , ' locale ' => ' es ' ])-> render ();
echo $ content , PHP_EOL ; // country timezones: Africa/Kinshasa, Africa/Lubumbashi
Memformat angka sebagai mata uang;
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$
Memformat angka;
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
Memformat tanggal dan waktu;
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
Memformat bagian tanggal dari suatu waktu;
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
Memformat bagian waktu dari suatu waktu;
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
Setiap fungsi menggunakan argumen yang sama dalam urutan yang sama dengan filter/fungsi paket Twig Extra.
Jika tidak ada locale
yang ditentukan dalam pemanggilan fungsi, fungsi tersebut akan menggunakan hasil IlluminateSupportFacadesApp::currentLocale()
sebagai nilai lokal yang akan digunakan.
Di PHP8+, Anda dapat menggunakan parameter bernama untuk meningkatkan penggunaan fungsi karena parameter tersebut cenderung memiliki banyak argumen:
Dalam PHP7.4
<?php
echo format_datetime ( ' 2019-08-07 23:39:12 ' , ' fr ' , null , medium', ' medium ' , '' , ' gregorian ' , ' fr ' );
Dalam PHP8+
<?php
echo format_datetime (date: ' 2019-08-07 23:39:12 ' , locale: ' fr ' );
Kontribusi dipersilakan dan akan dikreditkan sepenuhnya. Silakan lihat KONTRIBUSI dan KODE ETIK untuk rinciannya.
Perpustakaan:
Untuk menjalankan pengujian, jalankan perintah berikut dari folder proyek.
$ composer test
Jika Anda menemukan masalah terkait keamanan, silakan kirim email ke [email protected] daripada menggunakan pelacak masalah.
Fungsi pembantu paket sangat terinspirasi oleh karya sebelumnya yang dilakukan oleh Fabien Potencier pada Twig Intl Extension.
Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.