นี่คือพอร์ต 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
จัดรูปแบบส่วนวันที่ของวันที่และเวลา
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] แทนการใช้ตัวติดตามปัญหา
ฟังก์ชันตัวช่วยแพ็คเกจได้รับแรงบันดาลใจอย่างมากจากผลงานก่อนหน้านี้ของ Fabien Potencier ใน Twig Intl Extension
ใบอนุญาตเอ็มไอที (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม