2017-08-24 51 views
0

我正在處理i18next中的反應https://github.com/i18next/react-i18next。我正努力在我的JSON語言文件中的字符串內劃線。在JSON字符串中反應i18n中斷線

這是我已經嘗試過,不闖出了一條新線:

  • line: "This is a line. \n This is another line. \n Yet another line"enter image description here
  • line: ("This is a line."+ <br/> + "This is another line. \n Yet another line")enter image description here
  • line: ('This is a line. <br/> This is another line. \n Yet another line')enter image description here

我很明顯嘗試在每個句子後寫一個新的句子。這就是我所說的:

<TooltipLink onClick={() => { 
    this.toggleHelpTextDialog(t('test:test.line')); 
}}/> 

任何想法?謝謝!

+0

這完全取決於組件上。它可能會或可能不支持換行符。您是否嘗試在沒有i18n翻譯的情況下直接設置文本? –

+0

我沒有直接設置文本,也沒有工作。我通過道具設置對話框的文字。你認爲這可能會導致問題? – Nocebo

+0

只是看看這個問題,它可能會幫助你: https://stackoverflow.com/questions/2392766/multiline-strings-in-json – emma93

回答

1

<br />是正確的方式,但它不會進入文本或翻譯。例如:

<div> 
    {'my text line 1'} 
    <br /> 
    {'my text line 2'} 
</div> 

不過,如果你想保持換行符(\ n)的文本中,然後再去做這樣的使用dangerouslySetInnerHTML:

const text = "This is a line. \n This is another line. \n Yet another line"; 
<div dangerouslySetInnerHTML={text} /> 
+0

不幸的是,我不能這樣做在我的情況,因爲我不僅設置字符串,但也是整個組件。不過謝謝你! – Nocebo