RuneTranslate يترجم الآن روايات YU-RIS المرئية
يترجم RuneTranslate الآن الروايات المرئية لمحرك YU-RIS (raiL-soft) إلى الإنجليزية وأكثر من 30 لغة. يقرأ حزم .ypf بلغة TypeScript خالصة وسكربتات YSTB المُصرَّفة داخل ysbin.ypf، ويستعيد مفتاح XOR لكل سكربت تلقائيًا، ويستخرج الحوار الياباني، ويصدّر السكربتات المترجمة كملفات منفصلة ليحمّلها اللعبة دون إعادة تحزيم. أُضيف حديثًا ولم يُتحقق منه بعد على كثير من الألعاب الحقيقية — أبلغ عن أي لعبة لا تُفتح.
يقرأ RuneTranslate الآن محركًا آخر طالما كان جدارًا أمام المترجمين الهواة: YU-RIS، محرك السكربتة على Windows من raiL-soft الذي يقف خلف مئات الروايات المرئية اليابانية، الدوجين والتجارية. إن سبق أن فتحت مجلد لعبة YU-RIS، ووجدت مجلد pac/ مليئًا بأرشيفات .ypf وملف ysbin.ypf لا شيء مقروء بداخله، ثم استسلمت — فهذا هو المحرك. صار RuneTranslate الآن يكتشفه، ويفتح تلك الحزم بلغة TypeScript خالصة، ويقرأ الحوار من السكربتات المُصرَّفة، ويصدّر نسخة مترجمة تحمّلها اللعبة بنفسها. إنه أحدث محرك يدعمه RuneTranslate.
هذا محرك جديد تمامًا، والجزء الصادق يأتي أولًا: دعم YU-RIS مبنيّ حديثًا ولم يُتحقق منه بعد عبر كثير من الألعاب الحقيقية. لذا قبل أي شيء آخر — إن وجّهت RuneTranslate إلى لعبة YU-RIS ولم يكتشفها، أو لم تُفتح، أو صدّرت شيئًا لا تحمّله اللعبة، فأرجوك أخبرنا. والمزيد عن الكيفية في النهاية.
ما هو محرك YU-RIS فعلًا
YU-RIS (يُكتب أحيانًا ゆーりす) محرك سكربتة للروايات المرئية اليابانية من raiL-soft. اللعبة المكتملة على YU-RIS هي ملف .exe على Windows إلى جانب مجموعة من أرشيفات الحزم .ypf — عادةً في مجلد pac/ — تحوي الرسوم والصوت والسكربتات. أما السيناريو نفسه فهو مُصرَّف: السكربت المقروء الذي يكتبه المطوّر يُبنى إلى صيغة ثنائية تُسمى YSTB، تُخزَّن كملفات .ybn داخل ysbin.ypf (بمسارات داخلية مثل ysbin/yst00000.ybn). وهذا المزيج بالذات — «سيناريو مُصرَّف داخل أرشيف محزّم» — هو ما أبقى الأرشيف الضخم القديم لهذا المحرك بعيدًا عن متناول أدوات الترجمة الآلية العادية.
لماذا كانت ألعاب YU-RIS عصيّة على الترجمة
مقارنةً بمحرك يعتمد على المصدر مثل Ren'Py، يخفي YU-RIS نصّه خلف عدة طبقات:
- كل شيء يقبع داخل حزم `.ypf`. السكربتات ليست منفصلة على القرص — بل محزّمة داخل حاوية
.ypfالخاصة بـ YU-RIS، بأسماء ملفات مُبهَمة ومدخلات مضغوطة بـ zlib. ومن دون قارئ لتلك الصيغة، لا يوجد أصلًا ما يمكن تحريره. - السيناريو مُصرَّف، لا نصّ. ملف
.ybnليس سكربتًا يمكنك فتحه في Notepad — بل حاوية ثنائيةYSTBمقسّمة إلى أربعة أقسام (تيّار تعليمات، وجدول واصفات وسائط، وجدول سلاسل نصية، وأرقام أسطر). واليابانية الفعلية تقبع في جدول السلاسل، تشير إليها الواصفات. - السكربتات مُعمّاة بـ XOR. أقسام البيانات الأربعة لكل سكربت
YSTBمُشوَّشة بمفتاح من 4 بايت. عليك استعادة ذلك المفتاح قبل أن يصبح أي نص مقروءًا — والمفتاح يختلف من لعبة إلى أخرى. - ليست كل سلسلة نصية حوارًا. يحوي جدول السلاسل أيضًا أسماء متغيّرات ومسارات أصول ومعاملات تعابير تقارنها منطقيّة السكربت. ترجم واحدة منها سهوًا فينكسر مسار اللعبة بصمت.
المحصّلة: حتى القارئ الطليق عليه أولًا فكّ أرشيف محتكَر، ثم تحليل ثنائي مُصرَّف، ثم كسر الـ XOR، ثم تمييز الحوار عن السلاسل الداخلية للمحرك — قبل أن يُترجَم سطر واحد. هذا هو العمل الذي يقوم به RuneTranslate عنك الآن.
ماذا يفعل RuneTranslate الآن
يتعامل RuneTranslate مع YU-RIS كمحرك من الدرجة الأولى، ويتولّى المسار كاملًا بلغة TypeScript خالصة — بلا أدوات خارجية، ولا مرافق Python، ولا شيء لتثبيته:
- يقرأ حزم `.ypf` مباشرة. يفتح الأرشيفات بنفسه، ويفكّ ضغط المدخلات، ويستعيد أسماء الملفات المُبهَمة — بلا GARbro ولا فاكّ منفصل. استخرجت اللعبة بنفسك سلفًا؟ يُكتشَف أيضًا مجلد
ysbin/منفصل يحوي سكربتات.ybn. - يحلّل سكربتات `YSTB` المُصرَّفة ويكسر التعمية. يستعيد مفتاح XOR ذا الـ 4 بايت لكل سكربت تلقائيًا من جدول واصفات الوسائط، ويفكّ ترميز جدول سلاسل Shift-JIS، ويسرد كل سطر ياباني في المحرّر مجمّعًا حسب ملف السكربت.
- يميّز الحوار عن الآليات. أسماء المتغيّرات ومسارات الأصول ومعاملات التعابير تُعرَض لكنها مستبعَدة افتراضيًا — تظهر كصفوف حمراء تحتاج تفعيلًا يدويًا — كي لا تترجم أبدًا سهوًا سلسلة تقارنها منطقيّة القصة.
- يحافظ على رموز التحكم المضمّنة. رموز الشرطة المائلة الخلفية (سطر جديد، لون، ruby) والوسوم بين الأقواس المعقوفة المتشابكة في نص الرسالة تُقنَّع خلف عناصر نائبة رقمية قبل أن يصل أي شيء إلى المزوّد، ثم تُستعاد تمامًا عند الخروج.
- يصدّر دون إعادة تحزيم. عند التصدير يعيد بناء كل سكربت مترجَم — مُصحِّحًا إزاحات جدول السلاسل كي تتّسع الترجمة الأطول أو الأقصر، ومعيدًا تطبيق مفتاح XOR نفسه — ثم يكتب
.ybnمنفصلًا في مسار أرشيفه الأصلي. وقت تشغيل YU-RIS يفضّل الملف المنفصل على المسار نفسه المحزّم داخل.ypf، فتقرأ اللعبة ترجمتك ببساطة. لا إعادة تحزيم. (وهو نهج تجاوز الملف المنفصل نفسه المستخدَم في مسار ترقيع Kirikiri ودعم Artemis لدينا.)
اليابانية → الإنجليزية هي الحالة المثلى، لكن يمكنك استهداف أي من أكثر من 30 لغة — الإسبانية والفرنسية والألمانية والبرتغالية والروسية والصينية والإيطالية والتركية والفيتنامية وغيرها.
ما تحتاج إليه
- RuneTranslate لنظام Windows — مجاني؛ كل محرك وكل مزوّد مفتوح (الطبقة المجانية مُقيَّدة في السرعة لا في الميزات).
- مجلد لعبة YU-RIS. وهو الدليل الذي يحوي ملف
yu-ris.exeالخاص باللعبة وحزم.ypf(عادةً في مجلد فرعيpac/، والسكربتات فيysbin.ypf). - لغة هدف — الإنجليزية والإسبانية والفرنسية والألمانية والبرتغالية والروسية والصينية والإيطالية والتركية والفيتنامية وأكثر من 20 أخرى.
- مزوّد ترجمة واحد. Google Translate المجاني يعمل مباشرة؛ ولـ DeepL طبقة مجانية؛ وأما OpenAI وAnthropic ونموذج محلي (Ollama / LM Studio) وأي واجهة برمجية متوافقة مع OpenAI فتعمل بمفتاحك الخاص. ألعاب YU-RIS غنية بالحوار، لذا يقرأ نموذج لغوي كبير (LLM) (OpenAI / Anthropic) أو DeepL أفضل عادةً.
الخطوة 1: افتح مجلد اللعبة
شغّل RuneTranslate، وانقر مشروع جديد، ووجّهه إلى دليل لعبة YU-RIS. يجري اكتشاف المحرك تلقائيًا — وحين يرى حزمة .ypf (أو مجلد ysbin/ منفصلًا يحوي سكربتات .ybn) يتعرّف على المشروع بوصفه YU-RIS. ولا يُعدَّل مجلد لعبتك الأصلي أبدًا.
الخطوة 2: كيف تُقرأ السكربتات
يفتح RuneTranslate حزم .ypf، ويسحب سكربتات YSTB المُصرَّفة من ysbin.ypf، ويستعيد مفتاح XOR لكل سكربت، ويفكّ ترميز جدول سلاسل Shift-JIS — مع سرد كل سطر ياباني في المحرّر مجمّعًا حسب الملف. السلاسل الداخلية للمحرك (أسماء المتغيّرات، مسارات الأصول، معاملات التعابير) تُعرَض لكنها مستبعَدة افتراضيًا، ورموز التحكم المضمّنة تُقنَّع خلف عناصر نائبة رقمية كي لا يفسدها المزوّد أبدًا.
الخطوة 3: ترجم
اختر مزوّدًا وشغّل. في الرواية المرئية، النموذج اللغوي الكبير (OpenAI / Anthropic) هو الأفضل لصوت الشخصية ونبرتها، وDeepL سريع ونظيف للسرد، وGoogle Translate المجاني يفي بالغرض لسلاسل القوائم القصيرة والخيارات. جهّز مسبقًا مسردًا لطاقم شخصياتك ومصطلحاتك المتكررة كي تظهر الأسماء متطابقة عبر اللعبة كلها — راجع أساسيات المسرد 101. وعند الانتهاء، تعيد تمريرة اختيارية عبر مُنقِّح الذكاء الاصطناعي قراءة كل سطر في سياقه وتشدّ الصياغة المتيبّسة الحرفية التي تميل الترجمة الآلية إلى تركها.
الخطوة 4: صدّر نسخة جاهزة للتشغيل
انقر تصدير. يكتب RuneTranslate نسخة مترجَمة من اللعبة، مع وضع كل .ybn مُعاد بناؤه منفصلًا في مسار أرشيفه الأصلي، بجوار حزم .ypf غير المَمسوسة. لا إعادة تحزيم — يحمّل YU-RIS السكربتات المنفصلة تفضيلًا لها على الأصول المحزّمة، فتقرأ اللعبة ترجماتك ببساطة. شغّلها، فتعمل بلغتك الهدف.
قيود معروفة
- سلاسل YU-RIS بترميز Shift-JIS (cp932). الإنجليزية وغيرها من اللغات الهدف القابلة للتمثيل بـ cp932 تُصدَّر نظيفة. أما اللغات الهدف ذات المحارف خارج cp932 — السيريلية الموسّعة، الكورية، الصينية التقليدية — فتحتاج إلى تعديل خطّ/ترميز للعبة لم يُؤتمَت بعد.
- تجاوز الملف المنفصل هو مسار التحميل المتوقّع، وهو يعمل في معظم ألعاب YU-RIS لأن المحرك يفضّل السكربت المنفصل على النسخة المحزّمة. وفي العنوان النادر الذي لا يحترم ذلك، قد يحتاج التصدير إلى ضبط — وهو تمامًا نوع سلوك الألعاب الحقيقية الذي ما زلنا نتحقّق منه.
- النص المطبوع داخل الرسوم — شاشة عنوان أو زر قائمة مرسوم كصورة نقطية — بكسلات لا نص سكربت. لذلك، راجع ترجمة نصوص الصور.
- قد يختلف الأرشيف وصنف السكربت بالضبط بين الإصدارات. تحقّق دائمًا على نسختك المحدّدة.
إنه جديد تمامًا — أخبرنا بما ينكسر
يستحق الأمر تكرارًا صريحًا: دعم YU-RIS إضافة جديدة ولم يُختبَر بعد عبر كثير من الألعاب الحقيقية. قارئ .ypf ومحلّل YSTB واستعادة المفتاح مبنيّة ومُختبَرة وحدويًّا، لكن للمحرك سنوات من التباين بين الاستوديوهات لم نرَها كلها. لذا إن وجّهت RuneTranslate إلى لعبة YU-RIS فلم يكتشفها، أو لم يفتح الأرشيفات، أو لم يستخرج شيئًا، أو صدّر شيئًا لا تحمّله اللعبة، فأرجوك أبلغ عنها على Discord الخاص بنا — فاسم اللعبة وطريقة تحزيمها هما بالضبط ما يساعدنا على تمتينها بأسرع ما يمكن.
نزّل RuneTranslate، ووجّهه إلى رواية YU-RIS المرئية التي طالما أردت قراءتها، وجرّبه. ولإلقاء نظرة على كيفية تعاملنا مع محرك رواية مرئية آخر قائم على الأرشيف، اقرأ دليل Artemis بعده.
مستعد لتجربة RuneTranslate؟
تفتح الباقة المجانية كل محرك + كل مزود ترجمة. باقة Supporter ($3/mo) تفتح السرعة الكاملة.
التنزيل لنظام Windows