apility/filament-localizable-resources
A Filament plugin that makes resources localizable: translate resource labels, navigation, form and table fields per locale, and switch languages without duplicating resources. Integrates with spatie/laravel-translatable-style workflows to keep multilingual admin panels clean.
Build vs. buy for locale-aware admin tooling. This package collapses a recurring build item — "let editors manage translated content in the admin" — into a small MIT dependency. It extends Filament's resource layer so one resource handles every configured locale, which means you avoid either (a) duplicating a resource per language or (b) hand-rolling per-locale form logic. For a PM, that's a line-item you can delete from the roadmap and a chunk of engineering time you can redirect.
Roadmap input for internationalization. Multilingual support is usually sequenced as "launch English → add markets." This package makes the admin-side cost of each additional locale close to zero: add a locale to a config list, get form tabs, table columns, and resource pages for it. That changes the marginal-cost math for expanding into a new market, which is a roadmap conversation, not just a technical one.
Admin tooling scope and ownership. Translation edits stay inside the Filament panel your ops team already uses. That means no separate CMS seat licenses, no second login, no "who owns the translation tool" ambiguity. Content ops can own localized copy directly, and PMs stop filing per-string tickets.
Feature-level decisions it directly enables. Per-locale required/optional rules (e.g., "fallback locale mandatory, others best-effort") let you ship a multilingual product incrementally — launch with partial translations rather than blocking on 100% coverage. That's a launch-gating decision a PM usually has to make under pressure, and this package gives you a clean way to encode it.
Risk posture for release planning. v1.0.2 is a patch release with no advertised breaking changes or migrations, so it can slot into an existing panel without a coordinated migration window. Low ceremony to adopt, low ceremony to defer.
Constraints it surfaces early (useful for scoping). Sortable/searchable translatable columns and per-locale unique validation do NOT work out of the box against JSON translation columns. If your roadmap includes "search across translated titles" or "unique slugs per language," budget for that work explicitly — the package gets you the editing UI, not the query layer.
Consider it when:
spatie/laravel-translatable with a translations JSON column). This package is a UI layer, not a translation store — it assumes that foundation is in place.Look elsewhere when:
json_extract expressions, or a dedicated search index (Scout). Factor that work in before committing.Before putting it on a critical path, verify: maintainer responsiveness, issue activity, and that the package's composer.json Filament constraint matches your panel version. Pin Filament and this package together — Filament minor bumps are the realistic breaking-change vector, and the release notes here won't warn you.
Executives. This is a small, MIT-licensed dependency that lets non-engineers manage translated content directly inside the admin panel we already run. It lowers the cost of entering non-English markets and removes a recurring engineering chore — localized copy updates — from the backlog. The alternative is building and maintaining a bespoke translation console or paying for a separate localization platform; this is materially cheaper than either, and the latest release is a patch with no migration required, so it carries low adoption risk.
Engineering. It fits the existing Filament stack with a low integration surface: apply a trait to a resource, register your locale list in one place, and get per-locale form tabs, table columns, and resource pages without duplicating resources. It assumes spatie/laravel-translatable-style models, so confirm that layer first. Two known gaps to plan around: sortable/searchable translatable columns need explicit handling (generated columns, JSON expressions, or Scout), and unique validation must be scoped per locale in application code. Pin the package and Filament together, since Filament minor releases are the realistic breaking vector and upstream release notes are thin.
Product & Operations. Editors get one locale switcher that drives the whole panel — forms, tables, and detail views stay in sync — instead of a scatter of per-field language dropdowns. You can encode "fallback locale required, others optional," which means you can launch a market with partial translations rather than blocking on full coverage. The loop between spotting a locale gap and shipping the fix shrinks from a sprint ticket to an admin edit, and content ops own it without engineering involvement.
How can I help you explore Laravel packages today?