2012-07-04 116 views
1

我已使用messages.en,messages.de等将我的播放应用国际化。但是,美国和英国有不同的日期格式偏好。播放框架中日期格式的国际化

戏剧文档有点不清楚,我认为你必须使用2个字母的ISO代码,但它似乎也在3个字母的ISO语言代码工作。

我在这里找到了eng和enu,并将它插入游戏和成功。 http://msdn.microsoft.com/en-us/library/ee825488%28v=cs.20%29.aspx

虽然我无法在官方ISO中找到它们,但希望播放更清楚一点,即3个字母的代码可以工作,因此我知道这是一个功能而不是bug。

一般来说,关于如何在这里最好地使用日期格式的建议?将他们与语言选择联系起来是一个好主意,或者更好地让用户有一种独立于语言的选择?

回答

1

要设置播放日期格式,你在你的config文件中定义它,而不是专门的邮件文件在这里 - http://www.playframework.org/documentation/1.2.4/configuration#date.format

戏称以下约2字符代码(语言代码)之间进行选择和语言和国家代码,在这里 - http://www.playframework.org/documentation/1.2.4/i18n#languages

您可以使用语言/国家对如果你想 变种,如EN_US和EN_GB,或者zh_CN的和zh_TW的区分。但是,请注意 意识到某些用户可能只会暴露他们的Accept-language中的一种语言,而不是其中的国家/地区 。因此,您应该始终提供 “裸体”语言(例如en)。例如,如果大部分用户来自美国,但您也想支持英国英语,则建议简单地使用英语“en”的英语英语和英语的“en_GB”。

它没有具体提及3个字符代码。但是,Play使用Java语言环境对象进行国际化,所以如果您查看该对象的Javadoc,则只能看到对2个字符代码的引用,而对3个字符代码没有引用。因此,依靠2个字符的代码(或国家和语言代码,例如en_gb)可能更安全,因为尽管Locale似乎支持3个国家/地区代码,但不能保证所有代码!

+0

我读了几次doc文件,没有看到这段文字。我会按照建议重构语言代码。因此,我的messages.enu和messages.eng文件现在将成为messages.en(如果用户不支持国家,则默认用英文表示),而用英文表示message.en_GB。谢谢! – bladmiral

+0

这是Play 2.1.1的正确方法吗? –