conedevelopment/i18n
Multilingual routing for Laravel: define a route once, then serve translated URIs and route names per locale. Includes middleware to detect and set the application locale from the URL, plus helpers for generating localized links and language switchers.
lang/ files and expose them to the browser instead of standing up a second, frontend-owned translation store.Adopt when:
lang/ (or resources/lang) — you want to reuse, not migrate, them.Look elsewhere when:
laravel-vue-i18n, vue-i18n, or FormatJS/Intl instead.To executives: A small, MIT-licensed adapter that lets the browser reuse the translations we already maintain in Laravel. It removes a duplicate translation store and a class of "the server says one thing, the UI says another" bugs, and it shortens the path to shipping new locales. Cost is near zero and lock-in is low — the integration is thin enough to remove or replace without a rewrite.
To engineering: One source of truth for strings. Existing lang/ files stay authoritative; a Blade-level export and a JS helper make __()-style lookups available client-side without a new build step or a second catalog to keep in sync. We'd wrap it behind our own translation module so we can swap it later. Before committing, we run a short spike to confirm pluralization and missing-key behavior, and check Laravel/PHP version support against our stack.
Known caveats to state up front: small community (~128 stars), so pin the version and budget for the possibility of forking; client-delivered catalogs mean payload growth, so keep the exposed string set scoped; and it is not a substitute for a translation-management workflow or advanced message formatting.
How can I help you explore Laravel packages today?