gpt4 book ai didi

node.js - 将 i18n 与 hbs 和 express 结合使用

转载 作者:行者123 更新时间:2023-12-04 18:01:27 24 4
gpt4 key购买 nike

我正在尝试将 i18n 与 hbs 正确使用,但没有取得任何成功。

这是我的 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>

还有我的一个 杰森 文件:
{
"HOME": "HOME",
"TEAM": "TEAM",
"SERVICES": "SERVICES",
"LEL": "CONTACT"
}

我看不出我做错了什么,如果有人能帮我咬一口,那真的很有帮助!谢谢!

编辑 : 好像我的 helper 都被认出来了,但是i18n不翻译字..

编辑 :好的,我改变了我的模板引擎,它起作用了!

最佳答案

我是这样做的

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>

关于node.js - 将 i18n 与 hbs 和 express 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com