我正在尝试在hbs中正确使用i18n,但一直没有成功。
这是我的server.js代码:
var express = require('express');
var server = express();
var hbs = require('hbs');
var i18n = require('i18n');
var cookieParser = require('cookie-parser');
i18n.configure({
locales: ['en', 'fr'],
cookie: 'locale',
directory: __dirname + "/locales"
});
hbs.registerPartials(__dirname + '/views');
server.set('view engine', 'hbs');
server.engine('hbs', hbs.__express);
server.use(cookieParser());
server.use(i18n.init);
hbs.registerHelper('__', function () {
return i18n.__.apply(this, arguments);
});
hbs.registerHelper('__n', function () {
return i18n.__n.apply(this, arguments);
});
server.get('/', function(req, res) {
res.render('index');
});
我的HTML代码:
<ul class="nav navbar-nav navbar-right">
<li><a href="/">{{__ 'HOME'}}</a></li>
<li><a href="team">{{__ 'TEAM'}}</a></li>
<li><a href="#">{{__ 'SERVICES'}}</a></li>
<li><a href="#">{{{__ 'LEL'}}}</a></li>
</ul>
以下是我的一个Json文件:
{
"HOME": "HOME",
"TEAM": "TEAM",
"SERVICES": "SERVICES",
"LEL": "CONTACT"
}
我不知道我的做法有什么问题,如果有人能帮忙,那就太好了!谢谢!
编辑: 看起来我的辅助程序被识别出来了,但是国际化(i18n)没有翻译单词...
编辑: 好的,我改变了我的模板引擎,它工作了!