تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
creating multi language application in C#
#1
[COLOR="#FF0000"]بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
صدق الله العلي العظيم
[/COLOR]


السلام عليكم ورحمة الله وبركاتهSmile

[COLOR="#800080"]سنتعلم اليوم كيفية بناء تطبيق متعدد اللغات باستخدام لغة #C بخطوات بسيطة جدا لكنها متعبة اذا كانت لدينا تطبيق متعدد الواجهات وكثيرة الادوات ,ستعرفون ماذا اقصد في الخطوات الاتية:

سنأخذ اللغة الانكليزية والعربية كمثال لغرض تسهيل الامرSmile
[/COLOR]


الخطوة الاولى: جعل خاصية الLocalizable للنموذج true.

الخطوة الثانية: لغة الForm مسندة الى Default , لذا ستكون اللغة الافتراضية للنموذج بيدك ,يعني اذا اخترت ان تكتب باللغة الانكليزية في الادوات ستكون اللغة الانكليزية هي الافتراضية ,اما اذا كتبت بالعربية ستكون اللغة الافتراضية هي اللغة العربية.

الخطوة الثالثة: تغيير اللغة للForm الى اللغة التي تريدها (مثلا Arabic) اذا اخترت ان تكون اللغة الافتراضية هي اللغة الانكليزية ,ومن ثم كتابة الكلمات العربية المرادفة للكلمات الانكليزية التي كتبتها في الادوات (حتى تكون الترجمة منطقية فلا يجوز ان تكتب open وبالعربية تكتب "اهلا" فهذا غير منطقي حيث الكلمة المرادفة للopen هي "افتح" كما نعلم).

الخطو الرابعة: بعد اكمال الخطوة الثالثة يجب اعادة لغة النموذج الى حالتها الاصلية (Default), ستلاحظ ظهور ملف resx باسم Form1.ar.resx تحت Form1.cs حيث تعتبر كملف ترجمة الى اللغة العربية.

[COLOR="#0000FF"]الان ننتقل الى البرمجة:

كمثال اضف الى النموذج الادوات التالية:

combobox
button عدد 2

من خاصية الItems للcombobox اضف English و Arabic ومن ثم اجعل خاصية الLocalizable للنموذج true وترك اللغة Default واكتب في الزر الاول Hello وفي الزر الثاني Change the language

الان غير اللغة للنموذج الى Arabic واكتب في الزر الاول "مرحبا" وفي الزر الثاني "تغيير اللغة" بعد ذلك F6 ومن ثم غير اللغة الى Default

واكتب الكود الآتي:[/COLOR]


PHP كود :
public string lang(string language)
        {
            
string l "";
            switch (
language)
            {
                case 
"English":
                    
"en";
                    break;
                case
"Arabic":
                    
"ar";
                    break;
            }
            return 
l;
        }

        private 
void change_Click(object senderEventArgs e)
        {
            
CultureInfo info = new CultureInfo(lang(comboBox1.SelectedItem.ToString()));

            foreach (
Control cntr in this.Controls)
            {
                
ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
                
resources.ApplyResources(cntrcntr.Nameinfo);
            }

        } 

[COLOR="#800080"]
طبعا كود تغيير اللغة تكتب في الزر change the language

الان نفذ البرنامج وتمتع ببرنامج متعدد اللغاتSmile

وفي الختام نسأل الله ان يوفقنا لما يحبه ويرضاه ,وصلى الله على محمد وآله الطاهرين[/COLOR]
الرد }}}
تم الشكر بواسطة:
#2
جميل جدا شكرا لك اخي الكريم
وشكرا على هذا الترتيب جعله الله في ميزان حسناتك
الرد }}}
تم الشكر بواسطة:
#3
خادم الصدر كتب :جميل جدا شكرا لك اخي الكريم
وشكرا على هذا الترتيب جعله الله في ميزان حسناتك

[COLOR="#800000"]السلام عليكم

بارك الله فيك ,شكرا على التعليق الجميل

بالتوفيق ان شاءالله[/COLOR]
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم ورحمة الله وبركاته
اخى الفاضل جزاك الله خيرا كثيرا لكنى اطمع فى المزيد من علمك وكرمك فى شرح كيفية جعل النموذج متعدد الواجهة اى اعادة ترتيب نفس الادوات مثلا فى المثال الذى ذكرته انت اجعل عند اختيار اللغة العربية تكون المفاتيح على يمين الكمبوبوكس وعند اختيار اللغة الانجليزية تكون المفاتيح على يسار الكمبوبوكس وجزاك الله خيرا كثيرا
الرد }}}
تم الشكر بواسطة:
#5
Nice . . . . . . . . . . . . . . .
الرد }}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم