تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مقال- كيف تترجم برنامجك وتجعله عالميا
#1
كاتب الموضوع : silverlight

كيف تجعل برنامجك في متناول الجميع ……كيف تجعل واجهة التطبيق في برنامجك تناسب الكثير من اللغات وبالتالي يستطيع البرنامج الذي تصممه أن يتغلب علي عائق اللغة بين الشعوب

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

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

الهدف ببساطه من هذا الموضوع هو كيفية عمل Localization of Your Application
والمثال التالي يوضح أبسط الطرق التي يمكنك أن تستخدمها لكي تجعل من البرنامج الذي تصممه يخترق عائق اللغة بين شعوب العالم المختلفة

- افتح مشروع جديد وأطلق عليه مثلا MultiLanguageApplication سيقوم البرنامج بفتح الفورم الأول كالمعتاد هذا الفورم سوف نستخدمه لعرض اختيارات اللغة وبالتالي يستطيع المستخدم أن يحدد اللغة التي يفضلها من داخل هذا الفورم لنطلق علي هذا الفورم مثلا frmMain ثم نقوم بإضافة عدد 6 باتون الي الفورم ونقوم بتغيير صفات كل باتون علي حده مثل Button.Text سنقوم باستخدام الباتون الأول للغة العربية والباتون الثاني للغة الإنجليزية والثالث للغة الفرنسية والرابع للغة الألمانية والخامس للغة الإيطالية والسادس للغة الأسبانية طبعا ممكن تضيق رتوش للباتون المختلفة مثل أعلام كل دولة مثلا.

- الأن نضيف الي المشروع فورم جديد هذا الفورم سيكون واجهة التطبيق الفعلية ولنطلق عليه اسم frm_languages ثم نضيف الي هذا الفورم مجموعة من الكونترول المختلفة مثل الباتون والراديو باتون و Labels وأي كونترول أخري مطلوبة لإعطاء الشكل المطلوب للفورم ونقوم بتغيير صفة Text لكل من هذه الكونترول ونعطيها أسماء كما نريد

- الأن سنقوم بتغير خاصية واحده فقط للفورم رقم 2 وهي خاصية Localizable ونجعلها True مع ملاحظة أن القيمة الافتراضية Default Value لهذه الخاصية هو False

الأن نقوم بتغيير خاصية اللغة frm_languages.Languges Property للفورم رقم 2 ونختار اللغة التي نريدها ولتكن العربية مثلا ثم نقوم بتغيير كل خاصية Text لكل الكونترول الموجودة داخل الفورم رقم 2 الي اللغة العربية
نكرر هذه الخطوة لأي عدد نريد من اللغات مثلا نختار الفرنسية ثم نقوم بتغيير كل خاصية Text لكل الكونترول الموجودة داخل الفورم رقم 2 وهكذا بالمثل لباقي اللغات الاخري مثل الاسبانية والألمانية والإيطالية أو أي لغة أخري نريدها
الأن نقوم بتشغيل الفورم لتجربته سنلاحظ طبعا أن الفورم رقم واحد وهو الفورم الرئيسي الذي سوف يظهر في بداية التشغيل......... الأن نقوم بإغلاق الفورم ونعود الي الفيجوال استوديو
نقف علي نافذة Solution Explorer ونضغط علي Show All Files وهي الأيقونة الثانية في اعلي النافذة من جهة اليسار وعندما نفعل ذلك سنستطيع أن نري جميع الملفات الموجودة تحت المشروع الذي نصممه

لو وقفنا بالماوس علي الفورم رقم 2 في نافذة Solution Explorer سنري مجموعة من ملفات Resources قام البرنامج بإنشائها لنا وهي ستكون حسب نوع اللغة التي حددناها مثلا اللغة الأسبانية سيكون ملف Resources الخاص بها اسمه frm_Languages.es.resx واللغة العربية ملفها اسمه frm_Languages.ar.resx وهكذا لباقي اللغات طبعا هناك الملف الافتراضي الأصلي للفورم وهو باسم frm_Languages.resx وطبعا اللغة الافتراضية هي اللغة الإنجليزية كالمعتاد مع أي فورم ولو ضغطنا بالماوس Double Clickعلي كل ملف سيقوم البرنامج بفتح Editor لكل من ملفات Resources وبالتالي نستطيع التغيير في القيم التي نريدها لكل كونترول موجود بالفورم رقم 2 طبعا ممكن نعدل فيها لو أردنا

