阅读(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',