niels-numbers/laravel-localizer

Detects the user’s preferred language and redirects to the matching localized URL.

Maintainers

Package info

github.com/niels-numbers/laravel-localizer

pkg:composer/niels-numbers/laravel-localizer

Statistics

Installs: 833

Dependents: 0

Suggesters: 0

Stars: 12

Open Issues: 0

v1.3.2 2026-05-17 11:05 UTC

README

Tests PHP Laravel License

Successor to mcamara/laravel-localization. Static routes, route:cache ready.

Locale-aware routing for Laravel: auto-detect, auto-redirect, and resolve route() per language.

Documentation: localizer.adam-nielsen.de

Example

Route::localize(function () {
    Route::get('/about', AboutController::class)->name('about');
});

Produces:

  • /about - this endpoint carries the package's core magic: auto-detection, redirect, or default locale (see below)
  • /de/about, /fr/about, ... for every other configured locale

Every route is registered twice as a static route:

GET|HEAD  about ............... without_locale.about › AboutController
GET|HEAD  {locale}/about .......... with_locale.about › AboutController

In your application code, keep using route('about'); the package picks the right variant based on the current locale.

How /about resolves at request time:

  1. First visit: the package reads the Accept-Language header (or your own detector chain) and redirects to the matching localized URL.
  2. Subsequent visits: an explicit URL prefix always wins. Without a URL signal, the locale is taken from the session and cookie. The user is redirected to the prefixed variant unless their locale matches the default and hide_default_locale is on - in which case they are redirected or stay on /about.
  3. Fallback: when no signal matches, the configured default locale is used.

Note: a switcher link to plain /about carries no locale signal - RedirectLocale would send the user back to their session locale instead of switching. See Language Switcher for more.

Install

composer require niels-numbers/laravel-localizer

Setup guide · Migrating from mcamara/laravel-localization?

License & credits

MIT licensed. Created by Adam Nielsen, building on prior work by @mcamara (original laravel-localization), @codezero-be (deprecated laravel-localized-routes, whose static-route ideas inspired this rewrite) and @jordyvanderhaegen (current maintainer of the original, whose issue #921 motivated this package).