Multilanguage support for Laravel 5.1+ routes
kiberzauras/laravel.multilanguage is a Laravel package for multilanguage support for laravel 5.1+ routes.
It currently has 11 GitHub stars and 711 downloads on Packagist (latest version v2.0.5).
Install it with composer require kiberzauras/laravel.multilanguage.
Discover more Laravel packages by kiberzauras
or browse all Laravel packages to compare alternatives.
Last updated
This package is not maintained anymore, please use mcamara/laravel-localization instead!
This package will help you to easy create multilanguage routes on top of your single language website. With this package you will be able to access your website with these routes example.com, example.com/en, example.com/en/page and etc. and there is no need to change your routes.php file!
At first you need to install our package:
composer require "kiberzauras/laravel.multilanguage"
Then you need to create new file under /config/multilanguage.json with this content:
{"default":"en","enabled":["en","ru","lt"]}
In /public/index.php file change these lines:
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
With these lines:
$response = $kernel->handle(
$request = Kiberzauras\MultiLanguage\Request::capture()
);
Add new provider (/config/app.php providers[]):
Kiberzauras\MultiLanguage\MultiLanguageServiceProvider::class
Thats it, your application now can be accessed with url like these:
example.com
example.com/
example.com/en
example.com/en/
example.com/admin/page/etc
example.com/en/admin/page/etc
Now, try creating hyperlinks:
<?= URL::to('main/index'); ?> //or
<?= url('main/index'); ?> // will create route to /en/main/index (it will use default language as prefix)
<?= URL::to('main/index', ['language'=>'ru']) // will create create route/change default language to /ru/main/index
<?= route('profile'); ?>
<?= route('profile', ['language'=>'ru']); ?>
You can access current language like before:
App::getLocale();
For assets link, use asset('img/foo.jpg'); or secure_asset('foo/bar.zip', $title, $attributes = []);
instead of url('img/foo.jpg');
https://laravel.com/docs/5.1/helpers#method-asset
The Laravel Multilanguage is open-sourced software licensed under the MIT license