编程语言
首页 > 编程语言> > javascript-如何在我的Ember应用程序中包括CLDR.js库?

javascript-如何在我的Ember应用程序中包括CLDR.js库?

作者:互联网

我正在构建一个开始使用ember-skeleton的Ember应用程序(这意味着我正在使用Rake Pipeline作为构建工具链).我正在使用ember-i18n,并且不断发出有关没有CLDR.pluralForm函数的警告.

我已将ember-i18n使用的CLDR plural functions添加到app / vendor /目录中,并将该文件添加到我的Assetfile中.我已验证该代码包含在ember-i18n代码之前的app.js中.我还在main.js中添加了相应的require行:

require('plurals');
require('ember-i18n');

尽管如此,ember-i18n仍在发出警告.这是发生的代码:

if (typeof CLDR !== "undefined" && CLDR !== null) {
  pluralForm = CLDR.pluralForm;
}

if (pluralForm == null) {
  Ember.Logger.warn("CLDR.pluralForm not found. Em.I18n will not support count-based inflection.");
}

如何确保在应用程序中定义了CLDR?

解决方法:

因为没有其他人可以提供,所以如果我自己调试问题,我将建议您看几件事.

如果您在站点中看到的消息与提琴手中的消息相同,则是由于文件加载不正确而导致的.在“ i18n”插件之前,几乎必须加载“复数”.如果翻转linked files的顺序,它将起作用(我分叉了错误提示示例).

我会尝试抛出一些调试器来验证我是错的;语句到每个文件中,以查看哪些文件实际上首先在浏览器中加载.

由于您的require(‘plurals’),我将假设您使用的是requirejs(github is down for maintenance,因此我目前无法实际检查余烬骨架,因此将来可能会进行编辑).如果此声明为真,则需要声明“复数”是对“ i18n”的依赖.

“If you do not express the dependencies, you will likely get loading errors since RequireJS loads scripts asynchronously and out of order for speed.” – 07002

这意味着您可能最终会将两个调用包装为一个,添加一个定义或创建一个“填充”.这些(以及更多)示例可以在RequireJS网站上找到.

抱歉,如果这对您没有帮助,但没有看到它实际损坏;我很难调试这个问题.

编辑:看着余烬的骨架,我没有看到requireJS.我从来没有使用过rake(我们最终在nodeJS中编写了管道),所以我不确定您是否真的在rake中使用require“ blaw”来连接文件,或者您是否真的试图同时使用两者.现在,我认为这个答案可能没有多大帮助.

标签:ember-js,javascript,internationalization,cldr
来源: https://codeday.me/bug/20191201/2078093.html