kiberzauras / laravel.multilanguage by grinry

Multilanguage support for Laravel 5.1+ routes
709
11
3
Package Data
Maintainer Username: grinry
Maintainer Contact: rytis@kiberzauras.com (Rytis Grincevicius)
Package Create Date: 2015-07-24
Package Last Update: 2018-05-20
Home Page: https://www.kiberzauras.com
Language: PHP
License: MIT
Last Refreshed: 2024-11-19 03:18:21
Package Statistics
Total Downloads: 709
Monthly Downloads: 2
Daily Downloads: 0
Total Stars: 11
Total Watchers: 3
Total Forks: 2
Total Open Issues: 0

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