المحرّكاتالأدلّةالأسئلة الشائعةPatreonDiscordتنزيل
تسجيل الدخول
RuneTranslate · ترجمة الألعاب اليابانية من البداية إلى النهاية
المحرّكاتالأدلّةمقارنةنص الصورمحرّر الحفظوضع الغشالأسئلة الشائعةتنزيلالتغييراتPatreonDiscordYouTubeالخصوصيةالشروطالتواصل
جميع المقالات
troubleshooting · workflow · export · exclusions

اللعبة المترجَمة لا تعمل؟ ابحث عن السطر المعطوب

29 أغسطس 2026·11 دقيقة قراءة

اللعبة المترجَمة تفتح ثم تُغلق فورًا، أو تتجمّد عند شاشة التحميل بلا نهاية. أحد السطور التي ترجمتها لم يكن نصًّا أصلًا: معرّف أو مسار أو رايةٌ تقارنها اللعبة. أثبت أولًا أن السبب هو الترجمة، ثم قسّم إلى نصفين. نحو ثلاثة عشر تصديرًا تكفي لتحويل خمسة آلاف سطر إلى سطر واحد.

تفتح النافذة. ثم تُغلق. لعبةٌ كانت تعمل بالأمس، ترجمتها ليلة واحدة، وها هي ميتة.

في مكان ما بين تلك السطور سطرٌ لم يكن نصًّا قط: اسم مشهد، أو مسار ملف، أو رايةٌ تقارنها اللعبة. اصطدم بها المحرّك واستسلم قبل أن يرسم شيئًا.

لن تقرأ خمسة آلاف سطر بحثًا عنه. ستطرح السؤال نفسه — نعم أم لا — نحو ثلاث عشرة مرة.

باختصار. أثبت أولًا أن السبب هو الترجمة فعلًا، ثم قسّم إلى نصفين. ترجم نصف السطور المشتبه بها، صدّر، شغّل اللعبة. النصف الذي يفشل يحوي السطر. كرّر على ذلك النصف حتى يبقى سطر واحد.

قبل البحث: هل السبب هو الترجمة أصلًا؟

  1. شغّل اللعبة الأصلية — نسخة لم تُمسّ، لا ما صدّرته. إن فشلت هي أيضًا، فالمشكلة في جهازك أو مجلدك أو في اللعبة نفسها.
  2. ترجم سطرًا واحدًا قصيرًا وغير مؤذٍ، صدّر، شغّل. كلمة قائمة واحدة تراها على الشاشة تكفي.
  3. عندئذٍ فقط ابدأ البحث عن السطر.

الخطوة الثانية تقول سطرًا واحدًا لا لا شيء لسبب: عدة محوّلات تخرج مبكرًا حين لا يوجد ما يُكتب، فالتصدير الفارغ يختبر نسخ الملفات لا مسار الكتابة الحقيقي، وقد ينجح حتى لو كان ذلك المسار معطوبًا.

إن فشلت نسخة السطر الواحد أيضًا، فلا لوم على سطر بعينه، والتقسيم إلى نصفين لن يجد شيئًا. صدّر من جديد إلى مجلد فارغ تمامًا، وتأكد أنك تشغّل النسخة المصدَّرة لا الأصل، واقرأ تحذيرات التصدير. إن بقي الفشل، أبلغ عنه بوصفه مشكلة في مسار التسليم.

هذا الفحص المسبق يكلفك تشغيلين وتصديرًا واحدًا: دقائق في مشروع RPG Maker صغير، وأكثر في لعبة Unity كبيرة. وهو يوفّر عليك ليلةً كاملة تبحث فيها عن سطر غير موجود.

حالتان تشبهان هذه وليستا منها. اللعبة تعمل لكن الحروف مربعات أو علامات استفهام أو لاتينية مشوّهة: هذه مسألة خط أو ترميز. الانهيار مباشرةً بعد تركيب إضافة أو طبقة ترجمة فوقية: المشكلة في تلك الأداة لا في سطورك.

التقسيم إلى نصفين للعثور على السطر

معظم المشاريع تضم ملفات كثيرة، وأسهل ما يمكن تنصيفه هو قائمة الملفات.

  1. إعادة تعيين كل الترجمات من شريط الأدوات.
  2. افتح اختيار ملفات للترجمة. النافذة تقول ذلك حرفيًا: «اختر الملفات المراد ترجمتها. الملفات غير المؤشَّرة تبقى كما هي.» أزل التأشير عن نصف الملفات وترجم الباقي.
  3. صدّر إلى مجلد فارغ جديد وشغّل اللعبة.
  4. إن عملت، فالسطر في النصف الذي تركته؛ وإن لم تعمل، فهو في النصف الذي ترجمته للتو. في الحالتين تقلّصت القائمة إلى النصف، ويمكنك نسيان النصف الآخر.
  5. أعد تعيين كل الترجمات مجددًا، نصّف ما تبقى، صدّر، شغّل.
  6. كرّر حتى يبقى ملف واحد، ثم نصّف داخله حتى يبقى سطر واحد.

