Вот этот код вставляем в Свойства страницы -> Команды
Code: Select all
FileExists "[PubDir]lang.llf" "[ELLF]"
If "[ELLF]" "=" "True"
FileRead "[PubDir]lang.llf" "1" "[MUI_VAR_1]"
FileRead "[PubDir]lang.llf" "2" "[MUI_VAR_2]"
FileRead "[PubDir]lang.llf" "3" "[MUI_VAR_3]"
Return
Else
EndIf
SetVar "[MUI_VAR_1]" "Русский"
SetVar "[MUI_VAR_2]" "Сообщение программы"
SetVar "[MUI_VAR_3]" "Действие не удалось !"
Return
Теперь пояснения к коду для новичков . Сперва проверяем доступность языкового файла в папке с программой , если он доступен то считываем из него данные которые загружаются в языковые переменные [MUI_VAR_XX] . В случае если файл языкового пакета lang.llf не найден , то присваивается значение языковым переменным [MUI_VAR_XX] принятое по умолчанию за основной язык программы
Далее вставляем картинки флагов ( в случае если языковых локалей очень много , а место мало , можете использовать CustomWindow
) , при нажатии на которые будет меняться язык программы . После чего вставляем следующий код в Свойства объекта -> Команды , и так для каждого языка
Code: Select all
ExtractFile "C:\MUI_EXAMPLE\MUI\Название_Языка.txt" "[PubDir]lang.llf"
Delay "250"
FileExists "[PubDir]lang.llf" "[MLLFE]"
If "[MLLFE]" "=" "True"
FileRead "[PubDir]lang.llf" "1" "[MUI_VAR_1]"
FileRead "[PubDir]lang.llf" "2" "[MUI_VAR_2]"
FileRead "[PubDir]lang.llf" "3" "[MUI_VAR_3]"
Else
AlertBox "[MUI_VAR_2]" "[MUI_VAR_3]"
Return
EndIf
Теперь пояснения к коду для новичков . Мы извлекаем языковой файл , после чего ждем 250 мс ( это необходимо для предотвращения конфликтных ситуаций с некоторыми параноидальными антивирусами ) . Далее проверяем доступность извлеченного языкового файла , если он доступен то считываем с него данные которые загружаются в языковые переменные [MUI_VAR_XX] , если нет , то выводим сообщение об ошибке ( будет выведено на том языке который активирован в данный момент )
В итоге получится простой и надежный MUI , тестовый пример можно скачать тут