วิธีการทำให้ joomla Extensions รองรับได้หลายภาษา

แชร์ ความรู้ในการ พัฒนา Joomla Component Extension Module Plugin

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

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

วิธีการทำให้ joomla Extensions รองรับได้หลายภาษา

Post by jamepiyawat » 12/07/2019 4:50 pm

ผมได้มีโอกาสทำโมดูลใน joomla เช่นทำโมดูลแสดงสถิติผู้ที่เข้ามาสมัครเว็บไซต์มีกี่คนแล้วแต่ปัญหาก็มีอยู่ที่ถ้าจะทำเป็นภาษาอังกฤษอย่างเดียวก็ดูจะเหมือนว่าจะใช้งานยากเกินไปหน่อยผมจึงจำเป็นต้องหาวิธีการทำให้โมดูของผมนั้นเป็น 2 ภาษาหรือมากกว่านั้นก็ได้จึงทำให้ผมรู้วิธีการในการเขียนโค้ดที่ทำให้เป็น 2 ภาษาได้โดยซึ่งวิธีการทำนั้นก็ไม่ยากอย่างที่คิดเอาไว้จะเป็นอย่างไรลองติดตามได้จากบทความนี้เลยครับ

ให้เราเปิดโฟร์เดอร์ language ออกมาเราก็จะเห็นว่ามีไฟล์ภาษาอยู่ในที่นี้ก็จะเป็นภาษาไทยและภาษาอังกฤกษ
Selection_985.png
Selection_985.png (8.32 KiB) Viewed 240 times
จากนั้นให้เราทำการเปิดไพล์ขึ้นมาซึ้งเราก็จะเห็นว่าไฟล์ภาษาจะมี 2 ไฟล์นั้นก็คือ .ini กับ .sys.ini แล้วมันต่างกันยังไงในสวนนี้ก็จะอธิบายง่าย ๆ ว่า .ini นั้นจะนำชื่อตัวอักษรของเราไปแสดงผลในหน้าโมดูลแต่ถ้าเป็น.sys.ini ก็จะนำค่าของเราไปแสดงผมในส่วนของหลังบ้านเช่นเมนู Extensions: Manage ก็จะนำค่า .sys.ini ของเราไปแสดงนั้นเองถ้าเราอยากจะอธิบายว่าโมดูลของเราเอาไว้ทำอะไรเราก็ใส่คำพวกนั้นไว้ใน .sys.ini

ให้เราทำการเปิดไฟล์ที่ต้องการจะทำออกมาได้เลยเช่นถ้าอยากจะทำคำอธิบายโมดูหลังบ้านก็ให้เปิดไฟล์ .sys.ini ออกมาทั้ง 2 ภาษาแต่ถ้าอยากจะให้โมดูของเราที่แสดงผลผ่านหน้าเว็บของเราก็ให้เปิดฟล์ .ini ออกมาในที่นี้เพื่อให้เห็นภาพกันชัดเจนก็จะทำให้เปลี่ยนภาษาที่หน้าโมดูลของเรานั้นครับจำเป็นจะต้องเปิดฟล์ .ini ออกมาทั้ง 2 ภาษาเลย

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

ผมก็จะนำโค้ดนี้ไปใส่ในไฟล์ภาษาอังกฤษ

Code: Select all

MOD_MZC_RANDOM_PRODUCTS_NUMBER_OF_PRODUCTS = "Number of products"
และโค้ดนี้ไปใส่ในไฟล์ภาษาไทย

Code: Select all

MOD_MZC_RANDOM_PRODUCTS_NUMBER_OF_PRODUCTS = "จำนวนสินค้า"
จำเป็นจะต้องให้ชื่อเหมื่อนกันเลยนะครับ
และให้เราใช้คำสั่งนี้เพื่อเรียกค่าออกมาแสดง

Code: Select all

<?php echo JText::_('MOD_MZC_RANDOM_PRODUCTS_NUMBER_OF_PRODUCTS'); ?>
ผลลัทธ์ที่ได้

หน้าที่เปลี่ยนเว็บเป็นภาษาอังกฤษ
Selection_986.png
Selection_986.png (7.26 KiB) Viewed 240 times
หน้าที่เปลี่ยนเว็บเป็นภาษาไทย
Selection_988.png
Selection_988.png (5.01 KiB) Viewed 240 times
ทำนี้เราก็จะสามารถทำให้โมดูลใน joomla ของเราเปลี่ยนได้ 2 ภาษาแล้วไม่อยากอย่างที่คิดเลยใช้ไหมล่ะครับก็หวังว่าบทความนี้จะเป็นประโยชน์ให้กับทุกท่านที่สนในในการพัฒนาเว็บไซต์ด้วย joomla นะครับและหวังเป็นอย่างยิ่งว่าท่านที่ได้รับความรู้นี้ไปแล้วจะนำความรู้นี้ไปส่งต่อกับผู้ที่มีความสบใจเหมือนกับเรานะครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22581
Joined: 22/09/2008 6:18 pm
Contact:

Re: วิธีการทำให้ joomla Extensions รองรับได้หลายภาษา

Post by mindphp » 12/07/2019 5:59 pm

ย้ายกระทู้ Post ผิดหมวด
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: วิธีการทำให้ joomla Extensions รองรับได้หลายภาษา

Post by Patipat » 18/07/2019 2:01 pm

ทำไมของผม มันแสดงเป็นชื่อตัวแปรครับ มันไม่แสดง คำที่เรากำหนดให้

รูปนี้ชื่อตัวแปรครับ
Selection_999(283).png
Selection_999(283).png (8.19 KiB) Viewed 195 times
รูปนี้ผลลัพธ์
Selection_999(284).png
Selection_999(284).png (58.47 KiB) Viewed 195 times
ตรงนี้โค้ดแสดงครับ

Code: Select all

<?php echo JText::_('MOD_MZC_PRODUCTS_SLIDES_SHOW'); ?>
If you fall, let you stand. :)

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 10571
Joined: 18/04/2012 9:39 am

Re: วิธีการทำให้ joomla Extensions รองรับได้หลายภาษา

Post by tsukasaz » 18/07/2019 2:06 pm

หลักการชื่อไฟล์ภาษา .ini ประกอบด้วย
=> ตัวย่อภาษา . ชื่อโมดูล . ini

ยกตัวอย่างโมดูลชื่อ mod_test หน้าเว็บภาษาไทย จะต้องตั้งชื่อไฟล์ว่า
=> th-TH.mod_test.ini
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: วิธีการทำให้ joomla Extensions รองรับได้หลายภาษา

Post by Patipat » 18/07/2019 2:13 pm

ได้แล้วครับผม ขอบคุณครับ
If you fall, let you stand. :)

Post Reply

Return to “Joomla Developing Knowledge”

Users browsing this forum: No registered users and 3 guests