Weave Code
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

Laravel Localizer Laravel Package

niels-numbers/laravel-localizer

Locale-aware routing for Laravel with static, route:cache-ready localized routes. Auto-detects language, redirects to prefixed URLs, and resolves route() to the correct locale. Successor to mcamara/laravel-localization.

View on GitHub
Deep Wiki
Context7

Laravel Localizer

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).

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.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor