Language Switcher plugin screenshot
Dark mode ready
Multilingual support
No v5.x support

Language Switcher

Community

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

Tags: Developer Tool
Supported versions:
3.x
Fady Mondy avatar Author: Fady Mondy

Package health

Beta

Automated checks of this plugin's Composer package

71 / 100
Security 58
Maintenance 81
Ecosystem 100
15 checks
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
Powered by Plumb Last scanned 1 week ago

Documentation

Screenshot

Dependabot Updates PHP Code Styling Tests Latest Stable Version License Downloads

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

#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