Tìm thấy x bài viết trong xms.

Trong bài trước: Đa ngôn ngữ đơn giản trong Laravel

Mình đã hướng dẫn cách viết đa ngôn ngữ, nhưng để config ngôn ngữ bạn phải vào file app.php trong config để sửa lại. Hôm nay mình sẽ hướng dẫn các bạn có thể đổi ngôn ngữ động, để phù hợp cho các User có thể đổi ngôn ngữ theo ý thích.

Ok, Bắt tay vào công việc. Đầu tiên bạn viết một Route để tạo một session:

Route::get('setLocal-{lang}', function($lang) {
    Session::put('lang', $lang);
    return back();
});

Tiếp theo bạn tạo một Middleware tên là Lang hay gì khác tùy bạn

php artisan make:middleware Lang

Nội dung của middleware như sau

<?php

namespace App\Http\Middleware;

use Closure;
use Session;
use App;

class Lang
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ( Session::has('lang')) {
            App::setLocale(Session::get('lang'));
        }
        return $next($request);
    }
}

Tiếp theo, ta khai báo Middleware vừa tạo vào  /app/Http/Kernel.php,vào vị trí của Middleware web

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \App\Http\Middleware\Lang::class,

Bây giờ test thử, Ban đầu ngôn ngữ đang là tiếng anh

Sau đó chạy Route đã tạo và truyển tham số vn vào

Thành quả

Bạn có thể thấy là bây giờ ngôn ngữ đã được đổi, rồi đấy 😁😁.

Cảm ơn các bạn đã xem!

Đa ngôn ngữ đơn giản trong Laravel

Đánh giá bài viết

Thích thì like
Hướng dẫn thay đổi ngôn ngữ động trong Laravel
5/5 1 votes

Bình luận

Ngọc đẹp trai avatar
Ngọc đẹp trai

Trời ơi thật là dễ hiểu quá đi =))

Hiển thị bình luận Facebook