2014-10-05 75 views
2

我試圖用i18n-2模塊國際化我的nodejs express應用程序。一切正常,但我有一個問題。有沒有辦法從我的玉石模板中翻譯字符串。想象一下,我的網站中有100個字符串。我是否必須通過res.render調用將100個翻譯發送到模板?國際化nodejs玉器模板

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

好像你回答了你自己的問題。你是否已經嘗試將'req.i18n'傳遞給玉模板並在模板中使用它? – JME 2014-10-05 15:42:14

+0

是的,我試過了。在我嘗試這個#{i18n .__('hello1')}的時候,我會遇到錯誤。我只把i18n .__('hello1')這是打印的文本。 – 2014-10-05 16:00:07

+0

你可以準備一個小提琴,這樣我就可以看到你在做什麼? – JME 2014-10-05 16:10:57

回答

1

國際化-2在您的快速當地人,這是訪問的形式您玉模板已經註冊助手對象。這些幫助程序方法會自動註冊:「__」,「__n」,「getLocale」和「isPreferredLocale」。沒有任何額外的配置,應該能夠在你的Jade模板中執行以下操作:

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