tomatophp/filament-language-switcher

Switch between languages on your app using user base column on database
41,543 37
Install
composer require tomatophp/filament-language-switcher
Latest Version:5.0.0
PHP:^8.2
Laravel:11 · 12 · 13
License:MIT
Last Updated:Oct 15, 2026
Links: GitHub  ·  Packagist
Maintainer: fadymondy

Screenshot

Filament Language Switcher

Dependabot Updates PHP Code Styling Tests Latest Stable Version License Downloads

Switch between languages on your app using user base column on database

⭐ If this package saves you time, star it and browse 60+ more Filament plugins at tomatophp.com/en/plugins.

Version Compatibility

Plugin Filament Laravel PHP
1.x 3.x 10.x / 11.x 8.1+
4.x (4.x branch) 4.x 11.x / 12.x 8.2+
5.x 5.x 12.x / 13.x 8.2+

Screenshots

Switcher Light RTL Dropdown Light Dropdown Dark

Installation

composer require tomatophp/filament-language-switcher

after install your package please run this command

php artisan filament-language-switcher:install

finally register the plugin on /app/Providers/Filament/AdminPanelProvider.php

->plugin(\TomatoPHP\FilamentLanguageSwitcher\FilamentLanguageSwitcherPlugin::make())

now on your User.php model or any user model add this trait

use \TomatoPHP\FilamentLanguageSwitcher\Traits\InteractsWithLanguages;

now you must see the switcher and you can change language as you like

If your user table has a lang column it is used, otherwise the language is stored in the user_languages table. Users who never picked a language get app.locale.

Languages

The languages shown in the switcher come from the locals key of the config file. Each language needs a label and a flag (a country code from country-flags):

'locals' => [
    'en' => ['label' => 'English', 'flag' => 'gb'],
    'nl' => ['label' => 'Dutch', 'flag' => 'nl'],
],

The package names every default language in 18 languages; a language without a translated name shows its label. Set show_flags to false to hide the flags in the list.

Security

The switch route (/languages/switcher?lang=xx) only changes the language of the signed in user. Guests get a 403 and languages that are not in locals are rejected. The model and model_id parameters sent by older versions are ignored.

Publish Assets

you can publish config file by use this command

php artisan vendor:publish --tag="filament-language-switcher-config"

you can publish views file by use this command

php artisan vendor:publish --tag="filament-language-switcher-views"

you can publish languages file by use this command

php artisan vendor:publish --tag="filament-language-switcher-lang"

you can publish migrations file by use this command

php artisan vendor:publish --tag="filament-language-switcher-migrations"

Testing

if you like to run PEST testing just use this command

composer test

Code Style

if you like to fix the code style just use this command

composer format

PHPStan

if you like to check the code by PHPStan just use this command

composer analyse

Other Filament Packages

Checkout our Awesome TomatoPHP

More open source from the same author

  • TomatoPHP: 60+ open-source FilamentPHP plugins for Laravel
  • Laravilt: Laravel admin panels rendered with Inertia on Vue 3 or React 19
  • ToGO: the Laravel-style workflow for Go + React apps, with a plugin marketplace
  • Zekra: long-term memory for AI agents over MCP

Built by Fady Mondy.

Related Packages

tomatophp/filament-pwa

get a PWA feature on your FilamentPHP app with settings from panel

29,683 98
tomatophp/filament-pos

POS System for FilamentPHP with a lot of features and integration with Ecommerce...

1,517 71
tomatophp/filament-withdrawals

Manage your wallet withdrawals in FilamentPHP

2,335 7
juniyasyos/filament-pwa-kaido

get a PWA feature on your FilamentPHP app with settings from panel

1,850 0
tomatophp/filament-api

Generate APIs from your filament resource using single line of code

7,538 56

Version History

Version Released PHP License
5.0.0 ^8.2 MIT
4.0.1 ^8.2|^8.3|^8.4 MIT
4.0.0 ^8.2|^8.3|^8.4 MIT
v1.0.6 ^8.2|^8.3|^8.4 MIT
v1.0.5 ^8.2|^8.3|^8.4 MIT