我正在尝试使用i18n-2模块将我的nodejs express应用程序国际化。一切正常,但我有一个问题。有没有办法从我的玉石模板中翻译字符串。想象一下,我的网站中有100个字符串。我是否必须通过res.render调用向模板发送100个翻译?
res.render('profile', {
title: 'My cool title',
user: req.user,
hello1: req.i18n.__("hello1"),
hello2: req.i18n.__("hello2"),
hello3: req.i18n.__("hello3"),
...
helloN: req.i18n.__("helloN")
});
还有其他办法吗?有些人喜欢下一个代码:
res.render('profile', {
title: 'My cool title',
user: req.user,
i18n: req.i18n // to be used inside jade
});
答案 0 :(得分:1)
i18n-2已在Express本地区域中注册了帮助对象,这些对象可从您的Jade模板访问。这些辅助方法是自动注册的:" __"," __ n"," getLocale"和" isPreferredLocale"。如果没有任何其他配置,应该能够在您的Jade模板中执行以下操作:
a(href="/") #{ __('home') }