tomatophp / filament-language-switcher
Switch between languages on your app using user base column on database
Package info
github.com/tomatophp/filament-language-switcher
pkg:composer/tomatophp/filament-language-switcher
Fund package maintenance!
Requires
- php: ^8.2
- filament/filament: ^5.0
- livewire/livewire: ^4.0
- tomatophp/console-helpers: ^1.1
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.24
- nunomaduro/collision: ^8.6
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^4.0|^5.0
- pestphp/pest-plugin-arch: ^4.0|^5.0
- pestphp/pest-plugin-laravel: ^4.0|^5.0
- pestphp/pest-plugin-livewire: ^4.0|^5.0
- pestphp/pest-plugin-type-coverage: ^4.0|^5.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Filament Language Switcher
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
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




