Posted in

Forzar que la url muestre el idioma en Laravel

Nos podemos encontrar con el problema que Google replique el mismo contenido de dominio.com en dominio.com/es, así que lo ideal es que siempre se muestre el idioma en la url. Para ello usaremos la librería mcamara/laravel-localization y se añadirá siempre, mediante redirección, el idioma en la barra de direcciones.

Laravel 4.2

Añadiremos a nuestro composer.json

"mcamara/laravel-localization": "0.15.*",

Y ahora el provider y aliases en nuestro archivo config/app.php

'Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider',
'LaravelLocalization'   => 'Mcamara\LaravelLocalization\Facades\LaravelLocalization',

Añadiremos a nuestro archivo routes.php lo siguiente:

Route::group(
    array(
        'prefix' => LaravelLocalization::setLocale(),
        'before' => 'LaravelLocalizationRoutes|LaravelLocalizationRedirectFilter'
    ),
    function() {
// Las rutas a las cuales se les forzará el idioma en la url
 }
);

Laravel 5.8

composer require mcamara/laravel-localization

Crearemos nuestro archivo de configuración en la carpeta config

php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider"

Añadiremos a nuestro archivo app/Http/Kernel.php lo siguiente:

protected $routeMiddleware = [
        /* las rutas declaracdas que haya por defecto y añadimos las siguientes: /*
        'localize' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
        'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
        'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
        'localeViewPath' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class,
        'localize' => 'Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes'
    ];

Y en nuestro enrutador routes/web.php

Route::group(
    [
        'prefix' => LaravelLocalization::setLocale(),
        'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath', 'localize' ]
    ],
    function() {
// Las rutas a las cuales se les forzará el idioma en la url

    });
 

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.