คุณสมบัติปลั๊กอินราคาแหล่งข้อมูล
เปลี่ยนภาษา
แหล่งข้อมูลวิธีแปลภาษา RTL ใน WordPress: อารบิก ฮิบรู เปอร์เซีย

วิธีแปลภาษา RTL ใน WordPress: อารบิก ฮิบรู เปอร์เซีย

SimplePoTranslate Team20 มีนาคม 2569
วิธีแปลภาษา RTL ใน WordPress: อารบิก ฮิบรู เปอร์เซีย

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

ยินดีต้อนรับสู่โลกของภาษาที่เขียนจากขวาไปซ้าย (RTL) ซึ่งการแปลเป็นเพียงครึ่งหนึ่งของความท้าทาย

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

คู่มือนี้ครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้: วิธีการทำงานของ RTL ใน WordPress วิธีแก้ไข CSS วิธีจัดการไฟล์ .po ที่มีสตริง RTL และวิธีหลีกเลี่ยงข้อผิดพลาดที่พบบ่อยที่สุด

วิธีการทำงานของ RTL ใน WordPress

WordPress มีการรองรับ RTL ในตัว เมื่อคุณตั้งค่าภาษาของไซต์เป็นภาษาอารบิก (ar), ฮิบรู (he) หรือเปอร์เซีย (fa) WordPress จะเพิ่ม dir="rtl" ลงในแท็ก <html> โดยอัตโนมัติ และโหลดสไตล์ชีต rtl.css หากธีมของคุณมีให้

นี่คือทฤษฎี ในทางปฏิบัติ ธีมส่วนใหญ่มาพร้อมกับการรองรับ RTL ที่น้อยมากหรือใช้งานไม่ได้

สิ่งที่เปลี่ยนแปลงจริง

เมื่อโหมด RTL ทำงาน เบราว์เซอร์จะจำลองเลย์เอาต์ของหน้าทั้งหมด:

  • ข้อความไหลจากขวาไปซ้าย
  • แถบด้านข้างสลับด้าน
  • เมนูนำทางเรียงลำดับย้อนกลับ
  • ค่า Padding และ Margin พลิก (ซ้ายกลายเป็นขวา)
  • ไอคอนที่มีความหมายเชิงทิศทาง (ลูกศร, เครื่องหมายเชฟรอน) จำเป็นต้องสะท้อน

หาก CSS ของธีมของคุณเขียนขึ้นสำหรับ LTR เท่านั้น การประกาศ margin-left, padding-right, float: left และ text-align: left ทุกรายการกำลังต่อสู้กับเอ็นจิน RTL ของเบราว์เซอร์

การแก้ไข CSS ของคุณสำหรับ RTL: คู่มือเชิงปฏิบัติ

แนวทางที่สะอาดที่สุดคือการใช้ CSS Logical Properties ซึ่งปรับให้เข้ากับทิศทางการเขียนของเอกสารโดยอัตโนมัติ แทนที่จะใช้ left และ right คุณใช้ inline-start และ inline-end

ก่อน: Physical Properties (เสียใน RTL)

/* LTR-only CSS -- breaks in Arabic */
.sidebar {
  float: left;
  margin-right: 20px;
}

.nav-arrow {
  padding-left: 10px;
  text-align: left;
}

.card {
  border-left: 3px solid #0073aa;
}

หลัง: Logical Properties (ใช้งานได้ทั้งสองทิศทาง)

/* Direction-agnostic CSS -- works in both LTR and RTL */
.sidebar {
  float: inline-start;
  margin-inline-end: 20px;
}

.nav-arrow {
  padding-inline-start: 10px;
  text-align: start;
}

.card {
  border-inline-start: 3px solid #0073aa;
}

ด้วย Logical Properties คุณเขียน CSS เพียงครั้งเดียวและใช้งานได้อย่างถูกต้องทั้งในภาษาอังกฤษและภาษาอารบิกโดยไม่ต้องมีการเขียนทับใดๆ

วิธีการเขียนทับ [dir="rtl"]

หากคุณไม่สามารถปรับโครงสร้างสไตล์ชีตทั้งหมดของคุณได้ คุณสามารถกำหนดเป้าหมาย RTL โดยเฉพาะโดยใช้ Attribute Selectors:

[dir="rtl"] .sidebar {
  float: right;
  margin-left: 20px;
  margin-right: 0;
}

[dir="rtl"] .nav-arrow {
  padding-left: 0;
  padding-right: 10px;
  text-align: right;
}

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

การแปลไฟล์ PO ด้วยสตริง RTL

