Skip to content

aristonis/laravel-language-switcher

Repository files navigation

Laravel Language Switcher

Total Downloads

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

  1. Install via Composer:

    composer require aristonis/laravel-language-switcher
    
  2. Publish config file:

    php artisan vendor:publish --provider="Aristonis\LaravelLanguageSwitcher\LaravelLanguageSwitcherServiceProvider" --tag="config"
    
  3. Register middleware

  4. 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-Language header.
  • Custom:
    • Extends: LanguageDetectorInterface
    • add new class on config file with array detectors

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.

About

auto detected user language and set it for application with manully option for user to slelect language

Resources

License

Stars

Watchers

Forks

Packages

No packages published