我試圖用玉做一些字符串插值+國際化在玉
強制串插我寫了一個自定義標籤
mixin unsubscribe
a(title='unsubscribe_link', href='#{target_address}/',
target='_blank', style='color:#00b2e2;text-decoration:none;')
= __("Click here")
然後我得到了以下工作
p
| #[+unsubscribe] to unsubscribe
但是,爲了支持i18n,我還想將整個字符串包裝到一個轉換塊中,函數的調用方式爲__()
。
但是,當我將字符串包裝在代碼塊中時,它不再呈現自定義標籤。
p
| #{__("#[+unsubscribe] to unsubscribe")}
p
= __("#[+unsubscribe] to unsubscribe")
將直接輸出[+unsubscribe] to unsubscribe
。有沒有辦法強制從函數返回的字符串?
編輯1
正如已經指出的那樣,嵌套"Click here"
並沒有真正意義的,因爲它會創建單獨的字符串。
我的這一切真正的目標是創建一個可以將傳遞給翻譯服務的簡化文本字符串:那麼理想
它應該是:
"#[+unsubscribe('Click here')] to unsubscribe"
,我會得到回到
"Klicken Sie #[+unsubscribe hier] um Ihr auszutragen"
我給這家的理由是,因爲使用的東西升ike gettext將按照確切的字符串匹配,我想抽象出標籤背後的所有邏輯。
您已包裝'__(「點擊此處」)'。你只應該傳遞簡單的字符串給i18n函數。傳遞整塊玉石沒有意義。在完成所有函數調用(包括i18n轉換)之後,渲染整個jade字符串(至html)始終是最後一步。 – laggingreflex
@laggingreflex你是對的,我實際上想要「點擊這裏」內聯,以便它顯示爲一個內聯字符串(我將修復我的示例)。傳遞純文本的問題在於,它創建了幾個字符串,這些字符串隨後會出現在翻譯器的上下文之外。 – paulpdaniels