การแปลด้วยตัวมันเองทำให้เกิดความท้าทายที่นอกเหนือไปจากเลย์เอาต์ ภาษา RTL มีลักษณะเฉพาะที่ทำให้เครื่องมืออัตโนมัติส่วนใหญ่สะดุด

ข้อความสองทิศทาง (Bidi) ในไฟล์ PO

ความซับซ้อนที่แท้จริงจะปรากฏขึ้นเมื่อข้อความ RTL และ LTR ผสมกันในสตริงเดียว ลองพิจารณารูปแบบ WordPress ทั่วไปนี้:

msgid "Powered by %s"
msgstr "مدعوم بواسطة %s"

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

สิ่งนี้เรียกว่า ข้อความสองทิศทาง (หรือ "bidi") และได้รับการจัดการโดย Unicode Bidirectional Algorithm ส่วนใหญ่มักจะทำงานโดยอัตโนมัติ แต่เมื่อคุณมีตัวยึดตำแหน่งหลายตัวหรือตัวเลขที่อยู่ติดกับข้อความ RTL ลำดับภาพอาจคาดเดาไม่ได้

ข้อผิดพลาดในการแปลทั่วไป

เครื่องมือแปลภาษาทั่วไปมักจะทำผิดพลาดเฉพาะสำหรับ RTL หลายประการ:

  1. ลำดับตัวยึดตำแหน่งกลับกัน สตริงเช่น %1$s out of %2$s อาจทำให้ตัวยึดตำแหน่งสลับกันเนื่องจาก AI จัดเรียงใหม่เพื่อให้ตรงกับไวยากรณ์ภาษาอารบิก สิ่งนี้จะสร้างเอาต์พุตที่ไม่ถูกต้องเช่น "10 out of Page" แทนที่จะเป็น "Page out of 10" เรียนรู้เพิ่มเติมเกี่ยวกับการ ปกป้องตัวแปรโค้ดระหว่างการแปล

  2. ทิศทาง HTML เสีย หากสตริงของคุณมี HTML แบบอินไลน์เช่น <span dir="ltr"> นักแปลที่ไร้เดียงสาอาจลบล้างแอตทริบิวต์ dir หรือแปลมัน

  3. รูปแบบพหูพจน์หายไป ภาษาอารบิกมีรูปแบบพหูพจน์หกรูปแบบ – ศูนย์ หนึ่ง สอง น้อย มาก และอื่น ๆ นี่คือระบบพหูพจน์ที่ซับซ้อนที่สุดในบรรดาภาษาที่ WordPress รองรับ เครื่องมือที่สร้างเพียงสองรูปแบบ (เช่น เอกพจน์/พหูพจน์ภาษาอังกฤษ) จะทำให้ไฟล์ .po ภาษาอารบิกของคุณเสีย สำหรับการเจาะลึกวิธีการทำงานของ Gettext Plurals โปรดดูคู่มือของเราเกี่ยวกับ Complex Pluralization ใน WordPress

นี่คือลักษณะของสตริงพหูพจน์ภาษาอารบิกที่แปลอย่างถูกต้องในไฟล์ .po:

# Arabic: nplurals=6
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "لا تعليقات"
msgstr[1] "تعليق واحد"
msgstr[2] "تعليقان"
msgstr[3] "%d تعليقات"
msgstr[4] "%d تعليقًا"
msgstr[5] "%d تعليق"

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

การทดสอบการใช้งาน RTL ของคุณ

การแปลและการแก้ไข CSS ไม่เพียงพอ คุณต้องตรวจสอบผลลัพธ์ในเบราว์เซอร์จริง

รายการตรวจสอบการทดสอบอย่างรวดเร็ว

  • เปลี่ยนภาษา WordPress เป็นภาษาอารบิกใน การตั้งค่า > ทั่วไป อย่าเพียงแค่เพิ่ม dir="rtl" ด้วยตนเอง – ใช้การตั้งค่าภาษาจริงเพื่อให้ WordPress โหลดการเขียนทับ RTL ของตัวเอง
  • ตรวจสอบเมนูนำทาง พวกเขาสะท้อนหรือไม่? รายการแบบเลื่อนลงเปิดในทิศทางที่ถูกต้องหรือไม่?
  • ตรวจสอบช่องฟอร์ม ข้อความที่ป้อนควรไหลจากขวาไปซ้าย ข้อความตัวยึดตำแหน่งควรจัดชิดขวา
  • ตรวจสอบเนื้อหาแบบผสมทิศทาง สตริงที่มีทั้งภาษาอารบิกและภาษาอังกฤษ (เช่น ชื่อแบรนด์หรือ URL) ควรแสดงผลในลำดับภาพที่ถูกต้อง
  • ทดสอบบนมือถือ ข้อบกพร่องของเลย์เอาต์ RTL มักจะรุนแรงกว่าบนหน้าจอขนาดเล็กที่มีพื้นที่สำหรับข้อผิดพลาดในการจัดตำแหน่งน้อยกว่า

