WPML

ก่อนที่คุณจะเริ่มต้น

ติดตั้งและเปิดใช้งานปลั๊กอินเหล่านี้:

  • Ninja Forms
  • WPML และ WPML การแปลสตริง
  • Ninja Forms Multilingual (ส่วนเสริมที่ครอบคลุมในหน้านี้)

สร้างฟอร์มใน Ninja Forms ด้วยภาษาต้นทางของเว็บไซต์คุณ รวมถึงโครงสร้างแบบหลายขั้นตอน (Multi-Step) ตรรกะแบบมีเงื่อนไข (Conditional Logic) ข้อความการตรวจสอบความถูกต้อง และการดำเนินการ (Actions) ที่คุณต้องการ (ข้อความแสดงความสำเร็จ การเปลี่ยนเส้นทางหลังการส่ง อีเมล การดำเนินการผสานการทำงาน) ส่งฟอร์มไปแปลหลังจากที่ฟอร์มทำงานได้อย่างสมบูรณ์แล้ว

แปลทุกอย่างโดยอัตโนมัติจะจัดการเรื่องนี้ให้คุณ

หากเว็บไซต์ของคุณเปิดใช้งาน แปลทุกอย่างโดยอัตโนมัติ คุณไม่จำเป็นต้องส่งฟอร์มเพื่อแปลด้วยตนเอง WPML จะดึงฟอร์มใหม่และฟอร์มที่อัปเดตไปพร้อมกับเนื้อหาที่เหลือของคุณและแปลอยู่เบื้องหลัง ขั้นตอนการแทรกลงในหน้าเว็บด้านล่างยังคงนำมาใช้ แต่ขั้นตอนการส่งฟอร์มเพื่อแปลจะเป็นไปโดยอัตโนมัติ เนื้อหาส่วนที่เหลือในหน้านี้จะอธิบายถึงวิธีการทำด้วยตนเองสำหรับเว็บไซต์ที่ใช้ แปลบางส่วน: คุณเลือกสิ่งที่จะแปล (หรือสำหรับฟอร์มที่คุณต้องการแปลก่อนคิวอัตโนมัติ)

ส่งฟอร์มเพื่อแปล

  1. ไปที่ WPML > การแปล > แดชบอร์ด
  2. ขยายส่วน Ninja Forms
  3. ทำเครื่องหมายที่ฟอร์มที่คุณต้องการแปล
  4. เลือกวิธีการแปล: PTC (แนะนำ), นักแปลของคุณ หรือ แปลด้วยตัวเอง
  5. คลิก แปล

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

แทรกฟอร์มลงในหน้าที่แปลแล้วของคุณ

Ninja Forms จะอยู่ภายในหน้าหรือโพสต์ โดยปกติจะผ่าน บล็อก Ninja Forms หรือ shortcode [ninja_form id="X"] กฎการแทรกสำหรับหลายภาษาคือ:

ใช้บล็อกหรือ shortcode เดียวกันในหน้าเว็บของทุกเวอร์ชันภาษา อย่าสร้างฟอร์มแยกต่างหากสำหรับแต่ละภาษา

ขั้นตอนการทำงาน:

  1. สร้างฟอร์มเพียงครั้งเดียวในภาษาต้นทางของคุณ
  2. ส่งฟอร์มเพื่อแปล (หรือปล่อยให้ แปลทุกอย่างโดยอัตโนมัติ จัดการ)
  3. แทรกฟอร์มลงในหน้าภาษาต้นทางโดยใช้บล็อก Ninja Forms หรือ shortcode [ninja_form]
  4. แปลหน้าเว็บผ่าน WPML > การแปล > แดชบอร์ด ด้วยวิธีเดียวกับที่คุณใช้แปลหน้าอื่น ๆ การฝังฟอร์มจะยังคงอยู่ในหน้าที่แปลแล้ว
  5. เมื่อผู้เยี่ยมชมเปิดหน้าที่แปลแล้ว Ninja Forms Multilingual จะแสดงฟอร์มในภาษาของผู้เยี่ยมชมโดยอัตโนมัติ – ด้วย ID ฟอร์มเดียวกัน shortcode เดียวกัน และเนื้อหาที่แปลแล้ว