التنصيف بالملفات أخشن من التنصيف بالسطور، فعدد الجولات يتبع عدد الملفات: أربعون ملفًا تعني نحو ست جولات للوصول إلى الملف، ثم تبدأ من جديد داخله.

المشاريع ذات الملف الواحد — نص NScripter، أو لعبة Kirikiri أو Wolf بسيناريو واحد — لا قائمة ملفات فيها لتنصيفها. اسحب صندوقًا فوق السطور بدلًا من ذلك: تظهر مربعات التأشير وشريط الإجراءات الجماعية من تلقاء نفسها، ويتكفّل إعادة ترجمة المحدد بالباقي. ولمسح أوسع، ضيّق السطور بالمرشّحات والبحث ثم استخدم تحديد كل الظاهر. انتبه هنا: هذا يأخذ ما تعرضه المرشّحات، فمرشّحٌ نسيت مسحه يلوّث كل جولة تالية بصمت. دوّن ما استخدمته.

مثالٌ كامل على دفعة معطوبة من مئة سطر:

  • الجولة 1 — 100 سطر مشتبه، ترجمة الخمسين الأولى: تعمل. إذن السطر في الخمسين الأخرى.
  • الجولة 2 — 50 سطرًا مشتبهًا، ترجمة الخمسة والعشرين الأولى: تفشل. إذن هو ضمن هذه الخمسة والعشرين.
  • الجولة 3 — 25 سطرًا مشتبهًا، ترجمة الثلاثة عشر الأولى: تعمل. إذن هو في الاثني عشر الباقية.
  • الجولة 4 — 12 سطرًا مشتبهًا، ترجمة الستة الأولى: تفشل. إذن هو ضمن هذه الستة.
  • الجولة 5 — 6 أسطر مشتبهة، ترجمة الثلاثة الأولى: تفشل. إذن هو ضمن هذه الثلاثة.
  • الجولة 6 — 3 أسطر مشتبهة، ترجمة الأولين: تعمل. بقي سطر واحد.

مئة سطر تعني سبعة تصديرات في أسوأ الحالات؛ خمسة آلاف سطر تعني نحو ثلاثة عشر.

كم تستغرق الجولة الواحدة

تصدير واحد، وتشغيل واحد، والوقت الذي تحتاجه اللعبة لتبلغ أول سطر حوار. دقيقتان إلى ثلاث في مشروع RPG Maker صغير. وقريبٌ من عشر دقائق في لعبة Unity كبيرة ينسخ تصديرها اللعبة كاملة وتتباطأ شاشة العنوان فيها.

فثلاث عشرة جولة تعني أمسيةً كاملة تقريبًا. ومع ذلك فهي الخيار الأرخص: البديل أن تقرأ خمسة آلاف سطر بنفسك وتصيب من أول مرة.

أمران يختلّان عند العمل يدويًا. صدّر إلى مجلد فارغ جديد في كل جولة: بعض المحرّكات تكدّس الرقعات فوق بعضها، فالجولة الثالثة فوق الأولى والثانية تعني أنك تختبر ثلاثًا معًا. وإعادة التعيين يجب أن تكون إعادة تعيين حقيقية: استخدم إعادة تعيين كل الترجمات بدل التراجع اليدوي — فهي تستعيد النص الأصلي المحفوظ عند إنشاء المشروع، وتعمل بشكل صحيح حتى لو استُبدل المجلد الأصلي لاحقًا.

إن أعدت السطر ولم تعمل اللعبة بعد

إذن كسرت أكثر من سطر. هذه نتيجة شائعة لأول تشغيل «ترجم كل شيء» على محرّك حسّاس للتحليل. اترك السطر الذي وجدته بلغته الأصلية، ثم أعد الإجراء نفسه على ما بقي مترجَمًا. الجاني الثاني عادةً من نوع الجاني الأول نفسه، وفي الملف نفسه.

ترجم على دفعات في المرة القادمة

الدفعات لا تقلّل عدد التصديرات — إنها تصديرات كنت ستقوم بها على أي حال — لكنها تجعل الفشل يصلك ضيّق النطاق من البداية. كسرَت الدفعة الأخيرة، فيبدأ التضييق من مئة سطر لا من خمسة آلاف. ابدأ بمئة، ووسّع إلى خمسمئة أو إلى ملف كامل حين تمرّ عدة دفعات نظيفة.

