เอนจินคู่มือคำถามที่พบบ่อยPatreonDiscordดาวน์โหลด
เข้าสู่ระบบ
RuneTranslate · แปลเกมจากภาษาญี่ปุ่นและ 30+ ภาษา
เอนจินคู่มือเปรียบเทียบข้อความในภาพตัวแก้ไขเซฟโหมดโกงคำถามที่พบบ่อยดาวน์โหลดการเปลี่ยนแปลงTrustpilotPatreonDiscordYouTubeความเป็นส่วนตัวข้อกำหนดติดต่อ
เอนจินทั้งหมด

เอนจินที่รองรับ · Gettext (.po / .mo)

เต็มรูปแบบ — สร้างใหม่แล้วเล่นได้

ตัวแปลไฟล์ PO — แปลแคตตาล็อก gettext .po และ .mo ของเกม

gettext คือวิธีที่เกมอินดี้ที่ไม่ใช่เกมญี่ปุ่นส่วนใหญ่ใช้ทำภาษา ทั้งเกม Python และ pygame, Solarus, เกม SDL และ GTK รวมถึงทุกอย่างที่ผ่าน Poedit, Weblate หรือ Crowdin ข้อความจะอยู่ในโฟลเดอร์ locale ในรูปไฟล์ต้นทาง .po และแคตตาล็อก .mo ที่คอมไพล์แล้ว RuneTranslate ตรวจพบไฟล์เหล่านี้ตอนสร้างโปรเจกต์ แปลทุกข้อความ แล้วเขียน .mo ที่ใช้งานได้กลับไป ซึ่งเป็นไฟล์ที่เกมอ่านจริงขณะทำงาน

เคล็ดลับอภิธานศัพท์สำหรับเอนจินนี้

แคตตาล็อก gettext ส่วนใหญ่เป็นข้อความอินเทอร์เฟซ ทั้งรายการเมนู ป้ายกำกับปุ่ม ทูลทิป และบรรทัดสถานะที่ปรากฏซ้ำหลายหน้าจอ เพิ่มคำนาม ชื่อไอเทม และคำกริยาสำคัญลงในอภิธานศัพท์เพียงครั้งเดียว แล้วทุกครั้งที่ปรากฏจะออกมาเหมือนกัน เรื่องนี้สำคัญยิ่งกว่าในบทสนทนา เพราะเมนูที่เขียนว่า “บันทึก” ที่หนึ่งและ “เก็บ” อีกที่หนึ่งจะดูเหมือนข้อผิดพลาด อภิธานศัพท์ 101 →

ดาวน์โหลด RuneTranslate สำหรับ Windows

วิธีแปล Gettext (.po / .mo)

  1. ขั้นตอน 1

    เปิดโฟลเดอร์เกม

    ชี้ RuneTranslate ไปที่ไดเรกทอรีของเกม ซึ่งเป็นโฟลเดอร์ที่มี locale/, lang/ หรือ i18n/ การตรวจจับมองหาแคตตาล็อกจากไบต์จริง ไม่ใช่จากนามสกุล ดังนั้นไฟล์ .mo ที่จริงแล้วเป็นฉาก 3 มิติจะถูกข้ามไป โฟลเดอร์ที่มีไฟล์ .po กระจัดกระจายก็ใช้ได้เช่นกัน

  2. ขั้นตอน 2

    ตรวจสอบสิ่งที่พบ

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

  3. ขั้นตอน 3

    เลือกภาษาและผู้ให้บริการ

    เลือกภาษาปลายทางและผู้ให้บริการแปล ทั้ง Google หรือ DeepL แบบฟรี หรือคีย์ DeepL, OpenAI, Claude, DeepSeek ของคุณเอง ตัวยึดตำแหน่งรูปแบบ (%s, %d, %(player)s, {count}) จะถูกซ่อนก่อนแปลและคืนกลับหลังแปล ผู้ให้บริการจึงลบหรือเขียนใหม่ไม่ได้

  4. ขั้นตอน 4

    ตรวจทานในตัวแก้ไข

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

  5. ขั้นตอน 5

    ส่งออกบิลด์ที่เล่นได้

    การส่งออกจะเขียนสำเนาเกมทั้งชุด พร้อมแคตตาล็อกที่ถูกต้องใน locale/<ภาษาของคุณ>/LC_MESSAGES/ และเวอร์ชันอัปเดตของแคตตาล็อกที่เกมโหลดอยู่เดิม เพื่อให้คำแปลปรากฏไม่ว่าเกมจะเลือกภาษาด้วยวิธีใด โดยเขียนทั้ง .po และ .mo ที่คอมไพล์แล้ว

รองรับ

  • แคตตาล็อก .mo ที่คอมไพล์แล้ว — อ่านและเขียนได้ รองรับลำดับไบต์ทั้งสองแบบ ตรวจสอบกับแคตตาล็อกจริง 43 ไฟล์และ 93,717 รายการ
  • ไฟล์ต้นทาง .po รวมถึงรูปพหูพจน์ บริบท msgctxt แฟล็ก และคอมเมนต์ของผู้แปล
  • โครงสร้างมาตรฐาน locale/<ภาษา>/LC_MESSAGES/<โดเมน>.mo และโครงสร้างแบบแบนอย่าง lang/tr.po
  • ปรับจำนวนรูปพหูพจน์ให้ตรงกับภาษาปลายทาง (อังกฤษ 2 รูป → รัสเซีย 3 → ญี่ปุ่น 1) พร้อมเขียนส่วนหัวใหม่ให้สอดคล้อง
  • ตัวยึดตำแหน่งแบบ printf และวงเล็บปีกกา (%s, %d, %(player)s, {count}, {0}) ถูกซ่อนระหว่างแปลและคืนกลับภายหลัง
  • การส่งออกเขียนทั้งภาษาใหม่ และเขียนทับแคตตาล็อกที่เกมโหลดอยู่เดิม

ข้อจำกัด

  • ตรวจสอบว่าบิลด์ที่ส่งออกเปิดขึ้นและแสดงผลถูกต้องก่อนนำไปใช้จริง
  • แปลเฉพาะข้อความที่อยู่ในแคตตาล็อกอยู่แล้ว — ข้อความที่นักพัฒนาไม่เคยส่งผ่าน gettext จะไม่อยู่ใน .po/.mo และหาจากที่นั่นไม่ได้
  • ระบบถือว่า msgid คือข้อความต้นทาง ซึ่งเป็นข้อตกลงของ gettext แคตตาล็อกที่ msgid เป็นภาษาอังกฤษแต่ภาษาต้นฉบับจริงอยู่ใน msgstr จะถูกแปลจากภาษาอังกฤษ
  • เกมที่สร้างบนเอนจินที่รองรับโดยตรง (Godot, Unity, Ren’Py…) จะถูกจัดการโดยเอนจินนั้นแทน เพื่อให้เข้าถึงข้อความส่วนที่เหลือได้ด้วย
  • รายการที่ยังไม่ได้แปลจะคงคำแปลที่เกมมีอยู่เดิมไว้ แทนที่จะถูกล้างให้ว่าง

อ่านที่เกี่ยวข้อง

คำแนะนำการแปล Gettext (.po / .mo) ฉบับเต็ม
อ่านคู่มือ →

อ่านที่เกี่ยวข้อง

RuneTranslate vs Translator++
อ่านคู่มือ →

เอนจินอื่นที่รองรับ

RPG MakerRPG Maker XP/VX/AceRen'PyKirikiriWolf RPGTyranoBuilderElectron VNUnityBakinSRPG StudioNScripterGodotArtemisYU-RISAliceSoftUnrealLiveMaker