Reactjs React-i18n Trans组件与包含HTML标记的翻译不起作用

Reactjs React-i18n Trans组件与包含HTML标记的翻译不起作用,reactjs,i18next,react-i18next,Reactjs,I18next,React I18next,我尝试使用包含一些HTML标记的翻译json,如下所示: //en.json {欢迎:欢迎来到我们的网站,{{name}} 在我的React组件中,我希望字符串像这样呈现 欢迎来到我们的网站,约翰 使用UseTransformation函数通常会逐字打印字符串,而不会将其解释为HTML,就像欢迎访问我们的网站John一样 但是,如果可能的话,我希望避免使用危险的LysetinerHTML。我在文档中读到,您可以使用称为Trans components的东西来翻译HTML标记 文件: 但我对如何使

我尝试使用包含一些HTML标记的翻译json,如下所示:

//en.json {欢迎:欢迎来到我们的网站,{{name}} 在我的React组件中,我希望字符串像这样呈现

欢迎来到我们的网站,约翰

使用UseTransformation函数通常会逐字打印字符串,而不会将其解释为HTML,就像欢迎访问我们的网站John一样

但是,如果可能的话,我希望避免使用危险的LysetinerHTML。我在文档中读到,您可以使用称为Trans components的东西来翻译HTML标记

文件:

但我对如何使用它们感到困惑,因为它们显示的示例似乎是用实际的标记替换占位符标记,如。有没有一种方法可以使用Trans组件或其他不使用危险的lySetinerHTML的方法来将翻译后的字符串解释为HTML


提前谢谢。

是的,你做错了

return (
  <Trans i18nKey="welcome">
    Welcome to our site, <strong>{{name}}</strong>
  </Trans>
)
您的JSON文件应该如下所示:

"welcome": "Welcome to our site, <1>{{name}}</1>"
之所以使用Trans,是因为Trans将字符串分解为一个数组,所以在本例中为:[欢迎访问我们的站点,{name}]
是的,你做错了

return (
  <Trans i18nKey="welcome">
    Welcome to our site, <strong>{{name}}</strong>
  </Trans>
)
您的JSON文件应该如下所示:

"welcome": "Welcome to our site, <1>{{name}}</1>"
之所以使用Trans,是因为Trans将字符串分解为一个数组,所以在本例中为:[欢迎访问我们的站点,{name}]

这个答案让我困惑了很长时间,因为我仍然不知道如何用实际值John替换{{name}}。我知道你可以在trans组件中使用{{name:'John'}}而不是{{name}来实现这个目的。`const name='John'返回欢迎访问我们的站点,{{name}}`这个答案让我困惑了很长时间,因为我仍然不知道如何用实际值John替换{name}。我了解到,您可以在trans组件中执行{{name:'John'}}而不是{{name}}来实现此目的`