Bert Posted 6 hours ago Posted 6 hours ago I'm building a GUI and I want to add support for 12 languages. The problem I'm running into is say I have a radio control and I want to change the text depending on what language is being used. The characters being rendered are not what I expect. I'm saving my text strings in an INI file. Quote [languageSelect] language=0 ENGLISH=Select this for English FRENCH=Sélectionnez ceci pour le français GERMAN=Wählen Sie dies für Deutsch aus. CHINESE=选择此项以使用中文 HINDI=हिंदी के लिए इसे चुनें SPANISH=Seleccione esta opción para español ARABIC=اختر هذا للغة العربية PORTUGUESE=Selecione isto para português RUSSIAN=Выберите этот вариант для русского языка JAPANESE=日本語にする場合はこれを選択してください ITALIAN=Seleziona questa opzione per l'italiano VIETNAMESE=Chọn mục này cho tiếng Việt This is my script I'm using: expandcollapse popup#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $sIniFile2 = @ScriptDir & "\VQData\settings.ini" Global $defaultwintitle = "VollyQuizzer - Select your language" $FormLS1 = GUICreate($defaultwintitle, 763, 323, 311, 365) GUISetFont(12, 400, 0, "MS Sans Serif") $iniReadLS1 = IniRead($sIniFile2,"languageSelect","ENGLISH","English") $RadioLS1 = GUICtrlCreateRadio($iniReadLS1, 24, 16, 290, 25) $iniReadLS2 = IniRead($sIniFile2,"languageSelect","FRENCH","French") $RadioLS2 = GUICtrlCreateRadio($iniReadLS2, 24, (16*3), 290, 25) $iniReadLS3 = IniRead($sIniFile2,"languageSelect","GERMAN","German") $RadioLS3 = GUICtrlCreateRadio($iniReadLS3, 24, (16*5), 290, 25) $iniReadLS4 = IniRead($sIniFile2,"languageSelect","CHINESE","Chinese") $RadioLS4 = GUICtrlCreateRadio($iniReadLS4, 24, (16*7), 290, 25) $iniReadLS5 = IniRead($sIniFile2,"languageSelect","HINDI","Hindi") $RadioLS5 = GUICtrlCreateRadio($iniReadLS5, 24, (16*9), 290, 25) $iniReadLS6 = IniRead($sIniFile2,"languageSelect","SPANISH","Spanish") $RadioLS6 = GUICtrlCreateRadio($iniReadLS6, 24, (16*11), 290, 25) $iniReadLS7 = IniRead($sIniFile2,"languageSelect","ARABIC","Arabic") $RadioLS7 = GUICtrlCreateRadio($iniReadLS7, 344, 16, 410, 25) $iniReadLS8 = IniRead($sIniFile2,"languageSelect","PORTUGUESE","Portuguese") $RadioLS8 = GUICtrlCreateRadio($iniReadLS8, 344, (16*3), 410, 25) $iniReadLS9 = IniRead($sIniFile2,"languageSelect","RUSSIAN","Russian") $RadioLS9 = GUICtrlCreateRadio($iniReadLS9, 344, (16*5), 410, 25) $iniReadLS10 = IniRead($sIniFile2,"languageSelect","JAPANESE","Japanese") $RadioLS10 = GUICtrlCreateRadio($iniReadLS10, 344, (16*7), 410, 25) $iniReadLS11 = IniRead($sIniFile2,"languageSelect","ITALIAN","Italian") $RadioLS11 = GUICtrlCreateRadio($iniReadLS11, 344, (16*9), 410, 25) $iniReadLS12 = IniRead($sIniFile2,"languageSelect","VIETNAMESE","Vietnamese") $RadioLS12 = GUICtrlCreateRadio($iniReadLS12, 344, (16*11), 410, 25) $ButtonLS1 = GUICtrlCreateButton("Continue", 272, 256, 145, 41) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $iniReadLS2 $INIL1 = IniRead($sIniFile2,"languageSelect", "French1","Fail") $defaultwintitle = $INIL1 EndSwitch WEnd When I run the script, this is the result (which is not what it should be). For example the Arabic (right column, top) is completely wrong. I'm thinking this is a Windows limitation (Character support) and I need a different approach. In any case my main script has a number of controls that I would like to be able to change the language to the operator's preference. If what I have in mind won't work, is there a different approach I could try? Not sure what to do here. Thanks. The Vollatran project My blog: http://www.vollysinterestingshit.com/
Bert Posted 6 hours ago Author Posted 6 hours ago In doing more searching, I found a post where it suggested in SciTE to go file>Encoding> and making a change there. That didn't work. It made no difference. The Vollatran project My blog: http://www.vollysinterestingshit.com/
Gianni Posted 3 hours ago Posted 3 hours ago (edited) In SciTE select UTF-8 encoding to save the script, while to save the .ini file with Notepad, select UTF-16 LE encoding Edited 3 hours ago by Gianni MattyD 1 Chimp small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....
MattyD Posted 1 hour ago Posted 1 hour ago For the Vietnamese to display correctly I also needed to change the font away from "MS Sans Serif"". GUICtrlSetFont($RadioLS12, 12, $FW_NORMAL, 0, "Arial")
ahmet Posted 1 hour ago Posted 1 hour ago Try saving ini file with UTF 8, but I am almost certain that it will not work. I can bot test that. If that fails there are is some ini file udf which should resolve that issue.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now