بسم الله الرحمن الرحيم
اخوانى ارجوا مساعدتكم فى كيفية جعل برنامجى يدعم اكثر من لغة
يعنى اجعله يدعم مثلا اللغة العربية والانجليزية
بمعنى انه تتغير كل الكتابة الموجودة فى الواجهات من انجليزى لعربى
بسم الله الرحمن الرحيم
اخوانى ارجوا مساعدتكم فى كيفية جعل برنامجى يدعم اكثر من لغة
يعنى اجعله يدعم مثلا اللغة العربية والانجليزية
بمعنى انه تتغير كل الكتابة الموجودة فى الواجهات من انجليزى لعربى
تم تعديل هذه المشاركة بواسطة crazy-man في 24 سبتمبر 2005 في 04:14
السلام عليكم
في أربع خطوات فقط تستطيع فعل ذلك بحيث يتحول النموذج من الواجهة أو الثقافة الانجليزية إلى ثقافة أخرى أو أكثر
الخطوة الاول بعد ما تنتهي من تصميم النموذج ويكون جاهز (Ready) , قم بالتالي
أولاً أجعل خاصية Localizable تساوي True الخاصة بالنموذج Form
ثانياً من الخاصية Language إختر اللغة (الثقافة) التي تريد أن تكون واجهة أخرى للنموذج
بعد عملية الاختيار قم بتعديل اسماء العناصر كمثلاً الازار Insert ك Text تساوي إضافة ,,,, إلخ
ثم بعد ذلك قم بتعديل قيمة الخاصية Language إلى القيمة Default
ثم أكتب الكود التالي بعد الكلمة myBase.New هذا الكود كُتِب وفقاً للثقافة الإماراتية بهذا الشكل
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'////////Aplaying Mirror\\\\\\\\\\\\
'\\\\\\\\\\\\\\\\///////////////////
'تهيئة البيانات كالعملة والتاريخ و الأرقام وغيرهم
System.Threading.Thread.CurrentThread.CurrentCulture = _
New System.Globalization.CultureInfo("ar-AE")
'تهيئة الواجهة كالمحاذات واللغة معها
System.Threading.Thread.CurrentThread.CurrentUICulture = _
New System.Globalization.CultureInfo("ar-AE")
'This call is required by the Windows Form Designer.
InitializeComponent()
End Subوالله الموفق
في المثال يتضح المقال
بارك الله فيك
اخى وجزاك الله الف خير
هذه الطريقة التي استعملها عادة ... وأعتقد أنها تنفع للمشاريع الصغيرة ...
رأيكم يهمني
الف شكر بس كيف اقدر احول بين اللغات؟؟ يعني انا حاط عربي وانجليزي وكيف اقدر اغير من لغة الى لغة؟
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
السلام عليكم
تستطيع ذلك عن طريق بناء النموذج form construction
بحيث تنشأ فيه ممرر و بموجب ذلك الممرر تقوم بإنشاء الثقافة المناسبة للنموذج
شاهد المثال التالي :
Public Sub New(ByVal WhichLanguage As Integer)
MyBase.New()
'////////Aplaying Mirror\\\\\\\\\\\\
'\\\\\\\\\\\\\\\\///////////////////
If WhichLanguage = 0 Then
'Arabic - United Arab Emirates
'تهيئة البيانات كالعملة والتاريخ و الأرقام وغيرهم
System.Threading.Thread.CurrentThread.CurrentCulture = _
New System.Globalization.CultureInfo("ar-AE")
'تهيئة الواجهة كالمحاذات واللغة معها
System.Threading.Thread.CurrentThread.CurrentUICulture = _
New System.Globalization.CultureInfo("ar-AE")
Me.RightToLeft = RightToLeft.Yes
ElseIf WhichLanguage = 1 Then
'English - United Kingdom
System.Threading.Thread.CurrentThread.CurrentCulture = _
New System.Globalization.CultureInfo("en-GB")
System.Threading.Thread.CurrentThread.CurrentUICulture = _
New System.Globalization.CultureInfo("en-GB")
Me.RightToLeft = RightToLeft.No
ElseIf WhichLanguage = 2 Then
'French - France
System.Threading.Thread.CurrentThread.CurrentCulture = _
New System.Globalization.CultureInfo("fr-FR")
System.Threading.Thread.CurrentThread.CurrentUICulture = _
New System.Globalization.CultureInfo("fr-FR")
Me.RightToLeft = RightToLeft.No
End If
'This call is required by the Windows Form Designer.
InitializeComponent()
End Subبالتوفيق إن شاء الله.
في المثال يتضح المقال
اخوتي الكرام أشكركم على هذا الموضوع الرائع
وعندي سؤال فيما يختص بالنسبة لتعدد اللغات
كيف يمكن حل مشكلة الرسائل Msgbox بحث تتغيير حسب اللغة الحالية للبرنامج؟؟؟
اقتباسHow to get experience without a job, and how to get a job without experience
السلام عليكم
في عنصر الرسالة ممرر بالقيمة MsgBoxRight بحيث يجعل الكتابة من اليمين إلى الشمال
شاهد المثال
MsgBox("العربية من اليمين", _
MsgBoxStyle.MsgBoxRight + MsgBoxStyle.Information, _
"رسالة إخبارية")ثم تدرجها إذا كانت العربية هي اللغة المُختارة.
بالتوفيق إن شاء الله.
في المثال يتضح المقال
السلام عليكم
أخي الغملاسي لم أقصد الخاصية RightToLeft الخاصة بالـ MsgBox إنما قصدت الرسالة نفسها والتي كانت بالمثال الذي ذكرته " العربية من اليمين" فلو تغيرت لغة البرنامج وأصبحت الإنكليزية فالمفروض أن تظهر رسالة مختلفة وهي لنفرض "English from Left" باعتبار أن اللغة هي الإنكليزية
أرجو أن أكون أوضحت
ولكم جزيل الشكر
باركو لي اخير فهمت كيف تسوي تعدد اللغات بصراحة فكرة مررررررررررررررررررررررررررررررررة حلوة وسهلة الله يوفقكم ياشيخ فكيتوني من بلوى
الاخ Hussein Sakr شوف انا لك عندي حل انت ياقلبي سوي متغير وعرفه في module هذا المتغير يحدد قيمة اللغة الحالية اوكي؟
ولما تسوي رسالة سوي جملة Select case وحط نص الرسالة باللغات اللي عندك :)
حلو كذا ياباشا الله يوفقك عشان التوضيح راح اسوي لك مثال سريع
نفترض اسم المتغير currentLanguage اذن راح تكون الجملة كالتالي:
Select case currentLanguage
case "0" ' arabic
msgtext = "مبروك"
case "1" ' english
msgtext = "congratulation"
select end
طبعا هذا حل برمجي بس ما ادري اذا فيه طريقة برضه منطقية. مع اني اتوقع انك ممكن تضيف متغيرات في ملف الresx يدويا وتقراها وممكن نضع فيها نص الرسالة بس والله ما اعرف كيف
اتمنى من الاخ الغملاسي يفتينا بارك الله فيه هو الخبير حقنا :)
تم تعديل هذه المشاركة بواسطة Romantic_touch في 11 أكتوبر 2005 في 01:02
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
سؤال مهم جدا
من خلال فهمي للعملية تبين لي انه فقط عند تحميل النموذج سوف يقرأ يا اللغة العربية يا لأنجليزية
طيب السؤال هنا هو انا اضع على نفس النموذج ازرار لتغير اللغة من عربي الى انجليزي وبالعكس وما اريده هو انه يعيد تسمية الاشياء دون ان اغلق النموذج وافتحه مرة اخرى لأن هذا سوف يمسح المعلومات التي قمت بكتابتها داخل مربع النص مثلا فهل هذه متوفرة؟
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
السلام عليكم ورحمه الله وبركاته
ابي معلومه انا قاعده انا اسوي برنامج ولسه قاعده اشتغل عليه لكن ابي اخليه يكون لغتين
انا ابي الديفولت يكون عربي ولما اختار انجليزي تنفتح الصفحه الخاصه بالانجليزي انا سويت الطريقه اللي قلتوا عليها بس ماعرفت اسويها زين
بليز ساعدوني
بنوتة نجد
بنت نجد ماعليكي إن شاء الله كله خير
شوفي انتي سوي برنامجك وعليكي بالخير الين ماتخلصي كل شي
روحي على كل فورم على حده حتلاقي في خصائص الفورم شي اسمه language غيريه الى اللغة الاساسية اللي تبغينها راح تلاحظي الحين في الاكسبلورر في الملفات المخفية التابعة للفورم اللي انتي شغالة عليه انه اضافة ملف من نوع resx تحت الفورم الحين روحي على الفورم وغيريها بالشكل اللي تبغينة يظهر في اللغة اللي انت اخترتيها قبل شوي
يعني فرضا غيري اسماء labels ومواقعها طيب الحين روحي على نفس خاصية الlanguage راح تلاحظي ان النموذج رجع الى الشكل الاولاني طيب ارجعي على اللغة اللي انتي سويتيها راح تلاحظي انك رجعتي الى اخر تغيرات قمتي بها
صح؟؟
اذا وصلتي لهنا الباقي سهل خلاص
باقي الحين كيف من خلال البرنامج اقدر اغير اللغه وهذي المرحلة الجاية إن شاء الله واعتقد ان الاخ الغملاسي حط مثال وااااااااااضح عن الطريقة :)
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
السلام عليكم
يمكن حفظ البيانات في النموذج الحالي بطريقة مخادعة للمستخدم بحيث يظن انه على نفس النموذج مع إختلاف بسيط
في مكان النموذج أو ليس هنالك اختلاف بالمرة , شاهد المثال المرفق للإيضاح..
في المثال يتضح المقال
السلام عليكم ورحمة الله
ما ذُكر من المشاركات يكفي لحل مشكلة تعدد اللغات بشكل جزئي إلا أنه لا يقوم بوضع جميع الأدوات في أماكنها الصحيحة
ولنأخذ المثال التالي لتوضيح ما أقصده
عندي نموذج ولنفرض أنه نموذج خاص للخروج به بعض الرسومات والأيقونات التي لا توفرها رسائل النظام مثلا وعلى هذا النموذج زري أمر هما ( OK - Cancel ) فعند التحويل بالطرق السابقة لن تعدل الأزرار من اليمين إلى اليسار بشكل صحيح أي لن يكون زر موافق من اليمين إلى اليسار بل سيبقيا في مكانهما وكل ما سوف يحدث هو تغيير العناوين فقط وحل هذه المشكل متمثل في عمل إجراء خاص باللغة الجديدة ومن ثم استدعاه عند الحاجة وويكتب داخل الإجراء كل خواص تلك الادوات من تغيير في الاتجاه إلى تغيير مواقع الأدوات إلى تعريب العنوان وما إلى ذلك - صحيح أنك ستضطر إلى كتابة ذلك الإجراء في كل نموذج على حده إلى أنه سينفذ المطلوب بشكل كلي ودقيق - مع ملاحظة أن الإجراء لكن يكون كبير بالحجم الذي تخشى منه ضياع الوقت.
بعد أن تكتب هذا الإجراء كل ما عليك فعله هو التأكيد من اتجاه النموذج الرئيسي في بداية تحميل أي نموذج ومن ثم استدعاء هذا الإجراء إن كان الاتجاه يتوفق مع الإجراء .
هذا والله أعلى وأعلم
مختار أحمد
موقع الويب : http://www.luxorsystems.com
منتدياتنا :http://www.luxorsystems.com/forum/index.php
للمراسلة
luxorsystems@hotmail.com
للاتصال التليفوني
00201228085123
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…