ترجمة تطبيقك

الإعلانات

 ترجمة تطبيقك [الإعدادات المحليه]

 

 

 ترجمة تطبيقك [الإعدادات المحليه]

يعمل نظام الأندرويد على العديد من الأجهزة في العديد من المناطق. للوصول إلى معظم المستخدمين، يجب أن يتعامل تطبيقك مع النصوص، ملفات الصوت، الأرقام، العملات، والرسوميات بطرق تتناسب مع المناطق التي يُستخدم فيها تطبيقك.

 

 

يصف هذا المستند أفضل الممارسات لـ ترجمة تطبيقات اندرويد:

يجب أن تكون لديك معرفة بالفعل ببرمجة لغة الجافا، وأن تكون معتاد على تحميل مصادر الاندرويد، الإعلان عن عناصر واجهة المستخدم في ملف XML، و إعتبارات التطوير مثل دورة حياة النشاط والمبادئ العامه، للإعدادت المحلية للدول.

من الممارسات الجيدة إستخدام إطار عمل مصادر الاندرويد، لفصل الجوانب التي تمت ترجمتها من تطبيقك قدر الإمكان، عن الوظائف الأساسية المعتمدة على جافا:

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

 

  • من ناحية أخرى، يتم تشغيل سلوك واجهة المستخدم، بواسطة الكود المستند إلى جافا. على سبيل المثال، إذا قام المستخدمون بإدخال بيانات تحتاج إلى تهيئة أو فرز بشكلٍ مختلف بناءً على الموقع (الإعدادات المحليه/ ترجمة)، فإنك ستستخدم لغة الجافا للتعامل مع البيانات برمجياً. لا يغطي هذا المستند كيفية التوطين المستندة إلى جافا.

للحصول على دليل موجز عن توطين (ترجمة) السلاسل في تطبيقك، راجع الدرس التدريبي، دعم اللغات المختلفة.

 

 

 

 

نظرة عامه: تبديل المصادر في الاندرويد


المصادر هي سلاسل نصية، مخططات، أصوات، رسوميات، وأي بيانات ثابتة أخرى يحتاجها تطبيق الاندرويد.

يمكن أن يحتوي التطبيق على مجموعات متعددة من المصادر، كلٍ منها مخصص لتكوينات مختلفة للجهاز. عندما يقوم المستخدم بتشغيل التطبيق، يقوم الأندرويد تلقائياً بإختيار وتحميل المصادر التي تتطابق مع الجهاز على أفضل وجه.

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

عند كتابة تطبيقك، تقوم بإنشاء مصادر إفتراضيه و مصادر بديله ليستخدمها تطبيقك. عندما يقوم المستخدمون بتشغيل تطبيقك،

فإن نظام الأندرويد يختار أي مصادر يجب تحميلها، بناءً على موقع (الإعدادات المحليه) الجهاز. لإنشاء المصادر، يمكنك وضع الملفات في مجلدات فرعية مسماة خصيصاً لدليل المشروع res/.

 

 

 

لماذا المصادر الإفتراضية مهمه


عندما يتم تشغيل التطبيق في موقع لم تقدم له “نص لغوي” خاص بذلك الموقع المحدد، يقوم الأندرويد بتحميل السلاسل الإفتراضية من res/values/strings.xml.

لو كان هذا الملف الإفتراضي غير موجود، أو يفتقد إلى السلاسل التي يحتاجها تطبيقك، فلن يتم تشغيل تطبيقك وسيظهر خطأ.

يوضح المثال أدناه ما يمكن حدوثه عندما يكون ملف النص الإفتراضي غير مكتمل.

مثال:

يشير كود الجافا إلى سلسلتين فقط، text_a و text_b. يحتوي هذا التطبيق على ملف مصادر محليه (res/values-en/strings.xml) التي تقوم بتعريف text_a و text_b باللغة الإنجليزيه.

