Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Translation Bundle

Translation Bundle Laravel Package

lexik/translation-bundle

Symfony bundle to manage translations in a database: import from xliff/yml/php, edit via a web GUI, track missing domain translations, add new keys, and export back to files. Database loader overrides file-based translations.

View on GitHub
Deep Wiki
Context7

This Symfony bundle allow to import translation files content into the database and provide a GUI to edit translations.

Frequently asked questions about Translation Bundle
Can LexikTranslationBundle work with Laravel, or is it strictly for Symfony?
While designed for Symfony, the bundle’s core translation logic (database storage, CLI imports/exports) is framework-agnostic. You can adapt it for Laravel by replacing Symfony’s Doctrine with Eloquent, using Laravel’s Artisan for CLI commands, and wrapping Symfony services in Laravel facades. The GUI can be modernized with Blade/Livewire.
How do I import translations from JSON/YAML files into the database in Laravel?
First, install the bundle via Composer (adapting Symfony dependencies to Laravel equivalents). Use the `lexik:translation:import` CLI command (ported to Artisan) to load files like `resources/lang/en.json` into the database. Ensure your Laravel Translator facade is configured to prioritize the database loader over file-based fallbacks.
Does this bundle support Laravel’s built-in `trans()` helper or localization middleware?
No, the bundle overrides Symfony’s translator service, which doesn’t natively integrate with Laravel’s `trans()` helper or localization middleware. You’d need to create a custom facade or service to bridge the bundle’s DatabaseLoader with Laravel’s Translator, ensuring database translations take precedence over file-based ones.
What Laravel versions are compatible with LexikTranslationBundle?
The bundle itself targets Symfony 5/6, but Laravel compatibility depends on your porting effort. Laravel 8+ (with PHP 8.0+) is the best fit due to its improved dependency injection and Artisan compatibility. Test thoroughly, as Symfony’s HttpKernel or Twig components may need Laravel alternatives (e.g., Blade).
How do I handle missing translations or track incomplete domains in Laravel?
The bundle’s GUI provides an overview of untranslated keys per domain. To use it in Laravel, adapt the Symfony-based admin panel to Blade or Livewire. For CLI checks, use the `lexik:translation:check` command (ported to Artisan) to scan for missing translations across all loaded domains.
Will this bundle conflict with existing Laravel migrations or database schemas?
Yes, the bundle creates its own tables (e.g., `lexik_translation_message`). To avoid conflicts, either customize the schema via Laravel migrations or use a separate database. If using Eloquent, map the bundle’s Doctrine entities to Eloquent models to integrate with Laravel’s migration system seamlessly.
Is the bundle’s GUI (Bootstrap/jQuery) usable in Laravel, or should I rebuild it?
The GUI uses Bootstrap 3 and jQuery, which may feel outdated in modern Laravel apps. For better integration, replace the frontend with Laravel’s ecosystem: use Livewire for reactivity, Inertia.js for Vue/React, or Blade + Alpine.js. The backend logic (API routes for CRUD) can remain largely unchanged.
How do database translations interact with Laravel’s file-based translations (e.g., `en.json`)?
The bundle’s DatabaseLoader prioritizes database entries over file-based translations. If you need file-based fallbacks, configure Laravel’s Translator to merge both sources, with the bundle’s loader running last. Alternatively, disable file loading entirely and rely on the database for all translations.
Are there performance concerns with database-backed translations in Laravel?
Database lookups for translations add slight latency compared to file-based systems. Benchmark in your staging environment to compare response times. Optimize by caching frequent translations (e.g., with Laravel’s cache facade) or using a read replica for translation queries in high-traffic apps.
What alternatives exist for database-backed translations in Laravel?
Consider `spatie/laravel-translatable` for multi-language models or `mccool/laravel-translation-manager` for a simpler GUI. For Symfony-like features, evaluate porting this bundle or using `symfony/translation` components directly in Laravel. Native Laravel solutions like `trans()` with JSON files may suffice for smaller projects.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor