WPML

ก่อนเริ่มต้น

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

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

สร้างฟอร์มใน Contact Form 7 ด้วยภาษาต้นทางของเว็บไซต์ (ทุกแท็กฟอร์ม เทมเพลต Mail และ Mail (2) ทุกรายการในแท็บ Messages และ Additional Settings ใด ๆ) ก่อนส่งฟอร์มไปแปล คุณสามารถแก้ไขฟอร์มในภายหลังและส่งไปแปลใหม่ได้หากมีการเปลี่ยนแปลงใด ๆ

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

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

ส่งฟอร์มไปแปล

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

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

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

Contact Form 7 จะอยู่ภายในหน้าหรือโพสต์ผ่านชอร์ตโค้ด [contact-form-7] ซึ่งมักสร้างขึ้นจากหน้าจอผู้ดูแล Contact ในรูปแบบ [contact-form-7 id="123" title="My Form"] กฎการแทรกหลายภาษาคือ:

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

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

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

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

ชอร์ตโค้ดที่อิงตาม ID และอิงตามชื่อต่างก็ใช้งานได้ [contact-form-7 id="123" title="Contact form 1"] ทำงานแบบหลายภาษาได้ทันที [contact-form-7 title="Contact form 1"] (เฉพาะชื่อ ไม่มี ID) ก็แสดงผลเป็นภาษาที่ถูกต้องเช่นกัน การระบุฟอร์มด้วยชื่อเพียงอย่างเดียวเริ่มมีในเวอร์ชัน 1.1.0 (มิถุนายน 2021) ทั้งสองรูปแบบนั้นปลอดภัย

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

ข้อควรระวังของเครื่องมือสร้างหน้าเว็บ

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

ป้ายกำกับแท็กฟอร์มและสตริงที่แสดงต่อผู้เยี่ยมชม

เนื้อหาที่แสดงต่อผู้เยี่ยมชมของแท็กฟอร์มทุกตัวจะได้รับการแปล: ป้ายกำกับ (ข้อความภายนอกแท็กในวงเล็บ) ป้ายกำกับปุ่ม (ค่าใน [submit "Send"]) ข้อความตัวอย่างที่ตั้งค่าผ่านตัวเลือก placeholder และค่าตัวเลือกภายในแท็ก [checkbox] [radio] และ [select]

ประเภทและชื่อของแท็กฟอร์มจะไม่ได้รับการแปล เนื่องจากเป็นตัวระบุ ค่าของแท็กฟอร์ม (ตัวเลือกที่แสดงต่อผู้เยี่ยมชม) จะได้รับการแปล ตัวอย่าง:

[select your-country "China" "India" "San Marino"]

ในการแปลภาษาฝรั่งเศส "China" จะกลายเป็น "Chine" ในขณะที่ your-country (ชื่อแท็กฟอร์ม) และ select (ประเภท) จะยังคงเหมือนเดิม การแทนที่แท็กเมลยังคงทำงานได้เนื่องจากการแปลจะรักษาตำแหน่งของแต่ละค่าไว้

ค่าที่คั่นด้วยเครื่องหมายขีด – แปลป้ายกำกับ รักษาค่าให้คงที่

ไวยากรณ์เครื่องหมายขีด (pipe) ช่วยให้คุณแยกป้ายกำกับที่แสดงต่อผู้เยี่ยมชมออกจากค่าที่ส่งในอีเมล:

[select your-country
  "Chinese|CN"
  "Indian|IN"
  "Sammarinese|SM"]

เมื่อคุณแปลฟอร์มนี้ จะมีเพียงป้ายกำกับ (Chinese Indian Sammarinese) เท่านั้นที่ได้รับการแปล ส่วนค่า (CN IN SM) จะยังคงเป็นค่ามาตรฐาน ผู้เยี่ยมชมชาวฝรั่งเศสจะเห็น Chinois, Indien, Saint-Marinais ในขณะที่เนื้อหาอีเมลและตัวจัดการแบ็กเอนด์ใด ๆ จะยังคงได้รับ CN IN SM ใช้ไวยากรณ์เครื่องหมายขีดในทุกที่ที่คุณต้องการให้ค่าที่ส่งมาคงที่ในทุกภาษา: การแมป CRM รหัส SKU การชำระเงิน และรหัสทางภูมิศาสตร์

แท็กการยอมรับและแบบทดสอบ

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

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

[quiz captcha
  "1+1=?|2"
  "2+3=?|5"]

แท็บ Messages

