กรองบรรทัดที่ไม่ต้องการออกจากการแปลด้วยตัวกรอง regex
สตริงดีบัก พาธของแอสเซ็ต และข้อความจากนักพัฒนาที่หลงเหลืออยู่อาจหลุดรอดการยกเว้นอัตโนมัติไปได้ ตัวกรอง regex แบบต่อโปรเจกต์ของ RuneTranslate จะยกเว้นบรรทัดใดก็ตามที่ข้อความต้นฉบับตรงกับรูปแบบที่กำหนด — พร้อมการแสดงตัวอย่างแบบสดว่ามันจับอะไรได้บ้าง — คุณจึงไม่ต้องเสียโควตาการแปลไปกับข้อความขยะ ใช้ได้ฟรีทุกระดับสมาชิก
ชี้ RuneTranslate ไปที่เกมหนึ่ง แล้วมันจะดึงสตริงที่แปลได้ทุกตัวเท่าที่หาเจอเข้ามา ส่วนใหญ่เป็นบทสนทนาจริงและข้อความเมนู — แต่บางส่วนเป็นขยะ: บรรทัดดีบักที่หลงเหลือ ชื่อไฟล์แอสเซ็ต แฟล็กภายใน และตัวระบุที่กระจัดกระจายซึ่งเกมไม่เคยแสดงให้ผู้เล่นเห็น RuneTranslate ยกเว้นกรณีที่ชัดเจนตามแต่ละเอนจินให้อยู่แล้ว และทำเครื่องหมายไว้เป็นแถวสีแดงที่ต้องเลือกเปิดเอง แต่ทุกเกมไม่เหมือนกัน และขยะบางอย่างก็เฉพาะเจาะจงกับเกมที่คุณกำลังทำอยู่
นั่นคือหน้าที่ของตัวกรองยกเว้นด้วย regex คุณให้รูปแบบหนึ่งรูปแบบหรือมากกว่านั้นแก่ RuneTranslate แล้วบรรทัดใดก็ตามที่ข้อความต้นฉบับตรงกับรูปแบบจะถูกตัดออกจากการรัน — ตัวแปลจะข้ามไป และแสดงเป็นแถวสีแดงที่ต้องเลือกเปิดเอง ซึ่งคุณเปิดกลับมาได้เสมอ มันเป็นกลไกเดียวกับการยกเว้นในตัวของแต่ละเอนจิน เพียงแต่ขับเคลื่อนด้วยกฎของคุณเองและบันทึกไว้กับโปรเจกต์ และมันไม่มีค่าใช้จ่าย: ต่างจากอภิธานศัพท์และหน่วยความจำการแปล ตัวกรองยกเว้นด้วย regex นั้นใช้ได้ฟรีทุกระดับสมาชิก
ทำไมต้องยกเว้นบรรทัดด้วย?
มีสองเหตุผล — ข้อหนึ่งเห็นได้ชัด อีกข้อสำคัญกว่า:
- ต้นทุนและเวลา ทุกบรรทัดขยะที่คุณแปลคือโควตาของผู้ให้บริการ (หรือขีดจำกัดอัตราของตัวขูดข้อมูลฟรี) ที่ถูกใช้ไปกับข้อความที่ไม่มีใครได้อ่าน เมื่อรวมกันทั้งเกมมันก็สะสมเป็นจำนวนมาก
- ทำให้เกมยังทำงานได้ ข้อนี้คือของจริง บางบรรทัดไม่ใช่ข้อความเลย — มันคือคีย์ พาธของไฟล์ หรือตัวถูกดำเนินการของโฟลว์ที่เอนจินอ้างอิงตามค่า หากคุณแปล
bg_office_01หรือEV_FLAG_TRUEคุณอาจทำให้การเปลี่ยนฉากหรือการค้นหาตัวแปรพังไปแบบเงียบ ๆ การยกเว้นมันไว้จะทำให้บิลด์ที่ส่งออกมีเสถียรภาพ
หาได้ที่ไหน
เปิดโปรเจกต์ขึ้นมา แล้วในแถบเครื่องมือของตัวแก้ไข ให้เปิดเมนู ⋯ เพิ่มเติม และเลือก การยกเว้นด้วย regex ซึ่งจะเปิดแผง ตัวกรองยกเว้นแบบกำหนดเอง ขึ้นมา — คุณเพิ่มรูปแบบ ดูว่ามันจับอะไรได้บ้าง และนำไปใช้ ทั้งหมดในกล่องโต้ตอบเดียว
การแสดงตัวอย่างแบบสดคือหัวใจสำคัญทั้งหมด
คุณไม่ต้องนำรูปแบบไปใช้แบบมองไม่เห็นผลลัพธ์ ขณะที่คุณพิมพ์ regex RuneTranslate จะแสดง ตรงกัน N จาก TOTAL บรรทัด และแสดงรายการบรรทัดจริงบางส่วนที่มันจะจับได้ โดยอัปเดตทุกครั้งที่คุณกดแป้น รูปแบบที่ไม่ถูกต้องจะถูกทำเครื่องหมายทันทีพร้อมข้อความแสดงข้อผิดพลาด คุณจึงบันทึกรูปแบบที่เสียไม่ได้
เพราะการแสดงตัวอย่างจะแสดงบรรทัดจริงจากโปรเจกต์ของคุณ คุณจึงปรับแต่งรูปแบบได้จนกว่ามันจะจับเฉพาะขยะและไม่โดนข้อความจริง แล้วจึงนำไปใช้ มีรายละเอียดหนึ่งที่ควรจำ: รูปแบบจะจับคู่กับข้อความต้นฉบับ — ภาษาญี่ปุ่นดั้งเดิม หรือภาษาต้นทางอะไรก็ตามที่คุณใช้ — ไม่ใช่คำแปล คุณเขียนรูปแบบเทียบกับข้อความที่ยังไม่ได้แปล
รูปแบบสำเร็จรูป
แผงนี้มาพร้อมชิปพรีเซ็ตแบบคลิกเดียวสำหรับรูปแบบที่พบได้ในเกมญี่ปุ่นแทบทุกเกม:
- เฉพาะ ASCII —
^[\x00-\x7F]+$— บรรทัดที่ไม่มีอักขระของภาษาต้นทางเลย (ภาษาอังกฤษที่หลงเหลือ โรมาจิ หรือตัวระบุ) มักปลอดภัยที่จะตัดออกเมื่อภาษาต้นทางของคุณเป็นภาษาญี่ปุ่น - พาธแอสเซ็ต —
\.(png|jpe?g|gif|webp|ogg|mp3|wav|webm|mp4)$— อะไรก็ตามที่ลงท้ายด้วยนามสกุลไฟล์สื่อ - ตัวแปร —
^[a-z_]+\.[a-z_]— การอ้างอิงโค้ดแบบมีจุดคั่น เช่นf.pageหรือstate.flag - โทเคนตัวพิมพ์ใหญ่ทั้งหมด —
^[A-Z0-9_]+$— ค่าคงที่และแฟล็ก เช่นEVENT_FLAG_3 - ตัวเลข / สัญลักษณ์ —
^[\d\s.,:%/+\-]+$— แถวที่เป็นตัวเลขล้วนและมาสก์ไทล์ เช่น11111112222 - แท็กในวงเล็บ —
^\[.*\]$— ทั้งบรรทัดที่มีแค่[tag]เท่านั้น
แผงนี้ยังแสดงชีตสรุปแบบกระชับสำหรับสร้างรูปแบบของคุณเองด้วย: ^ และ $ ยึดจุดเริ่มต้นและจุดสิ้นสุดของบรรทัด, . คืออักขระใดก็ได้, * และ + หมายถึงศูนย์ตัวขึ้นไปและหนึ่งตัวขึ้นไป, ? คือมีหรือไม่มีก็ได้, \d คือตัวเลขหนึ่งหลัก, \w คืออักขระของคำ และ \s คือช่องว่าง
เขียนตัวกรองของคุณเอง
พรีเซ็ตครอบคลุมกรณีทั่วไป; สำหรับอะไรก็ตามที่เฉพาะเจาะจงกับเกม คุณเขียนนิพจน์ปกติ (regular expression) ของ JavaScript ขึ้นเอง หลักการคร่าว ๆ ไม่กี่ข้อ:
- ยึดกับทั้งบรรทัด คำว่า
debugเปล่า ๆ จะจับคู่กับบรรทัดใดก็ตามที่มีคำนั้นอยู่ — รวมถึงบทสนทนาจริงที่พูดถึงการดีบักด้วย ส่วน^DEBUG:จะจับเฉพาะบรรทัดที่ขึ้นต้นด้วยเครื่องหมายนั้น และการห่อรูปแบบไว้ใน^...$จะจับคู่ทั้งบรรทัด การยึดตำแหน่งเป็นค่าเริ่มต้นที่ปลอดภัยที่สุด - คอยดูจำนวนในตัวอย่าง ถ้ารูปแบบกระโดดจากการจับขยะ 12 บรรทัดไปเป็น 400 บรรทัด แทบจะแน่นอนว่าคุณจับข้อความจริงเข้าไปแล้ว — ตรวจดูตัวอย่างและปรับให้แคบลง
- เน้นโครงสร้างมากกว่าคำ ขยะมักจดจำได้จากรูปทรง — ตัวพิมพ์ใหญ่ทั้งหมด พาธแบบมีจุดคั่น นามสกุลไฟล์ต่อท้าย ตัวเลขล้วน — ไม่ใช่จากคำเฉพาะ รูปแบบเชิงโครงสร้างใช้ได้ทั่วทั้งโปรเจกต์
- หนึ่งกฎต่อหนึ่งแนวคิด รูปแบบเล็ก ๆ ที่ชัดเจนหลาย ๆ อันเข้าใจได้ง่ายกว่า และลบทีหลังได้ง่ายกว่า รูปแบบยักษ์อันเดียวที่อ่านไม่รู้เรื่อง
การนำไปใช้ และการยกเลิก
กด นำไปใช้และบันทึก RuneTranslate จะเก็บรูปแบบไว้กับโปรเจกต์และจัดประเภทบรรทัดทุกบรรทัดใหม่ จากนั้นบอกคุณอย่างชัดเจนว่าเกิดอะไรขึ้น — ตัวอย่างเช่น ยกเว้น 340 บรรทัด · กู้คืน 5 บรรทัด จำนวนที่กู้คืนคือบรรทัดที่ตัวกรองเคยจับได้แต่ตอนนี้ไม่จับแล้ว ซึ่งถูกนำกลับมาโดยอัตโนมัติ
มันย้อนกลับได้อย่างสมบูรณ์: ลบรูปแบบ นำไปใช้อีกครั้ง แล้วบรรทัดของมันก็จะกลับมา ตัวกรองเป็นเจ้าของเฉพาะการยกเว้นของตัวเองเท่านั้น — มันไม่มีทางไปแทนที่การยกเว้นอัตโนมัติของเอนจิน — และคุณยังเปิดบรรทัดใดบรรทัดหนึ่งกลับมาได้ด้วยสวิตช์ประจำแถวของมัน หากตัวกรองกว้างเกินไปสักหน่อย
หน้าต่างแจ้งให้รีเซ็ตคำแปลที่ถูกกรอง
มีกรณีหนึ่งที่ RuneTranslate จัดการให้คุณ: จะเป็นอย่างไรถ้าคุณกรองบรรทัดที่คุณแปลไปแล้วออก? บรรทัดที่ถูกยกเว้นจะส่งออกข้อความต้นฉบับ แต่คำแปลเดิมก็ยังผูกติดอยู่กับมัน ดังนั้นทันทีหลังจากที่คุณนำไปใช้ หากมีบรรทัดที่เพิ่งถูกกรองมีคำแปลอยู่แล้ว RuneTranslate จะถามว่าจะรีเซ็ตเป็นสถานะรอดำเนินการ — ทิ้งคำแปลเพื่อให้การส่งออกกลับไปใช้ต้นฉบับอย่างสะอาด — หรือเก็บไว้ การรีเซ็ตมักเป็นสิ่งที่คุณต้องการ เพราะคุณยกเว้นบรรทัดเหล่านั้นก็ด้วยเหตุผลว่าคุณไม่ต้องการให้มันถูกแปลนั่นเอง
มันเข้ากับสิ่งอื่น ๆ ทั้งหมดอย่างไร
ตัวกรอง regex คือเครื่องมือช่วงสุดท้าย ตัวเชื่อมเอนจินยกเว้นขยะเชิงโครงสร้างที่มันรู้จักในแต่ละรูปแบบไฟล์อยู่แล้ว ดังนั้นในเกมที่รองรับดี AI จะไม่มีทางเห็นพาธแอสเซ็ตเลย ตัวกรองมีไว้สำหรับสิ่งที่หลงเหลือ: เครื่องหมายเฉพาะของเกม ช่องดีบักแปลก ๆ สักช่อง หรือสตริงที่เอนจินเฉพาะกลุ่มดึงออกมาซึ่งไม่ค่อยจะเป็นบทสนทนา
ใช้ตัวกรองสถานะ ถูกยกเว้น ของตัวแก้ไขเพื่อตรวจดูทุกอย่างที่ถูกกันไว้ตอนนี้ — ทั้งการยกเว้นของเอนจินและการยกเว้นด้วย regex ของคุณรวมกัน — และเลือกเปิดกลับมาอันไหนก็ได้ และในขณะที่ตัวกรองเอาบรรทัดออก อภิธานศัพท์ ทำตรงกันข้าม: มันล็อกคำที่เลือกไว้ให้แปลออกมาเหมือนเดิมเสมอ ทั้งสองอย่างรวมกันทำให้คุณควบคุมได้ทั้งว่าอะไรจะถูกแปลและแปลอย่างไร
ใช้เวลาห้านาทีกับแผงตัวกรองตอนเริ่มโปรเจกต์ — ใส่ชิปพรีเซ็ตสักสองสามอัน ชำเลืองดูตัวอย่าง แล้วนำไปใช้ — จะช่วยประหยัดโควตาในการรันทุกครั้งหลังจากนั้น และกันข้อความที่ไม่ใช่ตัวอักษรอันเสี่ยงออกจากตัวแปลไปเลย ดาวน์โหลด RuneTranslate เปิดเกมอะไรก็ได้ แล้วดูที่เมนู ⋯ เพิ่มเติม เพื่อหา การยกเว้นด้วย regex
พร้อมลอง RuneTranslate ไหม
ระดับฟรีปลดล็อกทุกเอนจิน + ทุกผู้ให้บริการแปล Supporter ($3/mo) ปลดล็อกความเร็วเต็ม
ดาวน์โหลดสำหรับ Windows