2011-06-11 65 views

回答

7

这是很难从你的描述知道的问题可能是什么,所以我提出了,你应该怎么做一个多语种的应用程序。

有一些你必须遵循获得国际化的工作步骤。首先,您必须更改您的application.conf文件以声明您支持的语言。

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

application.langs=en,fr 

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

的方式播放处理的消息,是首先看在区域设置特定消息文件中的第一(所以对于英语这将是messages.en,它不存在,以及用于法国这将是messages.fr)。如果在特定于语言环境的消息文件中找不到消息,它将查看全局消息文件。所以你的全球messages文件充当了所有。

然后,在你的代码,设置使用

Lang.change("fr"); // change language to French 

请记住,这将保存在PLAY_LANG cookie中的特定用户的Cookie,所以检查这个cookie正在为您的特定用户的语言,为用户创建。

最后注意,请确保您的文件是UTF8编码的。如果不是,它会导致问题。

+1

我没有看到PLAY_LANG cookie, 这可能是问题的一部分... 这可能是什么原因? – bArmageddon 2011-06-11 09:07:39

+0

不确定。您的浏览器是否禁用了Cookie?我刚刚运行了一个快速测试,并使用Firebug(在Chrome中),我可以在文档元素下看到cookie,并在其中看到PLAY_LANG = fr。你是以任何方式操纵曲奇吗? – Codemwnci 2011-06-11 09:13:31

+0

我查过了,没有Cookie。 我找到了原因: – bArmageddon 2011-06-11 09:44:06

0

在我的特定情况下,我不得不

play.http.session.domain 

设置为localhost,而测试的其他东西。