alareqi/filament-translatable-fields
A Filament form component for editing translatable model attributes across locales. It adds locale tabs and translation-aware fields so you can manage multilingual content directly in Filament resources, with simple setup for Laravel apps using translatable model fields.
spatie/laravel-translatable vs. per-locale tables. This is the real decision the package forces. Adopting it means your translatable content lives in JSON columns with locale keys. That is fine for editorial content at 2–5 locales; it becomes painful for per-locale full-text search, sorting, or reporting at scale. Decide this deliberately, not as a side effect of picking the form widget.Adopt when:
spatie/laravel-translatable.Look elsewhere when:
Maintenance / release signal (v2.0.15): The published notes for this release are a bare v2.0.13...v2.0.15 compare link with no changelog, and it skips a patch number. Treat it as patch-level with no evidenced breaking changes or deprecations, but do not assume — read the diff, pin the exact version in composer.json, and require a green CI run in a staging branch before merging. The absence of release notes is itself a due-diligence data point: confirm the package's support policy, Filament version coverage, and recent commit cadence before making it a load-bearing dependency.
For executives: This is a small, low-cost dependency that removes the engineering bottleneck from our localization roadmap. Instead of building and forever maintaining a custom multilingual admin form, our editors enter translated copy themselves in the panel they already use. Expected impact: market launches gated on content translation move from an engineering sprint to a content task measured in days. Risk is low and contained — it's a UI layer over a well-established Laravel translation library, not new infrastructure, and it can be swapped out without touching stored data.
For engineering: Thin, single-purpose wrapper over spatie/laravel-translatable that supplies locale-aware Filament form and table fields. Blast radius is the admin panel only; data lives in JSON columns and remains readable without the package. Two caveats: it couples us to Filament and Spatie major versions, so upgrades need a compatibility check; and the v2.0.15 release shipped without notes, so we pin the version, review the diff, and validate in staging rather than tracking ^2.0 blindly.
Recommended next step: Timebox a one-day spike — install pinned at v2.0.15, convert one real translatable resource, and confirm editor UX with the content team. Proceed or reject on that evidence, and decide the JSON-column vs. per-locale-table question in the same pass so it isn't inherited by default.
How can I help you explore Laravel packages today?