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

标签 javascript ember.js internationalization cldr

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

我添加了 CLDR plural functions ember-i18n 使用 app/vendor/ 目录并将该文件添加到我的 Assetfile。我已经验证该代码包含在我的 app.js 中,位于 ember-i18n 代码之前。我还在我的 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?

最佳答案

因为没有其他人有,我会建议一些我自己调试问题时可能会看的东西。

如果您在站点中看到的消息与在 fiddler 中看到的消息相同,那是因为文件加载顺序不正确。几乎“复数”必须在“i18n”插件之前加载。如果你翻转 linked files 的顺序它会起作用(我 fork 了错误示例)。

我会尝试通过将一些 debugger; 语句扔到每个文件中来验证我错了,以查看实际上哪个文件首先加载到浏览器上。

因为你的 require('plurals') 我假设你正在使用 requirejs ( github is down for maintenance 所以我现在不能真正检查 ember-skeleton... 所以这个将来可能会得到编辑)。如果此断言为真,则需要声明“plurals”是“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." - RequireJS API

这意味着您可能最终会将两个调用合并为一个,添加一个 define 或制作一个“垫片”;这些(以及更多)示例可以在 RequireJS 上找到网站。

很抱歉,如果这对您没有帮助,但没有看到它真的坏了;我很难调试这个问题。

编辑: 查看 ember-skeleton,我没有看到 requireJS。我从来没有使用过 rake(我们最终在 nodeJS 中编写了我们的管道)所以我不太确定你是否真的试图在 rake 中用 require "blaw" 连接文件或者你是否真的试图两者都用....所以现在我认为这个答案可能不是很有帮助。

关于javascript - 如何在我的 Ember 应用程序中包含 CLDR.js 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11435019/

相关文章:

javascript - Ember Data 1.0 - 如何在数据加载时触发模型上的观察者?

internationalization - 覆盖 play 2.0 的默认 i18n 消息

java - 如何将工具提示与翻译标签一起使用? AngularJS

java - org.hibernate.validator.constraints.电子邮件消息 i18n

javascript - Uncaught ReferenceError : $ is not defined while Adding webticker

javascript - 如何使用 Ember.js 在模板中显示特定字符​​串而不是模型值?

javascript - 如何重新组织 json 数据?

javascript - 从单选按钮选择分配值的最佳方法

javascript - Dialog Material-UI 从底部开始滚动

javascript - 基于 process.env.NODE_ENV 的条件导出 ES6 模块的可能性?