Documentation

You are viewing the documentation for the 2.2.0 release in the 2.2.x series of releases. The latest stable release series is 2.4.x.

§メッセージの外部ファイル化と多言語対応

§アプリケーションの対応言語を指定する

アプリケーションの対応言語を指定するためには、まず正しい言語コードが必要です。言語コードの形式は、**ISO 言語コード**の後に省略可能な ISO 国コード を続ける、というものです。例えば、 fren-US は正しい言語コードです。

次に、その言語コードを使って、 conf/application.conf ファイル内でアプリケーションの対応言語を指定しましょう。

application.langs="en,en-US,fr"

§メッセージの外部ファイル化

メッセージは conf/messages.xxx のようなファイルに外部化することができます。

デフォルトの conf/messages というファイルは、全ての言語にマッチします。このファイルに加えて conf/messages.frconf/messages.en-US のように言語ごとのメッセージファイルを指定することができます。

現在の言語向けのメッセージは、play.i18n.Messagesオブジェクトから取得することができます。

String title = Messages.get("home.title")

言語を明示的に指定することもできます。

String title = Messages.get(new Lang(Lang.forCode("fr")), "home.title")

ノート: Request がスコープ内に存在する場合は、その Accept-Language ヘッダとアプリケーションの対応言語を考慮した上で適切な言語が決定されて、デフォルトの Lang 値として提供されます。また以下のように暗黙のパラメータ Lang をテンプレートに追加する必要があります: @()(implicit lang: Lang).

§テンプレートにおける利用

@import play.i18n._
@Messages.get("key")

§メッセージのフォーマット

メッセージは java.text.MessageFormat ライブラリを使ってフォーマットされます。例えば、次のようなメッセージが定義されているとしましょう。

files.summary=The disk {1} contains {0} file(s).

このメッセージのパラメータは次のように指定できます。

Messages.get("files.summary", d.files.length, d.name)

§HTTP リクエストから対応言語を取得する

HTTP リクエストから対応言語を取得することができます。

public static Result index() {
  return ok(request().acceptLanguages());
}

次ページ: Global オブジェクト