คุณไม่จำเป็นต้องใช้ ID ฟอร์มที่แตกต่างกันสำหรับแต่ละภาษา คำแปลจะเชื่อมโยงกับฟอร์มต้นทาง Ninja Forms Multilingual จะเลือกเวอร์ชันภาษาที่ถูกต้องในขณะที่แสดงผล

ข้อยกเว้น – เมื่อคุณต้องการฟอร์มที่แตกต่างกันในแต่ละภาษาอย่างแท้จริง หากคุณต้องการฟอร์มที่มีโครงสร้างแตกต่างกันในแต่ละภาษา (ฟิลด์ต่างกัน การดำเนินการต่างกัน ตรรกะต่างกัน) ให้สร้าง Ninja Forms แยกกัน (หนึ่งฟอร์มต่อภาษา) และแทรกชอร์ตโค้ดของแต่ละฟอร์มลงในหน้าเว็บเวอร์ชันภาษาที่ตรงกันโดยใช้ตัวแก้ไข WordPress สำหรับการแปลนั้น นั่นเป็นสถานการณ์เดียวที่ชอร์ตโค้ดจะแตกต่างกันในแต่ละภาษา

ข้อควรระวังสำหรับปลั๊กอินสร้างหน้าเว็บ

หากหน้าเว็บของคุณสร้างด้วย Divi, Elementor หรือปลั๊กอินสร้างหน้าเว็บอื่น ๆ ที่ครอบ shortcode ไว้ในโมดูลข้อความของตัวเอง shortcode อาจไม่ถูกส่งผ่านไปยังการแปลอย่างสมบูรณ์เสมอไป หากหน้าที่แปลแล้วแสดงฟอร์มในภาษาต้นทาง ให้เปิดหน้าที่แปลแล้วในปลั๊กอินสร้างหน้าเว็บ และแทรกบล็อกหรือ shortcode ของฟอร์มเข้าไปใหม่ที่นั่น ตัวแก้ไขบล็อกและตัวแก้ไขแบบคลาสสิกดั้งเดิมของ WordPress จะไม่มีปัญหานี้

ป้ายกำกับฟิลด์และประเภทฟิลด์

ป้ายกำกับฟิลด์ ข้อความตัวแทน (placeholder) และตัวเลือกของ Ninja Forms ทุกรายการจะปรากฏในงานแปล แคตตาล็อกฟิลด์ทั้งหมดสามารถแปลได้: ข้อความ ย่อหน้า ชื่อ อีเมล ที่อยู่ โทรศัพท์ รายการ (เลือก ปุ่มตัวเลือก ช่องทำเครื่องหมาย เลือกหลายรายการ) ตัวเลข วันที่/เวลา อัปโหลดไฟล์ ส่ง

ฟิลด์แบบทำซ้ำ (Repeater Fields) จะแปลในระดับแถว: ป้ายกำกับปุ่มเพิ่มแถวและป้ายกำกับฟิลด์ของแต่ละแถวจะอยู่ในงานแปล นักแปลจะเห็นโครงสร้าง Repeater ที่สมบูรณ์ โดยป้ายกำกับของแต่ละฟิลด์ย่อยจะเป็นแถวที่สามารถแปลได้

ฟิลด์เลือกรูปภาพ

ฟิลด์เลือกรูปภาพจะจับคู่ภาพขนาดย่อกับป้ายกำกับข้อความ Ninja Forms Multilingual จะแปลป้ายกำกับตามแต่ละภาษาในขณะที่รูปภาพยังคงใช้ร่วมกัน ตัวเลือกแบบรูปภาพจะทำงานเหมือนกันในทุกภาษา โดยจะแปลเฉพาะคำบรรยายภาพเท่านั้น

