java - Play 框架中日期格式的国际化

标签 java internationalization playframework playframework-1.x

我已经使用 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 字母代码的工作原理,这样我知道这是一个功能而不是错误。

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

最佳答案

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

Play 说明了以下关于在 2 个字符代码(语言代码)以及语言和国家/地区代码之间进行选择的信息,此处 - http://www.playframework.org/documentation/1.2.4/i18n#languages

You can use language/country pair if you want to distinguish between variant, such as en_US and en_GB, or zh_CN and zh_TW. However, be aware that some users may only expose a language and not a country in their Accept-language. For that reason, you should always provide the “naked” language (e.g. en).

For example, if most of your users are from US but you also want to support British English, it is recommended to use simply “en” of US English and “en_GB” for British English.

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

关于java - Play 框架中日期格式的国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11320986/

相关文章:

java - 具有动态构造函数参数的 Spring DI

playframework - Play Framework 2 & requirejs - 在 dist 构建中不尊重路径

java - 在不引用 JPanel 本身的情况下处理多个 UI JPanel 中的 Swing 操作

Java 模运算符和 GCD

Qt 编码问题

internationalization - 我可以自动更新 gettext 的 .po 文件中的 msgids 以进行微不足道的文本更改吗?

php - 用于 PHP/Android 的 Xliff 工具

scala - 在scala中实现长轮询并用akka玩2.0

java - 适合单元测试的类的一般结构

java - 以流方式从 Java 解析 XML 的更通用方法?