حتى تتمكن من ان تصنع برنامج له نفس الواجهه بعدة لغات , وبالتصميم الذي تريده .
يوجد كثير من الطرق ..
قمت برفع مشروع مبسط لذلك
بكل بساطة فقط اضف Module جديد .. واضف التالي
وفي اي فورم تريده ضع الكود
ولعمل اي واجهة للفورم باي لغة تريدها .. فقط اختر الـ Language لهذا الفورم او ذاك
يوجد كثير من الطرق ..
قمت برفع مشروع مبسط لذلك
بكل بساطة فقط اضف Module جديد .. واضف التالي
كود :
Imports System.Globalization
Imports System.ComponentModel
Imports System.Threading
Module Module1
Public Enum Languages
Arabic
English
French
End Enum
Public Sub SetLanguage(Form As Windows.Forms.Form, ByVal Language As Languages)
If IsNothing(Form) Then Exit Sub
Dim culture_info As CultureInfo
Select Case Language
Case Languages.Arabic
culture_info = New CultureInfo("ar")
Form.RightToLeft = RightToLeft.Yes
Case Languages.French
culture_info = New CultureInfo("fr-FR")
Form.RightToLeft = RightToLeft.No
Case Else
culture_info = New CultureInfo("en-us")
Form.RightToLeft = RightToLeft.No
End Select
Dim component_resource_manager As New ComponentResourceManager(Form.GetType)
Thread.CurrentThread.CurrentUICulture = culture_info
Thread.CurrentThread.CurrentCulture = culture_info
component_resource_manager.ApplyResources(Form, "$this", culture_info)
For Each ctl As Control In Form.Controls
ApplyLocaleToControl(ctl, component_resource_manager, culture_info)
Next ctl
End Sub
Public Sub ApplyLocaleToControl(ByVal ctl As Control, ByVal component_resource_manager As ComponentResourceManager, ByVal culture_info As CultureInfo)
ctl.Refresh()
component_resource_manager.ApplyResources(ctl, ctl.Name, culture_info)
If TypeOf ctl Is MenuStrip Then
Dim menu_strip As MenuStrip = DirectCast(ctl, MenuStrip)
For Each child As ToolStripMenuItem In menu_strip.Items
ApplyLocaleToToolStripItem(child, component_resource_manager, culture_info)
Next child
ElseIf TypeOf ctl Is ToolStrip Then
Dim menu_strip As ToolStrip = DirectCast(ctl, ToolStrip)
For Each child In menu_strip.Items
ApplyLocaleToToolStripItem(child, component_resource_manager, culture_info)
For Each child2 In child.DropDownItems
ApplyLocaleToToolStripItem(child2, component_resource_manager, culture_info)
Next
Next child
Else
For Each child As Control In ctl.Controls
ApplyLocaleToControl(child, component_resource_manager, culture_info)
For Each child2 As Control In child.Controls
ApplyLocaleToControl(child2, component_resource_manager, culture_info)
Next
Next child
End If
End Sub
Private Sub ApplyLocaleToToolStripItem(ByVal item As ToolStripItem, ByVal component_resource_manager As ComponentResourceManager, ByVal culture_info As CultureInfo)
component_resource_manager.ApplyResources(item, item.Name, culture_info)
If TypeOf item Is ToolStripMenuItem Then
Dim menu_item As ToolStripMenuItem = DirectCast(item, ToolStripMenuItem)
For Each child As ToolStripItem In menu_item.DropDownItems
ApplyLocaleToToolStripItem(child, component_resource_manager, culture_info)
Next child
End If
End Sub
End Module
كود :
SetLanguage(Me, Languages.Arabic)
or
SetLanguage(Me, Languages.English)
or
SetLanguage(Me, Languages.French)
ولعمل اي واجهة للفورم باي لغة تريدها .. فقط اختر الـ Language لهذا الفورم او ذاك