เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by jamepiyawat » 19/07/2019 1:18 pm

แบบนี้ครับ

Code: Select all

<?php echo $product['name_'.$lang_tag]; ?>

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by tsukasaz » 19/07/2019 12:39 pm

เยี่ยมครับ แล้วเวลาเรียกใช้ทำยังไงครับ

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by jamepiyawat » 19/07/2019 11:52 am

ทำได้แล้วครับให้ใส้โค้ดนี้ในหน้า select ด้วย

Code: Select all

$lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
เพื่อเป็นการทำให้ตัวแปล $lang_tag เก็บ en-GB หรือ th-TH ตามที่เราเปลี่ยนภาษา
ต่อจากนั้นก็จะเป็นการ select ฟิว name_th-TH หรือ ฟิว name_en-GB ตามที่หน้าเว็บของเราจะเป็นภาษาอะไร แบบนี้

Code: Select all

->select($db->qn('a.name_'.$lang_tag).',a.product_id,a.image,b.category_id')

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by tsukasaz » 15/07/2019 5:08 pm

tsukasaz wrote:ประกาศตัวแปรมา แล้วเรียกใช้คำสั่งเช็คภาษาที่เปิดอยู่

Code: Select all

$lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
ค่าในตัวแปร $lang_tag จะเป็นตัวย่อของภาษาที่ใช้งานตอนนั้น เช่น เปิดหน้าเว็บ joomla ภาษาอังกฤษอยู่ มันจะมีค่าเป็น en-GB

ถ้าเปิดหน้าภาษาไทย จะมีค่าเป็น th-TH แล้วก็เอามาต่อ String กับคำว่า name_ ก็จะได้ชื่อ name_en-GB หรือ name_th-TH แล้ว
ค่าที่อยู่ใน $db->qn('a.name_en-GB') มันต้องเปลี่ยนไปตามภาษาของหน้าเว็บครับ

ตรง 'a.name_en-GB' มันคือ String เราต้องทำให้มันเปลี่ยนตามภาษา โดยใช้ตัวแปรที่อ่านจากภาษา ในตัวอย่างใช้ $lang_tag

เวลาเขียนเชื่อมก็ให้มันได้ 'a.name_'. $lang_tag มันก็จะ select ตามภาษาแล้ว

ตอนแสดงผลในไฟล์ default.php ก็ใช้หลักการเดียวกันก็ได้ หรือ ตอน select จะใช้ AS กำหนดชื่อให้มันเป็นชื่อเดียวก็ได้

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by jamepiyawat » 15/07/2019 2:37 pm

แบบว่าผม select แบบนี้

Code: Select all

->select($db->qn('a.name_en-GB').',a.product_id,a.image,b.category_id')
แล้วมันสามารถขึ้นชื่อสินค้าที่อยู่ในฟิล a.name_en-GB ได้แต่ว่าพอเปลี่ยนเว็บเป็นภาษาไทยแล้วไม่มีการแสดงชื่อสินค้าออกมาให้เห็นเลยอะครับ

ผมควรจะทำอย่างไรให้มีชื่อสินค้าภาษาไทยตอนเปลี่ยนเว็บเป็นภาษาไทย ครับ

ปลี่ยนเว็บเป็นภาษาอังกฤษ
Selection_999(006).png
Selection_999(006).png (48.67 KiB) Viewed 276 times
เปลี่ยนเว็บเป็นภาษาไทย
Selection_999(007).png
Selection_999(007).png (42.43 KiB) Viewed 276 times
ติดตั้งภาษาไทยเรียบร้อยแล้วครับ
Selection_999(008).png
Selection_999(008).png (22.04 KiB) Viewed 276 times

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by tsukasaz » 15/07/2019 11:46 am

อันนั้นมันคือการ select ชื่อของทุกภาษาออกมาหรือเปล่า แบบนี้ถ้าไม่ได้ติดตั้งภาษาไทย แล้วไปเรียก name_th-TH มันจะ error นะครับ

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by jamepiyawat » 15/07/2019 11:24 am

ทำได้แล้วครับ แต่ว่าผมเลือกฟิว name_th-TH ออกมาใช้งานไม่ได้ครับ

ทำยังไงถึงจะselect ฟิว name_th-TH ออกมาใช้ได้ถูกต้องครับ

ถ้า select ฟิว name_th-TH ออกมาแบบนี้

Code: Select all

 ->select($db->qn('a.name_en-GB'),('a.name_th-TH').',a.product_id,a.image,b.category_id')
มันก็ออกมาเป็นแบบนี้เลยครับ

หน้าภาษาอังกฤษ
Selection_999(004).png
Selection_999(004).png (5.22 KiB) Viewed 287 times
หน้าภาษาไทย
Selection_999(005).png
Selection_999(005).png (8.78 KiB) Viewed 287 times

Re: เลือกฟิว name_th-TH ออกมาใช้ยังไงครับ

by tsukasaz » 15/07/2019 2:32 am

ประกาศตัวแปรมา แล้วเรียกใช้คำสั่งเช็คภาษาที่เปิดอยู่

Code: Select all

$lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag();
ค่าในตัวแปร $lang_tag จะเป็นตัวย่อของภาษาที่ใช้งานตอนนั้น เช่น เปิดหน้าเว็บ joomla ภาษาอังกฤษอยู่ มันจะมีค่าเป็น en-GB

ถ้าเปิดหน้าภาษาไทย จะมีค่าเป็น th-TH แล้วก็เอามาต่อ String กับคำว่า name_ ก็จะได้ชื่อ name_en-GB หรือ name_th-TH แล้ว

Top