หาก การแปลของคุณไม่ปรากฏขึ้น เลย ปัญหาอาจไม่เกี่ยวข้องกับ RTL – ตรวจสอบการคอมไพล์ไฟล์ .mo และเส้นทางไฟล์ของคุณก่อน

เคล็ดลับเครื่องมือนักพัฒนาเบราว์เซอร์

ใน Chrome DevTools คุณสามารถบังคับ RTL บนหน้าใดก็ได้ชั่วคราวโดยไม่ต้องเปลี่ยนการตั้งค่า WordPress:

/* Paste in DevTools console as: document.documentElement.dir = 'rtl' */
html {
  direction: rtl;
}

สิ่งนี้ช่วยให้คุณดูตัวอย่างอย่างรวดเร็วว่าธีมของคุณจัดการ RTL อย่างไรก่อนที่คุณจะเริ่มแปล

การทำให้การแปล RTL เป็นไปโดยอัตโนมัติในวิธีที่ถูกต้อง

การแปลภาษา RTL ด้วยตนเองมีราคาแพงและช้า นักแปลภาษาอารบิกมืออาชีพคิดค่าบริการในอัตราพรีเมียม และการหาคนที่เข้าใจทั้งภาษาและไวยากรณ์ Gettext ที่เฉพาะเจาะจงของ WordPress เป็นเรื่องยาก

SimplePoTranslate แก้ปัญหานี้ด้วยเอ็นจิน Context-Aware AI ที่เข้าใจความท้าทายเฉพาะของ RTL โดยกำเนิด:

  • รูปแบบพหูพจน์ภาษาอารบิกทั้งหกรูปแบบ ถูกสร้างขึ้นโดยอัตโนมัติ เอ็นจินของเราอ่านส่วนหัว Plural-Forms ในไฟล์ .po ของคุณและสร้างจำนวนรูปแบบที่ภาษาเป้าหมายของคุณต้องการอย่างแน่นอน ไม่มีช่อง msgstr ว่างเปล่า ไม่มีการสำรองภาษาอังกฤษ

  • ความปลอดภัยของตัวยึดตำแหน่ง ตัวแปรเช่น %s, %d และ %1$s ถูกล็อคระหว่างการแปล AI ไม่สามารถจัดเรียงใหม่ ลบ หรือทำให้เสียหายได้ แม้ว่าไวยากรณ์ภาษาอารบิกจะแนะนำลำดับคำที่แตกต่างกันก็ตาม อ่านเพิ่มเติมเกี่ยวกับวิธีที่ การล็อคไวยากรณ์ปกป้องโค้ดของคุณ

  • บริบทสองทิศทาง AI เข้าใจว่าสตริงแบบผสมทิศทางต้องมีการจัดการเป็นพิเศษและรักษาแอตทริบิวต์ทิศทาง HTML

ไม่ว่าคุณจะแปลธีมบล็อกสำหรับผู้ใช้งานภาษาฮิบรูหรือแปลร้านค้า WooCommerce ทั้งหมดเป็นภาษาเปอร์เซีย กระบวนการก็เหมือนกัน: อัปโหลดไฟล์ .po ของคุณ เลือกภาษาเป้าหมาย และดาวน์โหลดไฟล์ที่แปล เวิร์กโฟลว์ทั้งหมดใช้เวลาไม่กี่นาที ไม่กี่วัน

สำหรับคำแนะนำฉบับสมบูรณ์เกี่ยวกับกระบวนการแปลเป็นภาษาท้องถิ่นของ WordPress โปรดดูที่ คู่มือฉบับสมบูรณ์เกี่ยวกับการแปลเป็นภาษาท้องถิ่นของ WordPress

หยุดปฏิบัติกับ RTL เหมือนเป็นความคิดภายหลัง

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

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

ข่าวดี: WordPress มีโครงสร้างพื้นฐานอยู่แล้ว ธีมของคุณต้องการ CSS ที่เหมาะสม และไฟล์ .po ของคุณต้องการเครื่องมือแปลที่เคารพความซับซ้อนของภาษา RTL

พร้อมที่จะแปลไซต์ WordPress ของคุณเป็นภาษาอารบิก ฮิบรู หรือเปอร์เซียหรือไม่? เริ่มต้นได้ฟรีที่ SimplePoTranslate.com

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

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