Функция trans_choice
Функция trans_choice применяется для выбора правильной формы перевода строки на основе числа. Первым параметром передаётся ключ языковой строки из файлов локализации, вторым - число, влияющее на выбор формы, третьим - массив подстановок (опционально). Функция автоматически определяет нужную форму множественного числа согласно правилам текущей локали.
Синтаксис
<?php
trans_choice($key, $number, $replace = []);
?>
Пример
Допустим, у нас есть языковой файл resources/lang/ru/messages.php с правилами множественного числа для русской локали:
<?php
return [
'apples' => '{0} Нет яблок|[1,4] :count яблока|[5,*] :count яблок',
];
?>
Используем функцию trans_choice в контроллере для вывода правильной формы:
<?php
namespace AppHttpControllers;
use Illuminate\Http\Request;
class AppleController extends Controller
{
public function index()
{
$count = 5;
$res = trans_choice('messages.apples', $count, ['count' => $count]);
echo $res;
}
}
?>
Результат выполнения кода при $count = 5:
"5 яблок"
Пример
Используем функцию trans_choice с разными числами в Blade-шаблоне для вывода сообщений в зависимости от количества:
@php
$counts = [0, 1, 3, 10];
@endphp
@foreach ($counts as $count)
<p>{{ trans_choice('messages.apples', $count, ['count' => $count]) }}</p>
@endforeach
Результат выполнения кода:
"Нет яблок"
"1 яблоко"
"3 яблока"
"10 яблок"