No he comentado el código pero ESPERO que lo entiendan, no tengo casi mucho tiempo.
Código: Seleccionar todo
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <GuiComboBox.au3>
#include <GuiTab.au3>
Opt("GUICloseOnESC", 0) ; no cierra la ventana al presionar ESC
Opt("GUIOnEventMode", 1)
Global $guiPrincipal, $cmbIdioma, $btnMensaje, $lblTexto1, $lblLenguaje, $tabPrincipal, $tabItemLista, $tabItemValores, $tabItemFinal
Global $grupo, $rdoOpcion1, $rdoOpcion2, $menu, $mItemAbrir, $menuAyuda, $mItemInformacion, $mItemSalir,$menuVer, $mItemStatus
$guiPrincipal = GUICreate("Ventana MultiIdioma", 551, 307, 205, 147)
$cmbIdioma = GUICtrlCreateCombo("Español", 392, 56, 145, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
GUICtrlSetData($cmbIdioma, "English")
$btnMensaje = GUICtrlCreateButton("Mensaje", 368, 224, 139, 25)
$lblTexto1 = GUICtrlCreateLabel("Este es un pequeño ejemplo en el que se trata de mostrar una ventana multi idioma", 8, 32, 395, 17)
$lblLenguaje = GUICtrlCreateLabel("Seleccione el idioma", 440, 32, 101, 17)
$tabPrincipal = GUICtrlCreateTab(16, 64, 329, 185)
$tabItemLista = GUICtrlCreateTabItem("Lista")
$tabItemValores = GUICtrlCreateTabItem("Valores")
GUICtrlSetState(-1, $GUI_SHOW)
$tabItemFinal = GUICtrlCreateTabItem("Final")
GUICtrlCreateTabItem("")
$grupo = GUICtrlCreateGroup("Grupo Ejemplo", 352, 112, 185, 105)
$rdoOpcion1 = GUICtrlCreateRadio("Opcion Uno", 376, 144, 113, 17)
$rdoOpcion2 = GUICtrlCreateRadio("Opcion dos", 376, 168, 113, 17)
GUICtrlSetState($rdoOpcion2, $GUI_CHECKED)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$menu = GUICtrlCreateMenu("&Archivo")
$mItemAbrir = GUICtrlCreateMenuItem("Abrir", $menu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
$menuAyuda = GUICtrlCreateMenu("Ayuda")
$mItemGuardar = GUICtrlCreateMenuItem("Guardar", $menu)
GUICtrlSetState(-1, $GUI_DISABLE)
$mItemInformacion = GUICtrlCreateMenuItem("Informacion", $menuAyuda)
$mItemSalir = GUICtrlCreateMenuItem("Salir", $menu)
GUICtrlCreateMenuItem("", $menu, 2) ; crea una línea separadora
$menuVer = GUICtrlCreateMenu("Ver", -1, 1) ; es creado antes del menú "?"
$mItemStatus = GUICtrlCreateMenuItem("Statusbar", $menuVer)
GUICtrlSetState(-1, $GUI_CHECKED)
_cargarEventos()
;cargo el idioma que haya utilizado la ultima vez---------------------------
If Iniread(@ScriptDir & "\idioma.ini", "Idioma", "english", "") = 1 Then
_GUICtrlComboBox_SelectString($cmbIdioma,"English"); selecciono el item
_cargarIdioma("English")
EndIf
;---------------------------------------------------------------------------
GUISetState(@SW_SHOW)
While 1
Sleep(100)
WEnd
Func _cargarEventos()
GUISetOnEvent($GUI_EVENT_CLOSE, "_cerrarInterfaz")
GUICtrlSetOnEvent($cmbIdioma, '_idiomaSeleccion')
GUICtrlSetOnEvent($btnMensaje, '_mensaje')
GUICtrlSetOnEvent($mItemSalir, '_cerrarInterfaz')
GUICtrlSetOnEvent($tabPrincipal, '_clicTab')
EndFunc ;==>_cargarEventos
Func _clicTab()
If _GUICtrlTab_GetCurSel($tabPrincipal) = 0 Then MsgBox(64, "Nombre Programa", _mensajesMultiIdiomas("clicTab0"), -1, $guiPrincipal)
If _GUICtrlTab_GetCurSel($tabPrincipal) = 1 Then MsgBox(64, "Nombre Programa", _mensajesMultiIdiomas("clicTab1"), -1, $guiPrincipal)
If _GUICtrlTab_GetCurSel($tabPrincipal) = 2 Then MsgBox(64, "Nombre Programa", _mensajesMultiIdiomas("clicTab2"), -1, $guiPrincipal)
EndFunc
Func _idiomaSeleccion()
If GUICtrlRead($cmbIdioma) = "español" Then
IniWrite(@ScriptDir & "\idioma.ini", "Idioma", "español", "1")
IniWrite(@ScriptDir & "\idioma.ini", "Idioma", "english", "0")
_cargarIdioma("Español")
ElseIf GUICtrlRead($cmbIdioma) = "English" Then
IniWrite(@ScriptDir & "\idioma.ini", "Idioma", "español", "0")
IniWrite(@ScriptDir & "\idioma.ini", "Idioma", "english", "1")
_cargarIdioma("English")
EndIf
EndFunc ;==>_idiomaSeleccion
Func _cargarIdioma($idiomaSeleccionado)
Local $controles[23] = [$guiPrincipal, $btnMensaje, $lblTexto1 _
, $lblLenguaje, $tabItemLista, $tabItemValores, $tabItemFinal _
, $grupo, $rdoOpcion1, $rdoOpcion2, $menu, $mItemAbrir, $menuAyuda, $mItemGuardar, $mItemInformacion _
, $mItemSalir, $menuVer, $mItemStatus]
Local $claveYvalor = IniReadSection(@ScriptDir & "\idioma.ini", $idiomaSeleccionado)
For $i = 1 To $claveYvalor[0][0]
For $i = 0 To 22
GUICtrlSetData($controles[$i], $claveYvalor[$i + 1][1])
Next
Next
EndFunc ;==>_cargarIdioma
Func _mensaje()
If GUICtrlRead($rdoOpcion1) = $GUI_CHECKED Then MsgBox(64, "Nombre Programa", _mensajesMultiIdiomas("mensajeClicOpcion1"), -1, $guiPrincipal)
If GUICtrlRead($rdoOpcion2) = $GUI_CHECKED Then MsgBox(64, "Nombre Programa", _mensajesMultiIdiomas("mensajeClicOpcion2"), -1, $guiPrincipal)
EndFunc ;==>_mensaje
Func _mensajesMultiIdiomas($razonDeMensaje)
Local $textoMensaje
Local $claveYvalor = IniReadSection(@ScriptDir & "\idioma.ini", GuiCtrlRead($cmbIdioma))
For $i = 1 To $claveYvalor[0][0]
If $claveYvalor[$i][0] = $razonDeMensaje Then
$textoMensaje = $claveYvalor[$i][1]
ExitLoop
EndIf
Next
Return $textoMensaje
EndFunc ;==>_mensajesMultiIdiomas
Func _cerrarInterfaz()
Exit
EndFunc ;==>_cerrarInterfaz
Saludos...