07-10-17, 06:23 PM
(آخر تعديل لهذه المشاركة : 07-10-17, 06:26 PM {2} بواسطة سعود الشامان.)
بسم الله الرحمن الرحيم وبه نستيعن
هذه الطريقة تستخدمها أغلب الشركات الكبرى
مثال برنامج Internet Download Manager
وليس صنع برنامج متعدد اللغات فقط , بل متعدد اللهجات أيضاً
والطريقة كالتالي :
هذه الطريقة تستخدمها أغلب الشركات الكبرى
مثال برنامج Internet Download Manager
وليس صنع برنامج متعدد اللغات فقط , بل متعدد اللهجات أيضاً
والطريقة كالتالي :
نعمل مشروع جديد :
نقوم بإضافة :
ComboBox1
إختر اللغة: =Label1
Label2 = Phone
نعمل إستيراد لمكتبة Globalization ومكتبة ComponentModel
كود :
Imports System.Globalization
Imports System.ComponentModel
نضع هذه الكود في تصاريح عامة
كود :
Private Sub ChangeLanguage(ByVal Language As String)
For Each c As Control In Me.Controls
Dim crmLang As ComponentResourceManager = New ComponentResourceManager(GetType(Form1))
crmLang.ApplyResources(c, c.Name, New CultureInfo(Language))
Next c
هذا الكود في لود الفورم
كود :
ComboBox1.Items.Add("English")
ComboBox1.Items.Add("العربية - السعودية")
ComboBox1.Items.Add("العربية - مصر")
ComboBox1.Items.Add("العربية - الأردن")
If ComboBox1.SelectedIndex = 0 Then '
ChangeLanguage("en-us")
End If
If ComboBox1.SelectedIndex = 1 Then
ChangeLanguage("ar-SA")
End If
If ComboBox1.SelectedIndex = 2 Then
ChangeLanguage("ar-EG")
End If
If ComboBox1.SelectedIndex = 3 Then
ChangeLanguage("ar-JO")
End If
'-----------------------------------------------------------
Dim myCurrentLanguage As InputLanguage = InputLanguage.CurrentInputLanguage
If myCurrentLanguage.Culture.EnglishName = "English (United States)" Then
ComboBox1.SelectedIndex = 0
End If
If myCurrentLanguage.Culture.EnglishName = "Arabic (Saudi Arabia)" Then
ComboBox1.SelectedIndex = 1
End If
If myCurrentLanguage.Culture.EnglishName = "Arabic (Egypt)" Then
ComboBox1.SelectedIndex = 2
End If
If myCurrentLanguage.Culture.EnglishName = "Arabic (Jordan)" Then
ComboBox1.SelectedIndex = 3
End If
هذا الكود في الكومبو بوكس
كود :
If ComboBox1.SelectedIndex = 0 Then
ChangeLanguage("en-us")
ElseIf ComboBox1.SelectedIndex = 1 Then
ChangeLanguage("ar-SA")
Else
ChangeLanguage("ar-EG")
End If
الآن من خصائص الفورم نختار خيار Localizable ونجعل قيمته False
( لعدم خروج الادوات من الفورم )
من خصائص الفورم نختار خيار Language
ونختار جميع المناطق اللتي نريد
مثلا نختار ( العربية - السعودية ) و نغير اسم الليبل إلى ( الجوال )
ثم نعود مره اخرى لخيار Language ونختار ( العربية - مصر ) ونغير اسم الليبل إلى ( المحمول )
ثم نعود مره اخرى لخيار Language ونختار ( العربية - الأردن) ونغير اسم الليبل إلى ( الخلوي)
بعد إختيار جميع اللغة اللتي تريد نغير خيار Language إلى (Default)
وهذا الشرح بالفيديو لكن مثال آخر
من الدكتور / محمد ناجح جزاه الله عنا خير الجزاء
[url=http://www.codeguru.com/columns/vb/localization-in-vb.net.htm]
ملاحظة هامة جداً :
في مجلد الديباج ( Debug ) نجلد مجلدات للغة الدول المحددة يجب نقل هذه المجلدات مع الملف التنفيذي
مثل قاعدة البيانات