ฟอร์มแบบหลายขั้นตอน

สำหรับฟอร์มแบบหลายขั้นตอน หัวข้อของแต่ละขั้นตอนและปุ่มนำทางในแต่ละขั้นตอน (Previous, Next, Submit) จะแปลเป็นแถวของตัวเอง ตรรกะแบบมีเงื่อนไข (Conditional Logic) ในแต่ละขั้นตอนจะยังคงอยู่หลังจากการแปล การจับคู่ค่าจะรักษาค่าตัวเลือกพื้นฐานให้สอดคล้องกันในทุกภาษา

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

เค้าโครงและสไตล์

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

บันทึกความคืบหน้า

สำหรับฟอร์มที่เปิดใช้งานการบันทึกความคืบหน้า ข้อความแจ้งฝั่งผู้เยี่ยมชมจะถูกแปล:

  • ป้ายกำกับปุ่ม Save Progress
  • หัวเรื่องและเนื้อหาของอีเมลที่มีลิงก์สำหรับทำต่อ
  • ข้อความแสดงความสำเร็จหลังจากบันทึก

ทั้งสามรายการนี้จะอยู่ในงานแปล หลังจากการแปล ให้ทดสอบโดยบันทึกแบบฟอร์มค้างไว้ในแต่ละภาษา และยืนยันว่าอีเมลสำหรับทำต่อส่งมาในภาษาที่ถูกต้อง

ข้อความการตรวจสอบความถูกต้องของแต่ละฟิลด์

แต่ละฟิลด์จะมีข้อความการตรวจสอบความถูกต้องของตัวเอง: ข้อผิดพลาดสำหรับฟิลด์ที่จำเป็น ข้อผิดพลาดของรูปแบบ ข้อความการตรวจสอบความถูกต้องที่กำหนดเอง แต่ละรายการจะปรากฏในงานแปล ข้อความสำหรับ Anti-Spam และ Honeypot จะแปลผ่าน WPML การแปลสตริง (ไม่ใช่งานแปลฟอร์ม)

การดำเนินการข้อความแสดงความสำเร็จและการดำเนินการเปลี่ยนเส้นทางหลังการส่ง

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

การดำเนินการผ่านอีเมล

การดำเนินการผ่านอีเมลทุกรายการในฟอร์มจะแปลอย่างเป็นอิสระ To, From Name, Subject และ Email Message ทั้งหมดจะปรากฏในงานแปล ฟอร์มที่มีการดำเนินการผ่านอีเมลหลายรายการ (เช่น การแจ้งเตือนผู้ดูแลระบบ + การยืนยันผู้เยี่ยมชม) จะแปลการดำเนินการแต่ละรายการแยกกัน เพื่อให้ข้อความในแต่ละภาษาเป็นอิสระจากกัน

ข้อจำกัดที่ทราบแล้วหนึ่งประการ

แท็กผสาน (Merge tags) ภายในเทมเพลตการดำเนินการผ่านอีเมลจะไม่ถูกแปลตามภาษา การแทรกแท็กผสานจะใช้เทมเพลตภาษาต้นทาง ดังนั้นข้อมูลฟอร์มจะถูกแทนที่เข้าไป แต่ประโยคโดยรอบจะยังคงเป็นภาษาต้นทาง โดยมีการติดตามปัญหานี้ในหน้าข้อผิดพลาด (errata) วิธีแก้ปัญหาชั่วคราว: สร้างประโยคโดยรอบโดยไม่มีแท็กผสานในจุดที่ความแตกต่างของภาษามีความสำคัญ หรือยอมรับข้อจำกัดนี้สำหรับข้อความที่ไม่มีผลกระทบมากนัก

การดำเนินการผสานการทำงาน

