ReactJS & i18n.js:带链接的翻译

ReactJS & i18n.js: Translations with links

我有一个使用 i18n.js 进行翻译的 ReactJS 项目。

在 i18n JSON 文件中我有这样一行:

"register": {
    "terms": "I have read and accept the Terms of Service"
}

我只希望句子的 "Terms of Service" 部分成为 link。

起初我尝试过这样的事情:

<label className="lead">
    {i18n.t('register.terms').substr(0, 27)}<a href="#">{i18n.t('register.terms').substr(27, 43)}</a>
</label>

但是,当然它不适用于英语以外的任何其他语言。

有没有办法在 不拆分 JSON 文件的两个字段中的字符串值 的情况下做到这一点?

答案:

您可以创建一个数组。

"terms": ["I have read and accept the ", "Terms of Service"]

然后得到这样的值:

<p>{i18n.t('terms.0')}<a href="#">{i18n.t('terms.1')}</a></p>