Laravel - การแปล

คุณสมบัติการแปลเป็นภาษาท้องถิ่นของ Laravel รองรับภาษาต่างๆที่จะใช้ในแอปพลิเคชัน คุณต้องจัดเก็บสตริงทั้งหมดของภาษาที่แตกต่างกันในไฟล์และไฟล์เหล่านี้จะถูกเก็บไว้ที่resources/viewsไดเรกทอรี คุณควรสร้างไดเร็กทอรีแยกต่างหากสำหรับแต่ละภาษาที่รองรับ ไฟล์ภาษาทั้งหมดควรส่งคืนอาร์เรย์ของสตริงที่คีย์ดังที่แสดงด้านล่าง

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

ตัวอย่าง

Step 1 - สร้าง 3 ไฟล์สำหรับภาษา - English, Frenchและ German. บันทึกไฟล์ภาษาอังกฤษที่resources/lang/en/lang.php

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

Step 2 - บันทึกไฟล์ภาษาฝรั่งเศสที่ resources/lang/fr/lang.php.

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

Step 3 - บันทึกไฟล์ภาษาเยอรมันที่ resources/lang/de/lang.php.

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

Step 4 - สร้างตัวควบคุมที่เรียกว่า LocalizationController โดยดำเนินการคำสั่งต่อไปนี้

php artisan make:controller LocalizationController --plain

Step 5 - หลังจากดำเนินการสำเร็จคุณจะได้รับผลลัพธ์ต่อไปนี้ -

Step 6 - คัดลอกรหัสต่อไปนี้ไปยังไฟล์

app/Http/Controllers/LocalizationController.php

app/Http/Controllers/LocalizationController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

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 7 - เพิ่มเส้นทางสำหรับ LocalizationController ใน app/Http/routes.phpไฟล์. สังเกตว่าเรากำลังส่งอาร์กิวเมนต์ {locale} หลังการแปล / ซึ่งเราจะใช้เพื่อดูผลลัพธ์ในภาษาอื่น

app/Http/routes.php

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

Step 8- ตอนนี้ให้เราไปที่ URL ต่างๆเพื่อดูภาษาต่างๆทั้งหมด ดำเนินการตาม URL ด้านล่างเพื่อดูผลลัพธ์เป็นภาษาอังกฤษ

http://localhost:8000/localization/en

Step 9 - ผลลัพธ์จะปรากฏดังที่แสดงในภาพต่อไปนี้

Step 10 - ดำเนินการตาม URL ด้านล่างเพื่อดูผลลัพธ์ในภาษาฝรั่งเศส

http://localhost:8000/localization/fr

Step 11 - ผลลัพธ์จะปรากฏดังที่แสดงในภาพต่อไปนี้

Step 12 - ดำเนินการตาม URL ด้านล่างเพื่อดูผลลัพธ์ในภาษาเยอรมัน

http://localhost:8000/localization/de

Step 13 - ผลลัพธ์จะปรากฏดังที่แสดงในภาพต่อไปนี้