Latest articles
JOURNAL INDEX
تطوير تطبيقات الموبايل/2026.10.12/4 VIEWS/5 MIN READ

Mobile App Localization Testing: RTL, Dates, Currency, and Long Text

عبدالرحمن ربيع علي
Abdelrahman Rabie Ali Software Engineer & AI Builder

A practical guide to testing Android and iOS localization, RTL layouts, text expansion, dates, currency, and runtime language changes.

اختبار توطين تطبيقات الموبايل: RTL والتواريخ والعملات والنصوص الطويلة

اختبار توطين تطبيقات الموبايل: RTL والتواريخ والعملات والنصوص الطويلة

قد تعمل شاشة التطبيق بصورة صحيحة باللغة الإنجليزية، ثم تنهار عند عرض العربية أو الألمانية أو لغة تستخدم صيغًا مختلفة للتاريخ والأرقام. اختبار التوطين (Localization Testing) لا يقتصر على ترجمة الكلمات؛ بل يتحقق من أن التخطيط والسلوك والبيانات يظلون مفهومين في كل لغة وسوق مستهدف.

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

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

1. ابنِ مصفوفة اختبار للغات والأسواق

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

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

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

2. اختبر اتجاه الكتابة RTL والتخطيط

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

اختبر وجود العربية والإنجليزية في السطر نفسه، مثل رقم طلب أو بريد إلكتروني داخل رسالة عربية. جرّب علامات الترقيم والأقواس والشرطات والأرقام، لأن اتجاه النص قد يجعلها تظهر في موضع غير متوقع. تأكد من أن المؤشر يتحرك كما يتوقع المستخدم عند تعديل نص مختلط، وأن النسخ واللصق لا يغيّران ترتيب الأحرف. لا تكتفِ بصورة ثابتة؛ اكتب داخل الحقل واحذف وأضف في منتصف السطر.

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

3. النصوص الطويلة وتغيّر حجم الخط

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

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

شاشة تطبيق هاتف تعرض واجهة رقمية لاختبار وضوح النصوص والعناصر عند تغيير اللغة
راجع قابلية قراءة النصوص بعد تبديل اللغة وإعدادات المنطقة.

4. التواريخ والأوقات والمناطق الزمنية

التاريخ ليس سلسلة نصية ثابتة؛ فترتيب اليوم والشهر والسنة يختلف بين الأسواق، وقد يلتبس 04/05/2026 بين الرابع من مايو والخامس من أبريل. اعرض التاريخ وفق إعداد المنطقة أو قاعدة واضحة خاصة بالمنتج، واستخدم اسم الشهر عندما يقلل الالتباس. اختبر التواريخ القريبة من نهاية الشهر والسنة والسنوات الكبيسة وأوقات منتصف الليل.

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

5. العملات والأرقام والأرقام العشرية

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

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

6. الجمع والمتغيرات والرسائل المركبة

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

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

7. تبديل اللغة وحفظ التفضيلات

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

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

8. اجمع بين الفحص الآلي والاختبار اليدوي

يمكن للاختبارات الآلية اكتشاف مفاتيح ترجمة مفقودة أو نصوص افتراضية ظاهرة أو بعض مشكلات التخطيط، لكنها لا تستطيع الحكم على وضوح كل ترجمة أو ملاءمة صياغة تاريخ لمستخدم حقيقي. أضف حالات اختبار ثابتة للغات المهمة، واستخدم لقطات مقارنة عندما تكون مفيدة، لكن لا تعتمد على تطابق الصورة وحده؛ فقد يكون اختلاف بسيط مطلوبًا في لغة أخرى. راجع النتائج يدويًا على أجهزة فعلية.

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

مقالات ذات صلة

9. أنشئ بيانات اختبار تكشف الحالات الحدية

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

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

10. فحص قبل النشر

أضف فحص الترجمة إلى عملية البناء، وأوقف الإصدار عند غياب ترجمة لازمة أو ظهور نص تجريبي.

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

11. قائمة تحقق مختصرة

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

12. قبل اعتماد الإصدار

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

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

الخلاصة

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

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

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

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

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

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

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

راجع كل لغة مدعومة قبل نشر الإصدار النهائي.

شخص يستخدم هاتفًا ذكيًا لمراجعة ظهور النصوص الطويلة وتناسق واجهة التطبيق
أعد الاختبار بعد تغيير اللغة وحجم الخط قبل اعتماد الإصدار.
SHARE Share this article
عبدالرحمن ربيع علي
Written by

Abdelrahman Rabie Ali

Software Engineer & AI Builder

Full-stack software engineer and graphic designer with 4+ years building modern web applications using PHP, JavaScript, HTML, and CSS. Strong UI/UX background and advanced use of AI tools to boost development efficiency, automation, and decision-making.

Article tags

#تطوير تطبيقات الموبايل #RTL #Android #iOS #اختبار البرمجيات #Localization Testing
COMMENTS

Comments

Be the first to comment on this article.

Add your comment

Your comment appears after review.