Я применил локализацию в моем Laravel проекте. Но локализация вызывает ошибку для некоторого URL.
У меня есть две языковые кнопки en
и bn
в моем разделе заголовка. пока пользователь нажимает любую кнопку языка, весь сайт будет преобразован в этот язык.
кнопка
<li><a href="{{ 'locale/en' }}">English</a></li>
<li><a href="{{ 'locale/bn' }}">Bangla</a></li>
.env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:Dm34MLg8AbQk4ADyIG9cYPaIwYbQgrUgrN7Ani/x+JA=
APP_DEBUG=true
APP_URL=http://localhost:90/office/sencare/
веб. php
Route::get('/doctor', 'homeController@doctor'); //route A
Route::get('/doctor/{data}', 'homeController@doctor_detail'); //route B
Route::get('/technology', 'homeController@technology');//route A
Route::get('/technology/{data}', 'homeController@technology_detail'); //route B
Route::group(['prefix' => 'admin'], function () {
Voyager::routes();
});
// ================LOCALIZATION=============
Route::get('locale/{locale}',function ($locale){
Session::put('locale',$locale);
return redirect()->back();
});
// ================LOCALIZATION=============
/*=============START CUSTOMIZE ERROR PAGE===========*/
Route::any('{catchall}', function() {
return App::call('App\Http\Controllers\errorController@error');
})->where('catchall', '.*');
/*=============END CUSTOMIZE ERROR PAGE===========*/
Локализация Middlewer
public function handle($request, Closure $next)
{
if(\Session::get('locale')){
\App::setLocale(\Session::get('locale'));
}
return $next($request);
}
Так, пока пользователь посещает страницы в A
введите маршруты и нажмите любую языковую кнопку, чтобы преобразовать страницу, она работает нормально и конвертируется.
Но пока пользователь посещает страницы в B
, введите маршруты и нажмите любую языковую кнопку, чтобы преобразовать страницу. , а затем получил страницу ошибки в настройке маршрутов ошибок.
сообщение об ошибке
СТРАНИЦА НЕ НАЙДЕНА Запрошенный URL неверен.
Другой момент заключается в том, что, хотя я нажимал на кнопку языка под A
типом страницы маршрута, URL оставался прежним. Но для страницы маршрута типа B
после нажатия кнопки языка, URL изменился. Например:
http://localhost: 90 / Офис / Sencare / Доктор / Язык / ru / 10 * *
это locale/en/
не подходит для любой другой URL.
Как решить эту проблему?
Кто-нибудь, пожалуйста, помогите? Заранее спасибо.