يحتوي هذا التطبيق أيضاً على ملف مصادر إفتراضي (res/values/strings.xml) يحتوي على تعريف لـ text_a وليس لـ text_b:

  • عند تشغيل هذا التطبيق على جهاز تم (ضبط إعداداته المحليه) على اللغة الإنجليزيه، قد يتم تشغيل التطبيق بلا مشاكل، لأن ملف res/values-en/strings.xml يحتوي على كلا السلسلتين التي يحتاجهما.

 

  • مع ذلك، يرى المستخدم رسالة خطأ ونافذة إغلاق إجباري عند تشغيل هذا التطبيق على جهاز معين على لغة غير الإنجليزية. لا يتم تحميل التطبيق.

 

لتجنب هذا الموقف، تأكد من وجود ملف res/values/strings.xml و أنه يقوم بتعريف كل السلاسل المطلوبة.

ينطبق هذا الوضع على جميع أنواع المصادر، وليس السلاسل فقط:

تحتاج إلى إنشاء مجموعة من ملفات المصادر الإفتراضية التي تحتوي على جميع المصادر التي يستدعيها تطبيقك – المخططات، الرسوميات، الصور المتحركة…الخ.

للحصول على معلومات حول الإختبار، راجع إختبار المصادر الإفتراضية.

 

 

 

 

إستخدام المصادر للإعدادت المحلية


كيفية إنشاء مصادر إفتراضية

ضع النص الإفتراضي للتطبيق في res/values/strings.xml.

السلاسل النصية في res/values/strings.xml يجب أن تستخدم اللغة الإفتراضية، وهي اللغة التي تتوقع أن معظم مستخدمي تطبيقك يتحدثون بها.

مجموعة المصادر الإفتراضية يجب أن تتضمن أي مخططات ورسوميات إفتراضية، و يمكن أن تتضمن أنواع مصادر أخرى مثل الصور المتحركة:

  • res/drawable/: (يتطلب دليل يحوي على الأقل ملف رسومي واحد، لأيقونة التطبيق على Google Play).

 

  • res/layout/: (يتطلب دليل يحوي ملف XML والذي يقوم بتعريف المخطط الإفتراضي).

 

  • res/anim/ : (يطلب ما إذا كان لديك أي مجلدات لمؤهلات <res/anim-qualifiers>).

 

  • res/xml/ : (يطلب ما إذا كان لديك أي مجلدات لمؤهلات <res/xml-<qualifiers).

 

  • res/raw/: (يطلب ما إذا كان لديك أي مجلدات لمؤهلات <res/raw-<qualifiers).

 

 نصيحة: في كودك، قم بفحص كل إشارة مرجعية لمصادر الأندرويد. تأكد بأن المصادر الإفتراضيه معرفة. تأكد أيضاً بأن ملف السلاسل الإفتراضية مكتمل.

يمكن أن يحتوي ملف سلاسل التوطين (الترجمة) على مجموعة فرعية من السلاسل، لكن   يجب أن يحتوي ملف السلاسل الإفتراضية عليهم جميعاً.

 

 

 

 

 

كيفية إنشاء مصادر بديلة


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

يمكن أن يحدد التطبيق العديد من أدلة /<res/<qualifiers، لكل منها مؤهلات مختلفة، لإنشاء مصادر بديله لإعدادت محلية مختلفة، قم بإستخدام مؤهل يقوم بتحديد لغة أو تراكيب لغوية لمنطقة ما.

(اسم دليل المصدر يجب أن يتطابق مع نظام التسمية الموضح في توفير المصادر البديله، وإلا فلن يتم تجميع “compile” تطبيقك).

 

مثال:

لنفرض أن اللغة الإفتراضية لتطبيقك هي الإنجليزية. ولنفرض أيضاً بأنك تريد ترجمة جميع النصوص في تطبيقك إلى اللغة الفرنسية.

ومعظم النصوص في تطبيقك (كل شيء بإستثناء اسم التطبيق) إلى اللغة اليابانيه.

 

