Затем добавьте файл resources/lang/fr.json.
Как вы можете заметить, мы постоянно ссылаемся на сообщение по умолчанию из файла welcome.blade.php ({{ __(‘Добро пожаловать на сайт Linguise !’) }}). Нет необходимости создавать файл en.json, так как Laravel автоматически распознает, что сообщения по умолчанию на английском языке.
Настройка переключателя языков в многоязычном приложении Laravel
Кроме того, Laravel еще не настроен для переопределения локального языка, поэтому пока мы будем обрабатывать перевод непосредственно в маршруте. Измените маршрут приветствия по умолчанию в файле routes/web.php следующим образом.
В этом случае мы захватываем необязательный GET-параметр локали и устанавливаем текущую локаль на его основе (если запрошенная локаль поддерживается).
Теперь вы можете посетить свой сайт и добавить любой из поддерживаемых языков в качестве первого сегмента URL-адреса. Например, переход по адресу localhost/it или localhost/fr отобразит локализованный контент. Если вы не укажете локаль или выберете неподдерживаемую, Laravel по умолчанию будет использовать английский (en).
Промежуточное ПО локализации для Laravel
Включение локали в каждый URL может быть не идеальным решением и способно нарушить визуальную привлекательность сайта. Чтобы решить эту проблему, мы настроим переключатель языков и будем использовать пользовательскую сессию для отображения переведённого контента. Вы можете создать новое промежуточное программное обеспечение в файле app/Http/Middleware/Localization.php или сгенерировать его, выполнив команду artisan make:middleware Localization.
Затем добавьте следующий код внутрь.
Это промежуточное программное обеспечение направит Laravel использовать местоположение, выбранное пользователем, если эта опция присутствует в сессии.
Поскольку нам нужно, чтобы операция выполнялась при каждом запросе, добавьте её в стандартный стек промежуточного программного обеспечения в app/Http/Kernel.php для группы веб-промежуточного программного обеспечения.
Изменение маршрутов
Затем определите маршрут для изменения локали в файле routes/web.php. Здесь мы используем замыкающий маршрут, но вы можете разместить тот же код внутри контроллера, если предпочитаете.
Кроме того, удалите переключение локали, которое ранее было добавлено в маршрут приветствия по умолчанию. Теперь ваш корневой маршрут должен выглядеть так.
После этого пользователь может переключить активный язык только путем перехода по адресу localhost/language/{locale}. Выбранная локаль будет сохранена в сессии, а пользователи будут перенаправлены обратно на предыдущую страницу (как это реализовано в промежуточном программном обеспечении локализации).
Чтобы проверить это, перейдите по адресу localhost/language/it (при условии, что сессионный файл cookie активен в вашем браузере), и вы должны увидеть переведённый контент. Вы можете перемещаться по сайту или обновить страницу, и выбранный язык останется активным.
Реализация переключателя языков
Теперь нам нужно предоставить пользователю кликабельную опцию для изменения переключателя языков Laravel веб , вместо того чтобы требовать от него вручную вводить коды локалей в URL. Для этого создайте простой переключатель языков. Добавьте новый файл по пути resources/views/partials/language_switcher.blade.php и вставьте следующий код.
Чтобы включить только что созданный переключатель языка в представление “welcome”, просто добавьте следующую строку в ваш файл welcome.blade.php в том месте, где вы хотите, чтобы появился переключатель.
Откройте файл app/Providers/AppServiceProvider.php и добавьте следующий код в метод boot(), чтобы передавать текущую локаль во все представления при использовании переключателя языков
Расширенные возможности перевода в Laravel PHP
В этом обсуждении мы затем рассмотрим другие компоненты локализации, а именно дату, число и валюту. Вот шаги.
Локализованные даты в Laravel