jobmetric/laravel-translation
jobmetric/laravel-translation is a Laravel package for managing multilingual translations, helping developers organize, maintain, and serve language strings in Laravel applications with a straightforward localization workflow.
TranslationTypeObjectRequest, MultiTranslationArrayRequest), and field-level validation (TranslationFieldExistRule). PM decisions on "which locales at launch," "translated CMS content vs. static UI strings," and "user-generated content in N languages" can be scoped against this rather than estimated as greenfield work.panelify/translation namespace, new Translation model, factory, and migrations included. That means the "build" cost for translation persistence, validation, and model traits is already paid; the remaining product cost is admin UI and editorial workflow, not backend plumbing.panelify/translation and the new design for request objects signals this is intended as shared infrastructure across panels/apps. Supports decisions about consolidating translation handling in one place vs. per-app implementations.TranslationForgetEvent and the model/factory additions enable cache invalidation and testable seeding — the groundwork for a translation management screen, import/export, and QA of missing strings. Roadmap items like "edit translations without a deploy" become viable.TranslationContract, renamed/changed request classes, migration changes). This feeds directly into decisions about when to absorb the upgrade, whether to freeze the old version during a launch window, and how much engineering time to reserve.Adopt when:
lang/ files.TranslationArrayRequest, MultiTranslationTypeObjectRequest) slot into that pattern and reduce custom validation code.Look elsewhere or build custom when:
lang files plus a translation service are simpler and avoid a schema dependency.class_uses_recursive swapped back and forth to is_subclass_of), which suggests the trait-detection behavior is still settling.For executives: The translation package has reached 3.0.0, which consolidates multilingual content support into a single shared component for our Laravel applications. The practical effect is that we no longer need to build translation storage, validation, and model-level language handling from scratch for each product — that work is now reusable infrastructure. The cost of the upgrade is a one-time engineering effort, not a recurring one, and it unblocks localization features on the roadmap that would otherwise require new headcount or a third-party contract.
For engineering: Plan a dedicated upgrade task, not a background dependency bump. 3.0.0 is breaking: TranslationContract is removed, the request objects (TranslationTypeObjectRequest, TranslationArrayRequest, and the Multi* variants) have new designs, the model trait now uses class_uses_recursive for detection, and the migrations have changed — including added indexes. Treat this as a scoped migration with a test pass, and validate the new migrations against production data volume before rollout, since index changes on translation tables can be slow. The upside is meaningful: factories, a full test suite for requests, rules, and traits, an event for cache invalidation, and a cleaner package boundary under panelify/translation that makes this maintainable long-term. Recommend we pin the current version until the migration branch is green, then adopt across panels in a single coordinated window to avoid mixed-version translation behavior.
How can I help you explore Laravel packages today?