Tag: 国际化的

express3-handlebars和18next-node – 基于页面的国际化?

我的第一个问题 – 请容易。 我使用express,express3-handlebars和i18next-node与node.js 该计划是根据哪个视图(即哪个句柄文件)当前正在服务于不同的翻译命名空间。 因此,如果我们查看名为ie(.hbs)的页面,则i18next将在名为ie(.json)的相关语言中查找。 这使得翻译的组织和协调更容易。 这就是我目前的做法:首先,我将当前页面发送到handlebars模板进行渲染(即使这似乎是不必要的 – handlebars不会自动暴露它渲染的文件): res.render( url_base_path, { layout: ("sub"), title: title, currentpage: url_base_path } ); 然后我在当前页面的命名空间中访问要翻译的variables“greeting”,就像{{t "greeting" page=currentpage }} – 令人讨厌的是每个页面上有10个variables。 不要重复自己,有人吗? 't'是在express3-handlebars create()函数中定义的,如下所示helpers: { t: t } 翻译function看起来像这样 var t = function (i18next_key, options) { var page, result; page = options.hash.page; result = i18next.t(page + ":" + i18next_key); […]

使用i18n与hbs和express

我试图用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 () { […]