في هذه الحاله، يمكنك إنشاء ثلاث ملفات بدائل strings.xml، يتم تخزين كلٍ منها في دليل مصادر خاص بمواقع معينة:

1- res/values/strings.xml
يحتوي على نص باللغة الإنجليزية لجميع السلاسل التي يستخدمها تطبيقك، بما فيها نص لسلسلة تسمى عنوان.

2-res/values-fr/strings.xml
يحتوي على نص باللغة الفرنسية لجميع السلاسل، بما في ذلك العنوان.

3- res/values-ja/strings.xml
يحتوي على نص باللغة اليابانية لجميع السلاسل ما عدا العنوان.

 

إذا قام كود الجافا بالإشارة إلى R.string.title، إليك ما سيحدث وقت التشغيل:

  • إذا تم ضبط الجهاز على أي لغة بخلاف اللغة الفرنسيه، فإن الأندرويد يقوم بتحميل عنوان من ملف res/values/strings.xml .

 

  • إذا تم ضبط الجهاز على اللغة الفرنسية، سيقوم الأندرويد بتحميل عنوان من ملف res/values-fr/strings.xml.

لاحظ أنه في حالة تعيين الجهاز على اللغة اليابانيه، يبحث الأندرويد عن العنوان في ملف res/values-ja/strings.xml.

ولكن نظراً لعدم وجود مثل هذه السلسلة في هذا الملف، عاد الأندرويد إلى الوضع الإفتراضي، وقام بتحميل العنوان باللغة الإنجليزية من ملف res/values/strings.xml.

 

 

 

 

أي المصادر لها الأولويه؟


إذا كان هناك عدة ملفات مصادر تتطابق مع تكوين الجهاز، يتبع الأندرويد مجموعة من القواعد ليقرر أي الملفات سيستخدمها. من بين المؤهلات التي يمكن تحديدها في اسم دليل المصدر، تكون الأولوية دائماً للموقع.

مثال:

أفرض أن تطبيقاً يحتوي على مجموعة إفتراضية من الرسوميات و مجموعتين أخرى من الرسوميات، كل منها تم ضبطها لإعدادات جهاز مختلفه:

 

  • res/drawable/
    يحتوي على رسوميات إفتراضية.

 

  • res/drawable-small-land-stylus/
    يحتوي على رسوميات تم ضبطها للإستخدام مع جهاز يتوقع إدخالاً بإستخدام قلم الشاشة ويحتوي على شاشة QVGA ذات كثافة منخفضه وفي الإتجاه الأفقي.

 

  • res/drawable-ja/
    يحتوي على رسوميات تم ضبطها لتستخدم مع اللغة اليابانيه.

إذا تم تشغيل التطبيق على جهاز تم تكوينه ليستخدم اللغة اليابانيه، سيقوم الأندرويد بتحميل الرسوميات من res/drawable-ja/. 

حتى إذا كان الجهاز، هو الجهاز الذي يتوقع إدخالاً بواسطة قلم الشاشة، ويحتوي على شاشة QVGA ذات كثافة منخفضة وفي الإتجاه الأفقي.

 

 إستثناء: المؤهلات الوحيدة التي لها الأولوية على الموقع أثناء عملية الإختيار هي MCC و MNC (رمز بلد   المحمول و رمز شبكة المحمول).

 

مثال: أفرض أن لديك الحالة التاليه:

1- كود التطبيق يقوم بإستدعاء R.string.text_a
2- يوجد له ملفي مصادر بديله:

  • res/values-mcc404/strings.xml
    والذي يحتوي على text_a في اللغة الإفتراضية للتطبيق، وفي هذه الحالة هي اللغة الإنجليزية.

 

  • res/values-hi/strings.xml
    والذي يحتوي على text_a في اللغة الهنديه.

 