สถาปัตยกรรม Actions ของ Ninja Forms หมายความว่าการผสานการทำงานทุกรายการคือขั้นตอนการทำงานในแต่ละฟอร์ม ข้อความที่แสดงต่อผู้เยี่ยมชมของการดำเนินการทุกรายการสามารถแปลได้:

  • Webhook Actions เนื้อหาคำขอ (request body) และป้ายกำกับที่แสดงต่อผู้เยี่ยมชมสามารถแปลได้ ส่วนค่าฟิลด์จะยังคงเป็นมาตรฐาน เพื่อไม่ให้จุดรับข้อมูล (endpoints) เกิดข้อผิดพลาด
  • Mailchimp / AWeber / Constant Contact / ActiveCampaign / Campaign Monitor / CleverReach / Drip / EmailOctopus / Emma / Kit / MailerLite / MailPoet ป้ายกำกับรายการ / เซกเมนต์ / แท็กสามารถแปลได้ หากอยู่ในรูปแบบสตริงระดับฟอร์ม
  • HubSpot / Salesforce / ZohoCRM ป้ายกำกับไปป์ไลน์ / ขั้นตอน / ฟอร์มสามารถแปลได้
  • Zapier / Slack / Trello สตริงของช่องทาง ป้ายกำกับ และชื่อฟอร์มเว็บฮุคสามารถแปลได้

สำหรับการผสานการทำงานด้านการชำระเงิน (Stripe, Authorize.net, Elavon, PayPal) คำอธิบายการซื้อและป้ายกำกับปุ่มที่แสดงต่อผู้เยี่ยมชมสามารถแปลได้ ให้ทดลองทำธุรกรรมในแต่ละภาษาโดยใช้โหมดทดสอบของผู้ให้บริการชำระเงิน และยืนยันว่าข้อความในใบเสร็จถูกต้อง

ข้อจำกัดที่ทราบแล้ว – การส่งฟอร์ม PDF

ส่วนเสริม Ninja Forms PDF Form Submission จะไม่สร้าง PDF เมื่อเปิดใช้งาน Ninja Forms Multilingual ในฟอร์มที่มีการกำหนดค่าการแปล ปัญหานี้มีการติดตามในกระทู้สนทนา วิธีแก้ปัญหาชั่วคราว: ปิดการใช้งานส่วนเสริม PDF สำหรับฟอร์มที่แปลแล้วจนกว่าจะมีการแก้ไขปัญหาความเข้ากันได้

ข้อผิดพลาดที่พบบ่อย

  • เนื้อหาของการดำเนินการผ่านอีเมลมีข้อความรอบแท็กผสานที่ไม่ได้รับการแปล เป็นข้อจำกัดที่ทราบแล้ว (ดูด้านบน) ให้ปรับโครงสร้างเนื้อหาอีเมลใหม่เพื่อวางข้อความที่แปลแล้วไว้นอกการแทรกแท็กผสาน หรือยอมรับข้อจำกัดนี้
  • อีเมลแจ้งเตือนผู้ดูแลระบบส่งมาในภาษาต้นทาง ยืนยันว่าการดำเนินการผ่านอีเมลที่คุณกำลังทดสอบได้ถูกส่งไปแปลอีกครั้งหลังจากการแก้ไขครั้งล่าสุดของคุณ หากยังคงมีปัญหา ให้ตรวจสอบสถานะจากกระทู้สนทนาที่เกี่ยวข้อง
  • ตรรกะแบบมีเงื่อนไข (Conditional Logic) หยุดทำงานในฟอร์มที่แปลแล้ว ป้ายกำกับตัวเลือกถูกแก้ไขในภาษาต้นทางหลังจากการแปล ให้ส่งฟอร์มไปแปลอีกครั้งเพื่อรีเฟรชการจับคู่ค่า
  • การส่งฟอร์ม PDF หยุดทำงาน ปิดการใช้งานส่วนเสริมหรือลบการแปลออกในระหว่างรอการแก้ไขปัญหาความเข้ากันได้

เขียนโดย Amir · อัปเดตล่าสุดเมื่อ 2 กรกฎาคม 2026

เขียนโดย Amir · อัปเดตล่าสุด 2 กรกฎาคม 2026