runroom-packages/translation-bundle
Runroom TranslationBundle adds database-backed, per-locale translations to Symfony entities, so you can manage multilingual content in the admin with locale fallbacks and avoid duplicating records.
Architecture fit. The first thing a TPM must flag is a category mismatch in the brief: this is a Symfony bundle, not a Laravel package. It extends Sonata Admin (Symfony's admin generator) and exposes a translation-editing UI backed by the Sonata translation stack. If the target stack is Laravel, this package is a non-starter without a full port — there is no Laravel controller, service provider, or Eloquent integration to hang it on. If the target stack is Symfony + Sonata Admin, the architecture is a reasonable fit: a single-purpose admin extension with a narrow, well-understood responsibility (CRUD over translation messages).
Integration feasibility. Low. The repository is marked [READ-ONLY] — it is archived and receives no upstream changes. With 1 star and 0 dependents, there is essentially no community usage to validate it, no issue traffic to mine for known problems, and no realistic chance of upstream fixes. Integration therefore becomes a vendoring/forking exercise, not a dependency addition. The integration surface depends entirely on Sonata Admin's internal APIs, which have historically churned across major versions; the bundle is almost certainly pinned to an older Symfony/Sonata generation.
Technical risk. High and concentrated in three areas:
Assessment against score. A 0.005 package score and 21.33 opportunity score describe a package that is technically functional but commercially dead. Treat it as a reference implementation to read, not a dependency to adopt.
Key questions for the requester:
Stack fit. Confirm the framework first. On Laravel: reject — no port path exists without rebuilding the Sonata translation UI from scratch, at which point you are not integrating this package at all. On Symfony + Sonata Admin: viable only as a vendored fork pinned to a known-good Sonata major version.
Migration path. Do not add this as a Composer dependency in the conventional sense. Recommended sequence:
composer.json to the exact Symfony/Sonata/PHP versions validated in a spike, and document the pin as a deliberate constraint.For most teams, option (b) is the lower-risk path: the functional scope is narrow enough that a native admin class is cheaper to own than a cold fork with no upstream.
Compatibility. Not determinable from metadata alone; the archived state means compatibility is effectively frozen at the versions the bundle was last built against. The integration spike must explicitly test against your current Symfony LTS, Sonata Admin major, and PHP 8.x runtime. Assume anything newer than the bundle's last release is untested and likely broken; budget a day for the spike to confirm.
Sequencing.
Maintenance. The dominant operational cost. An archived package with zero dependents means you are the maintainer from day one. Budget for: security review of vendored code, per-Symfony-upgrade compatibility work, and reactive fixes when Sonata internals shift. This is a recurring line item, not a one-off integration cost.
Support. None. No maintainer, no issue triage, no release cadence, no upstream documentation beyond the repo. Support escalates to internal ownership by default. Make this explicit to whoever signs off — the "we can just use it" framing is wrong here.
Scaling. Functional scaling for a translation admin UI is modest — the workload is editor read/write against the translation table, not high-throughput API traffic. The scaling concern is not runtime throughput but editorial throughput: does the Sonata UI scale to your catalogue size and editorial workflow? If you have thousands of messages across locales, the Sonata datagrid may become the bottleneck; validate with a realistic catalogue before committing.
Failure modes.
Ramp-up. For an engineer already fluent in Sonata Admin, the bundle is small enough to read in an afternoon and fork within a day. For a Laravel-only team, ramp-up is effectively "learn Symfony + Sonata Admin first" — weeks, not days — which is almost certainly not justified by a narrow translation CRUD feature. For a Symfony team without Sonata, ramp-up is Sonata admin-configuration fluency, still non-trivial.
Recommendation. Treat as a read-only reference, not a dependency. Given the archived state, single star, zero dependents, and — critically — the framework mismatch in the brief, the default recommendation is do not adopt. If the stack is confirmed Symfony + Sonata Admin, prefer either a maintained translation-management bundle or a small native admin implementation over a cold fork of this package. If the stack is Laravel, close the evaluation.
How can I help you explore Laravel packages today?