これは、Twig Intl Extension パッケージの Laravel ポートです。
このパッケージは、Laravel ベースのアプリケーションで使用でき、Blade テンプレートまたは Laravel コードベースでヘルパー関数を提供することで国際化を迅速に処理できます。
コンポーザーを使用します。
composer require bakame/laravel-intl-formatter
デフォルト構成を編集するには、パッケージ構成をアプリケーション構成ディレクトリに公開する必要があります。
php artisan vendor:publish --provider= " BakameLaravelIntl " --tag=config
設定ファイルはアプリケーション ディレクトリのconfig/bakame-intl-formatter.php
に公開されます。
利用可能なオプションの概要については、構成ファイルを参照してください。
パッケージをインストールすると、次のグローバル ヘルパー関数が提供されます。
2 文字または 5 文字のコードを指定して国名を返します。
country name: {{ country_name ( $country , $locale ) } }
echo view ( $ templatePath , [ ' country ' => ' FR ' , ' locale ' => ' NL ' ])-> render ();
// country name: Frankrijk
3 文字のコードを指定して通貨名を返します。
currency name: {{ currency_name ( $currency , $locale ) } }
echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency name: Iene japonês
3 文字のコードを指定して通貨記号を返します。
currency symbol: {{ currency_symbol ( $currency , $locale ) } }
echo view ( $ templatePath , [ ' currency ' => ' JPY ' , ' locale ' => ' PT ' ])-> render ();
// currency symbol: JP¥
3 文字のコードを指定して通貨記号を返します。
language name: {{ language_name ( $language , $locale ) } }
echo view ( $ templatePath , [ ' language ' => ' it ' , ' locale ' => ' nl ' ])-> render ();
// language name: Italiaans
3 文字のコードを指定して通貨記号を返します。
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 ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。