i18next не загружает файл перевода
Я работаю над некоторым проектом на основе магистрали, где я использую i18next для локалей.
ниже мое приложение.код js:
/*
This file is used to initialize your application.
*/
require(['i18n','application','handlebars_Helpers'], function(i18n, Application) {
i18n.init({
lng: 'en',
debug: true,
fallbackLng: false,
load:'unspecific',
resGetPath: "locales/__lng__/__ns__.json",
ns: {
namespaces: ['translation']
}
});
(new Application()).initialize();
});
перевод файл:
{
"loginModule": {
"signin": "Sign In"
}
}
Ниже приведен мой вспомогательный файл:
/**
* Set of generic handlebars helpers
*/
define(['i18n'], function(i18n) {
/**
* This helper provides i18Next in templates
*
*
* Usage: span {{t "my.key" }}
*/
Handlebars.registerHelper('t', function(i18n_key) {
var result = i18n.t(i18n_key);
return new Handlebars.SafeString(result);
});
return Handlebars;
});
когда я загружаю свою страницу через localhost, он показывает мне следующее сообщение в консоли:
currentLng set to: en i18n.js:490
GET http://localhost:8000/locales/en/translation.json?_=1374495189376 404 (Not Found) i18n.js:376
failed loading: locales/en/translation.json
не понимаю, чего мне не хватает? или почему эта ошибка показывается?
1 ответов
в какой папке вы храните файл с переводами? Поведение по умолчанию для i18n заключается в том, что он пытается найти файл локализации по определенному пути: /locales/{Lang-code}/{namespace}.в JSON
Если вы храните файл в корне, попробуйте изменить код инициализации на следующий:
i18n.init({
lang: 'en',
debug: true,
fallbackLng: false,
load:'unspecific',
resGetPath: "__ns__-__lng__.json",
ns: {
namespaces: ['translation'],
defaultNs: 'translation'
}
});
это попытается загрузить файл со следующего url:http://localhost:8000/translation-en.json
в основном, попробуйте проверить местоположение файла переводов, имя файла перевода и построить "regGenPath" соответственно, более подробную информацию можно найти в документации i18nhttp://i18next.com/node/pages/doc_init.html