webfactory/polyglot-bundle
Polyglot Bundle is a Symfony package for multilingual applications, streamlining internationalization with translation and locale-aware content support. It reduces boilerplate around managing languages so teams can ship consistent multi-language experiences faster.
TranslatedProperty / Locale attributes mark which properties are localized. That makes it a build-vs-buy input for any decision of the form "do we build per-locale columns, a JSON blob, or a translation table?" — the package is the buy option for the translation-table variant.TranslatedProperty and Locale attributes resolve from parent classes, not just the concrete entity. This directly unblocks content models that use mapped superclasses or inheritance hierarchies (e.g. a shared AbstractContent base with translated title/slug, subclassed per content type). If your roadmap includes consolidating duplicated translated fields across entity types, this patch is the enabling change — previously you'd have had to redeclare attributes on every subclass.astrotomic/laravel-translatable or spatie/laravel-translatable. Treat this assessment as guidance for any Symfony service (admin back office, content API, legacy app) that sits alongside a Laravel product.Adopt when all of the following hold:
$entity->getTitle() in the current locale without hand-rolled joins.Look elsewhere when:
To executives: This is a maintenance-level update to a library we'd use only if the relevant service is Symfony-based. It fixes localization metadata so it's inherited from parent classes, which lets us model shared translated fields (titles, slugs) once instead of duplicating them across every content type — less code, fewer places for locale bugs. There are no breaking changes and no deprecations, so the risk and cost of taking it are near zero; it's a routine patch bump, not a project.
To engineering: 4.5.4 (PR #93) extends attribute parsing so class-level TranslatedProperty and Locale are read from parent classes as well as the concrete entity. Backward compatible — no migration, no config change, no API change. Action: bump the constraint if you're pinned to 4.5.x, and if you maintain inheritance-based content entities, add a regression test asserting translated fields resolve correctly on a subclass. If the product in question is Laravel/Eloquent, this package is out of scope — flag it and route the i18n decision to an Eloquent-appropriate translatable library instead.
Bottom line for the roadmap: not a strategic dependency, not a risk item, and not a reason to change plans. Log the patch, note the inheritance capability as a mild accelerator for any content-model consolidation work, and revisit the build-vs-buy call only if the localization surface area grows beyond per-field translation.
How can I help you explore Laravel packages today?