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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

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

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

โดย jamepiyawat » 17/08/2019 10:17 pm

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

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

โค้ด: เลือกทั้งหมด

<!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 717 times
เมื่อเราคลิกที่ภาพภาษาไทย
test2.png
test2.png (17.69 KiB) Viewed 717 times
เรามาลองดูโค้ตกันดีกว่าว่าจะเป็นอย่างไร
เรามาดูในแท็ก body กันก่อนดีกว่าจะเห็นได้ว่ามีแท็ก a ที่จะเป็นลิ้งที่จะต่อไปที่ ?lang=th หรือ ?lang=us แล้วแต่ภาษานั้นเองและถ้าผู้ใช้ได้คลิกเข้าไป URL ของเราก็จะต่อ ?lang=th หรือ ?lang=us นั้นเอง

โค้ด: เลือกทั้งหมด

<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 717 times
เมื่อเราคลิกที่ภาพภาษาไทย
test4.jpg
test4.jpg (47.47 KiB) Viewed 717 times
เมื่อเราได้ URLที่ต่อ ?lang=th หรือ ?lang=us แล้วเราก็จะนำค่า th กับ us ที่แต่ต่างกันนี่แหละมาอ้างอิงภาษาที่จะให้แสดงบนหน้าเว็บของเรากันเราลองมาดูโค้ตก่อนแท็ก body กัน เราจะเก็บค่า th หรือ us ได้จากตัวแปล $_GET['lang'] นั้นเองโดยค่าของที่มันเก็บมาก็มาจาก url ด้านบนที่เรากำหนดให้เป็น ?lang=th หรือ ?lang=us ที่เราต่อเอาไว้แต่ในตัวอย่างนี้ก็จะเห็นได้ว่าตัว $lang จะเก็บค่าของ $_GET['lang'] เอาไว้

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

$lang_test = $test[$lang];
ตอนเรียกใช่ก็จะได้แบบนี้

โค้ด: เลือกทั้งหมด

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

ข้างบน