Normalizer::normalize
MessageFormatter::create
intl
PHP Manual

# MessageFormatter クラス

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

## 導入

MessageFormatter は、言語に依存しない連結されたメッセージを作成するための具象クラスです。 このクラスのメソッドを使用して、 エンドユーザー向けのすべてのメッセージを作成します。

MessageFormatter クラスは、プログラムから渡したさまざまな部品 (テキスト、数値、日付など) を組み合わせてメッセージを作成します。 MessageFormatter クラスでは、 プログラム側が部品の順序を気にする必要はありません。 このクラスでは、各部品に対して書式指定を使用し、 リソースバンドル内のひとつの文字列にメッセージをまとめます。 たとえば、 "Finished printing x out of y files..." のようなメッセージがあった場合に MessageFormatter は各翻訳に対して柔軟な表示を行います。

これまでは、エンドユーザー向けのメッセージは文章として作成し、 文字列で処理していました。 これは地域化の際にさまざまな問題を引き起こしていました。 文章の構造や単語の並び順、そして数値の書式などは 各言語によってさまざまに異なっているからです。 言語に依存しない方法でメッセージを作成するには、 メッセージの各部分を分割し、そこにデータへのキーを指定するようにします。 このキーを使用して、MessageFormatter クラスはメッセージの各部分を連結します。 そして地域化して適切な書式にした文字列をエンドユーザー向けに表示します。

MessageFormatter はオブジェクトのセットを受け取ってそれをフォーマットし、 フォーマットした文字列を適切な位置に埋め込みます。 MessageFormatter のフォーマットを選択することで、 数値にあわせて複数形を選択することができます。 一般的には、メッセージのフォーマットはリソースから取得し、 引数は実行時に動的に与えるようになります。

## クラス概要

MessageFormatter {
/* メソッド */
public __construct ( string `$locale` , string `$pattern` )
public static MessageFormatter create ( string `$locale` , string `$pattern` )
public static string formatMessage ( string `$locale` , string `$pattern` , array `$args` )
public string format ( array `$args` )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ( void )
public string getPattern ( void )
public static array parseMessage ( string `$locale` , string `$pattern` , string `$source` )
public array parse ( string `$value` )
public bool setPattern ( string `$pattern` )
}

## 参考

- » ICU formatting documentation
- » ICU message formatting description
- » ICU message formatters
- » ICU choice formatters

## 目次

- MessageFormatter::create — 新しいメッセージフォーマッタを作成する
- MessageFormatter::formatMessage — 手早くメッセージをフォーマットする
- MessageFormatter::format — メッセージをフォーマットする
- MessageFormatter::getErrorCode — 直近の操作のエラーコードを取得する
- MessageFormatter::getErrorMessage — 直近の操作のエラーテキストを取得する
- MessageFormatter::getLocale — フォーマッタを作成した際のロケールを取得する
- MessageFormatter::getPattern — フォーマッタが使用するパターンを取得する
- MessageFormatter::parseMessage — 手早く入力文字列をパースする
- MessageFormatter::parse — パターンを使用して入力文字列をパースする
- MessageFormatter::setPattern — フォーマッタが使用するパターンを設定する

Normalizer::normalize
MessageFormatter::create
intl
PHP Manual