3- يتم تشغيل التطبيق على جهاز بالتكوينات التاليه:

  • تتصل بطاقة SIM بشبكة المحمول (MCC 404) في الهند.
  • تم ضبط اللغة على الهنديه (hi).

يقوم الأندرويد بتحميل text_a من ملف res/values-mcc404/strings.xml (باللغة الإنجليزية)، حتى لو تمت تهيئة الجهاز على اللغة الهنديه.

وهذا يرجع إلى أنه في عملية إختيار المصادر، يفضل الأندرويد مطابقة MCC على مطابقة اللغة.

عملية الإختيار لا تكون مباشرة دائماً كما ذكر في هذه الأمثله. يرجى قراءة كيفية عثور الأندرويد على أفضل مصدر متطابق للحصول على وصف أكثر دقة للعمليه.

جميع المؤهلات موصوفة ومرتبه حسب الأسبقيه في (جدول2) من توفير المصادر البديله.

 

 

 

 

الإشارة إلى المصادر في الكود


في تطبيقك المبني بلغة الجافا، تشير إلى المصادر بإستخدام بنية الجمله التاليه R.resource_type.resource_name أو android.R.resource_type.resource_name.

لمزيد من المعلومات حول هذا، راجع الوصول إلى المصادر.

 

 

 

 

 

إدارة السلاسل من أجل الترجمة (الإعدادت المحلية)


نقل كل السلاسل إلى strings.xml

بينما تقوم ببناء تطبيقك، لا تقم بتشفير أي سلسلة. بدلاً من ذلك، قم بالإعلان عن جميع سلاسلك كمصادر في ملف السلاسل الإفتراضي strings.xml. 

مما يجعل من السهل تحديثه وترجمته.

السلاسل الموجودة في ملف strings.xml يمكن إستخراجها لاحقاً بسهولة، وترجمتها ومن ثم دمجها مرة أخرى في تطبيقك (مع المؤهلات المناسبة)، دون إجراء أي تغييرات في الكود الخاص بك.

إذا قمت بإنشاء صور تحتوي على نص، فقم بوضع تلك السلاسل في ملف strings.xml أيضاً، ومن ثم قم بإعادة إنشاء الصور بعد الترجمة.

 

 

 

اتباع إرشادات الأندرويد لسلاسل واجهة المستخدم

أثناء قيامك بتصميم وتطوير واجهة مستخدمك، تأكد من أنك تولي إهتماماً لكيفية تحدثك مع المستحدم.

بشكلٍ عام، استخدم أسلوباً لطيفاً مختصر ودقيق ولكن موجزاً، وأستخدم أسلوب متلائم مع جميع واجهات مستخدمك.

تأكد من قراءة وإتباع أدوات التصميم الموصى بها لنمط الكتابة وإنتقاء الكلمات.

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

أيضاً، دوماً استخدم مصطلحات الأندرويد القياسية قدر الإمكان – لعناصر واجهة المستخدم مثلاً إستخدم كمثال شريط المهام، قائمة الخيارات، شريط النظام، الإشعارات، وهكذا.

إستخدام مصطلحات الأندرويد بشكلٍ صحيح وبإستمرار يجعل الترجمة أسهل ويؤدي إلى منتج نهائي أفضل للمستخدمين.

 

 

 

 

توفير السياق الكافي للسلاسل المعلنة

عندما تقوم بالإعلان عن السلاسل في ملف السلاسل strings.xml، تأكد من وصف المضمون الذي تستخدم فيه السلسلة.

فهذه المعلومات لا تقدر بثمن بالنسبة للمترجم ويؤدي هذا إلى ترجمة ذات جودة أفضل. كما يساعدك على إدراة سلاسلك بشكلٍ أكثر فعاليه.

مثال:

السطر 1: <–إجراء تقديم نموذج. هذا النص يظهر على زر يمكن أن يصل إلى 30 حرف–>

<!-- The action for submitting a form. This text is on a button that can fit 30 chars -->
<string name="login_submit_button">Sign in</string>

 

 

