我正在使用 react、i18next和react-i18next。我想在文本中间插入一些带有 HTML 链接的可翻译文本,这些文本在反应中插值,如下所示:
This is my text with <a href="{{link}}">a beautiful link</a> in the middle of the text
下面的解决方案有效,但问题是我需要在反应中插入链接,因此不能在标签文件中硬编码:
"my-label": "This is my text with <a href=\"http://google.com\">a beautiful link</a> in the middle of the text"
[...]
<Interpolate i18nKey="my-label" useDangerouslySetInnerHTML />
这似乎好多了:
"my-label": "This is my text with {{link}} in the middle of the text",
"link" "a beautiful link"
[...]
const { url } = props;
const link = <a href={url}>{t('link')}</a>
<Interpolate i18nKey="my-label" link={link} />
可能是解决方案,但是该应用程序被翻译成多种语言,翻译质量确实很重要,所以我更喜欢将整个文本放在一行中供翻译人员使用(这对于有案例的语言尤其重要)。
有没有办法让这样的事情开始工作(或者有什么方法可以完全不同地解决它)?
"my-label": "This is my text with <a href=\"{{link}}\">a beautiful link</a> in the middle of the text"
[...]
const { url } = props;
<Interpolate i18nKey="my-label" useDangerouslySetInnerHTML link={url} />