国際化用拡張モジュール (これ以降では Intl と略します) は » ICU ライブラリのラッパーです。 PHP プログラマが、ロケール関連のさまざまな操作を行えるようにします。 フォーマット、音訳、エンコード変換、カレンダーの処理、 » UCA 準拠の照合順序 (collation)、 テキストの区切り、ロケール識別子やタイムゾーンや書記素を用いた操作などが可能です。
ICU の API に従って作成されているので、 C/C++ や Java で ICU を使ったことがあるかたは簡単に PHP の API も使えることでしょう。 また、ICU のドキュメントを参考にすればさまざまな ICU の関数について知ることができます。
Intl はいくつかのモジュールで構成されており、 各モジュールが対応する ICU API を公開しています。
Collator: ロケールに応じた適切な並び順を考慮して、文字列の比較を行います。
Number Formatter: 各地域固有の書式、あるいは指定した規則に基づいて数値を表示したり、 文字列を数値として解釈したりします。
Message Formatter: メッセージ関連のデータ (数値や日付など) をパターンやロケールにあわせて適切にフォーマットしたり、 メッセージをパースしてデータを取り出したりします。 複数形を扱ったり、ロケールごとの数値や通貨や条件などを扱ったりすることもできます。
Normalizer: テキストに対して Unicode の正規化を行ったり、 指定した文字列が正規化済みかどうかを調べたりします。
Locale: ロケール識別子を扱うための機能を提供します。 たとえばロケール識別子のパースや作成、検索などを行います。
Calendar: ロケールにあわせたカレンダーの操作を行うためのクラスを提供します。 指定したロケールのタイムゾーンや週の最初の曜日を取得したり、 サマータイム中であるか否かを調べたりすることもできます。
Timezone: » "Olson" database のラッパーを提供します。 世界中のタイムゾーンに関する情報が含まれています。
Date formatter: ローカライズした書式や指定したパターン、ルールに基づいて日付と時刻を表示できるようにします。 また、文字列を日付や時刻としてパースすることもできます。
Transliterator: さまざまな言語の文字列をラテン文字表記に変換する機能を提供します。
注意:
PHP 8.4.0 以降、Intl オブジェクトをクローンできない場合、 すなわちオブジェクトが初期化されていない (コンストラクタを呼び出さずに作成された) か、 内部の ICU のクローン操作が失敗したときには、 一貫して Error がスローされます。 以前は、これらのクラスのほとんどは代わりに Exception をスローし、 Spoofchecker は致命的なエラーを発生させていました。