Internationalization 从Scala模板访问已翻译的i18n消息(播放!国际化)

Internationalization 从Scala模板访问已翻译的i18n消息(播放!国际化),internationalization,playframework-2.0,Internationalization,Playframework 2.0,在我的戏里!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 fol

在我的戏里!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")
我根据游戏手册所做的上述更改:。所以我有两个问题:

  • 如何设置默认语言并像1.2.4(Lang.change(“en GB”)中那样更改它
  • 如何访问Scala模板中的消息

  • 在游戏中不可能更改语言!2.0,请参见本讨论:

    这张票:

    尽管如此,当您注册多种语言时,您应该将它们包含在双QOUTE中,如下所示:

    application.langs="en-GB,de-DE,nl-NL"
    
    @Messages.get("login.title")
    
    application.langs="en-GB,de-DE,nl-NL"
    
    然后您可以从scala模板访问它们,如下所示:

    application.langs="en-GB,de-DE,nl-NL"
    
    @Messages.get("login.title")
    
    application.langs="en-GB,de-DE,nl-NL"
    
    因此,当前默认语言是在文件消息中定义的语言(不带任何前缀!!)


    或者您可以在scala文件中使用@Messages(“not.logged.in”)

    使用:

    <h1>@Messages("pack.key")</h1>
    
    不要忘记在您的语言列表中添加引号:conf/application.conf