0
我想在我的項目上設置國際化(使用express.js),現在試圖使工作i18next包,以便myproject.com/en/other/path/顯示爲英文和我的項目.com/ee/other/path顯示拉脫維亞文字。 但模塊似乎沒有從路徑中檢測語言。起初我認爲它可能在路徑中找到語言,但不會自動設置它,但調試req,i18n返回語言中的'en',我做錯了什麼?i18next detectLngFromPath不能正常工作
下面是有關國際化的代碼:
的建立i18next app.js:
var i18n = require('i18next');
i18n.init({
ignoreRoutes: ['images/', 'public/', 'css/', 'js/'],
supportedLngs: ['en', 'ee'],
fallbackLng: 'en',
//detectLngQS: 'lang', // ?lang=ee
detectLngFromPath: 1,
forceDetectLngFromPath: true,
detectLngFromHeaders: false,
useCookie: false,
//cookieName: 'interspace-lang-cookie', // default 'i18next'
debug: true,
});
在app.js日後參考路線文件:
i18n.registerAppHelper(app);
app.use(i18n.handle);
var routes = require('./routes/index');
app.use('/', routes);
/routes/index.js文件:
var express = require('express');
var router = express.Router();
router.get('/:lang', function(req, res) {
res.render('index', { title: 'Hello' });
});
module.exports = router;
有點滑稽,但發現出了問題,用「EE」,以確定愛沙尼亞,而不是'et',現在一切似乎都奏效,但通過測試來發現問題。 –