什么名字:' XXX |||| XXXs',是指在 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 个参数:

  • 翻译键
  • 要在翻译后的消息中插入的变量对象。

如果您阅读多语言文档,您会看到有一个特殊变量可以传入第二个参数,称为 smart_count。 polyglot 使用此变量返回消息的正确复数形式。

react-admin 使用此功能来获取正确的标题。在资源名称的情况下,我们显示列表页面和菜单项的复数版本,以及创建、编辑和显示的单数版本。