New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

adamibrahim/localization

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

adamibrahim/localization

Laravel 5.6 Localization package with language chooser

Source
Packagist
Version
v0.2.8
Version published
Total downloads
159
Maintainers
1
Created
Source

Laravel 5.6 Localization package

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Laravel 5.6 Localization package with

  • Language chooser
  • Different language sessions for website and CMS / back
  • List of languages stored at Database table languages
  • At table languages you can set boolean values for [active, default]

Demo

You can see working demo

Install

Install the package Via Composer
$ composer require adamibrahim/localization
If you installing at laravel 5.5 or higher then you may go directly to Publish other wise you will need to edit composer.json, register the Service Provider and middleware

composer.json

Add this code to your composer.json under the autoload at your main directory

"psr-4": {
            "Adam\\Localization\\": "vendor/adamibrahim/localization/src"
        }

Service Provider

At file config/app.php register service provider under * Package Service Providers...

Adam\Localization\LocalizationServiceProvider::class,
Middleware

if you are using Laravel version lower than 5.5 then you need to register the lang middleware at your App\Http\Kernel.php

  • At protected $routeMiddleware = [ ] array add the below code
'lang' => \Adam\Localization\Middleware\Localization::class,

Publishing

Optional publishing flags folder with flags svg images / and config file

$ php artisan vendor:publish --tag=Localization --force

Database Migrating

run the Artisan migration command

$ php artisan migrate

Seeding

Run the Artisan Seeding command

$ php artisan db:seed --class=Adam\Localization\database\seeds\LanguagesTableSeeder

Artisan Seed Error

If you receive this Error:

Class Adam\Localization\database\seeds\LanguagesTableSeeder does not exist

Then you may need to dump-autoload by running this command

$ composer dump-autoload

Then run the seeding command once again

$ php artisan db:seed --class=Adam\Localization\database\seeds\LanguagesTableSeeder

Usage

You need to add 'lang' middleware to all your routes

->middleware('lang')

Add the Bootstrap language change buttons to your website page/s

@if (($languages)->count() > 1)
    <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" 
        data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            <img src="{{ asset('img/flags/'.$lang['flag']) }}"> {{ $lang['abbr'] }}<span class="caret"></span>
        </a>

        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
            @foreach($languages as $language)
                <a href="{{ route('language.change', $language->abbr) }}" class="dropdown-item">
                    <img src="{{ asset('img/flags/'.$language->flag) }}"> {{$language->native}}
                </a>
            @endforeach
        </div>
    </li>
@endif

Optional you can add different language session if needed for example admin control panel

@if (($languages_back)->count() > 1)
    <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" 
        data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            <img src="{{ asset('img/flags/'.$lang_back['flag']) }}"> {{ $lang_back['abbr'] }}<span class="caret"></span>
        </a>

        <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
            @foreach($languages_back as $language)
                <a href="{{ route('admin.back.language', $language->abbr) }}" class="dropdown-item">
                    <img src="{{ asset('img/flags/'.$language->flag) }}"> {{$language->native}}
                </a>
            @endforeach
        </div>
    </li>
@endif

Optional The lang_back session set the app locale if the rote prefix is 'admin' if you wish to change the route prefix simple modify prefix at the config file config\localization.php

Contributing

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security related issues, please email :author_email instead of using the issue tracker.

Credits

License

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

Keywords

package

FAQs

Package last updated on 16 Mar 2018

Related posts