Java Play Framework国际化不起作用

时间:2011-06-11 08:04:53

标签: internationalization playframework

我使用了这里的说明: http://www.playframework.org/documentation/1.2.1/i18n

并为不同语言创建文件。

我调用play.i18n.Lang.change方法来更改语言文件, 它仍然需要英文文件中的标题("消息"没有后缀),

任何想法为什么?

2 个答案:

答案 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以外的其他内容。