Что нового

Создание Поддержки Языкового Интерфейса

astati

Новичок
Сообщения
145
Репутация
4
Здравствуйте!
Постарался написать правильное название темы.
Вопрос можно ли сделать так чтоб в соответствии с выбранным языком все названия: кнопок менюшек и т.д. менялись на выбранный язык. Как я представляю языковыми должны быть файлы xml (к примеру).


P.S. если можно на простом примере покажите как это сделать...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
astati
Попробуйте так:
Код:
#include <GUIConstantsEx.au3>

Dim $aButton[2] = ['Go', 'Поехали']
Dim $aTitle[2] = ['Test', 'Тест']
$iIndex = 0
If StringInStr(@KBLayout, '0419') Then
	$iIndex = 1
EndIf

GUICreate($aTitle[$iIndex], 200, 200)
$nButton = GUICtrlCreateButton($aButton[$iIndex], 50, 75, 100, 50)
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton
			If $iIndex = 1 Then
				MsgBox(64, 'Info', 'Русский язык')
			Else
				MsgBox(64, 'Info', 'Не русский язык')
			EndIf
	EndSwitch
WEnd
 
Автор
A

astati

Новичок
Сообщения
145
Репутация
4
Спасибо. Сори что тема повторилась. Можно закрыть.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
astati
Вот посмотри - это с выбором языкового файла. А можно просто внутри скрипта, как это сделано в JumpReg (хотя там скомбинировано два варианта)

madmasles
У многих русская система, но раскладка по умолчанию англ. Поэтому лучше использовать не @KBLayout, а функцию
Код:
$Lang_dll = DllOpen("kernel32.dll")
$UserIntLang=DllCall ( $Lang_dll, "int", "GetUserDefaultUILanguage" )
If Not @error Then $UserIntLang=Hex($UserIntLang[0],4)
DllClose($Lang_dll)

; Ru
; если русская локализация, то русский язык
If $UserIntLang = 0419 Then
 
Верх