استبعاد الأسطر غير المرغوب فيها من الترجمة باستخدام مرشّحات التعبيرات النمطية (Regex)
قد تفلت سلاسل التصحيح ومسارات الأصول ونصوص التطوير المتبقّية من الاستبعاد التلقائي. تستبعد مرشّحات RuneTranslate النمطية الخاصة بكل مشروع أي سطر يتطابق مصدره مع نمط معيّن — مع معاينة حيّة لما تلتقطه بالضبط — كي لا تنفق ترجمة على نصوص لا قيمة لها. مجّانية، وعلى كل باقة.
وجّه RuneTranslate إلى لعبة فيسحب كل سلسلة نصية قابلة للترجمة يعثر عليها. معظمها حوار حقيقي ونصوص قوائم — لكن بعضها نصوص لا قيمة لها: أسطر تصحيح متبقّية، وأسماء ملفات الأصول، وأعلام داخلية، ومعرّفات شاردة لا تعرضها اللعبة للاعب أبدًا. يستبعد RuneTranslate بالفعل الحالات الواضحة لكل محرّك ويعلّمها كصفوف حمراء اختيارية، لكن كل لعبة مختلفة، وبعض هذه النصوص خاص باللعبة التي تعمل عليها.
لهذا الغرض وُجدت مرشّحات الاستبعاد بالتعبيرات النمطية. تعطي RuneTranslate نمطًا واحدًا أو أكثر، وأي سطر يتطابق نصه المصدري مع نمط يُسقَط من عملية التشغيل — يتخطّاه المترجم ويظهر كصف أحمر اختياري يمكنك إعادة تفعيله في أي وقت. إنها الآلية نفسها المستخدمة في استبعادات المحرّك المدمجة، لكنها مدفوعة بقواعدك أنت ومحفوظة مع المشروع. وهي لا تكلّف شيئًا: فخلافًا للمسرد وذاكرة الترجمة، تُعدّ استبعادات التعبيرات النمطية مجّانية على كل باقة.
لماذا نستبعد الأسطر أصلًا؟
سببان — أحدهما بديهي، والآخر أهم:
- التكلفة والوقت. كل سطر لا قيمة له تترجمه يستهلك حصة المزوّد (أو حدّ معدّل الكاشط المجاني) على نص لن يقرأه أحد أبدًا. وعلى امتداد لعبة كاملة يتراكم هذا.
- إبقاء اللعبة تعمل. هذا هو السبب الحقيقي. بعض الأسطر ليست نصًا على الإطلاق — بل هي مفاتيح أو مسارات ملفات أو معاملات تدفّق يحلّها المحرّك بحسب القيمة. ترجم
bg_office_01أوEV_FLAG_TRUEوقد تُعطّل بصمت انتقال مشهد أو استدعاء متغيّر. استبعادها يُبقي النسخة المصدَّرة مستقرّة.
أين تجدها
افتح مشروعًا، ثم من شريط أدوات المحرّر افتح قائمة ⋯ المزيد واختر استبعادات التعبيرات النمطية. يفتح ذلك لوحة مرشّحات الاستبعاد المخصّصة — حيث تضيف الأنماط، وتراقب بالضبط ما تلتقطه، وتطبّق، كل ذلك في نافذة واحدة.
المعاينة الحيّة هي جوهر الأمر
لن تطبّق نمطًا وأنت أعمى عنه أبدًا. أثناء كتابتك للتعبير النمطي، يعرض RuneTranslate يتطابق مع N من إجمالي الأسطر ويسرد حفنة من الأسطر الحقيقية التي سيلتقطها، محدّثًا ذلك مع كل ضغطة مفتاح. ويُشار إلى أي نمط غير صالح فورًا مع الخطأ، بحيث لا يمكنك حفظ نمط معطوب.
ولأن المعاينة تُظهر الأسطر الفعلية في مشروعك أنت، تضبط النمط حتى يلتقط النصوص عديمة القيمة بالضبط دون أي نص حقيقي، ثم تطبّق. تفصيل يستحق التذكّر: تتطابق الأنماط مع النص المصدري — اليابانية الأصلية، أو أيًّا كانت لغة المصدر لديك — لا مع الترجمة. أنت تكتب الأنماط بمقابل النص غير المترجَم.
أنماط جاهزة
تأتي اللوحة مزوّدة بشرائح جاهزة بنقرة واحدة للأنماط التي تظهر في كل لعبة يابانية تقريبًا:
- ASCII فقط —
^[\x00-\x7F]+$— سطر لا يحتوي على أي أحرف من لغة المصدر على الإطلاق (إنجليزية متبقّية أو روماجي أو معرّف). عادةً ما يكون إسقاطه آمنًا عندما تكون لغة مصدرك اليابانية. - مسار أصل —
\.(png|jpe?g|gif|webp|ogg|mp3|wav|webm|mp4)$— أي شيء ينتهي بامتداد ملف وسائط. - متغيّر —
^[a-z_]+\.[a-z_]— مراجع برمجية منقّطة مثلf.pageأوstate.flag. - رمز بأحرف كبيرة ALL_CAPS —
^[A-Z0-9_]+$— ثوابت وأعلام مثلEVENT_FLAG_3. - أرقام / رموز —
^[\d\s.,:%/+\-]+$— صفوف رقمية فقط وأقنعة بلاطات مثل11111112222. - وسم بين أقواس —
^\[.*\]$— سطر كامل ليس سوى[tag].
تعرض اللوحة أيضًا ورقة مرجعية مختصرة لبناء نمطك الخاص: ^ و$ يثبّتان بداية السطر ونهايته، و. هو أي حرف، و* و+ يعنيان صفرًا فأكثر وواحدًا فأكثر، و? اختياري، و\d رقم، و\w حرف كلمة، و\s مسافة بيضاء.
كتابة مرشّحاتك الخاصة
تغطّي الأنماط الجاهزة الحالات الشائعة؛ أما لأي شيء خاص باللعبة فتكتب تعبيرك النمطي الخاص بلغة JavaScript. إليك بعض القواعد العملية:
- ثبّت النمط على السطر بأكمله. الكلمة المجرّدة
debugتتطابق مع أي سطر يحتوي على تلك الكلمة — بما في ذلك حوار حقيقي عن التصحيح. أما^DEBUG:فتتطابق فقط مع الأسطر التي تبدأ بالعلامة، وإحاطة النمط بـ^...$تُطابق السطر بأكمله. التثبيت هو الخيار الافتراضي الأكثر أمانًا. - راقب عدّاد المعاينة. إذا قفز نمط من التقاط 12 سطرًا عديم القيمة إلى التقاط 400 سطر، فأنت على الأرجح التقطت نصًا حقيقيًا — راجع العيّنات وضيّق النمط.
- فضّل البنية على الكلمات. غالبًا ما تُعرَف النصوص عديمة القيمة من شكلها — أحرف كبيرة بالكامل، مسارات منقّطة، امتدادات ملفات في النهاية، أرقام محضة — لا من كلمات بعينها. الأنماط البنيوية تعمّم على المشروع كله.
- قاعدة واحدة لكل فكرة. عدّة أنماط صغيرة وواضحة أسهل في الفهم وفي الحذف لاحقًا من نمط واحد ضخم يصعب قراءته.
التطبيق والتراجع
اضغط تطبيق وحفظ. يخزّن RuneTranslate الأنماط مع المشروع ويعيد تصنيف كل سطر، ثم يخبرك بالضبط بما حدث — مثلًا استُبعد 340 سطرًا · 5 مستعادة. عدد المستعادة هو الأسطر التي كان مرشّح يلتقطها ولم يعد يفعل، وقد أُعيدت تلقائيًا.
وهي قابلة للتراجع بالكامل: احذف نمطًا، وطبّق من جديد، فتعود أسطره. لا تملك المرشّحات سوى استبعاداتها الخاصة — فهي لا تتجاوز أبدًا استبعادًا تلقائيًا للمحرّك — ويمكنك دائمًا إعادة تفعيل أي سطر مفرد عبر مفتاح صفّه إذا كان مرشّح واسعًا أكثر من اللازم قليلًا.
مطالبة إعادة تعيين الترجمات المُرشَّحة
حالة واحدة يتولّاها RuneTranslate نيابةً عنك: ماذا لو رشّحت أسطرًا كنت قد ترجمتها بالفعل؟ السطر المُستبعَد يصدّر نصه المصدري، لكن الترجمة القديمة لا تزال مرفقة به. لذا فور تطبيقك، إن كانت أي أسطر مُرشَّحة حديثًا تحمل ترجمة بالفعل، يسألك RuneTranslate عمّا إذا كنت تريد إعادة تعيينها إلى قيد الانتظار — بإسقاط الترجمة كي يعود التصدير بنظافة إلى المصدر — أم الإبقاء عليها. الإعادة عادةً ما تكون ما تريده، لأنك استبعدت تلك الأسطر تحديدًا لأنك لم ترغب في ترجمتها.
كيف تتكامل مع بقية الأدوات
مرشّحات التعبيرات النمطية هي أداة اللمسة الأخيرة. تستبعد محوّلات المحرّكات مسبقًا النصوص البنيوية عديمة القيمة التي تعرفها لكل صيغة، لذا في لعبة مدعومة جيدًا لا يرى الذكاء الاصطناعي مسار أصل أبدًا. المرشّحات للبقايا: علامة خاصة بلعبة، أو قناة تصحيح غريبة واحدة، أو سلاسل يُظهرها محرّك متخصّص وليست حوارًا تمامًا.
استخدم مرشّح الحالة مستبعَد في المحرّر لمراجعة كل ما هو محجوز حاليًا — استبعادات المحرّك واستبعادات تعبيراتك النمطية معًا — وإعادة تفعيل أي منها. وحيث تزيل المرشّحات الأسطر، يفعل المسرد العكس: فهو يثبّت مصطلحات مختارة كي تُترجَم دائمًا بالطريقة نفسها. بين الاثنين تتحكّم في ما يُترجَم وكيف يُترجَم معًا.
خمس دقائق مع لوحة المرشّحات في بداية المشروع — أضف بضع شرائح جاهزة، وألقِ نظرة على المعاينة، وطبّق — توفّر عليك الحصة في كل عملية تشغيل بعدها وتُبقي النصوص غير الحوارية الخطرة خارج المترجم تمامًا. نزّل RuneTranslate، وافتح أي لعبة، وتفقّد قائمة ⋯ المزيد بحثًا عن استبعادات التعبيرات النمطية.
مستعد لتجربة RuneTranslate؟
تفتح الباقة المجانية كل محرك + كل مزود ترجمة. باقة Supporter ($3/mo) تفتح السرعة الكاملة.
التنزيل لنظام Windows