我正在使用i18 next来实现react https://github.com/i18next/react-i18next,我很难在JSON语言文件的字符串中换行。
这是我已经尝试过的方法,没有换行:
line: "This is a line. \n This is another line. \n Yet another line"
,line: ("This is a line."+ <br/> + "This is another line. \n Yet another line")
,line: ('This is a line. <br/> This is another line. \n Yet another line')
、
很明显,我会在每句话后加一行,我是这么说的:
<TooltipLink onClick={() => {
this.toggleHelpTextDialog(t('test:test.line'));
}}/>
有什么主意吗?谢谢!
7条答案
按热度按时间z6psavjg1#
您可以在翻译文本中使用css
white-space: pre-line;
&\n
来完成。yqkkidmi2#
你也可以用CSS来做,这很容易做到:
CSS:
超文本:
它会将翻译JSON中的\n解释为换行符!!!
7dl7o3gd3#
例如,您在JSON语言文件中编写以下文本。
文本:"你好\n你好吗?\n你在做什么?"
然后在返回部分写入
好吧,当调用split方法时,试着创建列表并从'\n'中分离出来,用方法Map在段落中键入它们中的每一个,这样就可以换行了;))
rsaldnfx4#
对于更复杂的情况,您可以使用
<Trans />
组件和任何HTML标记,甚至可以创建自定义标记。示例:
而您的JSON文件(YourNamespace.json):
有关详细信息,请查看此处:https://react.i18next.com/latest/trans-component
krcsximq5#
可以专门向工具提示链接样式添加:
那么,您的\n in语言环境将起作用。
ni65a41a6#
你可以像这样简单地使用dangerouslySetInnerHTML
那么
daupos2t7#
对于那些不想在其React组件中添加css代码的用户,可以使用
react-i18next
package中的Trans
组件。创建类似于以下内容的转换键值:
然后,在React组件中,使用
<Trans/>
组件,如下所示平移值将呈现为
参见https://github.com/i18next/react-i18next/issues/282