تقييم الموضوع :
  • 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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تتعامل مع برنامج الإكسيل من برنامجك rinawi 7 6,645 12-11-22, 12:11 AM
آخر رد: خالد العصاوي
  طريقة استخدام مكتبة internet download manager في برنامجك kslawy 3 5,362 30-07-19, 07:06 AM
آخر رد: سعود
  مقال: الكومبو بوكس ComboBox كيف تضيف أيقونات Blue Sky 1 3,162 30-06-19, 10:41 AM
آخر رد: invocker
  كيف تجعل برنامجك عالميا و يدعم أكثر من لغة silverlight 6 5,596 29-05-19, 10:32 PM
آخر رد: egbest2
Brick جعل برنامجك يعمل بوضعية المدير أو المسؤول - Administrator YousefOkasha 2 2,901 24-10-18, 02:58 PM
آخر رد: حريف برمجة
  حصرياً ( إطبع على الوورد من خلال برنامجك ) ( شرح بالصور ) m.sami.ak 21 12,542 23-02-18, 11:04 AM
آخر رد: احمد نعمة عبد السلام
  موضوع الاستاذ رامي مثال \ لطريقة تفعيل برنامجك عند العميل وتغيير كلمة مرور اRamilove سعود 8 7,701 06-10-17, 01:43 AM
آخر رد: حمادة دراز
  [مقال] دمج كل ملفات برنامجك الى ملف تنفيذى واحد ali.alfoly 25 21,886 02-12-16, 04:04 PM
آخر رد: ali.alfoly
  الاستفادة من بارمترات الاخراج من SQL Server داخل برنامجك ابو ليلى 1 3,301 20-08-16, 02:16 AM
آخر رد: الوادي
Star [VB.NET] شرح عمل امتداد خاص لبرامجك وجعل برنامجك يقرأ هذة الملفات mohammed_gamal381 22 19,140 01-06-16, 02:55 PM
آخر رد: ابراهيم كركوكي

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


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