Multidiomas: con Ajax

a) En routes/web.php:
Route::get('ajaxRequest', 'AjaxController@ajaxRequest');
Route::post('ajaxRequest', 'AjaxController@ajaxRequestPost');

b) En funciones.js
function switchLang(locale) {
    $.ajax({
        type:'POST',
        url:'http://localhost/edc_laravel/public/ajaxRequest', // Hasta q sepa como sacar la ruta root
        data:{
            locale: locale
        },
        success:function(data){
            location.reload();
        }
    });
}

c) En header.blade.php:
{{app()->setLocale(session()->get('language'))}}
...
<li><a href="javascript:void(0);" onclick="switchLang('es');">ESP</a></li>
<li><a href="javascript:void(0);" onclick="switchLang('en');">ING</a></li>

d) En el middleware Language.php:
public function handle($request, Closure $next)
    {
        app()->setLocale(session()->get('language'));
        return $next($request);
    }

e) En AjaxController:
public function ajaxRequestPost()  {
  session(['language' => request()->locale]);
  App::setLocale(request()->locale);
  return request()->locale;
}

No hay comentarios:

Publicar un comentario