craft-forge/filament-language-switcher

Zero-config language switcher for Filament admin panels. Automatically scans available translations, renders dropdown with country flags, persists selection via sessions.

1.0.0 2025-09-13 14:19 UTC

This package is auto-updated.

Last update: 2025-09-13 14:35:38 UTC


README

A simple and elegant language switcher plugin for Filament admin panels. Automatically detects available Filament translations or allows custom language configuration with optional flag icons.

Language Switcher Demo

Language Switcher In Dark Mode

Installation

Plugin Version Filament Version PHP Version
1.x 3.x, 4.x > 8.1

Install the package via Composer:

composer require craft-forge/filament-language-switcher

Usage

Register the plugin in your Filament panel configuration: (e.g. AdminPanelProvider).

use CraftForge\FilamentLanguageSwitcher\FilamentLanguageSwitcherPlugin;
use Filament\Panel;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugins([
            FilamentLanguageSwitcherPlugin::make(),
        ]);
}

The plugin will automatically detect available Filament language files and display them in a dropdown menu.

Configuration

Custom Languages

Define your own language list instead of auto-detection:

FilamentLanguageSwitcherPlugin::make()
    ->locales([
        ['code' => 'en', 'name' => 'English', 'flag' => 'gb'],
        ['code' => 'uk', 'name' => 'Українська', 'flag' => 'ua'],
        ['code' => 'de', 'name' => 'Deutsch', 'flag' => 'de'],
    ])

For flag codes, please refer to https://flagicons.lipis.dev (e.g., pl for Poland).

Language Switcher Custom Languages

Hide Flags

Display only language codes and names without flag icons:

FilamentLanguageSwitcherPlugin::make()
    ->showFlags(false)

Language Switcher with text-only display

Custom Render Hook

Change where the language switcher appears in your panel:

use Filament\View\PanelsRenderHook;

FilamentLanguageSwitcherPlugin::make()
    ->renderHook(PanelsRenderHook::USER_MENU_PROFILE_AFTER)

Available render hooks: https://filamentphp.com/docs/4.x/advanced/render-hooks#panel-builder-render-hooks

Language Switcher Render Hook

License

The MIT License (MIT). Please see License File for more information.