Параметры в сообщениях локализации в Laravel

Пусть в нашем представлении выводится некоторое сообщение, содержащее переменную часть. Например, количество сообщений:

resources/views/test/index.blade.php<p>
  messages number is 5
</p>

Давайте вынесем это сообщение в файл локализации. Пока что просто запишем его целиком:

lang/en/test.php<?php
  return [
    'messages' => 'messages number is 5',
  ];
?>

Однако число в этом сообщении меняется в зависимости от количества сообщений. Это значит, что мы должны написать сообщение таким образом, чтобы число можно было передать как параметр.

Для этого в Laravel в сообщениях локализации можно использовать плейсхолдеры. Плейсхолдер начинается с двоеточия, после которого следует имя параметра. Давайте перепишем наше сообщение, заменив число на плейсхолдер :count:

lang/en/test.php<?php
  return [
    'messages' => 'messages number is :count',
  ];
?>

Теперь при вызове функции __ вторым параметром мы можем передать массив, ключами которого будут имена плейсхолдеров, а значениями - то, что нужно подставить вместо них. Давайте подставим число 5 вместо плейсхолдера :count:

resources/views/test/index.blade.php<p>
  {{ __('test.messages', ['count' => 5]) }}
</p>

В результате выполнения этого кода в браузер выведется строка 'messages number is 5'. Таким образом мы можем передавать любые динамические данные в сообщения локализации.

Вторым параметром функции __ передается ассоциативный массив, где ключи соответствуют именам плейсхолдеров в файле локализации, а значения - это те данные, которые будут подставлены на место плейсхолдеров.

Задание 1

Пусть из контроллера в представление передается переменная. Подставьте значение этой переменной в сообщение.

Задание 2

Пусть у вас есть две переменных: начало и конец диапазона. Сделайте сообщение, в которое будут подставлены эти две переменные.