'locales' => [ 'en' => 'English', 'it' => 'Italiano'],
CREATE A CUSTOM MIDDLEWARE
php artisan make:middleware Language
This will create Language.php in App\Http\Middleware. Modify the handle method adding your own logic, in our example, we will use a query parameter _locale to modify the application locale and set a _locale session variable to store this choice and maintain the locale across various pages.
public function handle($request, Closure $next) { $locales = config('app.locales'); $locale = $request->get('_locale'); if(!is_null($locale) && is_array($locales) && array_key_exists($locale, $locales)){ app()->setLocale($locale); session(['_locale'=>$locale]); }elseif(!is_null(session('_locale'))){ app()->setLocale(session('_locale')); } return $next($request); }
MODIFY THE MIDDLEWARE WEB GROUP
/** * The application's route middleware groups. * * @var array */ protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\Language::class ], 'api' => [ 'throttle:60,1', 'bindings', ], ];
That’s it, now you can change your app locale simply using ?_locale=it in the URL.
Related Articles
Transforming Media Agencies with AI: Embrace the Future Today
By Gustavo Pinto
The Power of a Working MVP: Turning Ideas into Investments
By Luigi Laezza
Turning Your Startup Idea Into Reality: How the Right Tech Team Can Make All the Difference
By Luigi Laezza
How Startups Can Leverage Custom Software Solutions to Accelerate Growth
By Luigi Laezza