ccc

Laravel: Multidiomas

https://styde.net/aplicacion-multilenguaje-en-laravel-5-1/

En cualquier blade.php:
 <p>{{ trans('mensajes.bienvenida') }}</p>

Crear resources/lang/es/mensajes.php
Crear resources/lang/en/mensajes.php

Y lo editas cada uno en su idioma:
<?php
return [
    'bienvenida' => '¡Bienvenido a mi web',
];

Creamos un nuevo middleware:
php artisan make:middleware LangMiddleware

Editamos LangMiddleware:
    public function handle($request, Closure $next)
    {
        if (!empty(session('lang'))) {
            \App::setLocale(session('lang'));
        }
        return $next($request);
    }

Registrar el nuevo middleware en app\Http\Kernel.php:
protected $middlewareGroups = [
        'web' => [
            ...
            \App\Http\Middleware\LangMiddleware::class,

protected $routeMiddleware = [
        ...
        'web' => \App\Http\Middleware\LangMiddleware::class,

En el blade que queramos poner los links:
<a href="{{ url('lang', ['en']) }}">En</a>
<a href="{{ url('lang', ['es']) }}">Es</a>

En routes/web.php:
Route::group(['middleware' => ['web']], function () {
    Route::get('lang/{lang}', function ($lang) {
        App::setLocale($lang);
        session(['lang' => $lang]);
        return \Redirect::back();
    })->where([
        'lang' => 'en|es'
    ]);
});

No hay comentarios:

Publicar un comentario