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.
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony
spatie/flare-daemon-runtime