خذ بعين الإعتبار توفير معلومات عن المضمون الذي قد يحتوي على:

  • في ماذا تستخدم هذه السلسله؟ متى وأين يتم تقديمها للمستخدم؟
  • أين يوجد هذا في المخطط؟ مثال، تكون الترجمة أقل مرونة في الأزرار عنها في مربعات النص.

 

 

 

 

ضع علامة على أجزاء الرسالة التي لا يجب ترجمتها

تحتوي السلاسل غالباً على نص لا ينبغي ترجمته إلى لغات أخرى. قد تكون الأمثلة الشائعة جزءاً من الكود، أو نائب للقيمه، أو رمز خاص، أو اسم.

عند تجهيز سلاسلك للترجمة، ابحث عن، وضع علامة على التصوص التي يجب أن تبقى كما هي دون ترجمة، حتى لا يقوم المترجم بتغييرها.

لوضع علامة على النص الذي لا يجب ترجمته، إستخدم وسم النائب <xliff:g>. فيما يلي مثال على الوسم الذي يضمن عدم تغيير النص “%1$s” أثناء عملية الترجمة (وإلا فقد يؤدي ذلك إلى قطع الرساله):

<string name="countdown">
  <xliff:g id="time" example="5 days">%1$s</xliff:g>until holiday
</string>

 

 

عندما تقوم بإعلان وسم النائب، قم دائماً بإضافة معرف للسمه و الذي يشرح لما يستخدم النائب. إذا قام تطبيقك لاحقاً بإستبدال قيمة النائب، فتأكد من توفير نموذج للسمة لتوضيح الإستخدام المتوقع.

 

إليك بعض الأمثلة الإضافية لوسوم العناصر النائبه:

 

 

 

 

 

 

 

قائمة التحقق من الترجمة (الإعدادات المحليه)


للحصول على نظرة عامة شاملة لعملية ترجمة ونشر تطبيق أندرويد، راجع مستند قائمة التحقق من الترجمة.

 

 

نصائح للترجمة


صمم تطبيقك ليعمل مع أي إعدادت محليه (أي لغة)

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

فقد يحتوي الجهاز على أجهزة ملحقة لم تكن تتوقعها، أو قد يكون تم تعيينه على لغة لم تخطط لها أو لا يمكنك إختبارها.

لذا صمم تطبيقك ليعمل بشكلٍ طبيعي أو يفشل بشكلٍ آمن بغض النظر عن الجهاز الذي يعمل عليه.

 

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

 

تأكد من تضمين مجلدات /res/drawable و /res/values (بدون أي تعديلات إضافية في أسماء المجلدات) التي تحتوي على كل الصور والنصوص التي يحتاجها تطبيقك.

إذا فقد التطبيق حتى مصدر إفتراضي واحد، فلن يتم تشغيله على جهاز تم ضبطه على لغة غير مدعومة.

مثال، قد يفتقر الملف الإفتراضي للسلاسل (res/values/strings.xml) إلى سلسلة واحدة يحتاجها التطبيق: عند تشغيل التطبيق على إعدادت محلية غير مدعومة و سعى لمحاولة تحميل res/values/strings.xml، فإن المستخدم سوف يرى رسالة خطأ و نافذة إغلاق إجباري.

لمزيد من المعلومات، راجع إختبار المصادر الإفتراضية.

 

 

 

 

تصميم مخطط مرن

إذا كنت بحاجة إلى إعادة ترتيب مخططك ليتناسب مع لغة معينه (على سبيل المثال اللغة الألمانية بكلماتها الطويلة)، يمكنك إنشاء مخطط بديل لتلك اللغة (مثال، res/layout-de/main.xml).

مع ذلك، قد يؤدي إجراء ذلك إلى صعوبة الحفاظ على تطبيقك. لذا من الأفضل إنشاء مخطط واحد أكثر مرونة.

