从Scala模板访问翻译的i18n消息(Play!Internationalization)

adi*_*dis 2 internationalization playframework-2.0

在我的游戏!2.0应用程序我想定义以下语言:

# The application languages
# ~~~~~
application.langs=en-GB,de-DE,nl-NL
Run Code Online (Sandbox Code Playgroud)

我还创建了3个以相应语言代码结尾的文件:

Messages.en-GB
Messages.de-DE
Messages.nl-NL
Run Code Online (Sandbox Code Playgroud)

当我启动应用程序而没有任何翻译密钥请求时,我收到以下错误消息:

conf/application.conf: 12: Key 'de-DE' may not be followed by token: ',' (if you intended ',' to be part of the value for 'de-DE', try enclosing the value in double quotes)
Run Code Online (Sandbox Code Playgroud)

此外,当尝试从Scala模板访问消息时,我仍然看到相同的消息.我通过以下代码请求消息:

@Messages("login.page")
Run Code Online (Sandbox Code Playgroud)

我根据Play手册进行了上述更改:http://www.playframework.org/documentation/2.0/JavaI18N.所以我有两个问题:

  1. 如何设置默认语言并在1.2.4中更改它(Lang.change("en-GB"))
  2. 如何从Scala模板访问消息?

rem*_*ens 7

在您的scala文件中使用:

<h1>@Messages("pack.key")</h1>
Run Code Online (Sandbox Code Playgroud)

在你的java文件中使用:

String title = Messages.get("pack.key");
Run Code Online (Sandbox Code Playgroud)

不要忘记在语言列表中添加引号:conf/application.conf

application.langs="en-GB,de-DE,nl-NL"
Run Code Online (Sandbox Code Playgroud)