object.bg/translationbundle
Symfony bundle for managing translations with a database-backed storage and an admin interface, so locale strings can be edited at runtime instead of only in files.
object.bg/translationbundle, "Plug'n'play" bundle conventions). It does not target Laravel's service container, lang/ file conventions, or __() helper. Any roadmap item that assumes drop-in Laravel compatibility should be closed now.lang/ files, spatie/laravel-translation-loader, or a TMS like Lokalise/Phrase/Crowdin).Essentially only in one narrow case:
Look elsewhere — or build — when:
lang/*.php + __() for static copy; add spatie/laravel-translation-loader if you genuinely need DB-editable labels with a clean Laravel-native API and active maintenance; add a TMS integration if translation is a business-critical, multi-market function.lang/ files, and a small admin screen. That is cheaper to own than a fork of an abandoned bundle.To executives (one paragraph): We evaluated object.bg/translationbundle for localization and recommend against adoption. It is a Symfony bundle rather than a Laravel package, so it does not integrate with our stack; it has one GitHub star, zero dependent projects, and no release since March 2021, meaning we would become its maintainers. The capability it promises — letting non-engineers edit product copy without a deploy — is worth having, but we can get it from Laravel's built-in localization plus an actively maintained package, or from a translation management service, at a fraction of the long-term risk. Recommendation: do not adopt; fund a small, owned i18n implementation instead.
To engineering (short version): Stale Symfony bundle, wrong ecosystem, no dependents, no release in four years. Do not add it as a dependency. If we want DB-editable labels, we'll build a thin table + cache + fallback resolver on top of Laravel's lang/ files (~1–2 days), or pull in spatie/laravel-translation-loader if we'd rather not own it. Either way we keep a clean path to a TMS when localization becomes a real growth channel.
To the requesting team (the "yes, but"): The underlying need is valid and we're not dismissing it — we're declining this specific vendor. Here is what we'll do instead, and here is the trigger that reopens the buy decision: more than two locales in active maintenance, or more than ~1,000 translatable strings with non-engineering editors. At that point the TMS conversation is justified on its own merits, not on the back of an abandoned bundle.
How can I help you explore Laravel packages today?