阅读(3226) (8)

Laravel 8 复数

2021-06-28 16:48:23 更新

复数是一个复杂的问题,不同的语言对复数有不同的规则。您使用「管道」符来区分单数还是复数的形式:

'apples' => 'There is one apple|There are many apples',

您甚至可以创建更复杂的复数规则,为多个数字范围指定翻译字符串:

'apples' => '{0} There are none|[1,19] There are some|[20,*] There are many', 

在定义了具有复数选项的翻译字符串之后,您可以传递「数量」给 trans_choice 函数来解析翻译字符串。此时,如果给定的数量大于 1 ,将会返回复数形式的翻译字符串:

echo trans_choice('messages.apples', 10);

您亦可在复数字符串中定义一个占位符。这些占位符可以被 trans_choice 函数的第三个数组函数替换:

'minutes_ago' => '{1} :value minute ago|[2,*] :value minutes ago',

echo trans_choice('time.minutes_ago', 5, ['value' => 5]);

您可以使用 :count 占位符来在显示传递给 trans_choice 函数的整数值:

'apples' => '{0} There are none|{1} There is one|[2,*] There are :count',