2015-10-19 47 views
1

我想在發生錯誤時向用戶顯示自定義錯誤頁面。 我的問題是,它必須是國際化的。從節點向玉傳遞動態i18n資源

想法:

驗證的節點 - >如果不接受 - >res.render('error', {message: errorMessageNameTooLong}); - >玉器,渲染到一個佔位符,它從我的translation.json翻譯錯誤p(data-i18n='errorMessageNameTooLong')

問題:

我如何傳遞消息,使VALUE成爲jade中的data-i18n屬性?

到目前爲止,我堅持預格式化我的玉石模板到p(data-i18n="errormsg") ,但這使得不可能顯示(即翻譯)多個錯誤。 我想p有一個自定義數據國際化屬性,這取決於什麼樣的錯誤,它實際上是...

我希望這是可以理解的:d

感謝您的幫助:)

+0

[把Jade局部變量放在標籤屬性中]可能重複(http://stackoverflow.com/questions/5081534/put-jade-local-variable-in-tag-attribute) –

回答

0

好我實際上只是自己發現了它......而且這絕對是直接的。

解決方案:

router.post( '/註冊'):

if(username.length > MAX_USERNAME_LENGTH) { 
    res.render('error', {title: "error.error", errMsg: "error.nameTooLong"}); 
} 

error.jade:

block content 
    h1(data-i18n="#{title}") 
    p(data-i18n="#{errMsg}") 
1

你的答案是一種方法,但還有一個更簡單的一個:

p(data-i18n=errMsg)

只要把=後的變量沒有""

退房this question一個深入的解釋或檢查official documentation