' Language.inc - Multiple Language File Interface ' (C) 2004 - Dennis Schulmeister Declare LanguageFile$, Fast%, GetLString$[255], GetLStringN%, GetLStringI% Fast% = 1 Proc CreateLanguageDialog Parameters Title$, Ok$, Abbrechen$ Declare Dialog%, Ok%, Abbrechen%, List%, Listbox%, LanguageFile$ Declare End%, SaveLF%, Temp$, Return%, String$ ClearList AddFiles "*.lng" List% = @CreateListBox(%hwnd,"",%MaxX,%MaxY,0,0) MoveListToList(List%) If @GetCount(List%) > 1 @DestroyWindow(List%) Dialog% = @CreateDialog(%hwnd,Title$,@CenterX(320),@CenterY(240),320,240) ListBox% = @CreateSortedListBox(Dialog%,"",5,5,300,170) Ok% = @CreateButton(Dialog%,Ok$,4,183,100,25) Abbrechen% = @CreateButton(Dialog%,Abbrechen$,206,183,100,25) @MoveListToList(Listbox%) ClearList WhileNot End% WaitInput If @GetFocus(Ok%) SaveLF% = 1 End% = 1 ElseIf @GetFocus(Abbrechen%) SaveLF% = 0 End% = 1 EndIf Wend If (SaveLF% > 0) GetCurString Listbox% LanguageFile$ = @Upper$(@$(0)) String$ = (Pfad$ + "\settings.ini") Temp$ = @Upper$(@Trim$(@ReadIni$(String$,"SETTINGS","LanguageFile"))) Return% = 0 If (Temp$ = LanguageFile$) Else String$ = (Pfad$ + "\SETTINGS.INI") WriteIni String$,"SETTINGS","LanguageFile" = LanguageFile$ Return% = 1 EndIf EndIf @DestroyWindow(Dialog%) Else @DestroyWindow(Dialog%) @MessageBox("No language file! Contact http://www.kidding-web.de or elwood@blues.de.sr", "Fatal Error", 48) EndIf ClearList Return Return% EndProc Proc GetLanguageFile Declare IOResult%, SearchFlag%, List%, Dialog%, Ok%, Abbrechen% Declare ListBox%, String$ Assign #1, (Pfad$ + "\Settings.ini") Reset #1 IOResult% = %IOResult Close #1 Case IOResult%:SearchFlag% = 1 If (SearchFlag% < 1) LanguageFile$ = @Trim$(@ReadIni$((Pfad$ + "Settings.ini"),"SETTINGS","LanguageFile")) Case (LanguageFile$ = ""):SearchFlag% = 1 If (SearchFlag% < 1) Assign #1, (Pfad$ + "\" + LanguageFile$) Reset #1 IOResult% = %IOResult Close #1 Case IOResult%:SearchFlag% = 1 EndIf EndIf Case (SearchFlag% < 1):Return ClearList AddFiles "*.lng" List% = @CreateListBox(%hwnd,"",0,0,0,0) MoveListToList(List%) If @GetCount(List%) If @GetCount(List%) > 1 Dialog% = @CreateDialog(%hwnd,"Choose language file",@CenterX(320),@CenterY(240),320,240) ListBox% = @CreateSortedListBox(Dialog%,"",5,5,300,170) Ok% = @CreateButton(Dialog%,"Ok",4,183,100,25) Abbrechen% = @CreateButton(Dialog%,"Cancel",206,183,100,25) @MoveListToList(Listbox%) ClearList WhileNot @GetFocus(Ok%) WaitInput Case @GetFocus(Abbrechen%):END Wend GetCurString Listbox% LanguageFile$ = @$(0) @DestroyWindow(Dialog%) Else LanguageFile$ = @GetString$(List%,0) EndIf String$ = (Pfad$ + "\settings.ini") WriteIni String$,"SETTINGS","LanguageFile" = LanguageFile$ Else @MessageBox("No language file! Contact http://www.kidding-web.de or elwood@blues.de.sr", "Fatal Error", 48) END EndIf EndProc Proc LanguageInit Declare String$ GetLanguageFile Assign #1, (Pfad$ + LanguageFile$) Reset #1 WhileNot @EOF(#1) Input #1, String$ GetLString$[GetLStringN%] = String$ inc GetLStringN% Wend Close #1 GetLStringI% = GetLStringN% While (GetLStringI% < 256) GetLString$[GetLStringI%] = "E-R-R-O-R" inc GetLStringI% Wend EndProc Proc GetLString Parameters Nummer% Declare String$, i% If (Fast% < 1) i% = 0 Assign #15, (Pfad$ + LanguageFile$) Reset #15 String$ = "E-R-R-O-R" WhileNot @Or((i% > (Nummer% - 1)),@EOF(#15)) inc i% Input #15, String$ CleanString String$ String$ = @$(0) Wend Close #15 Return String$ Else Case (Nummer% < (GetLStringN% + 1)): Return GetLString$[(Nummer% - 1)] EndIf EndProc