تطوير تطبيقات الموبايل

إضافة أكثر من لغة لتطبيق أندرويد

Reading Time: 3 minutes

اللغة وتعدد اللغات في تطبيقك من أحد أهم الأمور التي يجب أن تأخذها في الحسبان عند بناءك لأي تطبيق. في هذا الدرس سنتعلم:

  • كيفية إضافة أكثر من لغة للتطبيق.
  • كيف نجعل التعرف على اللغة أوتوماتيكي أو كيف نعطي المستخدم خيار اختيار اللغة.
  • أيضا أحد أهم الأمور هي كيف إضافة Layout يتحول من اليسار إلى اليمين عند اختيارك للغة كاللغة العربية أو الفارسية أو العبرية.

تعتبر اللغة أحد الموارد (Resources) التي يحتاجها تطبيقك للعمل بشكل صحيح. بشكل افتراضي عند إنشاءك لمشروع أندرويد في منصة Android Studio، يتم إنشاء مجلد res ومجلد values ومجلد strings.xml وهذا على افتراض أن مشروعك سيكون باللغة الانجليزية. كل الموارد التي سيحتاجها أو يستخدمها تطبيقك يجب أن تكون داخل مجلد res. اللغة تأخذ ملف xml تحت إسم strings ويكون هذا الملف داخل مجلد اسمه values. إذاً يصبح امتداد ملف اللغة كالتالي

res – > values – > strings.xml

إضافة ملف لغة

لإضافة ملف لغة، كل ماعليك فِعله هو إضافة مجلد values متبوعا برمز اللغة على حسب معايير ISO 639-1 التي تجدها في هذا الرابط فيصبح لدينا موارد اللغة العربية كالتالي

res – > values-ar -> strings.xml

1

الان عليك أن توفر داخل ملفي ال strings.xml كل ال strings التي ستستخدمها في تطبيقك باللغتين العربية والانجليزية.

بعد أن تنتهي من توفير ال strings داخل الملفان وباللغتين المختلفتين، سيعمل نظام اندرويد على استدعاء واستخدام ملف اللغة المطابق للغة الجهاز. فإذا كان جهازك عربي سيستخدم ملف strings.xml الموجود داخل مجلد values-ar وإذا كان جهازك باللغة الانجليزية سيستخدم ملف strings.xml داخل مجلد values (المجلد الافتراضي).

في هذه الطريقة – وبشكل اوتوماتيكي – يقوم النظام باستدعاء الموارد المناسبة لـ اللغة المستخدمة. هذه هي الطريقة التي ينصح بها الكثير وهي أن يكون ملف اللغة مشابه للغة النظام حتى لاتحصل مشاكل توافقية.

تغيير الواجهات من اليسار إلى اليمين عند تغيير اللغة

اللغة العربية والفارسية والعبرية تصنف ضمن لغات RTL ويعني من اليمين إلى اليسار Right To Left لذا عند برمجتك لتطبيق يدعم لغات مختلفة التوجه LTR and RTL يجب أن تاخذ بعين الإعتبار طُرق تغيير الواجهات بناءً على اللغة المستخدمة.

بشكل افتراضي وعند إنشاءك لمشروع في أندرويد ستوديو تعتبر لغة الواجهات انجليزية LTR لذا لإضافة واجهة عربية هناك عدة طرق:

I) الطريقة الأولى

1- أضف خيار android:supportsRtl=”true”  في ملف ال AndroidManifest وتحت tag ال application

2- استخدم marginStart بدلا من marginLeft و marginEnd بدلا من marginRight

أيضا استخدم paddingStart بدلا من paddingLeft و paddingEnd بدلا من paddingRight

وكذلك يمكنك استخدام بعض ال attributes لتحديد اتجاه الواجهة كـ

android:layoutDirection
android:textDirection
android:textAlignment

II) الطريقة الثانية

يمكن أن تضيف مجلد خاص بالمخططات الخاصة باللغة العربية ويكون بإسم layout-ar أو يمكن أن تضيف مجلد خاص بأي لغة تتبع توجه RTL بإضافة مجلد layout-ldrtl

res/
layout/
main.xml (Default layout)
layout-ar/
main.xml (Specific layout for Arabic)
layout-ldrtl/
main.xml (Any “right-to-left” language, except
for Arabic, because the “ar” language qualifier
    has a higher precedence.)

2

إضافة خيار اللغة للمستخدم

 يُفضل أن يكون خيار تغيير  اللغة داخل قائمة overflow كما هو بالصورة التالية أو ضمن الإعدادات Settings الخاصة بالتطبيق.

33

عند الضغط على اختيار لغة Choose Language تفتح قائمة  popup باللغات المتوفرة.

4

عند اختيار المستخدم للغة معينة يتم الآتي:

  1. معرفة اللغة التي اختارها
  2. حفظ رمز اللغة في الـ shared preference
  3. يعيد البرنامج تشغيل نفسه
  4. عند بدء البرنامج يتم التأكد من وجود لغة مختارة من قِبل المستخدم أو لا، فإذا كان هناك لغة قد حددها المستخدم سابقا يتم تغيير إعدادات الـ Locale لتأخذ اللغة المختارة

 

يفضل أن تُظهر رسالة تنبيهية للمستخدم قبل إعادة تشغيل البرنامج كما في الصورة.

5

 

 

وبعد إعادة التشغيل

6

 

 

 

الكود المصدري تجده كاملاً في هذا الرابط.

2
السابق
إدارة المشاريع: العمل الجماعي
التالي
مكتبة بيكاسو Picasso
  1. السلام عليكم
    ماهر نبيل هل انت مطور تطبيقات احتاج مساعدة

    1. ماهر نبيل قال:

      وعليكم السلام محمد،
      تفضل : )

اترك تعليقاً

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.