ทำเว็บไซต์หลายภาษา ด้วย Laravel

ทำเว็บไซต์หลายภาษา ด้วย Laravel

        หากใครคิดจะทำเว็บไซต์หลายๆภาษา และ ใช้ Laravel อยู่แล้ว ก็จะง่ายมากเลยครับ บทความนี้ผมจะมาสอน วิธีการทำเว็บไซต์หลายภาษา ด้วย Laravel แต่หากว่าใครไม่ได้ใช้ Laravel Framework ก็สามารถหยิบเอาแนวคิด ไปพัฒนาต่อยอดได้ครับ


ขั้นแรก การทำเว็บไซต์หลายภาษา

เราต้องมีภาษา Default ก่อน สำหรับเว็บ www.maimem.com แห่งนี้ Default ให้เป็นภาษาไทยครับ

วิธีการเซ็ตภาษา Default ของ Laravel ให้เข้าไปที่ Folder

app/config/app.php

ให้มองหาบรรทัดที่เขียนว่า

'locale' => 'en',

ให้เปลี่ยนจาก 'en' เป็นภาษาอื่นที่เราต้องการให้เป็น Default เช่น 'th'  แนะนำให้ใช้เป็นตัวย่อภาษา 2 ตัวอักษรนะครับ หรือ แล้วแต่เราจะตั้งเองเลยก็ได้ถ้าไม่เป็นมาตรฐานแล้วไล่ Code ยากน่าดูเลย

เช่น th = Thai , en = English , it = Itary , ro = Romania


ขั้นที่ 2 การทำเว็บไซต์หลายภาษา

เริ่มสร้างภาษาแต่ละตัวที่ต้องการให้แสดงผล โดยเข้าไปที่ Folder 

app/lang

Laravel จะมี Folder สำหรับภาษาแรกให้ 1 ตัว คือ en  หากเราต้องการภาษาอะไรเพิ่มเติม ก็สร้าง Folder เพิ่มใน นี้ได้เลย 

สำหรับเว็บนี้มี 2 ภาษา เป็น en และ th ก็จะมี Folder แบบนี้ครับ



ทีนี้เราก็เริ่มสร้างไฟล์ใน Folder ของภาษานั้นๆ โดยตั้งชื่อให้สื่อกับเรื่องที่เราต้องการจะนำไปแสดงผล เช่น alert.php ไว้แสดง alert , breadcrumb.php เอาไว้แสดงผลในส่วนของ breadcrumb, label เอาไว้แสดงผลในส่วนของ label   



ทีนี้ให้เราคลิกเปิดไฟล์ ที่เราได้ทำการสร้างไว้ แล้วทำการสร้าง Array ของภาษา

 'home',
        'welcome' => 'Welcome, :name',
       );

โดยที่ในไฟล์ไม่จำเป็นต้องมี Tag ปิด ?>  

- Key ของ Array คือ Key ที่เราจะใช้เรียกตอนแปลภาษา 

- Value ของ Array คือ ข้อความที่เราต้องการให้แสดงผล


ขั้นตอนที่ 3 การทำเว็บไซต์หลายภาษา

ขั้นตอนนี้คือการนำไปใช้งานล่ะครับ  วิธีใช้มีหลายแบบ 

แบบแรก เรียกโดยใช้คำสั่ง trans โดยมีวิธีเรียกใช้ดังนี้

echo trans('ชื่อไฟล์ใน Folder.key ของ Array');

เช่น

echo trans('messages.welcome');

หมายถึงการเรียกตัวแปรภาษา ที่อยู่ในไฟล์ messages.php โดยมี Array key คือ welcome


แบบที่สอง เรียกโดยใช้คำสั่ง Lang::get

echo Lang::get('ชื่อไฟล์ใน Folder.key ของ Array');

เช่น 

echo Lang::get('messages.welcome');

หมายถึงการเรียกตัวแปรภาษา ที่อยู่ในไฟล์ messages.php โดยมี Array key คือ welcome


แล้วถ้าต้องการแปลภาษาอื่นนอกจากที่เซ็ต Default ไว้ล่ะจะทำไง ง่ายๆเลยครับ ใช้คำสั่ง 

App::setLocale('ภาษาที่ต้องการ');

เช่น

App::setLocale('th');

เป็นการเซ็ตให้ใช้ภาษาไทย โดยที่ th ต้องมี folder อยู่ใน app/lang ด้วยนะครับ


ตรวจสอบภาษาที่ใช้อยู่

สำหรับใครที่อยากทราบว่า ณ.ตอนนี้ ใช้ภาษาอะไรอยู่ให้ใช้คำสั่ง 

echo App::getLocale();


ลองทำกันดูนะครับ หากใครติดขัดหรือสงสัยตรงไหน Comment ทิ้งไว้ได้เลยนะครับ เดี๋ยวผมจะตอบให้อีกที  

  • 01 พฤศจิกายน 2557

  • โดย Admin

  • maimem.com

  • 0 ความคิดเห็น

แชร์บทความนี้

ความคิดเห็น


แสดงความคิดเห็น

กรุณาเข้าสู่ระบบเพื่อแสดงความคิดเห็น

เข้าระบบด้วย Google

ผู้สนับสนุน