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

سؤال:كيف يمكن جعل مشروعى يدعم اكثر من لغة؟

مغلق
بدأه yahyahamil في 20 أغسطس 2005 · 15 رد · 1,801 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اخوانى ارجوا مساعدتكم فى كيفية جعل برنامجى يدعم اكثر من لغة

يعنى اجعله يدعم مثلا اللغة العربية والانجليزية

بمعنى انه تتغير كل الكتابة الموجودة فى الواجهات من انجليزى لعربى

تم تعديل هذه المشاركة بواسطة crazy-man في 24 سبتمبر 2005 في 04:14

#2

السلام عليكم

في أربع خطوات فقط تستطيع فعل ذلك بحيث يتحول النموذج من الواجهة أو الثقافة الانجليزية إلى ثقافة أخرى أو أكثر

الخطوة الاول بعد ما تنتهي من تصميم النموذج ويكون جاهز (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

والله الموفق

UAELocalization.zip

في المثال يتضح المقال

#3

بارك الله فيك

اخى وجزاك الله الف خير

#4

هذه الطريقة التي استعملها عادة ... وأعتقد أنها تنفع للمشاريع الصغيرة ...

رأيكم يهمني

WindowsApplication1.zip

#5

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

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#6

السلام عليكم

تستطيع ذلك عن طريق بناء النموذج 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

بالتوفيق إن شاء الله.

UAELocalization.zip

في المثال يتضح المقال

#7

اخوتي الكرام أشكركم على هذا الموضوع الرائع

وعندي سؤال فيما يختص بالنسبة لتعدد اللغات

كيف يمكن حل مشكلة الرسائل Msgbox بحث تتغيير حسب اللغة الحالية للبرنامج؟؟؟

اقتباس
How to get experience without a job, and how to get a job without experience
#8

السلام عليكم

في عنصر الرسالة ممرر بالقيمة MsgBoxRight بحيث يجعل الكتابة من اليمين إلى الشمال

شاهد المثال

 MsgBox("العربية من اليمين", _
        MsgBoxStyle.MsgBoxRight + MsgBoxStyle.Information, _
        "رسالة إخبارية")

ثم تدرجها إذا كانت العربية هي اللغة المُختارة.

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#9

السلام عليكم

أخي الغملاسي لم أقصد الخاصية RightToLeft الخاصة بالـ MsgBox إنما قصدت الرسالة نفسها والتي كانت بالمثال الذي ذكرته " العربية من اليمين" فلو تغيرت لغة البرنامج وأصبحت الإنكليزية فالمفروض أن تظهر رسالة مختلفة وهي لنفرض "English from Left" باعتبار أن اللغة هي الإنكليزية

أرجو أن أكون أوضحت

ولكم جزيل الشكر

#10

باركو لي اخير فهمت كيف تسوي تعدد اللغات بصراحة فكرة مررررررررررررررررررررررررررررررررة حلوة وسهلة الله يوفقكم ياشيخ فكيتوني من بلوى

الاخ 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>

#11

سؤال مهم جدا

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

طيب السؤال هنا هو انا اضع على نفس النموذج ازرار لتغير اللغة من عربي الى انجليزي وبالعكس وما اريده هو انه يعيد تسمية الاشياء دون ان اغلق النموذج وافتحه مرة اخرى لأن هذا سوف يمسح المعلومات التي قمت بكتابتها داخل مربع النص مثلا فهل هذه متوفرة؟

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#12

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

ابي معلومه انا قاعده انا اسوي برنامج ولسه قاعده اشتغل عليه لكن ابي اخليه يكون لغتين

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

بليز ساعدوني

بنوتة نجد

#13

بنت نجد ماعليكي إن شاء الله كله خير

شوفي انتي سوي برنامجك وعليكي بالخير الين ماتخلصي كل شي

روحي على كل فورم على حده حتلاقي في خصائص الفورم شي اسمه language غيريه الى اللغة الاساسية اللي تبغينها راح تلاحظي الحين في الاكسبلورر في الملفات المخفية التابعة للفورم اللي انتي شغالة عليه انه اضافة ملف من نوع resx تحت الفورم الحين روحي على الفورم وغيريها بالشكل اللي تبغينة يظهر في اللغة اللي انت اخترتيها قبل شوي

يعني فرضا غيري اسماء labels ومواقعها طيب الحين روحي على نفس خاصية الlanguage راح تلاحظي ان النموذج رجع الى الشكل الاولاني طيب ارجعي على اللغة اللي انتي سويتيها راح تلاحظي انك رجعتي الى اخر تغيرات قمتي بها

صح؟؟

اذا وصلتي لهنا الباقي سهل خلاص

باقي الحين كيف من خلال البرنامج اقدر اغير اللغه وهذي المرحلة الجاية إن شاء الله واعتقد ان الاخ الغملاسي حط مثال وااااااااااضح عن الطريقة :)

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#14

السلام عليكم

يمكن حفظ البيانات في النموذج الحالي بطريقة مخادعة للمستخدم بحيث يظن انه على نفس النموذج مع إختلاف بسيط

في مكان النموذج أو ليس هنالك اختلاف بالمرة , شاهد المثال المرفق للإيضاح..

UAELocalization.zip

في المثال يتضح المقال

#15

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

ما ذُكر من المشاركات يكفي لحل مشكلة تعدد اللغات بشكل جزئي إلا أنه لا يقوم بوضع جميع الأدوات في أماكنها الصحيحة

ولنأخذ المثال التالي لتوضيح ما أقصده

عندي نموذج ولنفرض أنه نموذج خاص للخروج به بعض الرسومات والأيقونات التي لا توفرها رسائل النظام مثلا وعلى هذا النموذج زري أمر هما ( OK - Cancel ) فعند التحويل بالطرق السابقة لن تعدل الأزرار من اليمين إلى اليسار بشكل صحيح أي لن يكون زر موافق من اليمين إلى اليسار بل سيبقيا في مكانهما وكل ما سوف يحدث هو تغيير العناوين فقط وحل هذه المشكل متمثل في عمل إجراء خاص باللغة الجديدة ومن ثم استدعاه عند الحاجة وويكتب داخل الإجراء كل خواص تلك الادوات من تغيير في الاتجاه إلى تغيير مواقع الأدوات إلى تعريب العنوان وما إلى ذلك - صحيح أنك ستضطر إلى كتابة ذلك الإجراء في كل نموذج على حده إلى أنه سينفذ المطلوب بشكل كلي ودقيق - مع ملاحظة أن الإجراء لكن يكون كبير بالحجم الذي تخشى منه ضياع الوقت.

بعد أن تكتب هذا الإجراء كل ما عليك فعله هو التأكيد من اتجاه النموذج الرئيسي في بداية تحميل أي نموذج ومن ثم استدعاء هذا الإجراء إن كان الاتجاه يتوفق مع الإجراء .

هذا والله أعلى وأعلم

مختار أحمد

موقع الويب : http://www.luxorsystems.com

منتدياتنا :http://www.luxorsystems.com/forum/index.php

للمراسلة

luxorsystems@hotmail.com

للاتصال التليفوني

00201228085123

#16

السلام عليكم

هنالك خاصية باسم RightToLeft تغنيك عن هذا الاجراء..

في المثال يتضح المقال

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…