محرك مدعوم · TyranoBuilder / TyranoScript
TyranoBuilder (وأساسه TyranoScript) محرك روايات مرئية ياباني شائع للإصدارات المستقلة على itch.io وDLsite وSteam. يكتشف RuneTranslate الإصدارات المغلّفة بـ Electron (resources/app.asar الذي يحوي tyrano/tyrano.js + data/scenario/*.ks) والإصدارات المستقلة بـ HTML5 (ملفّات سائبة في الجذر). يترجم كل ملف سيناريو .ks (بما فيها _preview.ks ومرايا system/_*.ks التي تستخدمها ألعاب الإصدارات المشفّرة)، وtyrano/lang.js لنصوص الواجهة، وdata/system/Config.tjs لنصوص الإعدادات، ويحقن أسماء عرض الشخصيات في كتلة chara_define.ks — يتحوّل اختصار المتحدّث السطري [<JP-id>] تلقائيًا إلى مدخلات [chara_new name=... jname=...] سليمة. اجمعه مع ميزة المسرد في طبقة Supporter لتثبيت كل اسم شخصية في قائمة الطاقم على تصيير محدّد قبل تشغيل أول دفعة ترجمة. لغة المصدر افتراضيًا اليابانية لكنها إعداد لكل مشروع — الصينية والكورية والإنجليزية والمزيد تعمل جميعها، فإصدار Tyrano غير الياباني يُستخرج بالطريقة نفسها.
يمنحك حقن أسماء الشخصيات في TyranoBuilder قائمة نظيفة بالمتحدّثين — لكن كل شيء آخر في السيناريو (أسماء الأماكن، وأسماء المنظّمات، وأسماء الجيتسو/التعاويذ المميزة) ما زال ينجرف افتراضيًا. أضِف تلك إلى المسرد. وسوم KAG السطرية ([r]، [p]، [font color=...]) مُقنَّعة كوسوم فلا تدمّر بدائل المسرد أبدًا توجيهًا سطريًا عن طريق الخطأ — وهو نمط فشل شائع في ترجمات tyrano المحرّرة يدويًا. أساسيات المسرد →
وجّه RuneTranslate إلى جذر اللعبة. يتعامل كشف المحرك مع كلا التخطيطين: المغلّف بـ Electron (resources/app.asar الذي يحوي tyrano/) والمستقل بـ HTML5 (data/scenario/ في الجذر). لإصدارات Electron يقرأ RuneTranslate app.asar ويعيد تحزيمه بشفافية عبر @electron/asar.
يفحص RuneTranslate ملفّات data/scenario/**/*.ks (بما فيها _preview.ks ومرايا system/_*.ks التي تستخدمها الإصدارات المشفّرة)، وtyrano/lang.js لواجهة المحرك، وdata/system/Config.tjs لنصوص مستوى الإعدادات. تُقنَّع وسوم KAG السطرية ([r]، [p]، [改ページ]، [font color]) والوسوم ذات الأسماء اليابانية عبر تعبير نمطي واعٍ بـ Unicode حتى لا يفسدها النموذج.
حين يستخدم السيناريو اختصار المتحدّث السطري [<JP-id>] دون مدخلات chara_define.ks مطابقة، يولّد RuneTranslate كتلة chara_define.ks بمدخلات [chara_new name="<EN>" jname="<JP>"] — مع الحفاظ على بحث المحرك عن الشخصيات. تبقى الإشارات السطرية دون مساس، فتبقى ملفّات الحفظ ومعارض الـ CG متطابقة.
لإصدارات HTML5، يكتب RuneTranslate ملفّات .ks المعدّلة في مكانها. ولإصدارات Electron، يُعاد تحزيم app.asar المعدّل. ملفّات .ks الثنائية / المشفّرة (المكتشفة عبر فحص UTF-8) لا تُكتب فوقها أبدًا. تعمل النسخة المترجمة في TyranoBuilder تمامًا كالأصل الياباني.