هناك بعض الإجراءات التي يلزمك تنفيذها ليظهر لك التغيير في التطبيق، وإلا فلن تلاحظ تغييرًا. إلا أن بعض التغييرات البسيطة ستؤدي إلى ظهور محاكاة تلقائية في التطبيق عندما يغير المستخدم لغة النظام إلى عرض النص البرمجي من اليمين إلى اليسار (مثل العربية والعبرية والفارسية). وذلك، على سبيل المثال، في لقطات الشاشة التالية لتطبيق الإعدادات:
للاستفادة من محاكاة التنسيق باتجاه من اليمين إلى اليسار، لن يلزمك سوى إجراء التغييرات التالية على تطبيقك:
وضح في ملف البيان على التطبيق أن تطبيقك يوفر محاكاة تعكس التنسيق باتجاه من اليمين إلى اليسار.
أضف android:supportsRtl="true" تحديدًا إلى العنصر <application> في ملف البيان.
غيِّر جميع خصائص التنسيق "left/right" في التطبيق إلى العناصر المعادِلة الجديدة "start/end".
إذا كان تطبيقك يستهدف الإصدار Android 4.2 (يمثل targetSdkVersion أو minSdkVersion في التطبيق القيمة 17 أو قيمة أعلى)، فعليك استخدام "start" و"end" بدلاً من "left" و"right". على سبيل المثال، يجب أن يتم تغيير android:paddingLeft إلى android:paddingStart.
إذا كنت تريد أن يعمل تطبيقك مع الإصدارات الأقدم من Android 4.2 (يمثل targetSdkVersion أو minSdkVersion في التطبيق القيمة 16 أو أقل)، فسيتعين عليك إضافة "start" و"end" بالإضافة إلى “left” و“right”. على سبيل المثال، يمكنك استخدام كل من android:paddingLeft وandroid:paddingStart.
للحصول على إمكانية تحكم أكبر في واجهة مستخدم التطبيق في وضعي اليسار إلى اليمين (LTR) واليمين إلى اليسار (RTL)، يتضمن الإصدار Android 4.2 واجهات برمجة التطبيقات الجديدة التالية للمساعدة في إدارة مكونات طريقة العرض:
علاوة على ذلك، يمكنك إنشاء إصدارات مخصصة من التنسيق وعناصر قابلة للرسم وموارد أخرى يتم عرضها عند استخدام النص البرمجي من اليمين إلى اليسار. لن يلزمك سوى استخدام وصف المورد "ldrtl" لوضع علامة على الموارد، أي "اتجاه التنسيق من اليمين إلى اليسار". ولإصلاح خطأ أو تحسين تنسيقات مخصصة من اليمين إلى اليسار، أصبح يتيح لك HierarchyViewer الآن الاطلاع على خصائص start/end، واتجاه التنسيق، واتجاه النص، ومحاذاة النص لجميع طرق العرض في الترتيب التسلسلي.
لقد أصبح من السهل الآن على جميع المستخدمين إنشاء تطبيقات رائعة على Android، سواء أكانوا يستخدمون لغة باتجاه من اليمين إلى اليسار أم من اليسار إلى اليمين. ونحن نتطلع إلى رؤية مزيد من هذه التطبيقات الرائعة!
Android 4.1 (Jelly Bean) introduced limited support for bidirectional text in TextView and EditText elements, allowing apps to display and edit text in both left-to-right (LTR) and right-to-left (RTL) scripts. Android 4.2 added full native support for RTL layouts, including layout mirroring, allowing you to deliver the same great app experience to all of your users, whether their language uses a script that reads right-to-left or one that reads left-to-right.
If you do nothing, your app will not change — it will continue to appear as it currently does. However, with a few simple changes, your app will be automatically mirrored when the user switches the system language to a right-to-left script (such as Arabic, Hebrew, or Persian). For example, see the following screenshots of the Settings app:
To take advantage of RTL layout mirroring, simply make the following changes to your app:
Declare in your app manifest that your app supports RTL mirroring.
Specifically, add android:supportsRtl="true" to the <application> element in your manifest file.
Change all of your app's "left/right" layout properties to new "start/end" equivalents.
If you are targeting your app to Android 4.2 (the app's targetSdkVersion or minSdkVersion is 17 or higher), then you should use “start” and “end” instead of “left” and “right”. For example,android:paddingLeft should become android:paddingStart.
If you want your app to work with versions earlier than Android 4.2 (the app's targetSdkVersion orminSdkVersion is 16 or less), then you should add “start” and end” in addition to “left” and “right”. For example, you’d use both android:paddingLeft and android:paddingStart.
For more precise control over your app UI in both LTR and RTL mode, Android 4.2 includes the following new APIs to help manage View components:
You can even create custom versions of layout, drawables, and other resources for display when a right-to-left script is in use. Simply use the resource qualifier "ldrtl" to tag your resources, meaning “layout direction right-to-left”. To debug and optimize custom right-to-left layouts, HierarchyViewer now lets you see start/end properties, layout direction, text direction, and text alignment for all the Views in the hierarchy.
It's now easy to create beautiful Android apps for all your users, whether they use a right-to-left or left-to-right language. We look forward to seeing some great apps!
Posted by: Fabrice Di Meglio, Android Frameworks Team