chaim-chv / filament-browser-locale
Automatically set Filament locale from browser preferred language
Package info
github.com/chaim-chv/filament-browser-locale
pkg:composer/chaim-chv/filament-browser-locale
Requires
- php: ^8.2
- filament/filament: ^4.0|^5.0
- illuminate/support: ^11.28|^12.0|^13.0
Requires (Dev)
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Filament panel plugin that Automatically sets the Filament panel locale based on the browser's Accept-Language header ("preferred languages").
Requirements
- PHP 8.2+
- Laravel 11.28+ / 12 / 13
- Filament v4 or v5
Features
- Filament v4 and v5 compatible
- Normalizes
en-US→en(configurable) - Configurable supported locales
- No global middleware required
Installation
composer require chaim-chv/filament-browser-locale
Usage
To use the plugin, simply add it to your Filament panel's plugins array.
BrowserLocalePlugin::make()
To specify supported locales, use the supportedLocales method:
BrowserLocalePlugin::make() ->supportedLocales(['en', 'he'])
To disable language code normalization (e.g., to keep en-US as en-US instead of normalizing to en):
BrowserLocalePlugin::make() ->supportedLocales(['en-US', 'en-GB', 'he']) ->normalize(false)
Full filament panel example:
use ChaimChv\FilamentBrowserLocale\BrowserLocalePlugin; class ExamplePanel extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ->id('example') ->path('/example') ->plugins([ BrowserLocalePlugin::make() ->supportedLocales(['en', 'he']), ]); } }
You can also set the supported locales via global configuration (see below), in which case you can initialize the plugin without any options.
Testing
composer test
The test suite runs against both Filament v4 and v5 via the CI matrix.
Configuration
Publish the configuration file:
php artisan vendor:publish --tag=filament-browser-locale-config
Available options in config/filament-browser-locale.php:
supported_locales: Array of supported locale codes (default:[])normalize: Whether to normalize language codes likeen-UStoen(default:true)
@chaim-chv © 2026