2017-08-24 3 views
0

Je travaille avec i18next pour réagir https://github.com/i18next/react-i18next. J'ai du mal à casser des lignes dans la chaîne dans mon fichier de langage JSON.Réagir i18n lignes de rupture dans JSON String

C'est ce que je l'ai déjà essayé, qui ne casse pas une nouvelle ligne:

  • 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

J'ai évidemment essayez de faire une nouvelle ligne après chaque phrase. Voici comment je l'appelle:

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

Des idées? Merci!

+0

Ce tout dépend du composant. Il peut ou non prendre en charge les sauts de ligne. Avez-vous essayé de définir le texte directement sans traduction i18n? –

+0

J'ai défini le texte directement et cela ne fonctionne pas non plus. Je suis en train de définir le texte pour la boîte de dialogue via les accessoires. Vous pensez que cela pourrait causer le problème? – Nocebo

+0

Il suffit de regarder cette question, il peut vous aider: https://stackoverflow.com/questions/2392766/multiline-strings-in-json – emma93

Répondre

1

<br /> est la bonne façon, mais elle ne va pas dans le texte ou les traductions. Exemple:

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

Cependant, si vous voulez garder les sauts de ligne (\ n) à l'intérieur du texte, puis le faire comme ceci en utilisant dangerouslySetInnerHTML:

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

Malheureusement, je ne peux pas le faire dans mon cas, car je ne suis pas seulement réglage des chaînes, mais aussi des composants entiers. Mais merci quand même! – Nocebo