Messages externalisation and i18n

    语言指定信息存放在应用的 conf/application.conf 文件中:

    你可以在 conf/messages.xxx 文件中外部化(externalize)信息。

    conf/messages 文件默认适配所有语言。你可以添加你所指定语言所对应的文件,譬如 conf/messages.frconf/messages.en-US

    1. val title = Messages("home.title")

    所有国际化相关的API都隐式调用 play.api.i18n.Lang 参数,其中参数的值根据当前环境给出。你可以自己显式地指定:

    1. val title = Messages("home.title")(Lang("fr"))

    注意:如果你在当前范围发出一个隐式请求,程序会根据头部的 Accept-Language 从应用支持语言匹配一个,然后隐式地返回给你一个 Lang 参数。你应当像这样在模板文件中添加 Lang 变量: 。

    消息使用 java.text.MessageFormat 库来定义格式,譬如你的消息这样定义:

      由于我们使用 java.text.MessageFormat 来定义消息格式,所以要注意的是单引号会被作为转意字符。

      譬如你定义了如下一段消息:

      1. info.error=You aren''t logged in!

      你应期望如下结果:

      1. Messages("info.error") == "You aren't logged in!"
      1. Messages("example.formatting") == "When using MessageFormat, '{0}' is replaced with the first parameter."