Метод choice
Метод choice класса Lang предназначен для локализации фраз
с учётом количества предметов. Он позволяет выбрать правильную
форму слова или фразы в зависимости от переданного числа.
Первый параметр метода - это ключ строки в языковом файле,
второй параметр - число, на основе которого выбирается форма,
а третий параметр (опциональный) - массив для замены
плейсхолдеров в строке.
Синтаксис
<?php
Lang::choice($key, $number, $replace = []);
?>
Пример
Давайте получим правильную форму слова для 1 и 2 яблок
в английском языке. В файле resources/lang/en/messages.php
определим массив с ключом 'apple':
<?php
return [
'apple' => '{0} No apples|{1} One apple|[2,*] Many apples',
];
?>
Теперь используем метод choice в контроллере:
<?php
namespace AppHttpControllers;
use Illuminate\Support\Facades\Lang;
class AppleController extends Controller
{
public function index()
{
$number = 1;
$res = Lang::choice('messages.apple', $number);
echo $res;
}
}
?>
Результат выполнения кода для 1:
"One apple"
Пример
Рассмотрим работу метода choice с числом 5 и
заменой плейсхолдера:
<?php
return [
'user' => '{0} No users|{1} One user|[2,*] :count users',
];
?>
<?php
namespace AppHttpControllers;
use Illuminate\Support\Facades\Lang;
class UserController extends Controller
{
public function index()
{
$count = 5;
$res = Lang::choice('messages.user', $count, ['count' => $count]);
echo $res;
}
}
?>
Результат выполнения кода:
"5 users"
Пример
Используем метод choice с числом 0 в русской локализации.
В файле resources/lang/ru/messages.php:
<?php
return [
'cat' => '{0} Нет кошек|{1} Одна кошка|[2,4] :count кошки|[5,*] :count кошек',
];
?>
<?php
namespace AppHttpControllers;
use Illuminate\Support\Facades\Lang;
class CatController extends Controller
{
public function index()
{
$number = 0;
$res = Lang::choice('messages.cat', $number, ['count' => $number]);
echo $res;
}
}
?>
Результат выполнения кода:
"Нет кошек"
Смотрите также
-
функция
trans_choice,
которая является сокращением для метода choice -
метод
get,
который получает строку перевода без учёта числа -
функция
trans,
которая используется для перевода строк -
метод
setLocale,
который устанавливает текущую локаль приложения