我对node.js比较新,我正在使用node,express和mongoose。 我已经实现了i18n模块并进行了配置 现在我需要使用带有标志图标的受支持语言下拉,然后单击想要调用setLocale()但不知道如何执行此操作 欢迎所有的想法。
同样在所有的jade模板中,__('hello')
翻译被选中,例如
.dropdown
button.btn.dropdown-toggle(type='button', id='dropdown1',data-toggle='dropdown')
img(src='/img/navbar-list.png', alt='Cloud iBeacon')
ul.dropdown-menu(role='menu',aria-labelledby="dropdownMenu1")
li(role='presentation')
a(role='menuitem',href="/") __('home')
不起作用
答案 0 :(得分:3)
这取决于您如何配置i18n,如果您使用名为“locale”的cookie来存储区域设置:
// minimal config
i18n.configure({
locales: ['en', 'fr'],
cookie: 'locale',
directory: __dirname + '/locales'
});
// express.cookieParser然后i18n.init
app.use(express.cookieParser());
app.use(i18n.init);
然后您可以通过cookie设置区域设置,将此路线设置为您的应用程序:
// set a cookie to requested locale
app.get('setlocale/:locale', function (req, res) {
res.cookie('locale', req.params.locale);
res.redirect('back');
});
然后创建包含2个项目en,fr的菜单。 (作为你的例子,bootstrap?)
.dropdown
button.btn.dropdown-toggle(type="button" data-toggle="dropdown") Dropdown
ul.dropdown-menu
li: a(href="/setlocale/en") en
li: a(href="/setlocale/fr") fr
这里的例子:
https://github.com/mashpie/i18n-node/blob/master/examples/express-jade/express-jade.js