أي المحرّكات تنكسر إن ترجمت السطر الخطأ؟

يقال إن هناك محرّكات صارمة وأخرى متسامحة. لكن ما يحسم الأمر فعلًا هو أين تحطّ ترجمتك.

بعض المحرّكات تقرؤها بيانات: Ren'Py عبر ملف منفصل وخطّاف زمن تشغيل، وRPG Maker عبر JSON مهروب، وUnreal عبر قيم .locres مع الحفاظ على بصمات المفاتيح. بنية اللعبة لا ترى نصّك قط، فثمن السطر الخطأ سطرٌ خطأ واحد. وبعضها الآخر يدسّها داخل ملف تفسّره اللعبة: نص برمجي أو ترميز أو سلسلة بايتات، فتصبح جملتك جزءًا من بنية ذلك الملف. عندها تكفي نقطتان رأسيتان، أو قوس مربع، أو بايت زائد، أو سلسلة كانت أيضًا مفتاح بحث، لإيقاف اللعبة.

هذه هي القاعدة كلها. جد محرّكك، اقرأ سطره، وامضِ.

  • RPG Maker MV/MZ — لا خطر بنيويًا. كل من JSON وCSV مهروب، وما يُعرض عليك مجموعة محدّدة من أوامر الأحداث. الخطر الحقيقي الوحيد إضافةٌ تقارن أسماء المتحدثين بمطابقة تامة، والتصدير يصحّح مفاتيح إعدادات تلك الإضافة معها.
  • Ren'Py — يكاد يكون معدومًا. لا نعيد كتابة الشيفرة الأصلية أبدًا، فحتى السلسلة التي تعمل مفتاحًا منطقيًا آمنة.
  • Unreal Engine — لم نرَ قط عطلًا سببه سطر واحد. سلاسل .locres هي بحكم بنيتها نصٌّ للعرض. الخطر هنا نصٌّ ناقص لا بناءٌ ميت.
  • Unity — خطير وصامت. أسماء المشاهد ومفاتيح المتغيرات وردود النداء مخزَّنة بالطريقة نفسها التي يُخزَّن بها الحوار. توقّع تحميلًا لا ينتهي، وأزرارًا لا تستجيب، وشاشة سوداء.
  • Godot — خطير. مسارات العقد وStringName ومراجع res:// هي عناوين يتّبعها المحرّك فعلًا، وتُرفض عند إعادة الكتابة.
  • Wolf RPG — أهشّ الصيغ هنا. بايت واحد في غير موضعه يزيح التدفق كله ويُنهي العملية قبل ظهور أي نافذة.
  • Kirikiri / KAG — خطير. الأقواس المربعة نحوٌ، وأسماء التخزين أسماء ملفات. ترجمة اسم وسم، أو تحويل قوس، أو ترجمة اسم ملف صورة: كلٌّ منها يوقف اللعبة في مكانه.
  • Electron VN — خطير. عنصرٌ نائب في قالب داخل جافاسكربت حيّ في app.asar ليس ترجمة رديئة بل خطأ نحوي.
  • TyranoBuilder / TyranoScript — من عائلة Kirikiri نفسها. وسوم KAG ترميز، فترجمة وسم مساسٌ بالنحو. ولا نعيد كتابة مراجع الشخصيات داخل السطور أبدًا.
  • NScripter — خطير وفريد. الرموز ? و% و$ علاماتُ متغيرات، فواحد في غير موضعه خطأ نحوي.
  • YU-RIS — خطير، لأن كثيرًا مما تسميه هذه الصيغة سلاسل هو في الحقيقة معاملات. الفصل بينهما خفض صفوفًا حيّة في إحدى الألعاب من 40,678 إلى 8,914 دون فقدان سطر حوار واحد.

لبقية المحرّكات صفحاتها وإرشاداتها في المحرّكات.

ثلاثة سطور قتلت لعبة

كل استثناء في RuneTranslate اشتُري بلعبة توقفت عن العمل. هذه الثلاثة مُصلَحة الآن. في الحالات الثلاث بدا السطر سليمًا تمامًا، وانتهى التصدير بعلامة خضراء.

Godot: اللعبة تخترع شخصية غير موجودة. كُتب في أحد السطور Warning: the door is locked — إنجليزية سليمة. لكن Dialogic يهرّب كل نقطتين رأسيتين في النص المحفوظ، لأن النقطتين غير المهرَّبتين هما بالضبط ما يفصل اسم المتحدث. أُعيدت كتابة الجملة كما هي فأُعيد تفسيرها على أن شخصية اسمها Warning تقول the door is locked، فأنشأت الإضافة تلك الشخصية فعلًا.

