Scala 播放框架i18n。如何路由到不带国家代码的语言

Scala 播放框架i18n。如何路由到不带国家代码的语言,scala,internationalization,playback,Scala,Internationalization,Playback,在游戏中,我可以通过以下方式在application.conf中指定支持的语言: play.i18n.langs = [ "de", "en", "fr" ] 比如说,我创建了三个消息文件。例如: conf/messages (with german as default) conf/messages.en conf/messages.fr 让我们假设,传入请求设置了以下标头:Accept Language=en US 由于没有“messages.en US”文件,因此将采用默认消息(“me

在游戏中,我可以通过以下方式在application.conf中指定支持的语言:

play.i18n.langs = [ "de", "en", "fr" ]
比如说,我创建了三个消息文件。例如:

conf/messages (with german as default)
conf/messages.en
conf/messages.fr
让我们假设,传入请求设置了以下标头:Accept Language=en US

由于没有“messages.en US”文件,因此将采用默认消息(“messages”将采用德语)

如果存在语言文件(“messages.en”),如何配置播放和获取语言文件(“messages.en”)呢?我有点惊讶,这不是默认值吗

为了说明这一点:如果请求的“接受语言”中有“en_US”或“en_GB”或“en_WHATEVER”语言,我希望Play使用“conf/messages.en”文件,如果不存在包含请求的国家代码的消息文件

如果没有,还有什么选择?我是否需要在我的“play.i18n.langs”配置中添加很多“语言\国家代码”组合


希望不会。有人有同样的问题吗?我想我只是在监督一些事情。

你测试过了吗?我的假设是“en GB”将取“en”。这也是我的假设…-)事实并非如此。如果用户有“en GB”:我不需要“conf/messages.en_GB”文件->“conf/messages.en”可以工作,但我仍然需要在
play.i18n.langs
中声明它。找到解决方法了吗?没有,我只是在
play.i18n.langs
play.i18n.langs = [ "de", "en", "en-GB", "en-US","en-DE", "fr" ] // an so on