aristonis/laravel-language-switcher
| Install | |
|---|---|
composer require aristonis/laravel-language-switcher |
|
| Latest Version: | 1.0 |
| License: | MIT |
| Last Updated: | Oct 1, 2025 |
| Links: | GitHub · Packagist |
Laravel Language Switcher
Auto-detects user language from browser/session and sets it for the Laravel application. Provides manual selection via a form component.
Features
- Automatic language detection (browser, session, custom detectors).
- Session-based persistence.
- User profile integration for authenticated users.
- Blade component for language switcher.
- Configurable supported languages and detectors.
Installation
-
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');
Configuration
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).
Usage
Middleware
Automatically sets app()->setLocale() on each request.
Language Switcher Component
In Blade views:
<x-laravel-language-switcher-switcher />
Detectors
- Browser: Detects from
Accept-Languageheader. - Custom:
- Extends:
LanguageDetectorInterface - add new class on config file with array
detectors
- Extends:
Manual Update
POST to /language-switch with locale field.
Publishing Views
php artisan vendor:publish --provider="Aristonis\LaravelLanguageSwitcher\LaravelLanguageSwitcherServiceProvider" --tag="views"
Changelog
Please see CHANGELOG for more information on what has changed recently.
Issues
Report issues at GitHub Issues.
Collaboration
Contributions welcome! Fork the repo, create a feature branch, and submit a pull request. See CONTRIBUTING for details.
Security Vulnerabilities
Email aristonis@outlook.com or report via Issues.
License
The MIT License (MIT). Please see License File for more information.
Support
For support, open an issue.
Related Packages
Laravel package that checks and creates WordPress password hashes
Laravel countries, states, cities, currencies, languages and IP geolocation