Kirikiri: اللعبة تبحث عن ملف اسمه `End`. حمل وسم أحد الأزرار اسم ملف صورة وعلامة قفزة معًا، ولم يكن التقنيع يجتاز وسمًا يحوي أقواسه الخاصة، فانكشف الاثنان وتُرجما. الماسح اليوم يفهم الأقواس: يُغلق عند القوس المطابق فتبقى التعابير المتداخلة داخل الوسم، بينما ينتهي الوسم العادي عند أول ].

RPG Maker: صور الوجوه تختفي بصمت. إحدى إضافات صور الوجوه تختار الرسم بمطابقة اسم المتحدث حرفًا بحرف مع جدول في إعداداتها. ترجمة الاسم كانت صحيحة، وترك الإعداد المليء بمفاتيح الموارد دون مساس كان صحيحًا أيضًا. وحين التقيا انكسرت المعادلة، فاختفت صور تلك الشخصية دون أن يُسجَّل أي شيء.

التصديرات الثلاثة كلها أعلنت النجاح. التصدير النظيف ليس دليلًا على أن اللعبة تعمل، في أي محرّك. الدليل الوحيد هو أن تشغّلها.

حين لا يكون السبب سطورك

التنصيف لا يجد هذه الحالات، لأن أي نصف لا يعمل. المشكلة في مكان حطّ فيه ما صدّرته. لعبة Wolf RPG تقرأ أرشيف .wolf قبل الملفات المفكوكة بجانبه، فتظهر شاشة العنوان دون أن تُقرأ بياناتك المترجَمة من القرص أصلًا. ونظام Addressables في Unity يرفض حزمةً لم تعد بايتاتها تطابق بصمة التحقق، فيعيد شاشة سوداء لا أثر لها في أي سجل. ولعبة RPG Maker المحزومة تتجاهل ملفات البيانات الموضوعة بجانب ملفها التنفيذي. الثلاثة معالَجة اليوم، ولهذا يستحق فشل التسليم أن يُبلَّغ عنه بدل أن يُقتفى.

هل ثمة علامة تدلّ على أن السطر حوار؟

لا. وارتب بمن يقول لك غير ذلك.

أخبرنا مستخدم مرةً أنه وجد لعبة Godot تلفّ كل سلاسل الحوار بين ||، فترجم تلك فقط، وعملت اللعبة. كان ذلك مفيدًا حقًا في تلك اللعبة. لكنها عادة مطوّر واحد لا عرفٌ في Godot، واللعبة التالية ستفعل شيئًا آخر.

والمثال المضاد يأتي من YU-RIS: في إحدى الألعاب كان جانب العلامة المائلة الخلفية يحوي جدول واجهة كاملًا، 687 من 692 صفًّا نصُّ عرض — ومع ذلك فالعلامة نفسها لا تعني شيئًا هناك. أنواع الاقتباس الثلاثة تُترجَم إلى الشيء نفسه، فالقاعدة المبنية على الفاصل تُعلّم جملًا حقيقية أيضًا. موضع القيمة قال كل شيء؛ ونوع الاقتباس لم يقل شيئًا.

اعتمد على الموضع والشكل، ودع اللعبة نفسها تعلّمك إياهما. شغّل اللعبة، اقرأ أول سطر حوار يظهر، وابحث عنه في المحرّر. ذلك الملف، وتلك المجموعة، وجيران ذلك السطر: هكذا يبدو الحوار في هذه اللعبة. وما وقع في مكان آخر مرشّحٌ لألّا يكون حوارًا.

ماذا يعلّم التطبيق، وماذا لا يستطيع معرفته

يعلّم RuneTranslate السطور التي يعتقد أنها شيفرة أو مسارات موارد أو معرّفات بوصفها مستبعَدة. لا يخفيها: يعرضها بلون برتقالي خلف مفتاح إظهار المستبعَد لتتفقّد حكمه، ويتيح لك دفع أي سطر عبر ترجمها على أي حال. ويمكنك إضافة أنماطك الخاصة.

وإن حدّدت سطورًا مستبعَدة وبدأت التشغيل، يتوقف ويسأل: «12 من أصل 340 سطرًا محددًا مستبعَدة — إما علّمها مرشّح، أو رأى RuneTranslate أنها شيفرة أو مسارات موارد أو معرّفات. ترجمتها قد تعطب اللعبة. تخطّيها يبقيها مستبعَدة. ترجمتها تدرجها في التشغيلات اللاحقة.»

