2015-10-14 79 views
2

我想使用i18next作爲實際用戶名輸入「您已經以[用戶名]登錄」,但是我似乎無法讓他們一起工作。連接i18next和Jade變量

據我所知,i18n覆蓋整個<p>顯示「您已登錄爲」。用戶名只顯示,如果我把它放在一個單獨<p>,就像這樣:

if (user) 
    p(data-i18n='markup.loggedInAs') 
    p #{user.username} 

不過,當然,它被呈現爲一個單獨的<p>,這不是我想要的。我希望他們在一條線上,理想情況下在同一個<p>內。有一個竅門嗎?

此:

if (user) 
    p(data-i18n='markup.loggedInAs') 
    | #{user.username} 

不起作用。用戶名根本不顯示:/

感謝您的幫助。

+1

我不熟悉玉石,但我知道i18next支持變量替換與翻譯。編輯:不知道如何停止標記,但myVar是由兩個下劃線包圍。 // given resources { 'en-US':{translation:{key:'__myVar__ is important'}} }; (「key」,{myVar:「variables」}); // - >變量很重要 – AtheistP3ace

+0

但是這會花費我很大的靈活性,如果我想在兩個不同的地方使用變量(如用戶名,在這種情況下) 我總是要預格式化整個字符串,對嗎? – user3787706

+1

是的,但翻譯很難動態翻譯,因爲單詞的順序和語言之間的差異並不大。您以[用戶名]在各種語言中的差異很大而登錄,因此使用翻譯後的字符串並僅替換一個變量意味着靈活性越低,可譯性越好。 – AtheistP3ace

回答

0

儘管您對帖子的評論中的觀點是有效的(詞序在翻譯中是棘手的),但我想我會指出如何解決眼前的問題。

p 
    span(data-i18n='markup.loggedInAs') 
    span #{user.username} 

請注意,這並未經過測試,但我確定您可以看到它(或類似的)是如何工作的。 span是標記不代表實際段落內容的更好選擇。

+0

謝謝,這適用於我的問題:) 我要深入一點的字排序。現在,這足以:) – user3787706