- How do I install syriable/filament-translator in a Laravel app?
- Run composer require syriable/filament-translator, then register TranslatorPlugin in the plugin() method of each panel provider. The package requires PHP 8.3+, Laravel 11 through 13, and Filament 4 or 5. There is no mandatory publish step for basic usage, though publishing the config lets you tune required attributes and path aliases.
- Do I have to remove my existing ->label(__('...')) calls to use it?
- No. The package explicitly preserves Filament's native label as a fallback when a derived translation key is missing, so a partial rollout degrades gracefully instead of breaking the UI. For retrofits, migrate incrementally rather than stripping every explicit label in one pass. Keep explicit labels where copy is dynamic or shared across contexts.
- How does the package derive translation keys from class and component names?
- TranslatorPlugin::boot() registers configureUsing closures that derive a key from the owning class FQCN plus the component name, then look it up in lang/{locale}/. Keys are stable but nested and class-path coupled, for example livewire/auth/login.form.components.actions.forgot-password.label. Because of that coupling, renaming or moving a class renames its keys and requires moving lang entries too.
- Does it work on standalone Livewire pages outside a Filament panel?
- Panel boot coverage does not apply to standalone Livewire routes such as guest or auth pages, so those need a manual registerDefaults() call from a service provider. The README documents idempotent boot and double-registerDefaults() semantics, so calling it twice is safe. Forgetting the manual call creates a silent behavioural split between panel and non-panel pages.
- Which Laravel and Filament versions are supported?
- The package targets PHP 8.3+, Laravel 11 through 13, and Filament 4 and 5, which aligns with a modern stack. Architecturally it is a thin convention layer over Filament's label resolution, using the same extension points as first-party plugins. Before adopting, confirm whether CI tests the full supported minor range or only the latest Filament build.
- Is automatic key creation safe to run in production?
- createMissingTranslationKeys() is hard-gated to non-production and is meant for local development while you browse pages. It writes into source-controlled lang/ files, so expect noisy diffs and merge conflicts on teams if it runs during everyday work. Enable it locally, review the generated keys, and commit them deliberately.
- What is the performance impact, and does it work with Laravel Octane?
- registerDefaults() runs eagerly at boot while label resolution stays lazy per component, so cost scales with component count rather than page count. The README documents Octane behaviour and idempotent boot. Benchmark a large panel with hundreds of form and table components, plus repeated worker boots, before assuming the overhead is negligible.
- How do path aliases behave when two panels render the same class?
- pathAliases() maps namespaces outside Filament's defaults, for example App\Livewire to livewire, and alias resolution is intended to follow the active panel. The docs do not fully specify what happens when two panels use different aliases and render the same class. Verify determinism in that scenario before relying on it.
- Can I translate hint icons, tooltips, and other action metadata?
- Yes, hintIconTooltip is translated through the hint_icon_tooltip key, and actions, infolists, resources, pages, widgets, importers and exporters all get convention coverage. One caveat: a single-argument ->hintIcon($icon) only preserves the tooltip on Filament builds that guard with func_num_args(), so tooltip translation is version-sensitive and deliberately not pinned.
- How mature is this package, and what risks should I weigh?
- It is early-stage: zero dependents and a low adoption score mean you would be an early adopter with essentially no third-party production evidence. It is a single-maintainer package, and reserved APIs such as the InfolistScope enum signal expected churn as Filament 4 and 5 evolve. Ask about the CI compatibility matrix, the upgrade SLA for breaking Filament releases, and whether a semver or deprecation policy is documented.