aristonis/laravel-language-switcher
Auto-detect and switch your Laravel app locale using browser headers, session, or custom detectors. Includes middleware for per-request locale setting, session persistence, optional user profile integration, and a Blade component plus controller route for manual language selection.
Auto-detects user language from browser/session and sets it for the Laravel application. Provides manual selection via a form component.
Install via Composer:
composer require aristonis/laravel-language-switcher
Publish config file:
php artisan vendor:publish --provider="Aristonis\LaravelLanguageSwitcher\LaravelLanguageSwitcherServiceProvider" --tag="config"
Register middleware
Add route in routes/web.php:
Route::post('/language-switch', [\Aristonis\LaravelLanguageSwitcher\Http\Controllers\LanguageSwitchController::class, 'update'])->name('language-switch.update');
In config/language-switcher.php:
supported_languages: Array of supported locales (e.g., ['en' => 'English', 'ar' => 'Arabic']).detectors: Enabled detectors (e.g., ['browser']).session_key: Session key for locale (default: __lang).Automatically sets app()->setLocale() on each request.
In Blade views:
<x-laravel-language-switcher-switcher />
Accept-Language header.LanguageDetectorInterfacedetectorsPOST to /language-switch with locale field.
php artisan vendor:publish --provider="Aristonis\LaravelLanguageSwitcher\LaravelLanguageSwitcherServiceProvider" --tag="views"
Please see CHANGELOG for more information on what has changed recently.
Report issues at GitHub Issues.
Contributions welcome! Fork the repo, create a feature branch, and submit a pull request. See CONTRIBUTING for details.
Email aristonis@outlook.com or report via Issues.
The MIT License (MIT). Please see License File for more information.
For support, open an issue.
How can I help you explore Laravel packages today?