express支持i18n国际化

来源:互联网 发布:sqlserver删除历史数据 编辑:程序博客网 时间:2024/05/22 01:35

1.下载i18n

npm install i18n --save

2.在app.js导入i18n并进行初始化,添加中间件

var i18n = require('i18n');var anyObject = {};var locales=[ 'zh-CN','en-US'];i18n.configure({    locales:locales ,    directory: __dirname + '/routes/language',    register: anyObject});app.use(i18n.init);
app.use(function (req, res, next) {    var lang = req.cookies.lang===undefined ? 'en-US' : req.cookies.lang;    anyObject.setLocale(lang);    for (var i = 0; i < locales.length; i++) {        if (locales[i] === req.query.lang && anyObject.locale !== req.query.lang) {            anyObject.setLocale(req.query.lang);            res.cookie('lang', req.query.lang);        }    }    app.set('anyObject', anyObject);    next();});

设置语言:

anyObject.setLocale('en-US');

设置键值对,方便获取:

app.set('anyObject', anyObject);

3.获取返回到页面

var anyObject = req.app.get('anyObject');res.render('index', {head: anyObject.__('head')});

4.在页面操作

#{head.title}