الخميس، 20 ديسمبر 2012

إنشاء تطبيق متعدد اللغات


إنشاء تطبيق متعدد اللغات

لإنشاء تطبيق يدعم عدة لغات يجب أولا استخلاص جميع السلاسل الحرفية String و النصوص Text التي سنستخدمها في واجهة التطبيق و نقوم بحفظها في ملف منفصل يسمي String.xml
ووظيفة ملف String  انه يقوم بحفظ جميع السلاسل الحرفية و إعطائها اسم خاص لاستخدام في الكود لجلب هذا النص من ملف الـ String


يقوم Android SDK بإنشاء ملف النصوص String.xml تلقائياً بمجرد إنشاء مشروع جديد
يتم إنشاء ملف String.xml في المسار
MyProject/
    res/
       values/
           strings.xml
نضع في هذا الملف في نفس المسار السابق كل  نصوص التطبيق باللغة الافتراضية
و لوضع نصوص للغات أخري نقوم بإنشاء مجلد خاص لكل لغة و ملف String.xml كما في المثال التالي





و يقوم نظام التشغيل Android عند تشغيل التطبيق علي الهاتف بجلب اللغة المناسبة طبقا للعدادات المحلية للهاتف
و للإشارة و جلب هذه النصوص و وضعها في أماكنها في تصميم النشاط  Activity نستخدم المعامل
@string/ في الخاصية text يتبعها اسم النص في ملف الـ string
مثال :
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
حيث hello_world اسم النص المخزن به السلسلة الحرفية المراد اظهارها في TextView

سنقوم بعمل مشروع يشرح طريقة برمجة تطبيق متعدد اللغات
يحتوي التطبيق علي TextView واحد و به جملة Hello world و سنجعل هذه الجملة بثلاث لعات
- الافتراضية ( الإنجليزية )
- الأسبانية
- الفرنسية

1-    قم بإنشاء مشروع جديد باسم MultiLang
2-    قم بالنقر بزر الفأرة الأيمن علي المجلد res و اختار New ثم Folder و قم بتسميته values-es

3-    كرر نفس الخطوات لإنشاء مجلد باسم values-fr
4-    ليصبح شكل المستكشف كما بالصورة

5-    توجة  إلي المجلد values و اضغط علي علامة الجمع التي تظهر بجوار  لفتحة ستجد بداخله ملف باسم String.xml قم بعمل نقر عليه بالزر الأيمن و اختر الأمر Copy
6-   توجة إلي المجلد values-es -و بالنقر بالزر الأيمن و اختار Paste
7-    كرر نفس الخطوات لنسخ الملف string.xml .من المجلد values إلي values-fr
8-    قم بفتح الملف values-es/string.xml -عن طريق النقر عليه مرتين
9-    انقر فوق زر string.xml .في واجهة الملف كما بالصورة


ستجد الملف يحتوي علي
<resources>

    <string name="app_name">MultiLang</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MultiLang</string>

</resources>

10-   غير النص المسمي hello_world و الذي يحتوي علي قيمة  Hello world غيره إلي اللغة الأسبانية إلي  hola mundo
11-   غير النص  المسمي menu_settings من Settings إلي Configuración
ليصبح بالشكل التالي
<resources>

    <string name="app_name">MultiLang</string>
    <string name="hello_world">hola mundo!</string>
    <string name="menu_settings">Configuración</string>
    <string name="title_activity_main">MultiLang</string>

</resources>
-->
قم بحفظ الملف بالضغط علي رمز القرص المرن بشريط الأدوات

12-         قم بفتح الملف values-fr/string.xml-عن طريق النقر عليه مرتين
13-         قم بتغيير النص Hello world إلي bonjour tout le monde  و النص Settings إلي réglages
ليظهر بالشكل التالي
<resources>

    <string name="app_name">MultiLang</string>
    <string name="hello_world">bonjour tout le monde</string>
    <string name="menu_settings">réglages</string>
    <string name="title_activity_main">MultiLang</string>

</resources>

14- قم بحفظ الملف بالضغط علي رمز القرص المرن بشريط الأدوات
15- قم بتشغيل التطبيق علي المحاكي
ستجد أن عبارة الترحيب ظهرت باللغة الإنجليزية و لذا ضغط علي زر Menu في المحاكي ستظهر كلمة الاعدادات باللغة الإنجليزية settings
16- غير اعدادات المحاكي إلي اللغة الأسبانية و اعد تشغيل التطبيق كما بالصور






سنجد ان رسالة الترحيب و قائمة الاعدادات Settings قد  ظهرت و تغيرت تلقائياً إلي اللغة الأسبانية
17- كرر نفس الخطوات السابقة لتغير اعدادات المحاكي اللي اللغة الفرنسية و اعد تشغيل التطبيق
 سنجد أن رسالة الترحيب و قائمة الاعدادات Settings قد  ظهرت و تغيرت تلقائياً إلي اللغة الفرنسية

لتحميل ملف المشروع من هنا 






ليست هناك تعليقات:

إرسال تعليق