เอนจินที่รองรับ · Electron VN
สตูดิโอวิชวลโนเวลญี่ปุ่นบางแห่งส่งเกมเป็นแอป Electron แบบกำหนดเองที่ไม่ใช่ TyranoBuilder — เรนเดอเรอร์ JavaScript บวก Chromium runtime ที่มาพร้อม แพ็กเข้า resources/app.asar อะแดปเตอร์ Electron VN ของ RuneTranslate เป็นตัวครอบจักรวาลสำหรับสิ่งเหล่านี้: มันอ่านและแพ็ก app.asar ผ่าน @electron/asar, แปลไฟล์เนื้อหาที่รู้จัก (files/text.js, html/chat.html) และรันตัวสแกนข้อความ JP ทั่วไปบนไฟล์ .js, .html, .json และ .ks ในอาร์ไคฟ์ ผลลัพธ์เป็น app.asar ที่แก้ไขแล้วซึ่งหย่อนกลับเข้า resources/ — ไม่ต้องแพตช์ Electron runtime
Electron VN แบบกำหนดเองมาในเลย์เอาต์เฉพาะ — ตัวสแกนข้อความต้นทางทั่วไปของ RuneTranslate (ปรับสำหรับญี่ปุ่นแต่จับภาษาต้นทางอื่นได้ด้วย) หาสตริงได้ แต่ไม่รู้ว่าอันไหนเป็นชื่อผู้พูดกับบทสนทนาอิสระ ล็อกรายชื่อในอภิธานศัพท์เพื่อให้ส่วนที่ดึงมาแบบฮิวริสติกสม่ำเสมอ: ทุกชื่อในแผงแชท ทุกข้อความระบบที่มีชื่อ และคำศัพท์ในโลก เมื่อตั้งอภิธานศัพท์แล้ว คุณรันการแปลใหม่ด้วยผู้ให้บริการอื่นได้ และชื่อที่ระบุยังตรงกับรันก่อนหน้า อภิธานศัพท์ 101 →
ชี้ RuneTranslate ไปที่ไดเรกทอรีเกมที่มี .exe ของ Electron อะแดปเตอร์มองหา resources/app.asar และยืนยันว่าไม่ใช่เลย์เอาต์ TyranoBuilder (ซึ่งมีอะแดปเตอร์เฉพาะ) การเข้าถึงอ่านผ่าน @electron/asar — ไม่ต้องแตกด้วยมือ
ตัวสแกนทั่วไปเดินผ่านไฟล์ .js, .html, .json และ .ks ทุกไฟล์ใน asar และดึงลิเทอรัลสตริงภาษาต้นทาง (ญี่ปุ่นตามค่าเริ่มต้น ภาษาต้นทางที่รองรับใดก็ได้) ไฟล์รูปแบบที่รู้จัก (files/text.js, html/chat.html) ได้การดึงแบบมีโครงสร้าง ไฟล์ที่ไม่รู้จักได้ตัวสแกนฮิวริสติก ไฟล์ไบนารีถูกข้าม
เลือกผู้ให้บริการ — Anthropic Claude และ OpenAI GPT-4o แข็งแกร่งที่สุดกับสตริงบทสนทนาที่ฝังใน JS ที่เชลล์เหล่านี้มักใช้ DeepL เป็นตัวสำรองที่มั่นคง Google Translate ฟรีใช้ได้กับสตริง UI สั้น ๆ ผ่านการกำหนดเส้นทางผู้ให้บริการ
ตอนส่งออก RuneTranslate เขียน app.asar ที่แก้ไขแล้วพร้อมสตริงที่แปลอบเข้าไป หย่อนกลับเข้าโฟลเดอร์ resources/ ของเกม บิลด์ที่แปลแล้วทำงานใน Electron runtime ต้นฉบับ