我在一个支持多种语言(英语、德语、法语等)的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')
访问此处