موقف آخر نموذجي، هو اللغة التي تتطلب شيئاً مختلفاً في مخططها. مثال، قد يكون لديك نموذج إتصال، يحتوي على حقلين للأسماء في تطبيق يتم تشغيله باللغة اليابانيه.

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

  • إنشاء مخطط واحد مع حقل يمكنك برمجياً تعطيله أو تمكينه، بناءاً على اللغة.
  • أو، بجعل التصميم الرئيسي يتضمن مخططاً آخر يتضمن الحقل القابل للتغيير. يمكن أن يكون للمخطط الثاني تكوينات مختلفة للغات مختلفة.

 

 

 

تجنب إنشاء ملفات مصادر و سلاسل نصية أكثر مما تحتاج

قد لا تحتاج إلى إنشاء بدائل “لإعدادات محلية معينه” لكل مصدر في تطبيقك.

مثال، قد يعمل المخطط المحدد في ملف res/layout/main.xml مع أي لغة، وفي هذه الحالة لن تكون هناك حاة لإنشاء أي ملفات مخططات بديله.

أيضاً، قد لا تحتاج إلى إنشاء نص بديل لكل سلسله، مثال، أفترض ما يلي:

  • اللغة الإفتراضية لتطبيقك هي الإنجليزية الأمريكية. يتم تعريف كل سلسلة يستخدمها التطبيق، بإستخدام التهجئة الإنجليزية الأمريكية، في res/values/strings.xml.

 

  • و لبضع عبارات مهمة، ترغب في توفير تهجئة إنجليزية بريطانيه. وتريد إستخدام هذه السلاسل البديله عند تشغيل تطبيقك على جهاز في المملكة المتحدة.

للقيام بذلك، يمكنك إنشاء ملف صغير يسمى res/values-en-rGB/strings.xml ويحتوي فقط على، السلاسل التي ينبغي أن تكون مختلفة عند تشغيل التطبيق في المملكة المتحدة.

بالنسبة لجميع السلاسل المتبقيه، يرجع التطبيق إلى الإعدادات الإفتراضية ويستخدم ما تم تعريفه في res/values/strings.xml.

 

 

 

أستخدم كائن سياق الأندرويد للبحث عن إعداد محلي

يمكنك البحث عن اللغة بإستخدام كائن السياق الذي يوفره الأندرويد:

KOTLIN

val primaryLocale: Locale = context.resources.configuration.locales[0]
val locale: String = primaryLocale.displayName

JAVA

Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0);
String locale = primaryLocale.getDisplayName();

 

 

 

 

إستخدم خدمة ترجمة التطبيقات

تم دمج خدمة ترجمة التطبيقات في “وحدة تحكم التشغيل” Play Console، ويمكن الوصول إليها أيضاً عن طريق أندرويد ستوديو.

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

يمكنك طلب ترجمات للغة واحدة أو أكثر لسلاسل واجهة المستخدم في تطبيقك، قائمة نص سوق بلاي، أسماء مزودي الوصول إلى الأنترنت، ونص الحملة الإعلانية.

 

 

 

اختبار التطبيقات المترجمة


الإختبار على جهاز

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

قد تختلف الإعدادات المحلية ” ترجمة ” ، المتوفرة على جهازك عن تلك المتوفرة على الأجهزة الأخرى.

أيضاً، قد تختلف دقة وقياس شاشة الجهاز، مما قد يؤثر على عرض السلاسل والرسوميات في واجهة المستخدم الخاصة بك.

لتغيير الإعدادات المحلية ” ترجمة ” ، أو اللغة على جهاز، استخدم الإعدادات.

 

 

 

الإختبار على المحاكي

للحصول على تفاصيل حول إستخدام المحاكي، انظر محاكي اندرويد.

 

 

إنشاء وإستخدام لغة مخصصة

إن اللغة “المخصصة” عبارة عن مزيج من اللغة\المنطقة التي لا تدعمها صورة نظام الأندرويد بشكلٍ صريح.

