aristonis/laravel-language-switcher

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

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:laravel-package

pkg:composer/aristonis/laravel-language-switcher

1.0 2025-10-01 18:19 UTC

This package is auto-updated.

Last update: 2025-10-01 18:33:25 UTC


README

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.