導入

導入 -- I18Nv2 の導入

はじめに

I18Nv2 は、もともとは I18N をリファクタリングするという目的で始まったものです。 しかし、作業を進めていくうちに過去との互換性が確保できなくなってきたため、 新しいパッケージとしてリリースしなおすことにしました。

I18N との違い

I18N は Java におけるオブジェクト指向の考え方をお手本にして開発されており、 (数字、金額、日付など) 個々の書式に対して別々のクラスを提供していました。

I18Nv2 では別の手法をとることにしました。書式設定機能をすべて一つのクラス I18Nv2_Locale にまとめたのです。

I18Nv2_Locale は、PHP の組み込み機能である setlocale() localeconv () および iconv 関連の関数をもとにして作成されています。一方 I18N は完全に独自の書式設定ルールを使用していました。

I18Nv2 のやりかたのほうが優れているとは決して言い切れません。というのも、 この方法は OS の国際化機能に依存してしまうからです。 しかしこのほうがよりシンプルで高速に動作します。 とは言え、ユーザから提供された日付や時刻の書式設定ルールも必要です。

I18N の翻訳機能は取り込まれませんでした。かわりに、新しく Translation2 が提供されています。

I18Nv2 には、 HTTP ネゴシエータ もまだ存在します。 これにより、ユーザの望む言語/ロケールや文字セットを取得します。

I18Nv2 には、ISO の国名コードと言語コードを 50 か国語に翻訳したリストが含まれています。 I18Nv2_Country および I18Nv2_Language を参照ください。