2

我对 require.js 很陌生,并且在加载 i18next.js 时遇到问题。

main.js

require(["lib/jquery", "lib/i18next", "config.i18next", "constants"],    
  function(util) {
     console.log("loaded javascript files");
});

和 config.i18next.js

var option = {resGetPath: '../translations/__lng__.json' };
i18n.init(option, function(t) { 
    console.log("Language initialization successfull");
});

我总是得到错误

Uncaught ReferenceError: i18n is not defined            config.i18next.js:2

我知道谁使用 i18next,并且在传统上加载 javascript 文件时一切正常。


编辑:

同时,我让它像这样与垫片一起工作:

requirejs.config({
    shim: {
        'lib/i18next' : ['lib/jquery'],
    }
});

require(["lib/i18next"], function(i18n) {
    var options = {
        resGetPath: 'translations/__lng__.json',
        preload: ['de', 'en'] 
    };
    i18n.init(options, function(t) { 
    });
});

我可以用 翻译其他文件$.t("key");,但是现在我不能用编程方式更改语言,i18n.setLng()因为找不到变量ReferenceError: Can't find variable: i18n

4

1 回答 1

5

--- i18next 现在带有 amd build ---

这应该可以解决使用 i18next 和 amd 的所有问题。您可以在http://i18next.com上获取它

于 2012-08-21T20:15:25.673 回答