trekels/translation-bundle
A Symfony bundle for managing application translations, letting you store and edit translation strings from a web interface instead of flat files. Useful for multi-language projects that need runtime editing.
Architecture fit — none. This is a Symfony 2 bundle, not a Laravel package. It ships a Symfony Bundle class, DI extension, Doctrine ORM entities, Twig templates, and routing/controllers wired through Symfony's HttpKernel. Laravel uses service providers, Eloquent, Blade, and a different container/routing model. There is no drop-in path: no service provider, no facade, no publishable config. A bundle cannot be composer require'd into a Laravel app and used.
Integration feasibility — low to zero without a rewrite. Two options exist and both are poor:
Composer-level incompatibility is a hard blocker: the bundle pins symfony/* to 2.x/3.x-era constraints and PHP 5.5–7.x, conflicting with Laravel 9/10/11 (symfony/* ^6/^7, PHP 8.1+). Doctrine DBAL versions also clash with Laravel's DB layer.
Technical risk — high.
Trekels, 0 stars, 0 dependents) of lexik/LexikTranslationBundle. There is no downstream validation and no community to absorb bugs.Key questions for the requester:
Recommendation: reject for a Laravel stack. This package does not fit our architecture and cannot be made to fit economically.
Stack fit — poor. Our runtime is Laravel on PHP 8.x with Eloquent, Blade/Livewire, Redis, and queues. A Symfony 2 bundle maps to none of that. The functional equivalent we actually need is small: a translations table, a custom TranslationLoader registered with Laravel's translator, a cache layer, and an admin CRUD screen.
Migration path — do not adopt; replace. Evaluate in this order:
spatie/laravel-translation-loader — DB-backed translations, maintained, minimal surface. Covers storage + loader; bring your own admin UI.translations table keyed by (locale, group, key), a FileLoader fallback for shipped keys, and a Redis-tagged cache. ~1–2 weeks.If a Symfony app genuinely exists in the estate, use the upstream lexik/LexikTranslationBundle on a maintained Symfony LTS — not this fork.
Compatibility. Composer require would pull Symfony 2.x/3.x component constraints, conflicting with Laravel's Symfony 6/7 dependencies; PHP 8.1+ triggers deprecations; Doctrine DBAL versions collide with Laravel's DB layer; Twig adds a second templating runtime alongside Blade. None of these are worth resolving.
Sequencing (for the replacement):
lang/** files into the table; establish source of truth (DB authoritative, files for shipped defaults).Estimated 2–4 weeks for a Laravel-native equivalent with a basic admin UI. The "port the bundle" route is 6+ weeks plus permanent maintenance.
Maintenance — we would own abandoned code. No upstream fixes, no PHP 8.3/8.4 support, no Symfony 7 path. Every PHP or dependency bump becomes a manual patch exercise. The fork has 0 stars and 0 dependents, so bug reports go nowhere. Long-term TCO is materially worse than a maintained 200-line Laravel package.
Support — effectively none. No vendor, no community around this fork, no documented security disclosure process. Internal knowledge would concentrate in whichever engineer performs the port. The upstream Lexik project has more history but is itself stale.
Scaling — workable only with caching. DB-backed translation lookups on every request multiply query load; must be fronted by a request-level array cache and a shared Redis cache, warmed on deploy. The table grows as keys × locales; admin writes must invalidate cache across all nodes or users see stale copy. GUI writes during traffic peaks need debouncing and cache-stampede protection. Not a scaling blocker in itself, but it converts translations into an operational dependency that a file-based approach does not have.
Failure modes:
lang/ files and the DB — which wins on conflict, and who reconciles imports?Ramp-up — high for the value delivered. The team is Laravel-fluent; Symfony 2 conventions (services YAML, DI compiler passes, Twig extensions, Doctrine unit-of-work) add meaningful cognitive load with almost no reuse. A ported half-Symfony hybrid is worse for onboarding than either a clean Laravel implementation or a clean Symfony app. Budget 1–2 weeks of senior-engineer ramp before any code is written, and note that this cost recurs on every future maintainer.
TPM call: reject adoption. Fund a Laravel-native DB translation loader plus a lightweight admin UI (or a SaaS TMS if translator workflow is the driver). Revisit Symfony only if the organization standardizes on Symfony LTS — and then use the upstream bundle, not this fork.
How can I help you explore Laravel packages today?