Hướng dẫn thay đổi ngôn ngữ động trong Laravel
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!
Ủng hộ Chung Nguyễn Blog
Chung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS
#FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
- * Quản lý máy chủ số lượng nhiều
- * Không có kinh nghiệm quản lý máy chủ
- * Thích sử dụng giao diện web đơn giản, trực quan hơn terminal
- * Quá nhàm chán với việc ghi nhớ và lặp lại việc gõ các câu lệnh
- * Muốn tự động hóa mọi thao tác
- * Muốn tiết kiệm thời gian quản trị máy chủ
- * Muốn tiết kiệm tiền bạc, nhân lực quản trị máy chủ 👉 https://flashvps.dev
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!
813 👍
Bình luận
Ngọc đẹp trai
Trời ơi thật là dễ hiểu quá đi =))