miikabachok/laravel-localization

Simple Laravel application localization.

1.0.0 2023-09-12 09:56 UTC

This package is auto-updated.

Last update: 2024-04-12 11:29:58 UTC


README

1. Installation via Composer.

composer require miikabachok/laravel-localization

2. You need to publish package configuration file to the application's config directory.

php artisan vendor:publish --provider="MiiKabachok\LaravelLocalization\Providers\ServiceProvider"

3. Defining routes in routes/web.php file.

<?php

declare(strict_types=1);

use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\View;
use MiiKabachok\LaravelLocalization\Middleware\SetLocaleFromUrl;

/**
 * Redirect a non-localized route (or with invalid locale value) request to localized one.
 */
Route::get('/{invalidLocale?}', function (): RedirectResponse {
    return Redirect::route('/', ['locale' => App::getLocale()]);
})->withoutMiddleware(SetLocaleFromUrl::class)->where(['invalidLocale' => '^[^//]{3,}.*$']);

/**
 * Group of all localized application routes.
 */
Route::prefix('{locale}')->where(['locale' => '[A-Za-z]{2}'])->group(function (): void {
    /**
     * Declare all your routes here.
     */
    Route::get('/', function (): \Illuminate\Contracts\View\View {
        return View::make('welcome');
    })->name('/');
});