|
@@ -16,22 +16,29 @@ module.exports = function(crowi, app) {
|
|
|
, i18nFsBackend = require('i18next-node-fs-backend')
|
|
, i18nFsBackend = require('i18next-node-fs-backend')
|
|
|
, i18nSprintf = require('i18next-sprintf-postprocessor')
|
|
, i18nSprintf = require('i18next-sprintf-postprocessor')
|
|
|
, i18nMiddleware = require('i18next-express-middleware')
|
|
, i18nMiddleware = require('i18next-express-middleware')
|
|
|
|
|
+ , i18nUserSettingDetector = require('../util/i18nUserSettingDetector')
|
|
|
, env = crowi.node_env
|
|
, env = crowi.node_env
|
|
|
, middleware = require('../util/middlewares')
|
|
, middleware = require('../util/middlewares')
|
|
|
;
|
|
;
|
|
|
|
|
|
|
|
|
|
+ var lngDetector = new i18nMiddleware.LanguageDetector();
|
|
|
|
|
+ lngDetector.addDetector(i18nUserSettingDetector);
|
|
|
|
|
+
|
|
|
i18next
|
|
i18next
|
|
|
- .use(i18nMiddleware.LanguageDetector)
|
|
|
|
|
|
|
+ .use(lngDetector)
|
|
|
.use(i18nFsBackend)
|
|
.use(i18nFsBackend)
|
|
|
.use(i18nSprintf)
|
|
.use(i18nSprintf)
|
|
|
.init({
|
|
.init({
|
|
|
fallbackLng: 'en',
|
|
fallbackLng: 'en',
|
|
|
|
|
+ whitelist: ['en', 'ja'],
|
|
|
backend: {
|
|
backend: {
|
|
|
loadPath: 'locales/{{lng}}/translation.json'
|
|
loadPath: 'locales/{{lng}}/translation.json'
|
|
|
},
|
|
},
|
|
|
|
|
+ detection: {
|
|
|
|
|
+ order: ['userSettingDetector', 'header', 'navigator'],
|
|
|
|
|
+ },
|
|
|
overloadTranslationOptionHandler: i18nSprintf.overloadTranslationOptionHandler
|
|
overloadTranslationOptionHandler: i18nSprintf.overloadTranslationOptionHandler
|
|
|
});
|
|
});
|
|
|
- app.use(i18nMiddleware.handle(i18next));
|
|
|
|
|
|
|
|
|
|
app.use(function(req, res, next) {
|
|
app.use(function(req, res, next) {
|
|
|
var now = new Date()
|
|
var now = new Date()
|
|
@@ -97,4 +104,5 @@ module.exports = function(crowi, app) {
|
|
|
|
|
|
|
|
app.use(middleware.loginChecker(crowi, app));
|
|
app.use(middleware.loginChecker(crowi, app));
|
|
|
|
|
|
|
|
|
|
+ app.use(i18nMiddleware.handle(i18next));
|
|
|
};
|
|
};
|