2012-08-17 89 views
2

我对require.js很陌生,并且在加载i18next.js时遇到问题。使用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

+0

i18next现在与[amd i18next](http://i18next.com)的额外构建。这应该可以解决你的问题。采用jquery的版本!那里你可以$ .i18n.setLng(...) – jamuhl 2012-09-12 12:43:42

+0

应该可能是一个答案,而不是评论?你能否加上它,以便我可以接受它? – 2012-09-18 11:58:12

+0

完成。答案可以接受 – jamuhl 2012-10-18 14:12:52

回答

5

--- i18next现在配备了AMD构建---

这应该解决使用i18next与AMD的所有问题。你可以抓住它在http://i18next.com