我使用了这里的说明: http://www.playframework.org/documentation/1.2.1/i18n
并为不同语言创建文件。
我调用play.i18n.Lang.change方法来更改语言文件, 它仍然需要英文文件中的标题("消息"没有后缀),
任何想法为什么?
答案 0 :(得分:7)
很难从您的描述中准确地知道问题的原因,因此我概述了您应该如何使用多语言应用。
要实现国际化,必须遵循许多步骤。首先,您必须更改application.conf
文件以声明支持的语言。
所以,如果你支持英语和法语,你会做
application.langs=en,fr
然后,您必须为名为messages.fr
的法语翻译创建语言文件。英语将保留在标准messages
文件中。在此新文件中,为密钥和消息添加名称值对。
Play处理消息的方式是首先在特定于语言环境的消息文件中查找(因此对于英语,它将是messages.en
,这不存在,而对于法语,它将是messages.fr
)。如果在特定于语言环境的消息文件中找不到该消息,则它将查看全局消息文件。因此,您的全局messages
文件将作为全部捕获。
然后,在您的代码中,使用
设置特定用户的语言Lang.change("fr"); // change language to French
请记住,这将为PLAY_LANG cookie中的特定用户保存cookie,因此请检查是否正在为该用户创建此cookie。
最后请注意,确保您的文件是UTF8编码的。如果不是,就会引发问题。
答案 1 :(得分:0)
在我的具体案例中,我有
play.http.session.domain
在测试时设置为localhost
以外的其他内容。