![]() |
|
كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : كيف تجعل برنامجك عالميا و يدعم أكثر من لغة (/showthread.php?tid=13937) |
كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - silverlight - 26-11-15 السلام عليكم ورحمة الله وبركاته
هناك أساليب كثيرة لتجعل واجهة التطبيق الخاصة ببرامجك تدعم أكثر من لغة غير اللغة الإنجليزية وفي اللينك التالي ستجدون واحدا من هذه الاساليب التي يمكن استخدامها لكي تجعل من برنامجك عالميا ويدعم أكثر من لغة اللينكـــــــــــــــــــــــــــــ في هذا الموضوع سوف نناقش فكرة كيفية أن تجعل واجهة التطبيق الخاصة بك أو الخاصة ببرامجك تدعم أكثر من لغة غير اللغة الإنجليزية وذلك عن طريقة كتابة مجموعة من الكلاسات التي يمكن أن تستخدم في تغيير اللغة الخاصة بواجهة التطبيق الفكرة و ببساطة شديدة تنحصر في كتابة كلاسات تضع بها جميع Resources الخاصة بكل لغة لتستخدم مع واجهة التطبيق الخاص بنا عموما يجب ان نضع في اعتبارنا أننا سوف نتعامل مع ثوابت في واجهة التطبيق وهذه الثوابت قد تكون الفورم او الباتون او اي كونترول اخر قبالتالي سنجد انفسنا نحتاج الي تغيير Text الخاص بكل كونترول طبقا لنوعية اللغة المستخدمة في واجهة التطبيق لذلك سوف نحتاج الي تخزين البياانات الخاصة بكل لغة بشكل ما ثم نسترجعها عندما يريد المستخدم تغيير اللغة الخاصة بواجهة التطبيق ثم نقوم بتغيير كل البيانات الخاصة بكل كونترول موجود في واجهة التطبيق ليناسب اللغة التي اختارها المستخدم وبشكل عام الفكرة التي سوف نستخدمها يمكن أن نضيف لها الكثير و الكثير لتدعم أشياء اخري غير اللغة حيث يمكن استخدام نفس الفكرة لتغيير شكل الكونترول و لون خلفيته و الصور المستخدمة مع الكونترول و أشياء كثيرة اخري بالنهاية الأمر متروك لمخيلتكم الكلاسات المستخدمة في المشروع هذا ستكون كالتالي: 01 - الكلاس Languages و هو عبارة عن Enum يوجد به أسماء اللغات مثل العربية و الانجليزية و الروسية و يمكنكم أن تضيفوا لغات أخري طبقا لإحتياجات مشاريعكم 02 - الكلاس Language و هو يمثل الكلاس الاساسي لأي لغة سوف نستخدمها ومنه تتفرع كل اللغات الخاصة بواجهة التطبيق 03 - الكلاس ArabicLanguage و هو كلاس تم توريثه من الكلاس Language و كما هو واضح من اسمه فهو الكلاس الذي سوف يدعم اللغة العربية و به سوف نقوم بتخزين كل ما له علاقة بترجمة واجهة التطبيق الي العربية 04 - الكلاس EnglishLanguage و هو كلاس تم توريثه من الكلاس Language و كما هو واضح من اسمه فهو الكلاس الذي سوف يدعم اللغة الإنجليزية و به سوف نقوم بتخزين كل ما له علاقة بترجمة واجهة التطبيق الي الإنجليزية 05 - الكلاس SpanishLanguage و هو كلاس تم توريثه من الكلاس Language و كما هو واضح من اسمه فهو الكلاس الذي سوف يدعم اللغة الأسبانية و به سوف نقوم بتخزين كل ما له علاقة بترجمة واجهة التطبيق الي الأسبانية 06 - الكلاس RussianLanguage و هو كلاس تم توريثه من الكلاس Language و كما هو واضح من اسمه فهو الكلاس الذي سوف يدعم اللغة الروسيىة و به سوف نقوم بتخزين كل ما له علاقة بترجمة واجهة التطبيق الي الروسية 07 - الكلاس LanguageContext و هو عبارة عن Collection سوف تستخدم لتخزين جميع الكلاسات الخاصة باللغة 08 - الكلاس LanguagedChangedEventArgs و كلاس عبارة عن EventArgs سوف نستخدمها لإطلاق EventHandler جين تتغير اللغة الخاصة بواجهة التطبيق 09 - الكلاس LanguagedChangedEventHandler وهو جدث سوف يستخدم لتغيير واجهة التطبيق بشكل اتوماتيكي عندما يقوم المستخدم بتغيير اللغة المستخدمة 10 - الكلاس LanguageController وهو الكلاس المسئول عن عمل initialize لجميع اللغات الموجودة في مشروعنا وهذا الكلاس سوف نستخدمه للتحكم في تغيير اللغة عند إطلاق الحدث LanguagedChangedEventHandler الكود : 01 - الكلاس Language وفي هذا الكلاس قمت فقط بتحديد اسم الفورم و يمكنكم أن تضيفوا أي Property أخري وبنفس الاسلوب طبقا لحاجاتكم ثم تقوموا بتغيير بياناتها في كل كلاس يتم توريثه من هذا الكلاس PHP كود : Friend MustInherit Class Language02 - الكلاس Languages PHP كود : Public Enum Languages03 - الكلاس ArabicLanguage PHP كود : Friend Class ArabicLanguage04 - الكلاس EnglishLanguage PHP كود : Friend Class EnglishLanguage05 - الكلاس SpanishLanguage PHP كود : Friend Class SpanishLanguage06 - الكلاس RussianLanguage PHP كود : Friend Class RussianLanguage07 - الكلاس LanguageContext PHP كود : Friend Class LanguageContext08 - الكلاس LanguagedChangedEventArgs PHP كود : Public Class LanguagedChangedEventArgs09 - الكلاس LanguagedChangedEventHandler PHP كود : Friend Delegate Sub LanguagedChangedEventHandler(sender As Object, e As LanguagedChangedEventArgs) 10 - LanguageController PHP كود : Public Class LanguageControllerكيف نستخدم الأكواد أعلاه وبما أننا هنا نتحدث عن تغيير واجهة التطبيق لذلك سوف اوضح كيفية استخدام الأكواد اعلاه لتغيير Text الخاص بالفورم طبقا لأي لغة سيختارها المستخدم يمكنكم تنزيل المرفقات التي بها جميع الكواد اعلاه و هي مكتوبة بنسخة الفيجوال استوديو 2012 ولمن يريد اي توضيحات اضافيه يمكنه ان يضع سؤالا ولسوف أجيب عليه تقبلوا تحياتي أخوكم عمر RE: كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - Abu Ehab - 26-11-15 الله يعطيك العافية ... على فكرة انت خامه برمجية جيده لكن محتاج تطوير يبدوا لي أن أهتماماتك كلها GDI تعال عايز أكلمك ... العنوان هنــــــــــا RE: كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - silverlight - 26-11-15 شكرا يا يا أخي الفاضل علي مرورك وعلي ردك فعلا انا كل اهتماماتي تنحصر في +GDI و Collection و بناء الكونترول عموما الأمر مجرد هواية لا أكثر و لا أقل وان شاء الله نتحدث قريبا وهذا وعد مني RE: كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - HASAN6.0 - 26-11-15 شكرا على الشرح ولكن لماذا لا تستخدم خيار language الموجود لكل فورم... اسهل بكثير RE: كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - silverlight - 26-11-15 الأخ الفاضل HASAN6.0 لو نظرت الي الموضوع وقرأته جيدا ستجد أن الاسلوب المتبع هنا ليس الهدف منه اللغة فقط لا غير برجاء لا تنظر تحت قدميك و أنت تفكر في الأمور ولو أنت تفضلت بمراجعة الكلام ستجد انني اقول انها طريقة فقط لا غير لكن يمكن أن تستخدم ما تشاء و ما تراه مريحا لك عموما الهدف هنا أكبر من موضوع اللغة وعليك أن تعلم أن الكلاسات المكتوبة لها هدف اكبر فهي سوف تعمل مثل Resources Manager الموجود في الدوت نت RE: كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - CLARO - 15-05-16 شكرا لك رائع RE: كيف تجعل برنامجك عالميا و يدعم أكثر من لغة - egbest2 - 29-05-19 شكرا موضوع رائع شكرا جدا على الموضوع الاكثر من رائع _______________________________________________ التسامح الحق لا يستلزم نسيان الماضي بالكامل.. سينما كلوب ايجي بست شاهد فور يو سيرا اون لاين مشاهدة فيلم |