แท็บ Messages ของ Contact Form 7 มีสตริงการตรวจสอบความถูกต้องที่แก้ไขได้ประมาณ 16 รายการ ซึ่งเป็นสตริงที่ผู้เยี่ยมชมจะเห็นเมื่อส่งข้อมูลและเมื่อเกิดข้อผิดพลาด ทุกรายการจะได้รับการแปลในงานเดียวกัน:

  • Thank you for your message. It has been sent.
  • One or more fields have an error. Please check and try again.
  • There was an error trying to send your message. Please try again later.
  • This field is required.
  • This e-mail address is invalid.
  • The telephone number is invalid.
  • The URL is invalid.
  • The number is smaller than the minimum allowed.
  • The number is larger than the maximum allowed.
  • The date format is incorrect.
  • The file is too big.
  • The file is not supported.
  • The Acceptance checkbox is required.
  • The answer to the quiz is incorrect.
  • (รวมถึงข้อความเริ่มต้นที่เหลือที่ CF7 มีให้)

หากแท็บ Messages ของคุณใช้แท็กเมลเพื่อแทรกข้อมูลที่ป้อน (Thanks [your-name], your message has been sent!) แท็กเมลจะยังคงทำงานได้อย่างถูกต้องหลังจากการแปล

Mail และ Mail (2)

เทมเพลตอีเมลขาออกสองแบบของ Contact Form 7 คือ Mail (การแจ้งเตือนผู้ดูแลระบบ) และ Mail (2) (การตอบกลับเสริมหรือระบบตอบรับอัตโนมัติถึงผู้เยี่ยมชม) จะแปลแยกกัน To, From, Subject, Additional headers, Message body และคำอธิบาย File attachments ทั้งหมดจะอยู่ในงานแปล แท็กเมลภายในเนื้อหาที่แปลแล้ว ([your-name] [your-message] [your-email]) จะทำงานได้อย่างถูกต้อง

สำหรับ Mail (2) เนื้อหาของระบบตอบรับอัตโนมัติที่แสดงต่อผู้เยี่ยมชมคือส่วนที่การแปลมีความสำคัญที่สุด นั่นคือข้อความที่จะส่งไปยังกล่องจดหมายของผู้เยี่ยมชม ส่งข้อมูลทดสอบจากหน้าที่แปลแล้วและยืนยันว่าระบบตอบรับอัตโนมัติส่งมาในภาษาของผู้เยี่ยมชม

การผสานรวมการส่งข้อมูล

Contact Form 7 มีการผสานรวมอยู่ไม่กี่รายการแต่ล้วนสำคัญ แต่ละรายการจะรักษาภาษาของผู้เยี่ยมชมไว้เมื่อกำหนดค่าการแปลแล้ว:

  • Flamingo ส่วนเสริมการจัดการการส่งข้อมูลของผู้พัฒนา Contact Form 7 ข้อมูลที่ส่งจะอยู่ใน Contact > Inbound Messages โดยที่หัวข้อและเนื้อหาที่แปลแล้วจะยังคงอยู่ครบถ้วน
  • Constant Contact การผสานรวมการตลาดผ่านอีเมลอย่างเป็นทางการของ CF7 ข้อมูลที่ผู้เยี่ยมชมป้อนจะส่งไปยังรายชื่อ Constant Contact ของคุณในภาษาของผู้เยี่ยมชม
  • Stripe ฟิลด์แท็กฟอร์ม [stripe] และข้อความใบเสร็จของ Contact Form 7 จะปรากฏในงานแปลทั้งคู่
  • Akismet ข้อความป้องกันสแปมจะแปลผ่าน WPML การแปลสตริง (ไม่ใช่งานแปลฟอร์ม)
  • reCAPTCHA ข้อความแสดงข้อผิดพลาดที่แสดงต่อผู้เยี่ยมชมจะแปลผ่าน WPML การแปลสตริง

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

  • การยอมรับที่มีลิงก์ฝังตัวชี้ไปที่หน้าความเป็นส่วนตัวของภาษาที่ไม่ถูกต้อง แก้ไขการแปลการยอมรับใน ตัวแก้ไขการแปลขั้นสูง และตั้งค่าปลายทางของลิงก์สำหรับแต่ละภาษา
  • แฮชของชอร์ตโค้ดไม่ตรงกันใน CF7 6.0+ แก้ไขแล้วใน WPML Multilingual for CF7 1.3.2 (พฤศจิกายน 2024) ให้อัปเกรดหากคุณพบปัญหานี้
  • คำแปลในแท็บ Messages ไม่ปรากฏขึ้น ยืนยันว่า WPML การแปลสตริง เปิดใช้งานอยู่ และได้ส่งฟอร์มไปแปลใหม่แล้วหลังจากแก้ไขแท็บ Messages
  • แท็กเมลภายในการแปลแสดงผลเป็นสตริงว่าง ตรวจสอบว่าชื่อแท็กฟอร์มในแท็กเมล (เช่น [your-name]) ตรงกับแท็กฟอร์มในฟอร์ม การแปลจะไม่ทำให้แท็กเมลทำงานผิดพลาด แต่การเปลี่ยนชื่อแท็กฟอร์มหลังจากการแปลจะทำให้เกิดปัญหา

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

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