เพิ่ม-แก้ไข Language ใน Node ด้วย Views Bulk Operations

ในบางครั้งตอนเริ่มต้นทำเว็บไซต์ หลายคนอาจจะยังไม่ได้ตัดสินใจหรือยังไม่รู้ว่าต้องทำเนื้อหาหลายภาษา แต่พอใช้งานไปสักพัก แล้วตัดสินใจว่าต้องการเพิ่มเนื้อหาภาษาอื่นในเว็บไซต์ ก็จะต้องเปิดโมดูล Language และ Content Translation เพื่อรองรับการแปลหลายภาษา

เปิดใช้โมดูล Language และ Content Translation เพื่อรองรับเนื้อหาหลายภาษา

ถ้าเว็บไซต์แสดงเนื้อหาหลายภาษาแยกจากกัน ไม่ได้แปลกันตรงๆ (เนื้อหาเดียวกันแต่แปลหลายภาษา) สามารถเปิดแค่โมดูล Language อย่างเดียวก็ได้ แล้วตอนโพสต์เนื้อหาก็เลือกว่าเนื้อหานั้น เป็นภาษาอะไร

แต่ถ้ามีการแปลเนื้อหาให้เป็นภาษาอื่นด้วย จะต้องเปิดโมดูล Content Translation เพิ่มเติม เพื่อจะได้มีเมนู Translate เพิ่มเข้ามาในเนื้อหา Node นั้นๆ

ใช้เครื่องมือ Views Bulk Operations เพื่อเพิ่ม-แก้ไข ข้อมูลภาษา Language ในแต่ละเนื้อหา Node

เมื่อเปิดให้เว็บไซต์ Drupal สามารถแสดงเนื้อหาได้หลายภาษา หลังจากเปิดใช้งานโมดูล Language และเพิ่ม "ภาษาที่ต้องการใช้งาน" เข้าในระบบแล้ว ในการโพสต์เนื้อหาใหม่ หลังจากนั้น ระบบ Drupal จะระบุ ข้อมูลภาษา Language กำกับเนื้อหานั้นเสมอ

ถ้าไม่ได้แก้ไขอะไรเลย ระบบ Drupal จะเลือกเป็น Site's default language (Thai) เป็นค่าเริ่มต้น แนะนำว่าให้เปลี่ยนเป็น Interface text language selected for page (ระบุภาษาตามที่ผู้ใช้งานกำลังใช้งานอยู่)

แก้ไขเนื้อหาเก่า ให้แสดงข้อมูลภาษา Language ในแต่ละ Node ให้ถูกต้อง

คราวนี้ พวกเนื้อหาเก่าๆ อาจจะไม่เคยระบุ ข้อมูลภาษา Language มาก่อนเลย หรือระบุเป็นภาษาอื่น ที่ไม่ถูกต้อง

จะต้องใช้โมดูล Views Bulk Operations ร่วมกับ Views Bulk Edit เพื่อแก้ไขข้อมูลในฟิลด์ต่างๆ ให้เป็นข้อมูลที่ถูกต้อง

สำหรับ Views Bulk Edit สามารถประยุกต์ใช้ได้หลายอย่าง เช่น เปลี่ยน User ID ของ Node, เพิ่ม Term เข้าไปในหลาย Node พร้อมๆ กัน หรือ เปลียน ข้อมูลภาษา Language ให้กับเนื้อหาเก่า

ตัวอย่าง Node ที่ไม่เคยระบุ ข้อมูลภาษา Language ว่าเป็นภาษาอะไร

ตัวอย่าง Node ที่ระบุ ข้อมูลภาษา Language เป็น English (ต้องการเปลี่ยนเป็น Thai)

เมื่อติดตั้งโมดูล Views Bulk Operations และ Views Bulk Edit เรียบร้อยแล้ว ก็ให้สร้าง Views ใหม่ ขึ้นมา อาจจะแสดงผลเป็นแบบตาราง เพื่อสะดวกในการทำงาน

ในการเลือก Fields ที่ต้องการแสดง ให้เลือก Title และ Original language เพื่อดูว่าเนื้อหานั้นระบุ ข้อมูลภาษา Language ว่าเป็นภาษาใด

จากนั้นเลือก Views bulk operations (ในหมวดหมู่ Global) โดยเลือก Action เป็น Modify field values (แก้ไขข้อมูลในฟิลด์)

และในส่วนของ Filter criteria (เงื่อนไขการแสดงผล) ให้เลือก Original language และเลือกเมนู Expose this filter to visitors, to allow them to change it (อนุญาตให้ผู้ใช้งานเลือกเปลี่ยนข้อมูลที่เลือกได้)

ส่วนของการตั้งค่า ก็จะประมาณนี้ Fields > Views bulk operations และ Filter criteria > Original language (exposed)

สำหรับการใช้งาน ตาราง Views ก็จะแสดงตัวเลือก Original language เพื่อระบุว่าต้องการให้ Views ดึง ข้อมูลภาษา Language ใด ออกมาบ้าง จากนั้นให้ ติ๊กเลือก เนื้อหาที่ต้องการเปลี่ยน ข้อมูลภาษา Language แล้วกดปุ่ม Modify field values

เมื่อคลิกเลือก Modify field values แล้ว จะพบตัวเลือกว่าจะแก้ไขข้อมูลในช่องฟิลด์ไหน

ในที่นี้ เลือก Language โดยกำหนด ข้อมูลภาษา Language ที่ถูกต้อง จากนั้นเลือก Apply นำไปใช้กับเนื้อหาที่เลือกจากตาราง Views ข้างต้น

เท่านี้ก็สามารถเปลี่ยนแก้ไข ข้อมูลภาษา Language ของเนื้อหาเก่าคราวละเยอะๆ ได้แล้ว