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
- illuminate/support: ^12.0
README
Filament panel plugin that Automatically sets the Filament panel locale based on the browser's Accept-Language header ("preferred languages").
Features
- Laravel 12 compatible
- Filament v3+ 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.
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