我不想在json文件中使用翻译键。 我希望文件只有2个级别,我的意思是我不想在每个语言环境文件中包含翻译键:
{
"translation": {
"sidebar": {
"dashboard": "Dashboard",
"clients": "Clients",
"coaches": "Coaches",
"candidates": "Candidates",
"trackList": "Track List",
"reports": "Reports"
},
"clients": {
"clients": "Clients",
"companyName": "Company Name",
"previous": "Previous",
"next": "Next"
}
}
}
这是我初始化i18next的i18n.js文件。
import angular from 'angular';
import ngSanitize from 'angular-sanitize';
import i18next from 'i18next';
import ngI18next from 'ng-i18next';
import enLocale from './locales/en.json'
const module = angular.module('app.i18n', [ngSanitize, ngI18next]);
module
.config(function() {
window.i18next = i18next;
i18next.init({
debug: true,
lng: 'en',
fallbackLng: false,
resources: {
en: enLocale
},
useCookie: false,
useLocalStorage: false
}, function(err, t) {
console.log('i18next was initialized');
console.log( t('global.clients') );
console.log( t('global.addNewClient') );
});
});
export default module.name;
答案 0 :(得分:0)
从Json中删除翻译并尝试。它应该默认工作。 如果没有设置。
fallbackNS= false;
如果STill不起作用。创建一个新的Json变量以将其传递给资源。
import enLocale from './locales/en.json'
const enLocaleData = {"en":{"transalation":enLocale["en"] }};
i18next.init({
debug: true,
lng: 'en',
resources: {
en: enLocaleData
});
这样,您就可以通过两个级别传递json。
{
"en":
{
"key":"keyValue",
"key2":"keyValue2",
}
}
希望它能帮助...... :)