برمجة تطبيق اندرويد متعدد اللغات والتغيير بينها بواسطة زر

بسم الله الرحمن الرحيم

في السابق قد شرحنا طريقة برمجة تطبيق اندرويد متعدد اللغات ولكن التحكم باللغات عن طريق لغة الهاتف التي يستخدمها الجوال نفسه, اي التغيير بين اللغات يكون عن طريق ضبط الهاتف, ولكن اليوم طريقة التغيير بين اللغات عن طريق النقر على زر او نص او صورة أو أي شيء تريد .. المهم داخل دالة onClick

في البداية قبل الدخول لهذا الموضوع .. نرجوا قراءة الموضوع التالي :

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

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

  • values / للغة الافتراضية الانجليزية
  • values-ar / من أجل اللغات العربية

وبالتالي سوف يكون لدينا ملف strings مكرر مرتين .. استخدم النصوص التي تريد ولكن تابع معي لنكمل هذا التطبيق .. وأنت بعدها تغيير النصوص التي تريد ..

كذلك سوف يكون لدينا 2 اكتفتي (Activity) و 2 لياوت (Layout) .. الأولى هي الرئيسية وفيها تختار اللغة وزر الدخول والأخرى هي لعرض عبارة مرحباً .. بكلتا اللغتين ..

strings.xml

ar\strings.xml

تمام الآن انتهينا من ملفات strings و الآن نأتي إلى الليوت Layout :

activity_main.xml

main.xml

والآن إلى الملفات البرمجية .java ..

MainActivity.java

Main.java

هكذا انتهينا, ولكن في تصوري انه ليس هناك الجديد, إلا في MainActivity, وقرائته جداً سهلة عليكم بعد وصولكم معي لهذا المستوى.
ولكن سوف أحاول أن أسهل لكم الأمر قدر الإمكان :

  • في البداية اسم الحزمة في الملفات السابقة هو com.andrody.first_app غيره كما لديك في مشروعك.
  • وضعنا عدة أزرار .. زر للغة الإنجليزية وزر للغة العربية وزر الدخول .. للدخول إلى صفحة جديدة وفيها عبارة مرحباً.
  • تعاملنا مع جميع النصوص في المشروع في قيم سترنج strings, لكي تستطيع استخدامها لعدة لغات.
  • في ملف الجافا عرفنا الأزرار التي لدينا في متغيرات, وعرفنا متغير من نوع Locale.
  • برمجنا زر الدخول واعطينا له الأمر الانتقال إلى الاكتفتي الاخر main فقط هذه وظيفته بواسطة Intent.
  • برمجنا زر اللغة الانجليزية واعطينا له الأمر .. تنفيذ الدالة setLocale الموجودة لدينا في أسفل الاكتفتي مع أخذ سترنج بعنوان en.
  • برمجنا زر اللغة العربية واعطينا له الأمر .. تنفيذ الدالة setLocale مع أخذ القيمة ar.

الى الآن لا يوجد الجديد سوا الدالة setLocale الموجودة في اسفل الملف MainActivity.

فيها استخدمنا المتغير Language ( متغير تستطيع تغيره ) وهو معرف في الأعلى من نوع Locale .. الدالة واضحة لاستخدام Locale الموجود داخل كلاسات اندرويد .. وفيها قلنا له حدث لنا الصفحة باللغة المختارة .. و كذلك قلنا له نفذ الأمر finish لإغلاق هذه الصفحة .. أي عندما نكون في اللغة الانجليزية وضغطنا على اللغة العربية .. حدث لنا الصفحة وأتي بها لنا باللغة العربية ثم أغلق هذه الصفحة التي هي باللغة الانجليزية ..

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

التالي السابق
programming_multilingual_android_app_change_button_1 
programming_multilingual_android_app_change_button_2
programming_multilingual_android_app_change_button_3
programming_multilingual_android_app_change_button_4
التالي السابق

اي اقتراح أو استفسار يمكنك التعليق على التدوينة .. كما يسعدنا مشاركتكم للموضوع

                                                 

وانتظرونا بكل جديد ومفيد .. والسلام عليكم 🙂

لتحميل التدوينة في كتاب إلكتروني  Download pdf : http://andrody.com/?attachment_id=326

عن عبدالقادر عليوي

مواليد 1996 , سوري الجنسية, طالب علم, لدي شغوف كبير في تعلم كل ما يتعلق بالانترنت من تطوير وحماية, أحب القراءة كثيراً .. هدفي نشر العلم بشتى أنواعه ومجالاته, متابع من الدرجة الأولى لـ الدكتور ابراهيم الفقي و الشيخ أحمد ديدات – رحمهم الله -.

شاهد أيضاً

تحميل ملف من السيرفر لجهازك الأندرويد برمجياً

بسم الله الرحمن الرحيم في هذه التدوينة إن شاء الله سوف نتعلم كيفية تحميل ملف …

5 تعليقات

  1. ظهر خطأ عند الدخول الى الأكتيفيتي الجديدة و الحل باضافة activity
    الى ملف manifest
    يبدو أنك نسيتها في الشرح و شكرا

  2. عبدالله محمد

    شكرا لكم ولكن للاستفاده ممكن طريقة اضافة activity لهذا المثال حتى تتضح لنا الطريقة وشكرا

  3. السلام عليكم،،

    كيف اخلي toast تنعرض على حسب اللغة اللي اختارها المستخدم؟؟

    شكرا لشروحاتك استفدنا منها..

  4. احمد بنكو

    الطريقة ما اشتغلت عندي اخي ..
    معقول لانو Navigation Drawer Activity ؟

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

41 − = 34