首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何翻译动态逗号分隔的列表与Reacti-18Next?

如何翻译动态逗号分隔的列表与Reacti-18Next?
EN

Stack Overflow用户
提问于 2021-02-08 13:12:35
回答 1查看 462关注 0票数 0

我有一个动态逗号分隔的链接列表与单词"and“,而不是逗号在最后。

所以我的名单可以有以下四种状态:

  1. “你可以用A”
  2. “你可以用A和B”
  3. “你可以用A,B和C”
  4. “你可以用A,B,C和D”

动态列表是在React中呈现的,现在我想用react-18 18next和Trans组件来转换它。但我不明白。

它应翻译清单前的案文和“和”一词。A、B、C和D是名称,在每种语言中都是相同的。

代码语言:javascript
复制
<Trans>
    <span>
        You can use <>{useLinkList}</>.
    </span>
</Trans>

在第三种情况下,i18n看起来是这样的(因为有反应片段):

代码语言:javascript
复制
"<0><0><1>You can use <1><0>A</0><1>, </1><2>B</2><3> and </3><4>C</4></1>.</1></0></0>"

但我怎么才能让这四个案子都有效呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-08 16:00:34

您的问题有一个编程解决方案,这可能会导致项目后面的一些翻译/国际化问题。这些可能是:

  • 不同的分隔符在另一种语言中很常见,即;而不是逗号。
  • "and“位于其他地方

将useLinkList分成两部分。第一个包含"A“直到"A”、"B“、"C”的列表。第二部分只包含最后一个元素或省略。调用翻译功能两次翻译“和”以及。

代码语言:javascript
复制
// In your component
{t("linkList", {
        elements: [[FirstPart].join(","), lastElement].join(t(" and ")),
})}

// In your locale
{
"linkList": "You can use {{ elements }}.",
" and ": " and "
}

另一种更灵活的本地化方法是使用ICU消息。如果大小写是固定的,则可以使用select语句。这是一个语法快速指南

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66102339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档