LaravelPackages.net
Acme Inc.
Toggle sidebar
kiberzauras/laravel.multilanguage

Multilanguage support for Laravel 5.1+ routes

711
11
v2.0.5
About kiberzauras/laravel.multilanguage

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!

Multilanguage for Laravel 5.1

Made for Laravel 5 Total Downloads Latest Stable Version Latest Unstable Version License

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!

Installation

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();

Notes

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

License

The Laravel Multilanguage is open-sourced software licensed under the MIT license

Comments