Moment.js-时区语言(本地化)



我在一个支持多种语言(英语、德语、法语等)的Web应用程序中使用"Moment.js",它添加了"Moment-timezone"。

因此,为了改善用户体验,我想知道是否已经存在一个本地化文件(比如Moment.js的文件),可以将时区名称从英语更改为所需语言,还是我需要自己编写?

例如:字符串"欧洲/维也纳"在这种情况下将改为"欧洲/维恩">

几件事:

  • 您所寻找的并不存在于即时或即时时区中
  • 实际上你不应该改成"欧洲/维也纳"。时区字符串是IANA时区标识符,并且始终使用英语
  • 一般来说,IANA时区标识符不是为人类可读性而设计的。翻译成人类可读的名称,如英语的"中欧时间"或德语的"Mitteleuropäische Zeit",是CLDR项目的责任
  • 您可以使用Globalize库访问JavaScript中的CLDR数据,但AFAIK目前不支持时区名称。我在这里请求了这个。

  • 即使将IANA时区ID充分转换为本地化的时区名称,也很难使用这些数据来构建时区选择器控件。我做过这个。NET的TimeZoneNames库(此处演示),但不是纯JS。我还没有在JavaScript中看到一个简单的解决方案。如果我找到了一个(或创建了一个),我会回到这里更新这个答案。

  • 您可能会考虑的其他选择是使用基于地图的时区选择器,例如这个或这个,以及其他选项。

import moment from 'moment';  
import 'moment/locale/fr';  
moment.locale('fr')

访问此处

最新更新