名称是什么:' XXX |||| XXXs',在 i18n 中是什么意思?

What does name: ' XXX |||| XXXs', mean in i18n?

此代码来自recat-admin demo i18n翻译,

     invoices: {
        name: 'Invoice |||| Invoices',
        fields: {
            date: 'Invoice date',
            customer_id: 'Customer',
            command_id: 'Order',
            date_gte: 'Passed Since',
            date_lte: 'Passed Before',
            total_gte: 'Min amount',
            address: 'Address',
        },
    },

你能解释一下这一行是什么意思吗?

name: 'Invoice |||| Invoices'

我从来没有遇到过这样的代码||||

谢谢:)

react-admin 使用 Polyglot 作为其默认的 i18n 提供程序。这是您定义消息的单数和复数形式的方式:

name: 'Singular |||| Plural'

在某些语言中,您可能需要两种以上的变体:

name: 'WhenZero |||| WhenOne |||| WhenMoreThanOne'

在react-admin中,可以调用useTranslate钩子得到一个translate函数。此函数接受 2 个参数:

  • 翻译键
  • object 个要插入已翻译消息的变量。

如果您阅读多语言文档,您会发现可以在第二个参数中传递一个特殊变量,称为 smart_count。 polyglot 使用此变量 return 消息的正确复数形式。

react-admin 使用此功能获得正确的标题。对于资源名称,我们在列表页和菜单项中显示复数形式,在创建、编辑和显示中显示单数形式。