المحرّكاتالأدلّةالأسئلة الشائعةPatreonDiscordتنزيل
تسجيل الدخول
RuneTranslate · ترجمة الألعاب من اليابانية وأكثر من 30 لغة
المحرّكاتالأدلّةمقارنةنص الصورمحرّر الحفظوضع الغشالأسئلة الشائعةتنزيلالتغييراتTrustpilotPatreonDiscordYouTubeالخصوصيةالشروطالتواصل
جميع المحركات

محرك مدعوم · Gettext (.po / .mo)

كامل — أُعيد بناؤه ولُعب فعليًا

مترجم ملفات PO — ترجمة كتالوجات gettext ‏.po و‏.mo للألعاب

gettext هو الأسلوب الذي تُوطَّن به معظم الألعاب المستقلة غير اليابانية: ألعاب Python وpygame، وSolarus، وألعاب SDL وGTK، وكل ما يمر عبر Poedit أو Weblate أو Crowdin. توجد النصوص في مجلد locale كمصادر ‎.po وكتالوجات ‎.mo مُصرَّفة. يكتشفها RuneTranslate عند إنشاء المشروع، ويترجم كل نص، ثم يكتب ملف ‎.mo عاملاً — وهو الملف الذي تقرأه اللعبة أثناء التشغيل.

نصيحة المسرد لهذا المحرك

كتالوجات gettext هي في معظمها واجهة: عناصر قوائم وتسميات أزرار وتلميحات وأسطر حالة تتكرر عبر الشاشات. أضف أسماءك وأسماء العناصر والأفعال الأساسية إلى المسرد مرة واحدة لتظهر كل مرة بالشكل نفسه — وهذا أهم هنا منه في الحوار، لأن قائمة تقول «حفظ» في موضع و«تخزين» في آخر تبدو كخلل. أساسيات المسرد →

نزّل RuneTranslate لنظام Windows

كيفية ترجمة Gettext (.po / .mo)

  1. خطوة 1

    افتح مجلد اللعبة

    وجّه RuneTranslate إلى مجلد اللعبة — المجلد الذي يحتوي على locale/ أو lang/ أو i18n/. يبحث الاكتشاف عن الكتالوجات بحسب بايتاتها الفعلية لا بامتدادها، لذا يُتجاهل ملف ‎.mo يكون في الحقيقة مشهداً ثلاثي الأبعاد. ويعمل أيضاً مجلد يضم ملفات ‎.po متفرقة.

  2. خطوة 2

    تحقق مما تم العثور عليه

    تعرض نافذة المشروع الجديد عدد الكتالوجات المقروءة، وكم منها ‎.mo مُصرَّف مقابل ‎.po مصدري، واللغات التي تتضمنها اللعبة أصلاً، وإجمالي النصوص — قبل أن تنشئ المشروع.

  3. خطوة 3

    اختر اللغة ومزوّد الترجمة

    اختر لغة الهدف ومزوّداً: Google أو DeepL المجاني، أو مفتاحك الخاص من DeepL أو OpenAI أو Claude أو DeepSeek. تُقنَّع عناصر التنسيق النائبة — ‎%s و‎%d و‎%(player)s و‎{count} — قبل الترجمة وتُستعاد بعدها، حتى لا يتمكن أي مزوّد من حذفها أو إعادة صياغتها.

  4. خطوة 4

    راجع في المحرر

    تُجمَّع النصوص حسب ملف الكتالوج. ويحتفظ كل مدخل بسياق gettext الخاص به (msgctxt)، وهو التمييز الذي كتبه المطوّر لهذا النص بالتحديد — فترى لماذا تظهر الكلمة نفسها مرتين وتترجم كلاً منهما بشكل صحيح.

  5. خطوة 5

    صدّر نسخة قابلة للعب

    يكتب التصدير نسخة كاملة من اللعبة مع كتالوج صحيح في locale/<لغتك>/LC_MESSAGES/ وكذلك نسخة محدّثة من الكتالوج الذي كانت اللعبة تحمّله بالفعل، لتظهر الترجمة مهما كانت طريقة اختيار اللعبة للغتها. ويُكتب كل من ‎.po و‎.mo المُصرَّف.

يدعم

  • كتالوجات ‎.mo المُصرَّفة — قراءةً وكتابةً، بترتيبَي البايت، وقد جرى التحقق منها على 43 كتالوجاً حقيقياً و93,717 مدخلاً
  • ملفات ‎.po المصدرية، بما فيها صيغ الجمع وسياقات msgctxt والرايات وتعليقات المترجم
  • البنية المعيارية locale/<اللغة>/LC_MESSAGES/<النطاق>.mo والبنى المسطحة مثل lang/tr.po
  • تُعاد ملاءمة صيغ الجمع للغة الهدف (الإنجليزية صيغتان ← الروسية 3 ← اليابانية 1) مع إعادة كتابة الترويسة
  • عناصر printf والأقواس المعقوفة النائبة (‎%s و‎%d و‎%(player)s و‎{count} و‎{0}) تُقنَّع أثناء الترجمة ثم تُستعاد
  • يكتب التصدير اللغة الجديدة إضافةً إلى استبدال الكتالوج الذي تحمّله اللعبة أصلاً

القيود

  • تأكّد من أن النسخة المصدَّرة تعمل وتُقرأ بشكل صحيح قبل الاعتماد عليها
  • يُترجم فقط النص الموجود أصلًا في كتالوج — أما النصوص التي لم يمرّرها المطوّر عبر gettext فليست في ‎.po/‎.mo ولا يمكن العثور عليها هناك
  • يُعامل msgid على أنه النص المصدر، وهذا هو عقد gettext؛ فالكتالوج الذي تكون فيه msgid بالإنجليزية واللغة الأصلية في msgstr سيُترجم من الإنجليزية
  • الألعاب المبنية على محرك مدعوم مباشرةً (Godot أو Unity أو Ren’Py…) يعالجها ذلك المحرك، ليبقى بقية نصها متاحاً
  • المدخلات غير المترجمة تحتفظ بالترجمة التي شحنتها اللعبة بدل أن تُفرَّغ

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

دليل ترجمة Gettext (.po / .mo) الكامل خطوة بخطوة
اقرأ الدليل →

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

RuneTranslate vs Translator++
اقرأ الدليل →

محركات مدعومة أخرى

RPG MakerRPG Maker XP/VX/AceRen'PyKirikiriWolf RPGTyranoBuilderElectron VNUnityBakinSRPG StudioNScripterGodotArtemisYU-RISAliceSoftUnrealLiveMaker