الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التحويل بين اللغات على مستوى الفورم

مغلق
بدأه NiceyFriend في 7 مارس 2006 · 11 رد · 1,394 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الاعزاء من المعلوم ان اكلود التالي يقوم بفتح شاشة جديدة بناءا على اللغة المختارة

private void ToEnglish_Click(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Application.Run(new Form1());
                 }

        private void ToArabic_Click(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar-SA");
Application.Run(new Form1());
             }

لكن سؤال هو كيف استطيع ان اجعل الفورم الحالي من خلال زر تحويل من لغة الى لغة ان يحول اللغة والواجهة الحالية للفورم الى اللغة المطلوبة بدون ان اغلق الفورم او حتى افقد البيانات الحالية

ولكم مني الشكر

#2

اذهب لهذا الرابط فقد تحدثنا هناك عن ذلك :

/index.php?showtopic=86412

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#3

شكرا لك اخي،

لكنني اعلم جيداً تلك المعلومات ، والكود المكتوب يفي بالغرض ، لكن سؤالي على نفس الفورم تحديداً تغيير اللغة دون فقدان ما يحتويه الفورم من بيانات حالية.

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

ارجوا ان تكون فهمت قصدي لان الرابط يحوي على عبارة this.Controls.Clear أي اعادة انشاء الكونترولز الموجودة وتبدأ من الصفر وهذا مالا اريده

ولك التحية

#4

أعتقد أنه لا يوجد حل لعمل ذلك سوى أن تكتب Function تقم بذلك تكتب فيها ما في الـ InitializeComponent من الأكواد الخاصه بالـ Resources ولكن بدون كتابة أكواد اضافة الـ Controls على الـ Form. فلن تكلفك العمليه شئ سوى Copy&Paste.

كنت أود أن أقول لك اكتب Function واحده وضعها في كل من InitializeComponent و الـ Button الخاص بتغيير اللغه حتى نعيد استخدام الكود ولكن تعديل الكود في InitializeComponent يزعج الـ Visual Studio ولا ينصح به أبدا.

الكثير من البرامج الجيده والكبيره تجبرك على اغلاق وفتح الفورم أو البرنامج اذا قمت بتغيير اللغه , واذا كنت تريد الحفاظ على البيانات الحاليه يمكنك حفظها في ملف مؤقت وتقرأه عند فتح الفورم ان وجد. وعلى كل حال اذا كنت لا تريد ذلك واذا كانت العمليه كلها هى عملية تغيير الـ Text لمجموعه صغيره من الـ Controls فاكتب Function خصيصا لذلك كما ذكرت لك , ولكن اذا كانت التغيرات كبيره وكثيره فلا أنصحك بهذه الطريقه.

تم تعديل هذه المشاركة بواسطة معتز شمس في 7 مارس 2006 في 17:09

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#5
NiceyFriend كتب:
الأخوة الاعزاء من المعلوم ان اكلود التالي يقوم بفتح شاشة جديدة بناءا على اللغة المختارة

private void ToEnglish_Click(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Application.Run(new Form1());
                 }

        private void ToArabic_Click(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar-SA");
Application.Run(new Form1());
             }

ايش يسوي الكود هذا؟؟

abo_alzobaer@hotmail.com

#6

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

أخي دون سيلفاتور راجع اللينك المقترح من الاخ معتز وستلم بمحتوى الكود

وشكرا لكم

#7

هل من اجابة اخرى

#8

لو أن الأمر مجرد محاولة للحفاظ علي ال Texts الموجودة في بعض ال controls فيمكنك عمل Function تقوم بعمل Loop علي ال Controls واللي تلاقي فيه Text تاخده وتحطه في String Array مثلا ... وهكذا

لو أنك تريد مثلا عمل Form جديدة لكل لغة فما عليك سوي أن ت pass هذا ال String array ....

هذا تصور للأمر ,, شوف كده وقوللنا

#9

شكرا لمحاولة المساعدة ،

أنا بستخدم دائما كود يعملي تحويل الواجهة وتحويل اللغة وانا على نفس الفورم وبدون ان افقد اشي ، لكن بعد نزول vb.net 2005

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

#10

أخي الكريم ممكن الخاصية Form1_Activated تفيدك على الأغلب إن شاء الله وأظن حيمشي الحال معك ;)

كما تكون لعباد الله يكون الله لك

#11

ماذا تقصد اخوي ، أرجوا قليلا من التفصيل

#12

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

و أيه دخل Form1_Activated بالموضوع الوقتي :( أنا في رأي ال Array عند التغير أسلم حل هذا و العلم عند ربي

عمرو عيسي

هذا الموضوع مغلق.

مواضيع مشابهة