คุณสมบัติปลั๊กอินราคาแหล่งข้อมูล
เปลี่ยนภาษา
แหล่งข้อมูลทำความเข้าใจ Gettext Plurals: วิธีจัดการ Pluralization ที่ซับซ้อนใน WordPress

ทำความเข้าใจ Gettext Plurals: วิธีจัดการ Pluralization ที่ซับซ้อนใน WordPress

SimplePoTranslate Team1 ธันวาคม 2568
ทำความเข้าใจ Gettext Plurals: วิธีจัดการ Pluralization ที่ซับซ้อนใน WordPress

ในภาษาอังกฤษ การทำเป็นพหูพจน์เป็นเรื่องง่าย คุณมี "Apple" หนึ่งผล และคุณมี "Apples" สองผลขึ้นไป

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

คุณรู้หรือไม่ว่าในภาษารัสเซีย คำว่า "file" จะเปลี่ยนไปขึ้นอยู่กับว่าคุณมี 1 ไฟล์, 2-4 ไฟล์ หรือ 5 ไฟล์ขึ้นไป?

  • 1 файл (1 file)
  • 3 файла (3 files)
  • 5 файлов (5 files)

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

คู่มือนี้อธิบายว่า WordPress และ Gettext จัดการกฎที่ซับซ้อนเหล่านี้อย่างไร และวิธีทำให้เป็นอัตโนมัติอย่างถูกต้อง

องค์ประกอบทางเทคนิคของสตริงพหูพจน์

ในไฟล์ .po มาตรฐาน สตริงพหูพจน์มีลักษณะดังนี้:

msgid "You have %d new message"
msgid_plural "You have %d new messages"
msgstr[0] ""
msgstr[1] ""
  • msgid: รูปแบบเอกพจน์ (ใช้สำหรับ count = 1)
  • msgid_plural: รูปแบบพหูพจน์ (ใช้สำหรับ count != 1)
  • msgstr[N]: การแปล

สำหรับภาษาอังกฤษ คุณต้องการเพียง msgstr[0] (เอกพจน์) และ msgstr[1] (พหูพจน์) เท่านั้น แต่สำหรับภาษาอื่น ๆ คุณอาจต้องการ msgstr[2], msgstr[3] หรือแม้แต่ msgstr[5]

ส่วนหัว Plural-Forms

WordPress ทราบได้อย่างไรว่าจะใช้ msgstr ใด? โดยจะดูที่ส่วนหัวของไฟล์ .po ของคุณ

สำหรับภาษารัสเซีย ส่วนหัวจะมีลักษณะดังนี้: "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"

สูตรทางคณิตศาสตร์ที่น่ากลัวนี้บอก WordPress ว่า:

  1. มี 3 รูปแบบที่เป็นไปได้ (nplurals=3)
  2. ใช้รูปแบบ 0 หากตัวเลขลงท้ายด้วย 1 (แต่ไม่ใช่ 11)
  3. ใช้รูปแบบ 1 หากตัวเลขลงท้ายด้วย 2-4 (แต่ไม่ใช่ 12-14)
  4. ใช้รูปแบบ 2 สำหรับทุกสิ่งอื่นๆ

ทำไมนักแปลส่วนใหญ่ถึงล้มเหลวในเรื่องนี้

เมื่อคุณใช้ AI wrapper ทั่วไปหรือเครื่องมืออัตโนมัติพื้นฐาน มักจะละเว้นส่วนหัว Plural-Forms

มันเห็นอินพุตภาษาอังกฤษ (2 รูปแบบ) และพยายามบังคับให้เป็นภาษาเป้าหมาย

  • ข้อผิดพลาด: อาจเติม msgstr[0] และ msgstr[1] แต่ปล่อยให้ msgstr[2] ว่างเปล่า
  • ผลลัพธ์: เมื่อผู้ใช้ชาวรัสเซียมี 5 ข้อความ WordPress จะมองหารูปแบบ 2 หากว่างเปล่าหรือหายไป WordPress มักจะกลับไปใช้สตริงภาษาอังกฤษเดิม

ทันใดนั้น เว็บไซต์ที่แปลเป็นภาษาท้องถิ่นอย่างสมบูรณ์ของคุณจะแสดง "You have 5 new messages" เป็นภาษาอังกฤษ ตรงกลางประโยคภาษารัสเซีย สิ่งนี้ทำลายความดื่มด่ำและความไว้วางใจของผู้ใช้

ทางออก: AI ที่คำนึงถึงบริบทพร้อมการสนับสนุน Plural

การจัดการพหูพจน์อย่างถูกต้องต้องใช้สองสิ่ง:

  1. การปฏิบัติตามมาตรฐาน Gettext อย่างเคร่งครัด: เครื่องมือต้องเคารพจำนวน nplurals ในส่วนหัว
  2. ความฉลาดทางภาษา: AI ต้องรู้วิธีผันคำสำหรับช่วงตัวเลขเฉพาะเหล่านั้น

นี่คือคุณสมบัติที่มีมาแต่เดิมของ SimplePoTranslate

วิธีที่เราจัดการ Plurals ที่ซับซ้อน

เราไม่ได้แค่แปลข้อความ เราอ่านคณิตศาสตร์ในส่วนหัว .po ของคุณ

เมื่อคุณอัปโหลดไฟล์เพื่อแปลเป็นภาษาโปแลนด์ (ซึ่งมีรูปแบบพหูพจน์ 3 รูปแบบ):

  1. การวิเคราะห์ส่วนหัว: เราตรวจพบ nplurals=3
  2. Prompt Engineering: ระบบของเราสั่งให้ Context-Aware AI: "แปลสตริงนี้เป็นภาษาโปแลนด์ ให้รูปแบบ 3 แบบ: แบบหนึ่งสำหรับเอกพจน์ แบบหนึ่งสำหรับตัวเลขที่ลงท้ายด้วย 2-4 และแบบหนึ่งสำหรับอื่น ๆ "
  3. การตรวจสอบ: เราตรวจสอบว่าเอาต์พุตมี msgstr[0], msgstr[1] และ msgstr[2] อย่างครบถ้วนก่อนที่จะคอมไพล์ไฟล์

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

ดีกว่าการแปลด้วยตนเองหรือไม่

เว้นแต่คุณจะพูดภาษาเป้าหมายได้อย่างคล่องแคล่ว คุณไม่สามารถกรอกรูปแบบพหูพจน์เหล่านี้ด้วยตนเองได้ คุณจะต้องเดา SimplePoTranslate ใช้ประโยชน์จาก LLM ขั้นสูงที่ได้รับการฝึกฝนตามกฎไวยากรณ์ที่แน่นอนเหล่านี้ ทำให้มั่นใจได้ถึงความถูกต้องในระดับเจ้าของภาษา

ทำให้ Plurals ของคุณถูกต้อง

อย่าปล่อยให้ "1 Apple, 5 Apples" ทำลายรูปลักษณ์ที่เป็นมืออาชีพของเว็บไซต์ของคุณ ใช้เครื่องมือที่เข้าใจความซับซ้อนของไวยากรณ์ระดับโลก

SimplePoTranslate ให้คุณทดสอบเอ็นจิน pluralization ของเราได้ฟรี

พร้อมที่จะแปลโดยไม่ต้องปวดหัวใช่ไหม เริ่มต้นฟรีที่ SimplePoTranslate.com

หัวข้อที่เกี่ยวข้อง

แชร์บทความนี้