يمكنك إختبار كيفية تشغيل تطبيقك على لغة مخصصة من خلال إنشاء لغة مخصصة في المحاكي. هناك طريقتان للقيام بذلك:

 

  • استخدم تطبيق الإعداد المحلي المخصص “اللغة المخصصة”، والذي يمكن الوصول إليه من علامة تبويب التطبيق. (بعد إنشاء لغة مخصصة، قم بالتبديل إليها عن طريق الضغط بإستمرار على اسم الإعداد المحلي).
  • التغيير إلى لغة مخصصة عن طريق موجه الأوامر adb shell، كما هو موضح أدناه.

عند تعيين المحاكي إلى لغة غير متوفرة في صورة نظام الأندرويد، سيقوم النظام بنفسه بالعرض بلغته الإفتراضية.

مع ذلك، يجب أن يتم إعداد تطبيقك محلياً بشكلٍ صحيح.

 

 

 

تغيير الإعدادت المحلية للمحاكي عن طريق موجه الأوامر adb shell

لتغيير اللغة في المحاكي بإستخدام موجه الأوامر adb shell.

  1. أختر اللغة التي تريد إختبارها وحدد وسم اللغة الخاص بها BCP-47، مثال، اللغة الفرنسية الكنديه ستكون هكذا: fr-CA
  2. ابدأ المحاكي
  3. من سطر أوامر shell على الكمبيوتر المضيف، قم بتشغيل الأمر التالي:
    adb shell
    إو إذا كان لديك جهاز موصول، حدد إنك تريد المحاكي بإضافة الخيار -e:
    adb -e shell
  4. في موجه الأوامر “ adb shell prompt (#)“، شغل الأمر التالي:
    setprop persist.sys.locale [BCP-47 language tag];stop;sleep 5;start
    قم بإستبدال الجزء الموجود بين الأقواس بالأكواد المناسبة من الخطوة الأولى.

مثال، لإختبار اللغة الفرنسية الكنديه:

setprop persist.sys.locale fr-CA;stop;sleep 5;start

يتسبب هذا في إعادة تشغيل المحاكي. (قد يبدو الأمر وكأنها إعادة تشغيل كامله، ولكنها ليست كذلك).

بمجرد ظهور الشاشة الرئيسية مجدداً، أعد تشغيل تطبيقك، وسوف يتم تشغيل التطبيق مع اللغة الجديدة.

 

 

 

 

إختبار المصادر الإفتراضية


فيما يلي كيفية اختبار ما إذا كان التطبيق يتضمن كل مصدر سلسلة يحتاج إليه:

  1. قم بتعيين الجهاز أو المحاكي على لغة لا يدعمها تطبيقك. مثال، إذا كان التطبيق يحتوي على سلاسل للغة الفرنسية في الملف /res/values-fr لكنه لا يحتوي على أي سلاسل للغة الإسبانيه في ملف /res/values-es، فقم بضبط الإعدادات المحلية للمحاكي على اللغة الإسبانية. (يمكنك إستخدام تطبيق الإعدادات المحلية المخصصة لتعيين المحاكي على لغة غير مدعومة).
  2. قم بتشغيل التطبيق.
  3. إذا عرض التطبيق رسالة خطأ و زر إغلاق إجباري، فقد يكون يبحث عن سلسلة غير متاحه. تأكد أن ملف سلاسلك res/values/strings.xml يحتوي على تعاريف لكل سلسلة يستخدمها التطبيق.

إذا نجح الإختبار، فقم بتكريره لأنواع أخرى من التكوينات.

مثال، إذا كان التطبيق يحتوي على مخطط يسمى res/layout-land/main.xml ولكنه لا يحتوي على ملف يسمى res/layout-port/main.xml، فقم بضبط المحاكي أو الجهاز على الإتجاه العمودي وأنظر ما إذا كان التطبيق يعمل.

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات