网上日期的国际化

时间:2011-05-09 11:37:28

标签: javascript datetime localization internationalization

有没有人对日期的国际化有任何好的“架构”?比如英文周一,中文:星期一,荷兰语:maandag,日语:月曜日

所以我的第一个想法是创建某种类,用59种不同的语言存储周一到周日的字符串。显然这根本不可扩展,想象现在我需要显示“2000年1月1日星期一上午12:34”然后我需要另一个翻译AM,PM,月份(长短形式),顺序等等。

这是太多的工作,解决方案是什么?

5 个答案:

答案 0 :(得分:7)

Paul Irish said

  

date.js被放弃,主页上的版本出现问题。

  

moment.js是超级好的,应该是你日期解析,操作和格式化的第一选择。

所以我猜你们用i18n寻找可靠日期javascript库的人应该使用moment.js

答案 1 :(得分:4)

您建议的方法不具备可扩展性。微软的方法涉及350种文化;有人建议,有160种全球交易货币等。维持一个处理这种可能性的类是潜在的噩梦。

@Aron建议您的问题与Internationalization in Javascript重复。回答这个问题的links之一表明了可扩展和可维护的前进方向。我通常不会提倡微软的方法,但在这种情况下,他们似乎对架构有正确的想法。将特定于语言环境的材料分离为可以合并到应用程序中的类。仅通过基于文化(或区域设置)的键来引用特定于语言环境的材料。不要试图自己维护特定文化的材料 - 除非你必须这样做,否则你真的不想去那里。

答案 2 :(得分:4)

Datejs应该能够做你想做的事情:

http://code.google.com/p/datejs/

Getting Started With Datejs

它是一个javascript日期库,支持约157种不同的日期文化/语言 他们采用了为每种文化提供单独的.js文件的方法。请参阅:datejs source - trunk/src/globalization

答案 3 :(得分:2)

在服务器端处理得更好。例如,ASP.NET支持将日期转换为至少30种或40种不同语言的字符串。我不知道其他服务器语言。

答案 4 :(得分:1)

我建议你看看jQuery框架,它可以解决你的问题,而不必重新发明轮子:http://jqueryui.com/demos/datepicker/#localization

注意:jquery-ui是一个附加框架,其中包含大量UI组件。

希望这有帮助