- How do I install highsolutions/laravel-translation-manager?
- Install it with composer require highsolutions/laravel-translation-manager; Laravel auto-discovery registers the service provider. Publish the config and views with vendor:publish, and run the optional migration only if you choose the database driver. Then lock down the UI routes with middleware or a gate before exposing them outside local or admin-only environments.
- Which Laravel and PHP versions does laravel-translation-manager support?
- The package is a standard Laravel service-provider package, but you should confirm the supported Laravel and PHP matrix in its composer.json and CI before committing. Laravel translation conventions have shifted around the lang path, JSON strings, and pluralization, so test against your exact framework version. Treat the release cadence and CI coverage as part of your evaluation.
- What is the difference between the file driver and the database driver?
- With the file driver, your lang/ directory remains the canonical translation store and the package simply adds a web GUI editor on top. With the database driver, the package replaces or wraps Laravel's translation loader, which moves the source of truth into the database and changes your deploy and rollback story. Choose the file driver if copy ships through git and CI; choose the database driver only if you are prepared for a global translator behavior change.
- How do I secure the translation manager routes in production?
- An admin UI that can rewrite user-facing strings is a high-value target, so do not assume the default route protection is enough. Put the routes behind authentication and authorization middleware or a gate, ideally in an admin-only route group or a non-production environment. Verify the CSRF and middleware posture explicitly, and restrict who can edit copy as a procedural control as well as a technical one.
- Will laravel-translation-manager conflict with spatie/laravel-translation-loader?
- The file driver is a clean side-car and should not conflict because it edits lang files rather than replacing the translator. The database driver is the risk: any DB-backed driver must replace or wrap Laravel's translation loader, which is a global behavior change and the most likely source of conflict with other translator-override packages such as spatie/laravel-translation-loader. Test both together in a spike branch before standardizing.
- Does it handle JSON translations, nested keys, vendor namespaces, and pluralization?
- These are the right questions to validate before committing, because lossy round-trips are the main risk for any file-editing translation tool. Run the scan and import against a realistic locale set that includes vendor strings, nested keys, JSON strings, and plural forms. Confirm that browsing and saving a locale does not mangle or reorder content, and raise any gaps with the maintainer.
- How do I add missing translation keys with this package?
- The web interface lets you browse language files, add missing keys, and keep locale files organized without touching PHP arrays by hand. The intended workflow is to scan or import your existing lang/ tree, identify missing keys per locale, and edit them in the UI. After edits, review the resulting files or database rows and commit or deploy them through your normal process.
- Can I use it with php artisan config:cache and route:cache?
- Cached config and cached views are exactly where translator overrides and publishable views can behave unexpectedly, especially with the database driver. Test the full flow with config:cache, route:cache, and optimize enabled in a staging environment. Because the database driver changes how translations are loaded globally, do not assume cache behavior is identical to the file driver.
- What are the risks and alternatives to using this package in production?
- The dominant risk is bus factor and adoption, not code quality: around 15 stars and a small maintainer pool mean you should treat it as worth evaluating rather than safe to adopt unexamined. Plan for vendoring or forking and agree on an ownership and deprecation path. If your team already standardizes on a TMS such as Crowdin, Lokalise, or Phrase with a sync pipeline, this package would duplicate that workflow rather than complement it. Also check for conflicts with translator-override packages if you choose the database driver.
- How does it handle file permissions and git merge conflicts when editing lang files?
- With the file driver, the package writes into your application's lang/ tree, so the web server needs filesystem permissions in every environment where editing is enabled. Those writes can drift from developer-authored copy in git and create merge conflicts when both sides change the same files. Decide whether edits flow back through commits or through the database, and confirm whether file writes are atomic and lock-safe before relying on them.