สืบเนื่องด้วย ผมต้องทำเว็บบริษัทเป็น 2 ภาษา www.honghuat.com คือ ภาษาไทยและอังกฤษ โดยผมใช้ WordPress ทำโดยออกแบบ Theme ใช้งานเอง ซึ่งในที่นี้ผมใช้ Plugin qTranslate ตัวนี้ทำซึ่งในกลุ่ม Plugin การทำหลายภาษานั้นก็มีหลายตัว แต่ในที่นี่ผมใช้ตัวนี้ โดยให้ท่านไป Download มาติดตั้ง แล้วทำการ Active มันก่อน ซึ่งในที่ผมจะมาอธิบายนี้ผมจะขอข้ามในส่วนของการติดตั้ง การ Set ค่าไปแต่ผมจะให้ Link ไปดูแทนเพราะว่าคนอื่นเค้าเขียนอธิบายได้ค่อนข้างละเอียดแล้ว ผมจะพูดถึงปัญหาที่เจอ และการแก้ไขปัญหาแทนน่ะครับ เพราะว่าผมเองก็มือใหม่ในการใช้ Plugin ตัวนี้

1.Download ที่ http://wordpress.org/extend/plugins/qtranslate/

2.ติดตั้งแล้วทำการ Active มันก่อน

3.ส่วนของการ Set ค่าภาษา ท่านสามารถมาดูได้ที่ Link นี้
http://don-jai.com/wp-qtranslate-wordpress-plugin/
http://byyoursites.com/wordpress-qtranslate/82907/
http://www.inkthemes.com/how-to-translate-your-wordpress-website-using-qtranslate-plugin/01/
ซึ่ง Link ดังกล่าวได้อธิบายไว้ดีอยู่แล้วน่ะครับ

4.ที่นี้มาดูวิธีการเอามาใช้งานก็มี 2 วิธีหลักๆก็คือ
-วิธีที่ 1. เป็นแบบ Widgets โดยท่านก็ไปสร้าง Widget ขึ้นมาแล้วก็ลากมาใส่ได้เลย แล้วก็เอาไปใส่ในเว็บว่าจะให้แสดงตรงไหน
-วิธีที่ 2. คือใช้คำสั่ง Code แสดงลงไปตรงๆเลย แล้วแทรกแล้วแทรกไว้ในไฟล์ที่ท่านต้องการ

echo qtrans_generateLanguageSelectCode('image');

ที่นี้จะมาพูดถึงปัญหาที่เราจะเจอต่อไป (กรณีนี้ ผมสร้างและออกแบบ Theme เองน่ะครับ)

1.กรณี ไม่แสดงรูปธงชาติ ต้องใส่ wp_head(); กับ wp_footer(); ซึ่งเป็นการใส่ให้แสดง show_admin_bar() ด้วย ต้องระวังส่วนนี้ไว้ด้วย ต้องใส่ทั้ง wp_head(); กับ wp_footer(); หากใส่แค่ wp_head(); มันจะสร้าง CSS ขึ้นมาให้เองอัตโนมัติคือ

html { margin-top: 28px !important; }
* html body { margin-top: 28px !important; }

ดังนั้นมันจะดัน Layout เราเสียไป แต่ก็สามารถแก้ไขได้โดยสั่งให้ซ่อน Admin Bar ไปที่ ไฟล์ functions.php แล้วพิมพ์คำสั่งนี้ลงไป show_admin_bar( false ); แต่ทางที่ดีควรใส่ให้ครบทั้งคู่คือ wp_head(); กับ wp_footer();

2.กรณีที่ต้องการแสดงแบบเช็คภาษาเอง ให้ทำแบบนี้แบบตรงๆกับไฟล์ php ตรงๆเลยก็ได้

_e("<!--:en-->english text<!--:--><!--:th-->ภาษาไทย text<!--:-->");

ซึ่งมันก็เหมือนเราเขียนแบบนี้

if (qtrans_getLanguage() == 'en') {
  echo 'English Text';
} elseif (qtrans_getLanguage() == 'th') {
  echo 'ภาษาไทย Text';
}

3.กรณีที่เราทำเมนูขึ้นมาก็อยากให้เป็น 2 ภาษาด้วยก็สามารถใส่เงื่อนไขแบบ Quick Code ไปตรงๆได้เลยที่ Navigation Label ของ Menus

4.ท่านสามารถเขียน CSS ไปควบคุมการแสดงผล ธงชาติ ได้เองตามปกติน่ะครับจะเป้นแบบไหนก็ได้ก็แล้วแต่เรา
จบแล้วครับปัญหาที่ผมเจอ และก็ใช้งานไปประมาณนี้ หวังว่าคงเป็นประโยชน์ไม่มากก็น้อยน่ะครับ