Image not found

Laravel Localization

Comment (0)

Admin

166


Step 1: Install Laravel 9

composer create-project laravel/laravel example-app 

 

 Step 2: Create Lang Files

 

resources/lang/en/translate.php 

<?php
  
return [
  
    'title' => 'This is English Language Title.',
  
];

 

 

 

resources/lang/bn/translate.php

<?php
  
return [
  
    'title' => 'এটি বাংলা ভাষায় শিরোনাম।.',
  
];

 

 

 

resources/lang/sp/translate.php 

<?php
  
return [
  
    'title' => 'Il s'agit du titre en langue espagnole.',
  
];

 

 

 

 resources/lang/ar/translate.php 

<?php
  
return [
  
    'title' => "هذا هو العنوان باللغة الاسبانية.",
  
];

 

 

Step 3 : Step 3: Create Routes 

routes/web.php 

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\LangController;
  
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
  
Route::get('lang/home', [LangController::class, 'index']);
Route::get('lang/change', [LangController::class, 'change'])->name('changeLang');

 

Step 4 : Step 4: Create LangController Controller 

 

app/Http/Controllers/LangController.php 

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App;
  
class LangController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
    */
    public function index()
    {
        return view('lang');
    }
  
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
    */
    public function change(Request $request)
    {
        App::setLocale($request->lang);
        session()->put('locale', $request->lang);
  
        return redirect()->back();
    }
}

 

 Step 5: Create View 

 

resources/views/lang.blade.php 

<!DOCTYPE html>

<html>

<head>

    <title>How to Create Multiple Language Website in Laravel</title>

    <meta charset="utf-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

</head>

<body>

    <div class="container">

  

        <h1>How to Create Multiple Language Website in Laravel</h1>

  

        <div class="row">

            <div class="col-md-2 col-md-offset-6 text-right">

                <strong>Select Language: </strong>

            </div>

            <div class="col-md-4">

                <select class="form-control changeLang">

                    <option value="en" {{ session()->get('locale') == 'en' ? 'selected' : '' }}>English</option>

                    <option value="fr" {{ session()->get('locale') == 'fr' ? 'selected' : '' }}>France</option>

                    <option value="sp" {{ session()->get('locale') == 'sp' ? 'selected' : '' }}>Spanish</option>
                    
                    <option value="ar" {{ session()->get('locale') == 'ar' ? 'selected' : '' }}>Arabic</option>

                </select>

            </div>

        </div>

    

        <h1>{{ __('messages.title') }}</h1>

     

    </div>

</body>

  

<script type="text/javascript">

  

    var url = "{{ route('changeLang') }}";

  

    $(".changeLang").change(function(){

        window.location.href = url + "?lang="+ $(this).val();

    });

  

</script>

</html>

 

Step 6: Create Middleware

 

php artisan make:middleware LanguageManager

 

app/Http/Middleware/LanguageManager.php 

<?php

  

namespace App\Http\Middleware;

  

use Closure;

use App;

  

class LanguageManager

{

    /**

     * Handle an incoming request.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  \Closure  $next

     * @return mixed

     */

    public function handle($request, Closure $next)

    {

        if (session()->has('locale')) {

            App::setLocale(session()->get('locale'));

        }

          

        return $next($request);

    }

}

 

Step 7 : Middleware  register in kernel file

 

 app/Http/Kernel.php

<?php

  

namespace App\Http;

  

use Illuminate\Foundation\Http\Kernel as HttpKernel;

  

class Kernel extends HttpKernel

{

    ....

  

    /**

     * The application's route middleware groups.

     *

     * @var array

     */

    protected $middlewareGroups = [

        'web' => [

            \App\Http\Middleware\LanguageManager::class,

        ],


    ];

  

    ...

 

Hope it will help....

thanks !

 


Others Problem Fix Stroy



Comments (0)

Your Comment