Moment.js - 时区语言本地化

8

我在一个支持多种语言(英语、德语、法语等)的Web应用程序中使用“Moment.js”及其附加组件“moment-timezone”。为了提高用户体验,我想知道是否已经存在本地化文件(例如Moment.js的文件),可以将时区名称从英语更改为所需语言,还是需要自己编写?

例如:字符串“Europe/Vienna”在这种情况下会更改为“Europe/Wien”。

2个回答

12

几个需要注意的事项:

  • 你所需的功能在moment和moment-timezone库中并不存在。
  • 你不应该真正切换到“Europe/Wien”时区。时区字符串是IANA时区标识符,始终使用英语。
  • 通常,IANA时区标识符并不是为人类可读性而设计的。将其翻译成可读性更强的名称,如“Central European Time”(英语)或“Mitteleuropäische Zeit”(德语),是CLDR项目的责任。
  • 你可以使用Globalize库来在JavaScript中访问CLDR数据,但据我所知,它们目前不支持时区名称。我在这里请求了支持

  • 即使有合适的IANA时区ID到本地化时区名称的翻译,也很难使用这些数据构建时区选择器控件。我在.NET中使用我的TimeZoneNames库(演示在此),但在纯JS中还没有看到简单的解决方案。如果我找到了一个(或创建了一个),我会回来更新这个答案。

  • 其他你可以考虑的选择是使用基于地图的时区选择器,例如这个或者这个,还有其他的。


Globalize库已经更新了,你会更新这个答案吗? - Vincent Hsu

-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接