i18next显示键而不是值

时间:2013-08-16 02:44:34

标签: javascript jquery html internationalization i18next

我在translation.json

中有/locales/en/个文件
{
    "app": {
        "name": "Example App"
    }
}

html中,我有:

<a href="/" data-i18n="app.name">

js

$(document).ready(function() {

    var language_complete = navigator.language.split("-");
    var language = (language_complete[0]);

    console.log('language', language);

    $.i18n.init({
        lng: language,
        fallbackLng: false,
        debug: false
    }, function() {
        $('a').i18n();
    });
});

它显示app.name而不是Example App。我的代码中错过了什么?感谢

3 个答案:

答案 0 :(得分:0)

您必须将 useLocalStorage useDataAttrOptions 设置为true

$.i18n.init({useLocalStorage: true , useDataAttrOptions:true, ....});

答案 1 :(得分:0)

从i18next V2开始,后端不再提供开箱即用的see the migration guide),因此您需要在{0}}中定义backend配置init块:

backend: {
    loadPath: '/locales/{{lng}}/{{ns}}.json'
},

如果您不这样做,您的资源将不会被加载,翻译价值将回退到各自的键(see the source code)。

答案 2 :(得分:0)

在js中,因为$(document).ready不等待加载外部内容。您需要使用$(window).on('load',function(){...})