はじめに

国際化用拡張モジュール (これ以降では 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: ローカライズした書式や指定したパターン、ルールに基づいて日付と時刻を表示できるようにします。 また、文字列を日付や時刻としてパースすることもできます。