【问题标题】:Jquery i18next translation issuejQuery i18next 翻译问题
【发布时间】:2015-12-27 12:36:27
【问题描述】:

我正在开发一个 nodejs 应用程序。

这是我在 app.js 中初始化 i18next 的方式:

var i18n = require('i18next');
i18n.init({
saveMissing: true,
debug: true
});

这是我的js代码:

...
    // display strength based on score
    switch (strength.score) {
    case 0:
        $('#strength-meter').removeClass()
        $('#strength-meter').addClass('progress-bar progress-bar-danger')
        $('.progress .progress-bar').css('width', '25%')
        return 'very weak'
        break;
...

我尝试过使用 "return i18n.t('app.phlastname');"。我收到 “未捕获的 ReferenceError:未定义 i18n。” 错误

我做错了什么?提前致谢。

更新

我更改了我的代码,以便它可以在客户端运行。我在我的页面中包含了 i18n 库。并将我的 javascript/jquery 代码更新为:

$.i18n.init({
  debug: true
  }, function(t) {
     return t("app.lblname");
});

所以现在我似乎没有收到上述错误,但是我没有收到文本。

当不使用翻译时,我会得到这样的信息:

【问题讨论】:

  • 如果变量声明与 checkStrength() 函数不在同一个文件中,它就不起作用(变量是模块的本地变量)。您需要将 i18n 变量声明为全局变量!
  • 我已经在 app.js 文件中定义了。我如何使它成为全球性的。我是 javascript 和 nodejs 的新手。
  • 更新问题,请检查

标签: jquery node.js i18next


【解决方案1】:

我能够找到我的问题的答案。

问题是,我从函数内部返回翻译后的字符串,因此超出了要显示的范围。

所以我单独初始化它(比如在 document.ready 中)

$.i18n.init({
        useCookie: false,
        debug: true,
        resGetPath: 'locales/__lng__/translation.json'
    });

然后单独使用,

return $.i18n.t("app.lblname");

【讨论】:

猜你喜欢
  • 2012-10-27
  • 2021-06-26
  • 2012-10-11
  • 2014-07-31
  • 2014-02-19
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
  • 2021-08-14
相关资源
最近更新 更多