После долгих испытаний и поиска я не могу найти решение.
Моя проблема в том, что у меня есть, например, маршрут '/ services', '/ servicios' на испанском языке.
Если мой сайт на английском языке, все тексты правильно отображаются на английском, то же на испанском.Но проблема с текстовыми ссылками, которые отображаются только в локали по умолчанию.
В маршрутах / web.php:
Route::get(trans('rutas.servicios'), 'ServiceController@index')->name('servicios')
Файл lang / es / rutas.php:
return [
'servicios' => '/servicios',
];
Файл lang / en / rutas.php:
return [
'servicios' => '/services',
];
и ссылка html:
<a href="{{ route('servicios') }}">@lang('menus.servicios')</a>
Моя цель - использовать переведенные URL-адреса без использования префикса laravel.То есть:
https://www.myweb.com/services ~ english
https://www.myweb.com/servicios ~ spanish
совместно используют один и тот же контроллер маршрута.
Любая помощь?Большое спасибо за ваше время!
РЕДАКТИРОВАТЬ С РЕШЕНИЕМ:
Я обнаружил, что laravel выполняет сопоставление маршрутов перед выбором языка.Поэтому я установил язык до этого, но переменные сессии и куки загружаются после этого.Но я наконец-то обнаружил, что кэшированные переменные удовлетворяют моим потребностям.
В верхней части функции map () RouteServiceProvider.php:
App::setLocale(Cache::get('locale'));
Для сохранения выбранной локали:
Cache::put('locale', $locale, $minutes);