我正试图在我的网站上实施i18next翻译,但无法取得成功。
i18next.init({
debug: true,
lng: 'en',
resources: {
en: {
translation: {
opt: {
page_title: 'Orders'
},
}
},
ru: {
translation: {
opt: {
page_title: 'Заказы'
},
}
}
}, function(err, t) {
jqueryI18next.init(i18next, $);
});
我的系统的某些部分需要有一组命名变量的词汇表。
i18next.addResources('en', 'desktop', {
'Авиа' : 'Avia',
'Ж/Д' : 'Train',
'Произвольная услуга' : 'Custom Service',
'Текущий баланс' : 'Current balance',
'Оборот за предыдущий месяц' : 'Turnover for the previous month',
'Оборот за текущий месяц' : 'Turnover for the current month',
'Общий оборот' : 'Total turnover',
});
i18next.loadNamespaces('desktop');
下一个等式没有成功:
var fincanceDict = {
company_balance : $.t('Текущий баланс'),
company_turnover_prev_month : $.t('Оборот за предыдущий месяц'),
company_turnover_current_month : $.t('Оборот за текущий месяц'),
company_turnover_full : $.t('Общий оборот')
}
我为每个翻译操作收到错误:
i18next.js?v=e988b1:142 i18next::translator: missingKey en translation Текущий баланс Текущий баланс
i18next.js?v=e988b1:142 i18next::translator: missingKey en translation Оборот за предыдущий месяц Оборот за предыдущий месяц
i18next.js?v=e988b1:142 i18next::translator: missingKey en translation Оборот за текущий месяц Оборот за текущий месяц
i18next.js?v=e988b1:142 i18next::translator: missingKey en translation Общий оборот Общий оборот
如果我查看i18next.translator.resourceStore.data
我将获得en
&的初始词汇。 ru
语言对象与translation
孩子拥有一组嵌套键/值对而没有我做过的扩展。
我填写了我遗漏的内容,我已尝试将namespace
更改为default
并返回desktop
但两者都没有帮助。
答案 0 :(得分:1)
loadNamespace - >确实通过后端加载命名空间(例如xhr-backend):https://www.i18next.com/api.html#loadnamespaces
翻译是默认的命名空间,这就是为什么你可以在不使用t函数的情况下访问翻译的原因。 https://www.i18next.com/configuration-options.html#languages-namespaces-resources
你可以创建一个" fixedT"功能
const desktopT = i18next.getFixedT(null, 'desktop');
desktopT('Текущий баланс');
答案 1 :(得分:0)
我在谷歌上搜索,找到了解决我的问题的东西,没有任何描述。我应该在$("#input_1_191").keyup(function() {
if ($("#choice_1_190_2").is(':checked')) {
var value = $(this).val();
$("#input_1_193").val(value);
}
}).keyup();
/ i18next.t
函数中使用名称空间值:
$.t
或
i18next.t('namespace:key')
这就是我解决问题的方法:
$.t('namespace:key')
我想知道如果我每次都要手动设置翻译$.t('desktop:Текущий баланс')
,i18next.loadNamespaces
函数的作用是什么。