Node.js 将i18n与hbs和express一起使用
我正试图在hbs上正确使用i18n,但没有任何成功 这是我的server.js代码:Node.js 将i18n与hbs和express一起使用,node.js,express,internationalization,handlebars.js,Node.js,Express,Internationalization,Handlebars.js,我正试图在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
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>
我看不出我做错了什么,如果有人能帮我一点,那真的很有帮助!谢谢大家!
编辑:我的助手似乎已被识别,但i18n没有翻译单词
Édit:好的,我更改了模板引擎,它工作了 我是这样做的
const express = require('express');
const path = require('path');
const handlebars = require('handlebars');
const app = express();
const i18n = require('i18n');
// Language
i18n.configure({
locales: ['es', 'en'],
directory: path.join(__dirname, 'locales'),
defaultLocale: 'es',
queryParameter: 'lang',
});
app.engine('.hbs', exphbs({
defaultLayout: 'index',
layoutsDir: path.join(app.get('views'), 'layouts'),
partialsDir: path.join(app.get('views'), 'partials'),
extname: '.hbs',
handlebars: allowInsecurePrototypeAccess(handlebars),
helpers: {
i18n: function(){
return i18n.__.apply(this,arguments);
},
__n: function(){
return i18n.__n.apply(this, arguments);
},
}
}));
app.set('view engine', 'hbs');
app.use(i18n.init);
在任何.hbs文件中
<h1>{{i18n 'Hello'}}<h1>
{{i18n'Hello'}
<h1>{{i18n 'Hello'}}<h1>