Hace tiempo había visto que se podían crear múltiples formularios con diferentes idiomas para hacer traducciones de nuestro proyecto, pero no doy bien con su buen uso, o quizás sea algo muy beta, ya que tengo un programa que actualmente se traduce con un archivo .ini que tiene toda la información de las palabras utilizadas y quería utilizar el multilenguaje para evitar usar un archivo externo.
Creo un proyecto nuevo y agrego:
Language = "Seleccionar.." (Idioma a Traducir) en este caso EN y ES
Localizable = True
Coloco dos botones uno que pasa al Español y otro al Ingles..
Imports System.Globalization
Imports System.ComponentModel
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
''español
Dim l As New CultureInfo("es", True)
Dim resources As ComponentResourceManager = New ComponentResourceManager(Me.GetType)
For Each c As Control In Me.Controls
resources.ApplyResources(c, c.Name, l)
Next c
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
''ingles
Dim l As New CultureInfo("en", True)
Dim resources As ComponentResourceManager = New ComponentResourceManager(Me.GetType)
For Each c As Control In Me.Controls
resources.ApplyResources(c, c.Name, l)
Next c
End Sub
End Class
y funciona sin problemas, ahora aplico lo mismo en un formulario de un proyecto que tiene 30 formularios más y no funciona..