2

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

# The application languages
# ~~~~~
application.langs=en-GB,de-DE,nl-NL

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

Messages.en-GB
Messages.de-DE
Messages.nl-NL

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

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)

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

@Messages("login.page")

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

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

2 回答 2

7

在你的 scala 文件中使用:

<h1>@Messages("pack.key")</h1>

在你的java文件中使用:

String title = Messages.get("pack.key");

不要忘记在您的语言列表周围添加引号:conf/application.conf

application.langs="en-GB,de-DE,nl-NL"
于 2012-04-10T09:36:06.943 回答
2

在 Play 中无法更改语言!2.0,请参阅此讨论:http ://groups.google.com/group/play-framework/browse_thread/thread/744d523c169333ac/5bfe28732a6efd89?show_docid=5bfe28732a6efd89

这张票:https ://play.lighthouseapp.com/projects/82401-play-20/tickets/174-20-i18n-add-ability-to-define-implicit-lang-for-java-api#ticket- 174-4

虽然,当您注册多种语言时,您应该将它们括在双引号中,如下所示:

application.langs="en-GB,de-DE,nl-NL"

然后你可以像这样从 scala 模板访问它们:

@Messages.get("login.title")

所以目前默认语言是文件消息中定义的语言(没有任何前缀!!)

或者您可以只使用 @Messages("not.logged.in")

于 2012-04-08T14:59:57.517 回答