Tengo un problema para construir un conmutador de traducción, esto es lo que ya hice:
Paso 1 : He prefijado todas las rutas con el parámetro local {languge}
Route::redirect('/', '/en'); Route::group(['prefix' => '{language}'], function () { //products routes Route::get('/', 'ProductController@index' )->name('acceuil'); Route::get('/boutique/{slug}', 'ProductController@show' )->name('product.show'); Route::get('/search', 'ProductController@search' )->name('product.search'); });paso 2 : luego creé un middleware para configurar el idioma de la aplicación según la solicitud
public function handle($request, Closure $next) { App::setLocale($request->language); return $next($request); }paso 3 : aquí agregué el parámetro Locale {languge} a Todos los enlaces existentes, así:
<form method="POST" action="{{ route('register', app()->getLocale()) }}">aquí todo está bien pero:
aquí quiero crear un conmutador de idioma, esto es lo que hice:
paso 4 : aquí agregué el parámetro Locale {languge} a Todos los enlaces existentes, así:
<ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ _('language') }}<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="{{ route( Route::currentRouteName(), 'fr' ) }}">{{ _('Francais') }}</a></li> <li role="separator" class="divider"></li> <li><a href="{{ route( Route::currentRouteName(), 'en' ) }}">{{ _('anglais') }}</a></li> </ul> </li> </ul>El problema es que tengo diferentes rutas, algunas requieren parámetros y luego el Paso 4 no funciona:
Algunas ideas ?
Esto parece funcionar para mí:
{{ route(Route::currentRouteName(), array_merge(['fr'], array_slice(($rp = Route::current()->parameters()), 1, count($rp)))) }} Primero necesitamos array_slice el idioma antiguo de los parámetros, luego podemos fusionarlos con el nuevo idioma. Dado que fusionamos el idioma con los parámetros actuales, el orden siempre nos dará el idioma primero y el orden posterior de los parámetros actuales.