filamerce/filament-translatable
Filament Translatable brings multilingual editing to Filament resources, letting you manage translated fields across locales with locale switchers, per-language inputs, and smooth integration with translatable models. Simplify multilingual admin panels and keep translations organized.
composer require filamerce/filament-translatable. The package is a Filament panel plugin that adds locale switching on top of spatie/laravel-translatable-style models.composer require, confirm your Filament major version. On Filament v3/v4, pin to a pre-3.2 tag; on Filament v5, you need 3.2.0+.app/Providers/Filament/*PanelProvider.php, inside the panel() closure (->plugin(...)). A language switcher (usually in the topbar/user menu) and per-locale field switching are the first things to verify after php artisan filament:optimize-clear.Post model whose title/body are stored as JSON with a Translatable trait. Open the edit page, switch locale in the topbar, and confirm the form fields swap to that locale's values rather than overwriting the current locale.locales/fallback_locale, and your model's $translatable array — the three must agree on locale keys.spatie/laravel-translatable on the model and JSON columns in the migration. The switcher is only useful if the fields underneath are actually translatable; otherwise switching does nothing visible.app()->getLocale() vs. the panel's selected locale) so custom actions read/write the same translation the user is editing.en while viewing fr" bug. Livewire + Filament tests are the fastest way to regress-check a Filament major bump.app()->getLocale(). The panel's selected locale and the application locale can diverge; code that writes app()->getLocale() in an action can silently hit the wrong JSON key. Prefer whatever the package exposes for the active locale, or set them consistently.php artisan filament:optimize-clear (and view:clear/config:clear if you publish config). Stale component caches are the usual cause of "the switcher disappeared after upgrading."composer.json (e.g. ^3.2) and note the Filament constraint in your README/AGENTS docs — this package's version tracks Filament's major, so future readers need that coupling spelled out.How can I help you explore Laravel packages today?