DEV Community

Cover image for Multi Language App in Professional Way with Laravel !
Salma
Salma

Posted on • Updated on

Multi Language App in Professional Way with Laravel !

Aloha There !
In This article we talk about make app with Mutli language.

  1. Using mcamara laravel localization package to make direction in laravel app .
  2. Using Laravel Spatie Transtable To make dynamic json Columns
  3. Using Laravel Sptaie Sluggable To Create Slug
  4. Describe how we can make Multi slug with lang

Point 2,3,4 in the next level of this article

*When Create A new project laravel as we know
*

composer create-project --prefer-dist laravel/laravel MultiLangApp

Then

We begin with mcamara laravel-localization package
this package contain many features Some of it

  • Detect language from browser
  • Smart redirects (Save locale in session/cookie)
  • Smart routing (Define your routes only once, no matter how many languages you use)
  • Translatable Routes
  • Supports caching & testing
  • Option to hide default locale in url


Install the package via composer:
composer require mcamara/laravel-localization
*In order to edit the default configuration you may execute:
*

php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider"

*You may register the package middleware in the app/Http/Kernel.php file:
*


<?php namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel {
    /**
    * The application's route middleware.
    *
    * @var array
    */
    protected $routeMiddleware = [
        /**** OTHER MIDDLEWARE ****/
        'localize'                => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
        'localizationRedirect'    => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
        'localeSessionRedirect'   => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
        'localeCookieRedirect'    => \Mcamara\LaravelLocalization\Middleware\LocaleCookieRedirect::class,
        'localeViewPath'          => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class
    ];
}

Enter fullscreen mode Exit fullscreen mode

*Add the following to your routes file:
*

// routes/web.php

Route::group(['prefix' => LaravelLocalization::setLocale()], function()
{
    Route::get('/', function () {
        return view('welcome');
    });
});
Enter fullscreen mode Exit fullscreen mode

in config in laravelLocalization.php file we can uncomment for the language we need to use in the application .

we can make test now add translate to words then we can the translation and redirect make perfectly with this package

you can see the code in this repo
https://github.com/salmazz/Multi-Langague-Example-Laravel-
and continue in the next article
how can we make dynamic columns with multi lang for slug.
bye bye !

Top comments (0)