شفت سؤال قبل شوي عن تعريب واجهة تطبيق للآيفون. خلوني اتكلم شوي عن التعريب البرمجة وبعدين نتكلم عن كيف ال XCode خصوصا. منهجيا نقدر نقسم التعريب لثلاثة أقسام: (١) تغيير اتجاه واجهات البرنامج Redering RTL (٢) ترجمة الكلمات والرسائل Internationalization (٣) المحلية localization
(١) واجهات البرنامج هي أكبر مشكلة في دعم اللغة العربية لأنها - عكس كثير من اللغات - اتجاهها يمين يسار. يعني الكتابة والقوائم والنوافذ وحتى حركة الأصابع أثناء اللمس كلها تمشي يمين يسار ويشاركها مجموعة لغات مثل الأردو والفارسية والعبرية.
لذلك أول شي تبحث عنه كمبرمج في أي اداة أو مكتبة لها علاقة بالواجهة الرسومية GUI هو هل تدعم يمين يسار. مثلا bootstrap 4 اخر نسخة من أشهر مكتبة لتصميم صفحات الانترنت تقريبا حتى الآن لاتدعم يمين يسار (right to left support) بشكل رسمي فبالتالي انتبه انك تحدث من bootstrap 3 إلى 4.
المشكلة الرئيسية في الاتجاه يمين يسار ان التصميم صعب تنسخه من أمثلة أو تروح stackoverflow وتنسخ من الحل مباشرة 😜 لأن الحلول معظمها يسار يمين. كثير من الأحيان تواجهك مشكلة تحويل اتجاه التصميم لذلك لازم تفهم كيف هذي تسويها سواء CSS & HTML أو تطبيق أيفون أو تطبيق اندرويد.
(٢) الترجمة أو i18n (اختصار لأن الكلمة طويلة) تعني ان الرسائل والكلمات اللي تستخدمها في البرنامج ما تكون في الكود hardcoded ولكن تكون مخزنة في ملف خاص كل رسالة أو كلمة وترجمتها والايفون لما يشغل التطبيق يقوم بتحميل الرسائل باللغة المناسبة حسب لغة الجهاز.
(٣) المحلية localization وهو مرتبط بالدولة أكثر من اللغة ومعناه ان التطبيق مثلا يدعم التاريخ الهجري بدل الميلادي اذا الشخص في السعودية بينما يدعم الميلادي اذا الشخص في مصر وهذا يتم اوتوماتيكيا اذا استخدمت مكتبات فيها دعم لذلك فما يحتاج تتعب 😁.
نجي للأيفون: في الآيفون انصحك خصوصا لو كنت مستجد وتبغى تبني شي سريع انك تستخدم ال storyboard ولكن بشرك ما يتضخم الملف. يعني كل ما صار عندك أربعة أو خمسة شاشات تسوي ملف جديد وهذي خاصية جديدة نوعا ما في ال xcode اضيفت قبل حوالي سنتين أو أكثر شوي.
ال xcode يسمح لك تسوي refactor لل storyboard وتقسمها إلى قسمين وتستخدم storyboard references وهذا فيديو من أبل يشرح الخاصية هذي developer.apple.com
داخل ال storyboard انصحك تستخدم ال stack view وهي من أهم وأهم وأهم 😀 الاضافات الحديثة لتصميم الواجهات بال XCode خصوصا لو تستهدف أكثر من جهاز بأحجام مختلفة. وهذا فيديو من أبل لاطلاقه وأنصح به بشدة خصوصا لو فاهم fexbox وال css layout بشكل عام. developer.apple.com
أيضا داخل ال storyboard (أو حتى لو تصمم من خلال الكود) أنصحك تستخدم auto layout constraints وتحط في بالك أهم لغز يواجه الكثير وهو ان ال leading يضبط الجهة اليسرى اذا الجوال لغته انجليزي لكن مجرد تشغل برنامجك في جوال لغته عربية تماتيك يقلب ويصير ال leading يضبط الجهة اليمنى.
العكس طبعا صحيح لل tailing constraints. يعني الشاشة اللي تصممها قدامك تقلب تماتيك 😅 حسب لغة الجوال وهذا يلخبط كثير من المبتدئين خصوصا. هنا تجد تفاصيل كيفية عمل ال auto layout developer.apple.com
لو ما أعجك شرح أبل فهذا رابط لشرح ممتاز للموضوع عموما بس اذكر انه ما تطرق للغة العربية raywenderlich.com
جاري تحميل الاقتراحات...