محرك مدعوم · GameMaker
تحفظ لعبة GameMaker (كانت الإصدارات الأقدم تُباع باسم GameMaker Studio) بياناتها المُصرَّفة في ملف واحد: data.win على Windows، وgame.unx على Linux، وgame.ios على macOS. يقرأ RuneTranslate هذا الملف ويكتبه بنفسه، من دون أداة خارجية أو sidecar. يتتبع كل سلسلة نصية عبر البايت كود الخاص باللعبة ليرى هل تصل إلى دالة رسم أو دالة رسائل، فيُعرض للترجمة النص الذي يراه اللاعب، بينما تبقى مفاتيح البحث وأسماء الملفات والسلاسل التي تقارن بها اللعبة كما هي. كما تُلتقط ملفات اللغة التي تأتي مع اللعبة (JSON وCSV وINI / مفتاح=قيمة، وحوارات Yarn وChatterbox) وكتالوجات gettext .po و.mo، ويُخفى الوسم ورموز التحكم خلف عناصر نائبة حتى لا يستطيع المزوّد إفسادها. تترجم بأي مزوّد: DeepL أو نموذج لغوي كبير (OpenAI / Anthropic) أو Google Translate المجاني أو نموذج محلي. عند التصدير، إذا احتاجت الترجمة إلى أحرف تفتقدها خطوط اللعبة (السيريلية والفيتنامية والصينية واليابانية والكورية والتايلاندية واللاتينية المشكّلة)، يضيف RuneTranslate تلك الرموز إلى خطوط اللعبة نفسها بنمط مطابق، وفي اليابانية والصينية والتايلاندية يكسر الأسطر فقط حيث يثبت عرض مربع النص من اللعبة. تُقرأ كل عملية تصدير من جديد وتُتحقق بايتًا ببايت قبل أن تستبدل أي شيء. أُضيف GameMaker حديثًا وجرى التحقق منه من البداية إلى النهاية على ألعاب حقيقية صُنعت بـ GameMaker Studio 1.4 وGameMaker Studio 2.3 وإصدارات GameMaker 2022 LTS و2023 و2024. الألعاب المُصرَّفة بـ YYC (شيفرة أصلية) استثناء: يمكن ترجمة ملفات اللغة والخطوط فيها، لكن لا يمكن الوصول إلى النص داخل شيفرتها. لغة المصدر الافتراضية هي اليابانية وتُضبط لكل مشروع.
تكرر ألعاب GameMaker أسماء الشخصيات وأسماء العناصر ومصطلحات القوائم في ملف البيانات وملفات اللغة. أضفها إلى قاموسك أولًا ليترجمها كل سطر بالطريقة نفسها. أساسيات المسرد →
وجّه RuneTranslate إلى مجلّد اللعبة: المجلّد الذي يحوي data.win على Windows، أو game.unx على Linux، أو game.ios في نسخة macOS. يتعرّف الكشف على ملف البيانات تلقائيًا، وفتح اللعبة لا يغيّر شيئًا. إن جاءت اللعبة كمثبّت فثبّتها أولًا. أما لعبة GameMaker Studio 1.4 المعبّأة في ملف تنفيذي واحد فتُفكّ إلى مجلّد لعبة عادي عند التصدير.
يقرأ RuneTranslate ملف البيانات بنفسه، من دون أداة خارجية أو sidecar، ويتتبع كل سلسلة نصية عبر البايت كود الخاص باللعبة ليرى هل تصل إلى دالة رسم أو دالة رسائل. يصبح النص الذي يراه اللاعب وحدة ترجمة، بينما تبقى مفاتيح البحث وأسماء الملفات والسلاسل التي تقارن بها اللعبة كما هي. وتُدرج أيضًا ملفات اللغة التي تأتي مع اللعبة (JSON وCSV وINI / مفتاح=قيمة، وحوارات Yarn وChatterbox) وكتالوجات gettext .po و.mo.
ترجم بـ DeepL أو نموذج لغوي كبير (OpenAI / Anthropic) أو Google Translate المجاني أو نموذج محلي. يُخفى الوسم ورموز التحكم خلف عناصر نائبة حتى لا يستطيع المزوّد إعادة ترتيبها أو حذفها أو ترجمتها، وتعيد ذاكرة الترجمة استخدام الأسطر المتكررة.
صدّر نسخة مترجمة إلى مجلّد آخر، أو في المكان نفسه، وهو ما تحتاجه بعض ألعاب Steam. عندما تستخدم الترجمة أحرفًا تفتقدها خطوط اللعبة، يضيف التصدير تلك الرموز إلى خطوط اللعبة نفسها بنمط مطابق. وفي اليابانية والصينية والتايلاندية يكسر الأسطر فقط حيث يثبت عرض مربع النص من اللعبة، مع قواعد kinsoku. وفي نسخة macOS أو Linux يكتب الملفات التي تغيّرت فقط، وتنسخها أنت فوق التثبيت.
تُقرأ كل عملية تصدير من جديد وتُتحقق بايتًا ببايت قبل أن تستبدل أي شيء. شغّل اللعبة المترجمة وافحص الحوار والقوائم والخطوط داخل اللعبة قبل أن تشاركها.