بسم الله الرحمن الرحيم
في هذه التدوينة إن شاء الله سوف نعطيكم شرح مبسط لمجلد values والملفات التي بداخله, وعلاقتها بإنشاء تطبيق متعدد اللغات.
في البداية مجلد values هو مجلد من مجلدات المشروع لتطبيق اندرويد. ويحتوي على عدة ملفات xml. بعضها موجودة جاهزة وبعضها تنشأها حسب الحاجة إليها.مجلد القيم وداخله مثلاً ملفات النصوص والأعداد والألوان .. إلخ. وهو من أهم المجلدات داخل الـ Resource. مع ملاحظة إن كل ملف داخل values مرتبط بـ R مباشرة. أي لدينا مثلاً عنصر في strings وهو android >> فالوصول له يكون بالشكل التالي :
R.string.andrody
اقرأ أيضاً شرح مجلدات وملفات مشروع تطبيق اندرويد
من أهم الملفات التي يحتوي عليها مجلد الفايلوس هي :
- strings.xml / لقيم النصوص, وتحتوي على 3 أنواع. المشهور منها هو String وهو للنص المفرد, أما لسلسلة من النصوص فنستخدم String Array وأما للكميات والجموع فنستخدم Plurals ولكن جميعها تستخدم داخل نفس الملف strings.xml فقط البادئة تتغير.
مثال على استخدام كلاً منها :
// String <resources> <string name="string_name">text_string</string> </resources> // String Array <resources> <string-array name="string_array_name"> <item>text_string</item> </string-array> </resources> // Quantity Strings (Plurals) <resources> <plurals name="plural_name"> <item quantity=["zero" | "one" | "two" | "few" | "many" | "other"]>text_string</item> </plurals> </resources>
- styles.xml / للأنماط والاساليب .. الاستايل, هذا الملف من أحب الملفات على قلبي, يمكنك وضع خصائص معينة في تجميعة معينة وتعطيها اسم محدد, ثم تأتي لعنصر ما وتعطيه خاصية ارتباط مع هذه الخصائص .. رائع ويستحق التجربة.
يكتب بالصيغة التالية :
<resources> <style name="style_name" parent="@[package:]style/style_to_inherit"> <item name="[package:]style_property_name" >style_value</item> </style> </resources>
- colors.xml / لقيم الألوان, كذلك ملف لا غنى عنه إذا كنت ممن يحب تغيير الوان النصوص وغيرها كثيراً.
مثال :
<resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
وعند أي عنصر تكتب فقط قيمة name و هو يأخذ اللون الذي حددته #000000.
- arrays.xml / للمصفوفات, طبعاً من أقوى الملفات ولكن أعتقد من اسمه واضح .
مثال عليه :
<resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
- dimens.xml / للقيم, هذا الملف اممـ ليس معقد كثيراً, ولكن هو أكثر ملف شامل للقيم, أعداد, ألوان, صور, لا اعرف كيف أشرحه ولكنه يحتوي على أنواع كثيرة جداً ..
الأنواع التي يخرجها :
Bool – Color – Dimension – ID – Integer – Integer Array – Typed Array
الآن ندخل قليلاً في ملف strings.xml لأنك يجب استخدامه إذا كنت تريد أن تبني تطبيق متعدد اللغات.
هذا الملف, تستطيع فهمه بالمثال التالي :
<resources> <string name="andrody">شبكة اندرودي عربي</string> <string name="abboudi_aliwi">عبدالقادر عليوي</string> <string name="entry">دخول</string> <string name="exit">خروج</string> </resources>
هذا القيم .. نستخدمها داخل النصوص مثال لدي نص من نوع TextView وخاصية النص كما قلنا سابقاً في :
هي : android:text .. إذا نأتي للنص الذي نريده وندخل داخله قيمة السترنج المطلوبة, مثلاً نضع :
android:text="@string/andrody"
إذا سوف يخرج لنا النص كما حددنا في ملف السترنج = شبكة اندرودي عربي
وهكذا يفضل بل ويجب عليك وضع كل نصوصك داخل ملف السترنج إذا أردت أن تبرمج تطبيق متعدد اللغات.
صورة توضح استخدام ملف strings.xml :
إن شاء الله من الصورة قد توضح المقصود, والآن لكي تستطيع بناء تطبيق متعدد اللغات يجب أن تجعل جميع النصوص في تطبيق في ملف السترنج strings .
بعد ذلك تتوجد إلى مجلد values وتقوم بنسخه .. ولكن أجعل بالنسخة الآخرى فقط ملف strings.xml وأسمي المجلد بالكامل بـ values-** حسب اللغة التي تريد ..
مع العلم إن مجلد values الافتراضي سوف تعمل النصوص فيه, مع اللغة الانجليزية وأي لغة آخرى لا يوجد لها مجلد مستقل ..
لأوضح كلامي بشكل أكبر .. الآن نحن تطبيق ونريد أن يكون لدينا 3 لغات للتطبيق .. انجليزية وعربية وفرنسية.
إذا سوف يكون لدينا 3 مجلدات .. للغة الانجليزية نستخدم نفسه الافتراضي values أما للغة العربية فنستخدم values-ar أما للغة الفرنسية فنستخدم values-fr .
توضيح بصورة :
الآن افتح ملف السترنج الخاص باللغة العربية .. وحول النصوص لغة عربية .. وهكذا مع بقية اللغات ولكن لا تغير بقيمة name ابداً ..
مثال توضيحي على النص السابق :
// folder Values/strings.xml <resources> <string name="welcome">welcome</string> <string name="all_you">all of you on the</string> <string name="andrody">AndRody Arabe</string> </resources> // folder Values-ar/strings.xml <resources> <string name="welcome">مرحباً</string> <string name="all_you">بكم جميعا</string> <string name="andrody">على اندرودي عربي</string> </resources> // folder Values-fr/strings.xml <resources> <string name="welcome">bienvenue</string> <string name="all_you">chacun d'entre vous sur la</string> <string name="andrody">AndRody Arabe</string> </resources>
الآن عند تشغيل التطبيق على جهاز جوال لغته الانجليزية يعني ملف Values/strings.xml
أما في جهازه اللغة فيه هي العربية فسوف يعمل Values-ar/strings.xml وهكذا بقية اللغات ..
معاينة ولكن تحتاج إلى تنسيق أكبر .. فقط مجرد مثال سريع لكم :
ملاحظة : يمكنك عمل نسخ دون الرجوع إلى ملفات التطبيق .. من خلال الضغط على علامة الكرة الارضية فوق معاينة المشروع .. والضغط على اضافة لغة, وغيرها من الخصائص
يمكنكم عمل التطبيق بعدة لغات وتجربته على جهازك الخاص, بتغيير لغة الجهاز من الضبط الخاص بجوالك.
انتظرونا بكل جديد ومفيد .. والسلام عليكم 🙂
لتحميل التدوينة في كتاب إلكتروني Download pdf : https://andrody.com/?attachment_id=159
الله يسلم ايديك بصراحة فتت على كل دورات تعليم ما تعلمت ولا شي مفيد غير من عند مدونتك #شكرا
ربي يسلمك .. ان شاء الله نبقى عند حسن الظن 🙂
تعليقي الثاني في موقعك اخي هو:
أن موقعك مرجع لمن أردا تعلم البرمجة بأندرويد ستديو…
وفقك الله
وانتظر درساً لطريقة تحويل التطبيق إلى apk وعمل له مفتاح …ليكون جاهزاً للرفع على قوقل بلاي
تحياتي لك
إن شاء الله أخي سوف يكون هذا الدرس في دورة برمجة تطبيقات الاندرويد الخاصة بنا على اليوتيوب عندما نصل لها .. وان شاء الله بالتأكيد سوف يكون هناك شرح في المدونة بالتفصيل ..
اهلا وسهلا بك 🙂