الأن تم الانتهاء من تصميم الفورم رقم 2 وتجهيز ملفات اللغة المطلوب الأن نعود للفورم رقم 1 وهو الفورم الأصلي الذي سيحدد المستخدم من خلاله نوع اللغة المطلوبة وفي المثال المرفق قمت بتصميم فورم يقوم بعرض 6 لغات مختلفة ووضعت في الفورم الرئيسي عدد 6 باتون فقط وفي الحدث Click الخاص بكل باتون نضيف بعض الأسطر من الكود لكي نحدد نوع اللغة المستخدمة وبالتالي سنحدد الفورم الذي سوف يفتح بناء علي اختيار المستخدم فيكون الكود النهائي للفورم رقم 1 كالتالي
وكما هو واضح في الكود أننا استخدمنا نفس الفورم رقم 2 لجميع اللغات واستخدمنا Globalization.CultureInfo لتغيير اللغة طبقا لاختيار المستخدم


كود :
Public Class frmMain

Private Sub BtnEnglish_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEnglish.Click
'set the culture
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en")

'now that the culture is set, create a form's instance
Dim frmEnglish As New frm_Languages
With frmEnglish

.StartPosition = FormStartPosition.CenterScreen

End With
frmEnglish.Show()

End Sub

Private Sub BtnArabic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnArabic.Click
'set the culture
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("ar")

'now that the culture is set, create a form's instance
Dim frmArabic As New frm_Languages
With frmArabic
.StartPosition = FormStartPosition.CenterScreen

End With
frmArabic.Show()

End Sub

Private Sub BtnFrancais_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFrancais.Click
'set the culture
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("fr")

'now that the culture is set, create a form's instance
Dim frmFrancais As New frm_Languages
With frmFrancais
.StartPosition = FormStartPosition.CenterScreen
End With
frmFrancais.Show()

End Sub

Private Sub BtnDuitsland_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'set the culture
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("de")

'now that the culture is set, create a form's instance
Dim frmDuitsland As New frm_Languages
With frmDuitsland
.StartPosition = FormStartPosition.CenterScreen

End With
frmDuitsland.Show()

End Sub

Private Sub BtnItaliano_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnItaliano.Click
'set the culture
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("it")

'now that the culture is set, create a form's instance
Dim frmItaliano As New frm_Languages
With frmItaliano
.StartPosition = FormStartPosition.CenterScreen

End With
frmItaliano.Show()

End Sub

Private Sub BtnEspanol_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEspanol.Click
'set the culture
System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("es")

'now that the culture is set, create a form's instance
Dim frmEspanol As New frm_Languages
With frmEspanol
.StartPosition = FormStartPosition.CenterScreen
End With
frmEspanol.Show()

End Sub

End Class

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

يمكنك انزال المثال الرابط التالي
البيئة المستخدمة الفيجوال استوديو 2008
اللغة المستخدمة الفيجوال بيسك دوت نت

http://vb4arb.com/vb/uploaded/18_01349424194.zip

بالتوفيق للجميع
أخوكم عمر
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مقال] دمج كل ملفات برنامجك الى ملف تنفيذى واحد ali.alfoly 25 7,879 02-12-16, 04:04 PM
آخر رد: ali.alfoly
  حصرياً ( إطبع على الوورد من خلال برنامجك ) ( شرح بالصور ) m.sami.ak 20 1,971 20-08-16, 11:53 PM
آخر رد: الوادي
  الاستفادة من بارمترات الاخراج من SQL Server داخل برنامجك ابو ليلى 1 201 20-08-16, 02:16 AM
آخر رد: الوادي
Star [VB.NET] شرح عمل امتداد خاص لبرامجك وجعل برنامجك يقرأ هذة الملفات mohammed_gamal381 22 7,391 01-06-16, 02:55 PM
آخر رد: ابراهيم كركوكي
  طريقة مميزة لعمل إعدادات Setting لحفظ اعدادات برنامجك بدون أكواد kslawy 6 1,651 26-05-16, 12:07 PM
آخر رد: CLARO
  حصرياً على اليوتوب,,, إطبع على الوورد من خلال برنامجك ( شرح بالفيديو ) مبرمج أوتار 5 1,821 15-05-16, 05:06 PM
آخر رد: CLARO
  كيف تجعل برنامجك عالميا و يدعم أكثر من لغة silverlight 5 731 15-05-16, 05:03 PM
آخر رد: CLARO
  موضوع الاستاذ رامي مثال \ لطريقة تفعيل برنامجك عند العميل وتغيير كلمة مرور اRamilove سعود 7 2,044 26-01-16, 08:07 PM
آخر رد: سعود
Question [مثال] كيف تضيف اكثر من لغة الى برنامجك HASAN6.0 3 425 26-11-15, 11:20 PM
آخر رد: hamada558
  كيف تتعامل مع برنامج الإكسيل من برنامجك rinawi 6 1,783 25-06-15, 05:49 AM
آخر رد: Nadir_Nabous

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


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