19 -اندرويد – دعم عدة لغات Supporting Different language

ملاحظة : الموضوع عبارة عن حلقة من حلقات سلسلة برمجة وتطوير اندرويد Android Development

اندرويد : دعم لغات مختلفة  Supporting Different Languages

السلام عليكم ورحمة الله وبركاته

سوف نتعلم ضمن هذا الدرس مايلي:

  1. انشاء عدة مسارات محلية وملفات للسلاسل المحرفية Create Locale Directories and String Files
  2. استخدام موارد السلاسل المحرفية Use the String Resources

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

اندرويد يسهل علينا هذا الموضوع , حيث يزودنا بمسار خاص للموارد ضمن كل مشروع من مشاريع اندرويد.

في حال قمت بإنشاء مشروعك عبر استخدام Android SDK Tools , فإن الادوات المستخدمة سوف تقوم بإنشاء مسار res/ تحت الروت مباشرة.

ضمن مسار res/ تتواجد مسارات ضمنية فرعية خاصة بانماط الموارد المختلفة.

هنالك ايضا عدة ملفات افتراضية مثل res/values/strings.xml, والذي يحوي قيم السلاسل المحرفية.

إنشاء المسارات المحلية وملفات السلاسل المحرفية Create Locale Directories and String Files

لكي تضيف امكانية دعم عدة لغات, يتوجب عليك انشاء عدة مسارات  values  اضافية وذلك ضمن المسار res/ والذي يتضمن على  “-” وكود ISO للبلد في اخر اسم امسار.

على سبيل المثال, المسار values-es/ عبارة عن مسار يحوي على بعض الموارد المحلية بالنسبة للغة ذات الكود “es”. يقوم اندرويد بتحميل الموارد المناسبة تبعا للاعدادات المحلية للجهاز المستخدم , وذلك في زمن التنفيذ.

ما إن تعتمد على اللغة التي ترغب بدعمها , حتى يتوجب عليك انشاء مسارات فرعية وملفات موارد خاصة بالسلاسل المحرفية.

على سبيل المثال:

MyProject/res/

values/

strings.xml

values-es/

strings.xml

values-fr/

strings.xml

قم باضافة قيم السلاسل المحرفية ضمن الملف المناسب لها وذلك بالنسبة لكل لغة ترغب في دعمها.

في زمن التنفيذ , يقوم نظام اندرويد باستخدام المجموعة المناسبة من السلاسل المحرفية اعتمادا على الاعدادات المحلية لجهاز المستخدم.

على سبيل المثال, فيما يلي بعض الملفات الخاصة بموارد السلاسل المحرفية لعدة لغات.

الانكليزية (اللغة الافتراضية ) تتوضع الملفات الخاصة بها ضمن المسار التالي :

  /values/strings.xml:

<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<string name=”title”>My Application</string>
<string name=”hello_world”>Hello World!</string>
</resources>

اما الملف الخاص باللغة الاسبانية يقع ضمن المسار التالي :

 /values-es/strings.xml:

<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<string name=”title”>Mi Aplicación</string>
<string name=”hello_world”>Hola Mundo!</string>
</resources>

اما الملف الخاص باللغة الفرنسية يقع ضمن المسار التالي :

 /values-fr/strings.xml:

<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<string name=”title”>Mon Application</string>
<string name=”hello_world”>Bonjour le monde !</string>
</resources>

استخدام موارد السلاسل المحرفية Use the String Resources

بإمكانك الاشارة إلى موارد السلاسل المحرفية ضمن الترميزالمصدر , او اي ملفات XML اخرى , عبر استخدام اسم المورد resource name  معرفا باستخدام خاصية name الموجودة ضمن عنصر <string>.

بإمكانك الاشارة إلى موارد السلاسل المحرفية , ضمن الترميزالمصدري, عبر استخدام الكود التالي : R.string.<string_name>.هنالك عدة طرائق لتقبل الموارد المحرفية بهذا الشكل.

على سبيل المثال:

// Get a string resource from your app’s Resources
String hello = getResources().getString(R.string.hello_world);// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

في بقية ملفات XML بإمكانك الاشارة إلى موارد السلاسل المحرفية عبر الصيغة التالية : @string/<string_name, وذلك – طبعا – مادامت الخاصية تتقبل قيمة سلسلة محرفية.

على سبيل المثال:

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/hello_world” />

ارجو ان يكون اسلوب استخدام ملفات موارد السلاسل المحرفية , بالاضافة للسلاسل المحرفية قد اصبح واضحا , وإلى لقاء قريب في حلقة قادمة تتحدث عن “دعم الشاشات المختلفة “

وإلى ذلك الحين استودعكم الله والسلام عليكم ورحمة الله وبركاته


Advertisements

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

  1. أضف تعليق

اترك رد

Please log in using one of these methods to post your comment:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: