New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

webnuvola/laravel-i18n

Laravel internationalization package
7,739 2
Install
composer require webnuvola/laravel-i18n
Latest Version:v2.4.0
PHP:^8.3
Laravel:10 – 13
Older releases:5 – 9
License:MIT
Last Updated:Oct 7, 2026
Links: GitHub  ·  Packagist
Maintainer: fab120

Laravel Internationalization

Latest Version on Packagist GitHub Tests Action Status Total Downloads

This package allows you to register i18n routes for your Laravel app.

Installation

Install via composer:

composer require webnuvola/laravel-i18n

After the installation, you must publish the config file and set it up to your needs.

php artisan vendor:publish --provider="Webnuvola\Laravel\I18n\I18nServiceProvider" --tag="config"

Configuration

After publishing, the configuration will be located in config/i18n.php.

You must configure at least one region to use this package.

Example configuration:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Available regions
    |--------------------------------------------------------------------------
    |
    | List of languages and countries to view your site in the format {language}-{country}.
    | Available languages: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
    | Available countries: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
    | Examples: en-us, en-gb, it-it, ...
    |
    */

    'regions' => [
        'en-us',
        'en-gb',
    ],

    /*
    |--------------------------------------------------------------------------
    | Default region
    |--------------------------------------------------------------------------
    |
    | The default region that will be assigned if running from console or current
    | route is not i18n. If null, the first element of regions will be used
    | as default.
    |
    */

    'default' => null,

];

Usage

Define i18n routes in routes/web.php:

use Illuminate\Routing\Router;
use Webnuvola\Laravel\I18n\Facades\I18nRoutes;

I18nRoutes::group(static function (Router $router): void {
    Route::get('/', [HomeController::class, 'show'])->name('home');
    Route::get('/profile', [ProfileController::class, 'show'])->name('profile.show');
});

This will register the following routes (with the config file of previous step):

Name Url
en-us.home /en-us
en-us.profile.show /en-us/profile
en-gb.home /en-gb
en-gb.profile.show /en-gb/profile

I18n functions

To set or get the current region, you can use the following methods:

use Webnuvola\Laravel\I18n\Facades\I18n;

I18n::setRegion('en-us');

I18n::getRegion(); // en-us
I18n::getCountry(); // us
I18n::getLanguage(); // en

Helper functions

This package will extend this default Laravel helper functions by adding i18n support:

url() -> i18n_url()
I18n::setRegion('en-us');

url('page'); // /page
i18n_url('page'); // /en-us/page
route() -> i18n_route()
I18n::setRegion('en-us');

route('profile.show'); // /profile
i18n_route('profile.show'); // /en-us/profile

// If you want a fixed region i18n url
route('en-gb.profile.show'); // /en-gb/profile
redirect() -> i18n_redirect()
I18n::setRegion('en-us');

redirect('redirect-page'); // /redirect-page
i18n_redirect('redirect-page'); // /en-us/redirect-page

Security

If you discover any security-related issues, please email fabio@webnuvola.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

menarasolutions/fluent-laravel

Laravel package for Fluent translations (application localisation)

27 1
lukasss93/laravel-larex

Translate your Laravel application from a single CSV file!

124,181 98
our-edu/laravel-translation-client

Laravel client package for consuming centralized translation service

7,965 0
bretterer/laravel-pseudoloc

Runtime pseudolocalization for Laravel. Flip a flag, see every i18n bug: transla...

4,713 8
rodrigofs/filament-smart-translate

A comprehensive Laravel package for automatic translation support in Filament v4...

30 9

Version History

Version Released PHP Laravel License
v2.4.0 ^8.3 ^10.0 || ^11.0 || ^12.0 || ^13.0 MIT
v2.3.0 ^8.1 ^9.0||^10.0||^11.0 MIT
v2.2.0 ^8.1 ^9.0||^10.0||^11.0 MIT
v2.1.0 ^8.0 ^8.75 || ^9.19 || ^10.10 MIT
v2.0.0 ~8.0.0 || ~8.1.0 || ~8.2.0 ^8.0 || ^9.0 MIT
Pre-releases (3)
Version Released PHP Laravel License
v1.0.0-alpha.3 ^7.2.5 ^6.0|^7.0 MIT
v1.0.0-alpha.2 ^7.2.5 ^6.0|^7.0 MIT
v1.0.0-alpha ^7.2.5 ^6.0|^7.0 MIT