Java Playframework国际化不起作用

bAr*_*don 1 internationalization playframework

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

并为不同语言创建文件.

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

有什么想法吗?

Cod*_*nci 7

很难从你的描述中确切地知道问题可能是什么,所以我已经概述了你应该如何做一个多语言的应用程序.

要实现国际化,必须遵循许多步骤.首先,您必须更改application.conf文件以声明支持的语言.

所以,如果你支持英语和法语,你会这样做

application.langs=en,fr
Run Code Online (Sandbox Code Playgroud)

然后,您必须为您的法语翻译创建语言文件messages.fr.英语将保留在标准messages文件中.在此新文件中,为密钥和消息添加名称值对.

Play处理消息的方式是首先在特定于语言环境的消息文件中查找(因此对于英语,它将是messages.en不存在的,对于法语,它将是messages.fr).如果在特定于语言环境的消息文件中找不到该消息,则它将查看全局消息文件.因此,您的全局messages文件充当了捕获所有文件.

然后,在您的代码中,使用设置特定用户的语言

Lang.change("fr"); // change language to French
Run Code Online (Sandbox Code Playgroud)

请记住,这将为PLAY_LANG cookie中的特定用户保存cookie,因此请检查是否正在为该用户创建此cookie.

最后请注意,确保您的文件是UTF8编码的.如果不是,就会引发问题.