Internationalization Java Playframework国际化不';行不通
我使用了这里的说明: 并为不同语言创建文件 我调用play.i18n.Lang.change方法来更改语言文件, 它仍然从英文文件中提取标题(“消息”没有后缀)Internationalization Java Playframework国际化不';行不通,internationalization,playframework,Internationalization,Playframework,我使用了这里的说明: 并为不同语言创建文件 我调用play.i18n.Lang.change方法来更改语言文件, 它仍然从英文文件中提取标题(“消息”没有后缀) 你知道为什么吗?很难从你的描述中确切知道问题出在哪里,所以我已经概述了你应该如何做一个多语言应用程序 要实现国际化,您必须遵循许多步骤。首先,必须更改application.conf文件以声明支持的语言 所以,如果你支持英语和法语,你会这样做 application.langs=en,fr 然后必须为法语翻译创建名为messages
你知道为什么吗?很难从你的描述中确切知道问题出在哪里,所以我已经概述了你应该如何做一个多语言应用程序 要实现国际化,您必须遵循许多步骤。首先,必须更改
application.conf
文件以声明支持的语言
所以,如果你支持英语和法语,你会这样做
application.langs=en,fr
然后必须为法语翻译创建名为messages.fr
的语言文件。英语将只保留在标准的消息
文件中。在此新文件中,为密钥和消息添加名称-值对
Play处理消息的方式是首先查看特定于语言环境的消息文件(因此,对于英语,它将是messages.en
,而对于法语,它将是messages.fr
)。如果在特定于语言环境的消息文件中找不到该消息,它将查看全局消息文件。因此,您的全局消息
文件充当了“包罗万象”的角色
然后,在代码中,使用
Lang.change("fr"); // change language to French
请记住,这将在PLAY_LANG cookie中为特定用户保存cookie,因此请检查是否正在为该用户创建此cookie
最后请注意,请确保您的文件是UTF8编码的。如果不是,它会导致问题。很难从您的描述中确切知道问题可能是什么,因此我已经概述了您应该如何使用多语言应用程序 要实现国际化,您必须遵循许多步骤。首先,必须更改
application.conf
文件以声明支持的语言
所以,如果你支持英语和法语,你会这样做
application.langs=en,fr
然后必须为法语翻译创建名为messages.fr
的语言文件。英语将只保留在标准的消息
文件中。在此新文件中,为密钥和消息添加名称-值对
Play处理消息的方式是首先查看特定于语言环境的消息文件(因此,对于英语,它将是messages.en
,而对于法语,它将是messages.fr
)。如果在特定于语言环境的消息文件中找不到该消息,它将查看全局消息文件。因此,您的全局消息
文件充当了“包罗万象”的角色
然后,在代码中,使用
Lang.change("fr"); // change language to French
请记住,这将在PLAY_LANG cookie中为特定用户保存cookie,因此请检查是否正在为该用户创建此cookie
最后请注意,请确保您的文件是UTF8编码的。如果不是,它会导致问题。在我的具体案例中,我
play.http.session.domain
在测试时设置为除本地主机之外的其他内容。在我的特定情况下
play.http.session.domain
测试时设置为除本地主机之外的其他内容。我没有看到PLAY__LANG cookie,这可能是问题的一部分。。。原因可能是什么?不确定。您的浏览器是否禁用了Cookie?我刚刚运行了一个快速测试,使用Firebug(在Chrome中)我可以看到document元素下的cookie,在里面我看到PLAY_LANG=fr。您是否以任何方式操纵cookie?我检查了它,没有cookie。我找到了原因:在application.conf中,我用application.lang代替application.langs(lang代替langs):)10倍的帮助:)我没有看到PLAY_lang cookie,这可能是问题的一部分。。。原因可能是什么?不确定。您的浏览器是否禁用了Cookie?我刚刚运行了一个快速测试,使用Firebug(在Chrome中)我可以看到document元素下的cookie,在里面我看到PLAY_LANG=fr。您是否以任何方式操纵cookie?我检查了它,没有cookie。我找到了原因:在application.conf中,我用application.lang代替application.langs(lang代替langs):)10倍的帮助:)