لا بأس أن تمضي. تذكّر فقط أنك فعلت، لأن هذا أول ما تنظر فيه حين تتوقف نسخك المصدَّرة عن العمل.

وثمة حدٌّ صريح: الاستبعاد تخمينٌ عن سلسلة نصية، ولا يمكنه أن يعرف أن جملةً في لعبتك تعمل أيضًا مفتاح بحث في إضافةٍ تخصّ تلك اللعبة وحدها. والألعاب التي لغتها الأصلية الإنجليزية محميّة أقل، لأن أقوى المرشّحات تسأل: هل تحوي هذه السلسلة حروف اللغة الأصلية؟

أسئلة شائعة

لماذا لا تعمل لعبتي بعد ترجمتها؟

في الغالب الأعم لأن أحد السطور التي ترجمتها كان معرّفًا أو مسارًا أو اسم مشهد أو رايةً تقارنها اللعبة بمطابقة تامة. تغييره يكسر تحليلًا أو عملية بحث.

كيف أعرف أي سطر مترجَم أعطب اللعبة؟

قسّم إلى نصفين. أعد تعيين كل الترجمات، ترجم النصف، صدّر إلى مجلد فارغ، شغّل. النصف الذي يفشل يحوي السطر، فنصّفه وكرّر. مئة سطر تعني ست إلى سبع جولات، وخمسة آلاف نحو ثلاث عشرة.

لعبتي المترجَمة تُغلق فورًا. ما معنى ذلك؟

خطأ فادح أثناء بدء التشغيل. في Kirikiri وروايات Electron المصوّرة وNScripter يكون عادةً خطأ نحويًا: قوس أو اقتباس أو عنصر نائب تُرجم أو اختفى. وفي Wolf RPG وYU-RIS يكون تدفق بيانات أُزيح عن موضعه.

لماذا تبدأ لعبتي المترجَمة بشاشة سوداء؟

غالبًا لأن تحميلًا فشل داخل شيفرة ابتلعت الاستثناء. في Unity هذه حزمةٌ لم تعد بصمتها تطابق مدخل الفهرس. جرّب نسخةً ترجمت فيها سطرًا واحدًا غير مؤذٍ: إن ظلّت سوداء فالسبب مسار التسليم لا سطرٌ بعينه.

لعبتي المترجَمة عالقة عند شاشة التحميل. هل السبب الترجمة؟

في Unity، على الأرجح نعم. التحميل الذي لا ينتهي عرضٌ نموذجي لترجمة اسم مشهد أو مفتاح متغيّر: تنتظر اللعبة اسمًا لم يعد مطابقًا، ولا يظهر أي خطأ.

ما السطور التي يجب ألّا تُترجم أبدًا؟

كل ما تبحث عنه اللعبة بمطابقة نصية تامة: المسارات، وأسماء المشاهد والعقد، وأسماء المتغيرات والأحداث، ورموز اللغات، وكل ما يبدو بصيغة snake_case أو res://. إن لم تتخيّل لاعبًا يقرؤه على الشاشة، اتركه.

اللعبة تعمل لكن النص مربعات أو علامات استفهام. أهي المشكلة نفسها؟

لا. المربعات المنتظمة تعني أن الخط لا يملك شكل ذلك الحرف؛ وعلامات الاستفهام الحقيقية تعني أن الحرف ضاع عند كتابة الملف. كلاهما مسألة خط أو ترميز، ولكلٍّ حلّه المختلف.

ما التالي

لست تصلح شيئًا بل على وشك أن تبدأ الترجمة؟ كيف تصنع رقعة ترجمة يغطي المسار كاملًا.

وإن وجدت السطر، فاتركه بلغته الأصلية، وترجم كل ما حوله، وصدّر إلى مجلد فارغ جديد، وشغّل. لا يخسر اللاعب شيئًا حين يبقى معرّفٌ واحد بلا ترجمة.

قراءات ذات صلة
01

كيف تصنع باتش ترجمة للعبة

patchsharingtutorialworkflow18 أغسطس 2026 · 9 دقيقة
اقرأ ←
02

XUnity.AutoTranslator لا يترجم

unityxunity-autotranslatortroubleshooting18 أغسطس 2026 · 9 دقيقة
اقرأ ←
03

لماذا يظهر النص المترجم مربّعات

unitytextmeshprofontstroubleshooting18 أغسطس 2026 · 9 دقيقة
اقرأ ←

مستعد لتجربة RuneTranslate؟

تفتح الباقة المجانية كل محرك + كل مزود ترجمة. باقة Supporter ($3/mo) تفتح السرعة الكاملة.

التنزيل لنظام Windows