phpro/sulu-translations-bundle
PHPro Sulu Translations Bundle adds a translations management interface to the Sulu CMS admin, letting editors view and edit Symfony translation messages per locale without touching files. It integrates with Sulu's admin UI and security, streamlining multilingual workflows.
composer require phpro/sulu-translations-bundle. As of 1.2.0 the floor is PHP 8.4 — verify php -v on your machine, your Docker image, and every CI matrix entry before you start, because composer install will simply refuse on 8.3.composer.json extra.laravel.providers entry, no auto-discovery, no publishable config. If you are in a genuine Laravel app you have already hit the wrong repo — the only realistic consumer is a Sulu/Symfony application.config/bundles.php:
Phpro\SuluTranslationsBundle\SuluTranslationsBundle::class => ['all' => true],
then let Sulu's admin build pick it up. Nothing else is needed for a first smoke test.DependencyInjection/Configuration.php for the config tree, Resources/config/ for service wiring, and bin/console debug:container --tag=sulu.admin to confirm your services landed. Check the Sulu admin UI afterwards to see whether the translation screens you expect actually appear.services.yaml bind:. There is no Translations:: facade equivalent.config/packages/. Add a sulu_translations: (or bundle-prefixed) YAML block matching the keys in the bundle's Configuration.php. Do not look for a config/translations.php artisan-published file — it does not exist.bin/console app:translations:sync) that pulls from the bundle's service and writes to your canonical source (XLIFF, JSON, or a DB table). Keeping the bundle on one side of that boundary means the 8.4 bump (and whatever comes next) stays contained.App\Translations\LoggingTranslator:
decorates: phpro_sulu_translations.some_service_id
This survives minor-version upgrades, unlike editing vendor code."php": "~8.4.0" (or similar) means the upgrade is all-or-nothing. Budget a platform bump first; if your host or a dependent package pins below 8.4 you are stuck on 1.1.0. There is no compatibility shim.azjezz/psl → php-standard-library is mostly transparent, but check for duplicates. The fork retains the Psl\ namespace, so the bundle's internal code needs no rewrite. However, composer why azjezz/psl and composer show | grep -i psl before and after upgrading: if another dependency still pulls the original, you can end up with both packages installed and conflicting function/class definitions at autoload time. Symptoms are "cannot redeclare" or "class not found" errors that look unrelated.Psl\* in your own code if you consume the bundle's values (e.g. a collection returned from a service). That interface is the one that just moved vendors; stay on plain arrays/iterables at the boundary.composer dump-autoload. Most "class not found" reports after this release are stale var/cache rather than real bugs.bin/console debug:container --show-private | grep -i translation to find the real implementation behind an alias, and enable the Symfony profiler's translation panel to see which domain/locale is actually resolving.php artisan vendor:publish, facades, app() resolution, and Eloquent-backed translations are all absent. If your team is Laravel-first, factor in the Sulu/Symfony learning curve — that, not the 8.4 bump, is the real adoption cost.composer update phpro/sulu-translations-bundle → composer dump-autoload → clear cache → run Sulu admin smoke test. Run this on a branch before touching production; the platform bump is the risky part, not the bundle code.How can I help you explore Laravel packages today?