1

我使用 messages.en、messages.de 等将我的 play 应用程序国际化。但是,美国和英国有不同的日期格式偏好。

播放文档有点不清楚,我认为您必须使用 2 个字母的 ISO 代码,但似乎 3 个字母的 ISO 语言代码也可以使用。

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

不过,我在官方 ISO 中找不到它们的文档,并且希望该游戏更清楚地表明 3 字母代码可以工作,因此我知道这是一个功能而不是错误。

一般来说,关于如何在这里最好地使用日期格式有什么建议吗?将它们与语言选择联系起来是一个好主意还是更好地为用户提供独立于语言的选择?

4

1 回答 1

1

要为 Play 设置日期格式,请在配置文件中定义它,而不是专门在此处的消息文件中定义 - http://www.playframework.org/documentation/1.2.4/configuration#date.format

Play 说明了以下关于在 2 个字符代码(语言代码)和语言和国家代码之间进行选择的内容,这里 - http://www.playframework.org/documentation/1.2.4/i18n#languages

如果要区分变体,例如 en_US 和 en_GB,或 zh_CN 和 zh_TW,可以使用语言/国家/地区对。但是,请注意,某些用户可能仅在其接受语言中公开一种语言而不是国家/地区。出于这个原因,您应该始终提供“裸露”的语言(例如 en)。

例如,如果您的大部分用户来自美国,但您也想支持英式英语,则建议简单地使用美式英语的“en”和英式英语的“en_GB”。

它没有特别提到 3 个字符代码。但是,Play 使用 Java Locale 对象进行国际化,因此如果您查看该对象的Javadoc,您可以看到仅对 2 个字符代码的引用,而不是 3 个字符代码的引用。因此,依靠 2 个字符代码(或国家和语言代码,例如en_gb)可能更安全,因为虽然 Locale 似乎支持 3 个国家代码,但您不能保证全部!

于 2012-07-04T06:00:32.660 回答