friendsofvictoire/localeswitcher-widget
A Blade widget for Laravel that renders a ready-made language switcher for your application, letting visitors change the active locale without extra markup or wiring. Drop the component into any view, configure the supported locales, and the package handles the selection UI and locale persistence.
hreflang emission, and analytics on language preference. A switcher widget alone delivers none of those — no hreflang, no translation workflow, no content fallback.Consider it only when all of the following hold:
/en/... prefixes, subdomains), hreflang, and content fallback are separate work you will build yourself.Look elsewhere — or build in-house — when:
hreflang automation, geo/IP detection, translation management, or fallback logic — none are provided.lang attributes. Own the markup.For executives: This is a small UI component from a niche, dormant CMS ecosystem with effectively zero adoption. The capability — letting a visitor pick a language — is trivial and cheap to build ourselves, and we'd control quality. Recommendation: do not adopt it as a dependency. Treat it as prior art, and spend the leadership attention on the real decision: whether we are investing in genuine multi-language content capability, because a switcher without translated content damages credibility more than it helps.
For engineering: It's a Symfony/Victoire bundle, not a Laravel package — on our stack it is inert, and Composer resolution will fail on symfony/* constraints. There are no maintainers, no dependents, and no security posture; adopting it makes us the fork owner for a feature worth about a day. Reproducing the behavior natively — a Blade component reading config('app.locales'), resolving the current route and parameters, preserving the query string, and emitting hreflang links — gives us control over routing model, analytics events, cache behavior, and accessibility. Sequence it as one sprint item, not a dependency evaluation.
Risk framing: The asymmetry is clearly against adoption. Minimal time saved versus permanent ownership of abandoned code that anchors the platform to an EOL Symfony generation and blocks PHP 8 and framework upgrades. Ship the native component and revisit only if a Victoire-based Symfony estate is confirmed as the real target — in which case scope the work honestly as "adopt an unmaintained bundle we now own," not "integrate a package."
How can I help you explore Laravel packages today?