تطوير الألعاب

تعريب الألعاب ودعم الكتابة من اليمين لليسار

Nesto your best freind

١٣ يوليو ٢٠٢٦

0 إعجاب4 دقيقة قراءة

تعريب الألعاب ودعم الكتابة من اليمين لليسار هو الفرق بين لعبة يتحمّلها اللاعب العربي ولعبة يوصي بها أصدقاءه. والتعريب الصحيح أوسع من ترجمة النصوص؛ فهو يعني إعادة رسم الحروف، وعكس تدفّق القوائم، وقلب الواجهة بأكملها من اليمين إلى اليسار.

يشرح هذا الدليل الأشياء الأربعة التي تنكسر فعليًا عند إضافة العربية — تشكيل النص، وعكس التخطيط، والأرقام، وسير العمل — مع خطوات عملية في Unity و Godot. وإن كنت في بداية الطريق، فابدأ بمقالنا عن تطوير الألعاب في العالم العربي ثم عُد إلى هنا للجزء التقني.

لماذا لا تكفي الترجمة وحدها

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

والمسألة في الحقيقة مشكلتان منفصلتان:

  • التشكيل (Shaping): اختيار الصورة الصحيحة لكل حرف ووصله بجاره.
  • الترتيب ثنائي الاتجاه (Bidi): تحدّد خوارزمية اليونيكود ثنائية الاتجاه الترتيب المرئي حين تختلط العربية واللاتينية والأرقام في سطر واحد — مثل اسم لاعب داخل جملة عربية.

ولا بدّ من حلّ الاثنتين قبل أن تظهر كلمة واحدة بشكل سليم.

أصلِح تشكيل النص في محرّكك

غالبًا لا يشكّل عارض النصوص المدمج في محرّكك العربيةَ من تلقاء نفسه.

  • Godot 4: التشكيل مدمج أصلًا. يأتي Godot 4 مع HarfBuzz و ICU، فتعمل العربية والوصل والاتجاه ثنائي الاتجاه مباشرةً في Label وRichTextLabel. اضبط اتجاه النص على AUTO أو RTL واستخدم خطًّا يحوي الحروف العربية. وهذا أسهل مسار حديث.
  • Unity: لا يقوم TextMesh Pro بالتشكيل ولا بإعادة الترتيب وحده. أضِف طبقة تشكيل — وإضافة RTLTMPro مفتوحة المصدر هي الخيار المعتمد. تُدخِل إليها النص المنطقي فتُخرج نصًّا مُشكَّلًا ومُعاد ترتيبه يستطيع TMP رسمه. فعّل خياري «Farsi/Arabic» و«Preserve Numbers» حسب الحاجة.
  • محرّكات مخصّصة / WebGL: مرّر كل نص عربي عبر HarfBuzz للتشكيل، وعبر تطبيق Bidi لليونيكود للترتيب، قبل أن يصل إلى أطلس الحروف.

واختيار الخط لا يقلّ أهمية عن المشكِّل. اختر خطًّا بتغطية عربية كاملة وجداول وصل صحيحة — Noto Naskh Arabic و Cairo و Tajawal خيارات موثوقة ومجانية الترخيص. وقد فصّلنا التضمين والخطوط الاحتياطية في مقال الخطوط العربية في Unity.

اعكِس الواجهة لا النص فقط

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

  1. يتحرّك تدفّق القراءة والتنقّل من اليمين إلى اليسار — زر «رجوع» على اليمين، و«التالي» على اليسار.
  2. تنعكس القوائم وأشرطة الصحة وعناصر الـ HUD أفقيًا.
  3. تمتلئ أشرطة التقدّم والمنزلقات من اليمين إلى اليسار.
  4. الأيقونات ذات الاتجاه — الأسهم و«الرد» و«التقديم السريع» — تنقلب؛ أما الأيقونات المحايدة (ترس، قلب) فلا تنقلب.

في Unity، ثبّت عناصر الواجهة نسبةً إلى مجموعات التخطيط واعكِسها انطلاقًا من اللغة لا بمواضع ثابتة، ليخدم قالب واحد اللغتين. وفي Godot، اضبط layout_direction على RTL في العنصر الجذر فترثه الأبناء. ولا تعكس اللعب نفسه أبدًا — فالسيارة تسير للأمام، والنص على لافتة ثلاثية الأبعاد في العالم يبقى مقروءًا؛ اعكِس الواجهة ثنائية الأبعاد فقط.

الأرقام والجموع والتفاصيل الصغيرة

  • الأرقام: يمكن للمحتوى العربي أن يستخدم الأرقام الغربية (1، 2، 3) أو الأرقام العربية-الهندية (١، ٢، ٣). كلاهما صحيح؛ اختر نمطًا واحدًا لجمهورك والتزِمه. ولا تعكس الأرقام نفسها.
  • الجموع والتذكير والتأنيث: للعربية مفرد ومثنّى وجمع، مع تذكير وتأنيث. لا تبنِ الجمل بالدمج («لديك » + العدد + « عملة»). استخدم قواعد الجمع في إطارك (Smart Strings في Unity Localization، أو جدول مفاتيح يتّبع فئات الجمع في CLDR).
  • التاريخ والوقت والعملة: نسّقها عبر إعدادات اللغة، لا بنمط ثابت مكتوب يدويًا.

سير عمل تعريب قابل للتوسّع

اجعله جزءًا من المشروع من البداية بدل ترقيعه لاحقًا:

  1. أخرِج كل النصوص إلى جداول مفاتيح (String Tables في Unity، أو ملفات .po/CSV في Godot، أو JSON خاص بك). لا نص حرفي في الكود أو المشاهد.
  2. امنح المفاتيح معنى مثل menu.play.button، وأضِف ملاحظة سياق للمترجم.
  3. جرّب التعريب الوهمي مبكرًا — ولّد لغة RTL مطوّلة تلقائيًا لكشف النصوص المقصوصة وغير المشكّلة قبل توظيف مترجم.
  4. اترك مساحة إضافية 30–40٪؛ فالنص المترجم يتمدّد، وارتفاع سطر العربية أكبر.
  5. افحص مع متحدث أصلي على الجهاز لا في جدول بيانات — فأخطاء التشكيل والعكس لا تظهر إلا على الشاشة.

انشرها ودَع اللاعبين يحكمون

الدعم العربي ميزة تنافسية: معظم الألعاب المستقلة تتجاهله، فالتي تتقنه تبرز فورًا. وحين تعمل نسختك الداعمة لـ RTL بنظافة، انشرها لعبةَ WebGL على The Gaming Nest — يلعبها اللاعب العربي فورًا في المتصفّح دون أي تنزيل، وتحصل على ملاحظات حقيقية من الجمهور نفسه الذي عرّبت له. ارفع نسختك، أو شارك في هاكاثون الألعاب القادم واختبر واجهتك العربية أمام جمهور حيّ.

العلامات

#Arabic fonts#تعريب الالعاب#Unity#RTL#Godot#localization

عن الكاتب

Nesto your best freind

ملخص المقال

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

المشاهدات

0

0 تعليق
شارك المقال:

التعليقات

شاركنا رأيك حول هذا المقال

التعليقات(0)

سجّل الدخول لإضافة تعليق. تسجيل الدخول

جاري التحميل...