- What is bbs-lab/nova-translation used for?
- It is a Laravel Nova extension that adds a translation-editing interface inside your admin panel. Teams use it to edit and organize multilingual content, localization strings, and translated Eloquent resource values from a single Nova screen. In practice it is paired with a translatable-model package such as spatie/laravel-translatable or astrotomic/laravel-translatable. The goal is to keep content maintenance in one place instead of juggling separate translation workflows.
- How do I install bbs-lab/nova-translation in a Laravel app?
- Install it with Composer using composer require bbs-lab/nova-translation, then run php artisan optimize:clear to refresh cached config and manifests. Because it is a Nova package you need a licensed Laravel Nova installation in the same application before the tooling will appear. Check the repository README for any publish or config steps, since v5.4.1 release notes indicate no new migrations or published asset changes were required for that patch.
- Which Laravel and Nova versions does this package support?
- Support is constrained primarily by Laravel Nova rather than Laravel itself, so confirm the supported Nova major (4.x versus 5.x) against your own pinned version before adopting. Check the package's composer.json constraints for the exact Laravel and PHP ranges, since those move with each Nova major. Nova's release cadence is the real limiting factor, so validate before starting a Nova upgrade rather than after.
- Do I need spatie/laravel-translatable or astrotomic/laravel-translatable to use it?
- Yes, the package is designed to edit translations on models that already store their localized attributes through a translatable-model library, most commonly spatie/laravel-translatable or astrotomic/laravel-translatable. It provides the Nova UI layer; it does not replace the storage and accessor logic those packages provide. If your models keep translations in custom columns or a bespoke table, expect to adapt the integration rather than rely on defaults.
- How do I configure which models and locales appear in the translation UI?
- Configuration is handled through the package's published config and through the Nova resource layer, where you decide which translatable models are exposed. Locales generally follow Laravel's configured locale list plus the translation keys already present on your models. Because the tool edits real model data, test on staging first and confirm which fields are writable before granting editors access in production.
- What changed in version 5.4.1?
- v5.4.1 is a patch release that moves observer registration to a whenBooted callback instead of registering observers inline during the service provider's boot method. Deferring to a booted hook follows Laravel's lifecycle contract and removes a class of boot-order coupling with the host application. There are no configuration, schema, or API changes implied, so it is a drop-in patch requiring only a composer update and a cache clear.
- Should I pin to ^5.4.1 instead of ^5.4?
- Pinning to ^5.4.1 is the safer choice so that no environment installs 5.4.0, which predates the observer lifecycle fix. The change is small but behavioural, so standardising on a version that includes it avoids inconsistent observer behaviour between environments. Update composer.json, run composer update bbs-lab/nova-translation, then clear caches and verify translation CRUD in staging.
- Does the observer still register in queue workers and artisan commands after the v5.4.1 change?
- That is the key behavioural question for this patch: if whenBooted is the Nova-scoped callback, the observer may not register at all in queue workers, artisan commands, or test suites where Nova never boots. That is possibly the intent, since it stops admin-surface side effects leaking into non-Nova contexts, but it is a real delta rather than a no-op. Run your existing suite in console and queue contexts to confirm no observer-dependent tests regress.
- How should I test or roll out this package update safely?
- Treat it as a routine patch: deploy to staging, exercise the translation create, update, and delete paths through the Nova UI on at least one translatable model, then promote. If your application registers its own observers on the same models in AppServiceProvider::boot, explicitly verify the expected firing order now that this package's observers attach later. Running the full test suite in a non-Nova context is the quickest way to catch order-dependent regressions before release.
- What are the alternatives to bbs-lab/nova-translation?
- The most common alternatives are spatie/nova-translatable, which provides inline per-locale fields directly on Nova resources, and general Laravel translation managers that manage lang files outside Nova. This package differentiates itself by focusing on editing and organizing translations inside the Nova admin panel alongside translated resource values. If you only need per-field locale switching on a resource form rather than a dedicated translation workspace, spatie/nova-translatable may be a lighter fit; if you want one central editing surface for multilingual content, this package is the closer match.