หลักการ วิธีการทำเว็บไซต์แสดงได้หลายภาษา ด้วย PHP เขียนเว็บสองภาษา

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
jamepiyawat
PHP VIP Members
PHP VIP Members
Posts: 1120
Joined: 21/05/2019 10:45 am

หลักการ วิธีการทำเว็บไซต์แสดงได้หลายภาษา ด้วย PHP เขียนเว็บสองภาษา

Postby jamepiyawat » 17/08/2019 10:17 pm

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

ตัวอย่าง code จะเป็นแบบนี้

Code: Select all

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <?php
  
//Language
  $lang = isset($_GET['lang']) ? $_GET['lang'] : 'th';
  $test = array('th' => 'ทดสอบแสดงเป็นภาษาไทย', 'us' => 'Test display English');
  $lang_test = $test[$lang];
   ?>
  <body>
      <a href="?lang=th">
        <img src="th.png" alt="Thai (ภาษาไทย)" title="Thai (ภาษาไทย)"width="50px"></a>
        <a href="?lang=us">
          <img src="us.png" alt="English (ภาษาอังกฤษ)" title="English (ภาษาอังกฤษ)"width="50px"></a>

      <hr>
      <?php echo $lang_test; ?>
  </body>
</html>


ผลลัพธ์ที่ได้
เมือเราคลิกที่ภาพภาษาอังกษ
test1.png
test1.png (15.96 KiB) Viewed 136 times

เมื่อเราคลิกที่ภาพภาษาไทย
test2.png
test2.png (17.69 KiB) Viewed 136 times


เรามาลองดูโค้ตกันดีกว่าว่าจะเป็นอย่างไร
เรามาดูในแท็ก body กันก่อนดีกว่าจะเห็นได้ว่ามีแท็ก a ที่จะเป็นลิ้งที่จะต่อไปที่ ?lang=th หรือ ?lang=us แล้วแต่ภาษานั้นเองและถ้าผู้ใช้ได้คลิกเข้าไป URL ของเราก็จะต่อ ?lang=th หรือ ?lang=us นั้นเอง

Code: Select all

<a href="?lang=th">
<img src="th.png" alt="Thai (ภาษาไทย)" title="Thai (ภาษาไทย)"width="50px"></a>
<a href="?lang=us">
<img src="us.png" alt="English (ภาษาอังกฤษ)" title="English (ภาษาอังกฤษ)"width="50px"></a>

เมือเราคลิกที่ภาพภาษาอังกษ
test3.jpg
test3.jpg (47.82 KiB) Viewed 136 times

เมื่อเราคลิกที่ภาพภาษาไทย
test4.jpg
test4.jpg (47.47 KiB) Viewed 136 times


เมื่อเราได้ URLที่ต่อ ?lang=th หรือ ?lang=us แล้วเราก็จะนำค่า th กับ us ที่แต่ต่างกันนี่แหละมาอ้างอิงภาษาที่จะให้แสดงบนหน้าเว็บของเรากันเราลองมาดูโค้ตก่อนแท็ก body กัน เราจะเก็บค่า th หรือ us ได้จากตัวแปล $_GET['lang'] นั้นเองโดยค่าของที่มันเก็บมาก็มาจาก url ด้านบนที่เรากำหนดให้เป็น ?lang=th หรือ ?lang=us ที่เราต่อเอาไว้แต่ในตัวอย่างนี้ก็จะเห็นได้ว่าตัว $lang จะเก็บค่าของ $_GET['lang'] เอาไว้

Code: Select all

$lang = isset($_GET['lang']) ? $_GET['lang'] : 'th';

แต่จากโค้ดก็จะให้ได้ว่ามีการบังคับว่าถ้ามีการประกาศค่า $_GET['lang'] เท่ากับ us หรือ th มันก็จะคืนค่า us หรือ th กลับไป แต่ถ้า $_GET['lang'] ไม่มีค่า ก็คืนเป็น th เพื่อจะให้ $lang เก็บค่าเพื่อเอาไปทำงานบรรทัดต่อไปได้นั้นเอง

Code: Select all

$test = array('th' => 'ทดสอบแสดงเป็นภาษาไทย', 'us' => 'Test display English');

จากโค้ดก็จะให้ได้ว่ามีตัวแปลที่ชือ $test เก็บ array เอาไว้โดยที่มี array th และ us ถ้าเป็น array th ก็จะเก็บภาษาไทยเอาไว้ แต่ถ้า array us ก็จะเก็บค่าภาษาอังกฤษนั้นเองโดยปกติแล้วถ้าเราจะเรียกใช้ภาษาไทยก็จะเขียนได้แบบนี้ $test[ht] มันก็จะเป็นการเรียกใช้ค่าภาษาไทยแล้วเราจะทำอย่างไรให้มันแสดงได้ 2 ภาษาแบบอัตโนมัติล่ะ เราก็ใช้ ตัวแปล $lang ที่เราเก็บค่า th หรือ us เอาไว้นั้นเองแบบนี้

Code: Select all

$lang_test = $test[$lang];


ตอนเรียกใช่ก็จะได้แบบนี้

Code: Select all

<?php echo $lang_test; ?>


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

Return to “PHP Knowledge”

Who is online

Users browsing this forum: No registered users and 11 guests