Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Translatable

Filament Translatable Laravel Package

webard/filament-translatable

Filament Translatable provides an intuitive tabbed interface for managing multilingual content in Filament admin panels. It supports spatie/laravel-translatable and other backends, letting you build translatable form fields across multiple locales with minimal setup.

View on GitHub
Deep Wiki
Context7

Filament Translatable brings a complete multilingual content workflow to Filament admin panels. It converts translatable fields into a clean tabbed interface—one tab per locale—so editors can manage every translation in place, without duplicating forms or leaving the page.

  • Tabbed locale editing for any translatable field
  • Pluggable backends: spatie/laravel-translatable and happenv/laravel-translatable
  • Locale-aware labels, placeholders, and validation rules
  • Compatible with Filament 3.x, 4.x, and 5.x
Frequently asked questions about Filament Translatable
How do I install Filament Translatable in a Laravel application?
Pull it in with Composer using the package name shown on Packagist, then optionally register the plugin in your Filament panel provider. Registration is no longer mandatory in 5.x: you can instantiate the Translations field directly and skip the plugin entirely. Note that the repository and Composer names differ (webard versus happenv-com), so confirm the exact package string before requiring it.
Which Filament versions does Filament Translatable support?
The README badges advertise Filament 3.x, 4.x and 5.x, and CI runs its test suite against Filament 4 and 5. The 5.x release notes do not explicitly state whether Filament 3 has been dropped, so check composer.json before assuming a single package major covers all three. The likely mapping is package 2.x for Filament 3 and package 5.x for Filament 4 and 5.
Does it work with spatie/laravel-translatable?
Yes. Spatie is one of the supported backends, implemented as an in-tree translation driver. You keep the familiar Spatie model setup, and the package only supplies the tabbed Filament form fields on top of it.
Can I use Filament Translatable with Astrotomic translatable models?
Yes, an Astrotomic driver ships with version 5.x. The old Astrotomic wrapper trait is deprecated, which means no model-level trait swap and no migration work for existing Astrotomic projects. The deprecation window and removal major are not stated in the docs, so confirm whether the shim still changes behaviour before relying on it long term.
Can I store translations in a JSON column without a translation package?
Yes. Alongside Spatie and Astrotomic, the package supports native JSON columns, so you can manage multilingual content without adding a dedicated translation dependency. This is the lightest option if your models already keep locale-keyed arrays in a JSON attribute and you only need an editing UI.
Do I need to register the Filament plugin?
No. Plugin registration is optional; teams can instantiate the translatable field directly and skip it. The plugin becomes useful when you want estate-wide defaults, but be aware that four layers can set the same value: package defaults, the current panel plugin, configureUsing() and the field instance. Precedence alone decides the outcome, so document which layer your project relies on.
How do I add a translatable field to a Filament form?
Use the translatable field macro inside your resource schema, one tab per configured locale. Field modifiers must come before translatable() in the chain, so apply things like required or maxLength first. The fluent-context switch and macro ordering are the most common developer-experience traps, and the macro now stores state in field meta rather than dynamic properties.
Does it support RTL languages and custom locale configuration?
Yes. Locales are configurable, including which languages appear and how they are labelled, and RTL locales are handled in the tabbed interface. Automatic fallbacks are applied when a translation is missing for the active locale. Check that your locale list matches the keys stored by your chosen backend.
Can I write a custom translation driver for my own backend?
Version 5.x introduces a TranslationDriver abstraction with Spatie and Astrotomic implementations shipped in-tree, so a custom backend is structurally possible without forking. However, it is not clearly documented as a stable public extension point with a guaranteed contract. If you build a driver, treat it as your own code and expect to maintain it across package majors.
What changes when upgrading from 4.x to 5.x, and is the package tested?
Read UPGRADING.md rather than the release notes, because the changelog is dominated by JS build-tooling dependency bumps and is a poor risk signal. Implicated changes include tab key format, action registration, plugin-optional configuration resolution and the deprecated Astrotomic trait. On the positive side, 5.x ships a rebuilt end-to-end test suite covering both drivers and resource pages, plus PHPStan, Rector and CI on Filament 4 and 5; a 5.0.1 patch landed the same day as 5.0.0, so check that diff before adopting.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin