2

我对现代 Javascript 比较陌生(大约十年前我一直在使用它)并且在 globalize.js 上遇到了问题。

这就是我的想法,因为它与全球化有关

<script src ="{% static "js/jquery-2.1.0.min.js" %}" type="text/javascript"></script>
<script src ="{% static "js/node_modules/globalize/dist/globalize.min.js" %}" type="text/javascript"></script>
<script>
    $.get( "{% static "json/en/ca-gregorian.json" %}", Globalize.load );
    $.get( "{% static "json/de/ca-gregorian.json" %}", Globalize.load );
    $.get( "{% static "json/supplemental/likelySubtags.json" %}", Globalize.load );
    $.get( "{% static "json/supplemental/timeData.json" %}", Globalize.load );
    $.get( "{% static "json/supplemental/weekData.json" %}", Globalize.load );
    console.log("short:" + Globalize.format( new Date( 2010, 10, 30, 17, 55 ), { datetime: "short" }));
    console.log("medium:" + Globalize.format( new Date( 2010, 10, 30, 17, 55 ), { datetime: "medium" }));
    console.log("long:" + Globalize.format( new Date( 2010, 10, 30, 17, 55 ), { datetime: "long" }, "de" ));
</script>

这是输出:

short:11/30/2010 5:55:00 PM (index):21
medium:11/30/2010 5:55:00 PM (index):22
Uncaught TypeError: Cannot read property 'calendar' of null 

如您所见,我遇到了两个问题 - {datetime: } 参数似乎根本不影响输出。更重要的是,我不明白为什么它不能将日期翻译成其他语言。我错过了一个包含吗?他们的问题列表中的其他线程指出这是我本地化日期所需要的。

4

2 回答 2

0

我建议你改用这个:

new Date().toLocaleDateString('de', { year: 'numeric', month: 'long', day: 'numeric' })

甚至:

new Date().toLocaleDateString(Globalize.culture().name, { year: 'numeric', month: 'long', day: 'numeric' })

Globalize.culture().name假设您已手动或通过globalize.culture.{culture}[.min].js为每个文化导入文件将可能的文化添加到 Globalize,例如globalize.culture.fr.min.js

于 2015-01-09T18:09:30.583 回答
0

遵循使用 Globalize 1.x 的示例:

在 globalize.js中还有一个使用$.get调用动态加载 CLDR 数据的示例:动态加载

拜托,如果您有任何问题,请告诉我。

于 2015-05-14T12:41:42.640 回答