国际化nodejs玉模板

时间:2014-10-05 14:54:15

标签: node.js express internationalization pug

我正在尝试使用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
});

1 个答案:

答案 0 :(得分:1)

i18n-2已在Express本地区域中注册了帮助对象,这些对象可从您的Jade模板访问。这些辅助方法是自动注册的:" __"," __ n"," getLocale"和" isPreferredLocale"。如果没有任何其他配置,应该能够在您的Jade模板中执行以下操作:

a(href="/") #{ __('home') }