1

我在 Cordova/PhoneGap 应用程序的 jQuery Mobile 页面中使用 i18next 脚本。

我在 HTML 页面的底部包含以下脚本。

<script src="js/jquery-1.8.3.min.js"></script>               
<script src="js/jquery.mobile-1.3.2.min.js"></script>   
<script src="js/i18next-1.7.1.min.js"></script>         
<script src="js/main.js"></script>  

main.js 文件有一些逻辑,将包含在我的应用程序的所有页面中。

main.js文件:

function doBootstrap() {
    i18n.init({lng: "en", fallbackLng: 'en'});

    var header = "some tags";
    header += '<h1>' + i18n.t("app.title") + '</h1>';

    // other functions
}

我将使用脚本在页面的不同部分获取翻译后的值

上述函数在 Cordova devideready 函数中调用,该函数位于上述包含的下方。.

document.addEventListener("deviceready", onDeviceReady, true);

function onDeviceReady() {
    doBootstrap();
}

通过上述所有设置,我在 i18next-1.7.1.min.js 文件中得到以下错误。

Uncaught TypeError: Cannot read property 'defaultValue' of undefined 

.json 文件位于 \locales\en\translation.json 中,其内容如下。控制台中不显示错误或警告。

{
   "app": {
     "title": "Title"
   }
}

我在插件设置中缺少什么?

4

1 回答 1

2

最后,我让它工作了。这是代码中的一个错误,开发人员在报告它的几分钟内就修复了它。很好..

这是该问题的链接。

https://github.com/jamuhl/i18next/issues/166

另外根据插件的开发人员,我做了以下更改。

function doBootstrap() {
    var opts = {
       getAsync: true, lng: "en", fallbackLng: 'en'
    };

    i18n.init(opts).done(doBootstrapMain);
}

function doBootstrapMain() {
   // my regular functions
}
于 2013-11-12T18:09:05.963 回答