2017-07-17 68 views
1

我正在使用i18next來處理我正在處理的項目中的翻譯,並且我發現當我將一個字符串交給包含/的翻譯時,它將被轉換爲Unicode的十六進制代碼/i18下一個翻譯顯示爲unicode十六進制字符

我設置title爲:

const title = '2/Double/Twin/Triple/Quadrupple' 

翻譯被稱爲如下:

{i18n.t('foo', { 
    title, 
    amount: '$18' 
})} 

和翻譯爲建立這樣的:

{ 
    "foo": "foo bar {{title}} howdee {{amount}}" 
} 

但是輸出是:

Foo bar 2/Double/Twin/Triple/Quadrupple howdee $18 

如何確保字符不會被轉換爲它們的十六進制代碼等同?

回答

1

默認情況下,i18next轉義內容以避免基於用戶輸入的xss攻擊。您可以通過預先-關閉轉義或提供轉義標誌。

{ 
    "foo": "foo bar {{- title}} howdee {{amount}}" 
} 

{i18n.t('foo', { 
    title, 
    amount: '$18', 
    interpolation: { escapeValue: false } 
})} 

https://www.i18next.com/interpolation.html#unescape

+0

優秀。我無法在文檔中找到它。感謝您的高舉。 –

相關問題