Weave 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

Localeswitcher Widget Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — none for a Laravel product. The package is FriendsOfVictoire/WidgetLocaleswitcherBundle, a Symfony bundle targeting Victoire DCMS, not a Laravel package despite the routing label. It has no service provider, config publish, Blade views, or facade. In a Laravel application Composer may autoload classes, but nothing invokes them. The TPM takeaway is that this is a framework-ownership decision disguised as a UI component decision.

Integration feasibility — low and asymmetric. The bundle's only value is registering a widget type into Victoire's page-builder registry, which requires a Symfony kernel, DI compiler passes, and Victoire's Doctrine-backed widget entity model. Constraints we would inherit:

Dependency Implied constraint TPM consequence
victoire/core-bundle Symfony 2.7–3.x era Composer conflict with Laravel 9+ (symfony/* ^6)
victoire/widget-bundle Same generation Requires Symfony kernel + DI container
symfony/framework-bundle ~2.7 / ~3.0 EOL; no security backports, ever

The fallback — running a separate Symfony 3.4 app behind a subdomain or iframe to host a language dropdown — is not a plan a TPM should sign.

Technical risk — high. Zero stars, zero dependents, zero score: no downstream validation, no issue traffic, no evidence of production use. Upstream Victoire is dormant. The bundle will not run on PHP 8.x or Symfony 6/7 without patching, and its transitive surface (Doctrine, Symfony components, Twig) is large and stale — a security exposure we would own outright with no upstream to notify us.

Key questions before any commitment:

  1. Is the actual target a Laravel application or an existing Victoire/Symfony estate? These are mutually exclusive; the package only makes sense for the latter.
  2. If Victoire: which PHP/Symfony versions are pinned, and is anyone still issuing security patches for that stack?
  3. Does the product need editor-placeable placement (true widget semantics), or just a switcher in header/footer?
  4. What is the required localization routing model — URL prefix, subdomain, query param, cookie/session? Does this widget generate locale-targeted URLs, or render links assuming translated routes already exist?
  5. Who owns the fork when a PHP or framework upgrade breaks it, and what is the accepted annual cost of that ownership?

Integration Approach

Stack fit — native only to Victoire. In a Symfony 3.x + Victoire app: composer require friendsofvictoire/localeswitcher-widget, register in AppKernel, enable in the widget registry — a clean fit. In Laravel: not a fit at any effort level. The TPM should resolve stack fit as a decision, not a task.

Migration path — recommend no-adopt; build in-house. The user-visible capability is a list of links. The Laravel-native equivalent is roughly 40–80 lines: a Blade component iterating config('app.supported_locales'), resolving the current route name plus parameters, preserving the query string, and emitting <a hreflang> links with correct canonical handling. That buys full control over the routing model, analytics events, accessibility markup, and SEO — none of which this bundle provides — with zero dependency risk and no fork obligation. If the real requirement is an editor-configurable block in a page builder, model it against the page builder actually in the stack (a generic renderable or menu block), not by importing Victoire's entity contract.

Compatibility. Treat as incompatible with any supported Laravel release. Composer resolution fails on symfony/* constraints; --ignore-platform-reqs yields a bundle that cannot register. Only a Victoire-pinned Symfony 3.4 / PHP ≤7.2 container is a viable runtime, and that container is itself out of support.

Sequencing.

  • Validation spike (timebox 1–2 days): confirm target framework → attempt install in a throwaway Symfony 3.4 / PHP 7.1 container → render the widget → document outcome. Kill it the moment the framework mismatch is confirmed.
  • In-house build (preferred): inventory locale/routing requirements → build the switcher component → test URL preservation, hreflang, canonical, and cache behavior → ship. One engineer, under a sprint.
  • If genuinely on Victoire: scope the work as "adopt an abandoned bundle we now own," with an explicit fork owner and patching budget, not as "integrate a package."

Operational Impact

Maintenance. No maintainer. With zero stars and zero dependents we would be the de facto sole consumer, i.e. a fork owner. Every PHP minor, Symfony deprecation, and Doctrine security release becomes our patch. That is a permanent tax on a feature that renders a handful of anchors.

Support. Community support is effectively nil. Documentation lives on Victoire's stale site; there is no advisory channel. If a CVE lands in the pinned Symfony/Doctrine tree, remediation is entirely ours with no upstream to lean on.

Scaling. Throughput is a non-issue — a few links per render, trivially cached. The scaling risk is upgrade scaling: the component anchors the platform to an EOL Symfony generation and blocks PHP 8 and framework upgrades across the whole application. That is the real cost line, and it is disproportionate to the feature's value.

Failure modes.

  • composer install hard-fails on modern PHP via victoire/* constraints — blocks CI immediately.
  • Bundle silently fails to register without Victoire kernel hooks: the widget never appears, with no error surfaced to editors.
  • Locale URLs generated from a routing model absent in the host app → 404s and broken hreflang, causing SEO damage.
  • Widget UI labels untranslated in less-common locales.
  • Session/cookie locale state conflicting with URL-based locale → language flip-flopping and cache-key pollution on shared caches.

Ramp-up. Hours for a Symfony developer already inside Victoire. For a Laravel team: a full framework-context switch plus reading Victoire internals — days to weeks to deliver a language picker.

Recommendation: decline adoption. Ship the native Laravel component, and reinvest the saved maintenance budget into the decisions this widget only pretends to solve — translation workflow, content fallback, and hreflang generation. Revisit only if a Victoire-based Symfony estate is confirmed as the real target, and then budget it as an owned fork, not a dependency.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource