Laravel – Đa ngôn ngữ

Tính năng Localization của Laravel hỗ trợ đa ngôn ngữ cho ứng dụng của bạn. Sử dụng các file ngôn ngữ lưu trong app/lang.

Mỗi ngôn ngữ cụ thể sẽ được lưu trong thư mục con. Tất cả file ngôn ngữ return về một mảng key và string như bên dưới.

<?php
return [
   'welcome' => 'Welcome to the application'
];

Ví dụ

Step 1 : Tạo 3 file ngôn ngữ English, French, và German với nội dung như sau:

resources/lang/en/lang.php

<?php
   return [
      'msg' => 'Laravel Internationalization example.'
   ];
?>

resources/lang/fr/lang.php

<?php
   return [
      'msg' => 'Exemple Laravel internationalisation.'
   ];
?>

resources/lang/de/lang.php

<?php
   return [
      'msg' => 'Laravel Internationalisierung Beispiel.' 
   ];
?>

Step 2 : Tạo controller LocalizationController bằng lệnh command sau:

php artisan make:controller LocalizationController

Step 3 : Thêm code sau vào LocalizationController vừa tạo.

app/Http/Controllers/LocalizationController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LocalizationController extends Controller
{
    public function index(Request $request,$locale){
        //set’s application’s locale
        app()->setLocale($locale);
        
        //Gets the translated message and displays it
        echo trans('lang.msg');
    }
}

Step 4 : Thêm route sau vào file routes/web.php. Với tham số {locale} truyền vào url để hiển thị nội dung ngôn ngữ theo tham số này.

Route::get('localization/{locale}','LocalizationController@index');

Step 5 : Vào các url sau để xem kết quả

http://localhost:8000/localization/en

http://localhost:8000/localization/fr

http://localhost:8000/localization/de