การทำเว็บไซต์ 2 ภาษาด้วย PHP มีประโยชน์มาในการทำ WebSite 2 ภาษา หรือมากกว่า 2 ภาษา สามารถทำได้หลายวิธี เช่น การ mod rewrite แต่ในที่นี้จะทำการส่งค่าผ่าน URL ที่เข้าใจง่ายกว่า
ตัวอย่าง Code
ในส่วนของเนื้อหาที่ต้องเปลี่ยนไปตามภาษาที่เลือก อาจจะใช้วิธีสร้างไฟล์ที่สามารถเรียกใช้ได้ทุกหน้า ภายในไฟล์จะตรวจสอบค่า GET ที่ส่งมา และเก็บไว้ที่ตัวแปร ก่อนจะนำไปใช้เลือกข้อความตามภาษาที่กำหนด
หน้า config.php
วิธีที่ 1 : ตรววจสอบค่า GET ที่ส่งมา และเก็บไว้ที่ตัวแปร สร้างตัวแปรสำหรับเก็บข้อมูลตามภาษานั้นๆ และสร้างตัวแปรที่จะนำไปแสดงบนหน้าเว็บ
<?php
// นำค่าภาษาที่เลือกมาเก็บไว้ที่ตัวแปร โดยกำหนดค่าเริ่มต้นให้เป็นภาษาไทย ถ้ายังไม่ได้คลิกเลือกภาษา
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'th' ;
// สร้างตัวแปรสำหรับเก็บข้อมูลตามภาษาต่างๆ
$arr_name = array('th' => 'สวัสดี', 'en' => 'Hello');
// ตัวแปรข้อมูลที่จะนำไปใช้แสดงบนหน้าเว็บต่างๆ
$name = $arr_name[$lang];
?>
วิธีที่ 2 : ตรววจสอบค่า GET ที่ส่งมา และเก็บไว้ที่ตัวแปร สร้างตัวแปรสำหรับเก็บข้อมูลตามภาษานั้นๆ และสร้างตัวแปรที่จะนำไปแสดงบนหน้าเว็บ
<?php
// นำค่าภาษาที่เลือกมาเก็บไว้ที่ตัวแปร โดยกำหนดค่าเริ่มต้นให้เป็นภาษาไทย ถ้ายังไม่ได้คลิกเลือกภาษา
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'th' ;
if($lang == 'th')
{
$name = 'สวัสดี';
}
else if($lang == 'en')
{
$name = 'Hello';
}
?>
หน้า index.php
หรือไฟล์ที่ผู้ใช้งานต้องการให้แสดงผลในแต่ละหน้า
<?php
require_once 'config.php';
echo $name;
?>
ผลลัพธ์
หน้า index.php
หน้า index.php?lang=en
การกำหนดลิงค์ในการแสดงผลแต่ละหน้า
- ภาษาไทย => http://localhost/.....?lang=th
- ภาษาอังกฤษ => http://localhost/....?lang=en
ในตัวอย่างจะเป็นดังนี้
- ภาษาไทย => http://localhost/index.php?lang=th หรือ http://localhost/index.php?
- ภาษาอังกฤษ => http://localhost/index.php?lang=en