next.js 将React节点作为i18n Lingui值传递

wztqucjr  于 2023-03-18  发布在  React
关注(0)|答案(1)|浏览(138)

我翻译过一行带链接的文本。过去,文本和链接是分开的,有自己的翻译就足够了,但现在副本改变了,在一种语言中,我需要把链接放在句子中间。我想使用LinguiMarco属性值,但它似乎不适用于NextLink(或任何React子对象)。简单文本可以工作并显示在翻译文本中,但使用NextLink时,我无法更接近[Object对象]。有办法做到这一点吗?
我的代码如下所示:

{i18n._('key_to_translated_text', 
    { link: `${<NextLink
    href={routerCatalog.terms}
    target='_blank'
    rel='noopener noreferrer'>{t`key_to_link_text`}</NextLink>}`
})}

在key_to_translated_text的翻译文件中:

msgid "key_to_translated_text"
msgstr "By registering, you agree to our {link}"

等等。
Whitch返回“通过注册,您同意我们的[object Object]”或“Du stimst zu unseren [object Object] zu,wenn du dich registrierst”。

u5rb5r59

u5rb5r591#

<Trans>By registering, you agree to our <NextLink
    href={routerCatalog.terms}
    target='_blank'
    rel='noopener noreferrer'>terms</NextLink></Trans>

您将在目录中获得:

msgid "By registering, you agree to our <0>terms</0>"
msgstr ""

现在你可以翻译,但你想要和移动链接的消息,并改变内部文本,因为你想:
you agree to our <0>terms and conditions</0>, when register
也要尽可能避免手动ID。这是不可扩展的,而且你有“命名东西”的问题,这会增加你的消息数量。

相关问题