Was am meisten Verwendet wird

  • Hallo liebe AutoIt Com

    Ich habe mich grad so gefragt, was bei den meisten Scripten die Ihr erschafft, am Häufigsten verwendet wurden.
    Wieviel Buttons (Durchschnitlich)
    Die Namen der Buttons
    usw. Halt einfach, was man bei jedem Script hat / verwendet.

    Meine idee, eine etwas kleine Standarisirte möglichkeit, die Spache per UDF, bei einem "Installer" oder sonnst so, zu ändern.
    Sprich, man nimmt die UDF codet die butten auf die UDF und die Beschriftung der Buttons ändert sich je nach wunsch oder OS_Lang.
    Bisjetz feile ich noch an der Idee wie man das machen könnte.
    Evt habt ihr ideen oder so, vorallem eure Meinung dazu interessiert mich.

    Greez

  • Hey Blume

    "Speicher","Laden","Abbrechen"
    Hab bis jetz nur an "Weiter","Zurück","Optionen" Gedacht, werd ich hinzufügen :D

    Was Lebels angeht, is mir klar, dasses kaum Realisier var wird, da n Standard zu bekommen.
    Buttons hingegen haben oft die Selbe geschreibung. :P

    Greez

    **Edit**
    Hier soweit einmal eine kleine version, ging mir grad so im kopf rum.

    LangUDF.au3
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.1
    Author: Skilkor

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    #region ### includes ###
    #include <Array.au3>
    #endregion ### includes ###
    ;==========
    #region ### ButtonArray ###
    Global $ini = ('Lang.ini')
    Global $Number[6]=['0','1','2','3','4','5']
    Global $NamesGer[6]=['Weiter','Zurück','Optionen','Speichern','Laden','Abbrechen']
    Global $NamesENG[6]=['Next','Back','Options','Save','Load','Quit']
    Global $Array[1] = ['Names']
    Global $ArrayButtonGER,$ArrayButtonENG
    #endregion ### ButtonArray ###
    ;==========
    #region ### Lang Write ###
    For $i = 0 To UBound($Number) -1
    IniWrite($ini,'OSLang','OSLang',@OSLang)
    IniWrite($ini,'ButtonGer',$Number[$i],$NamesGer[$i])
    IniWrite($ini,'ButtonENG',$Number[$i],$NamesENG[$i])
    Next
    _OSLang()
    #endregion ### Lang Write ###
    ;==========
    #region ### Button ###
    Func _OSLang()
    Local $Read
    If @OSLang = 0407 Then
    For $i = 0 To UBound($Number) -1
    $Read = IniRead($ini,'ButtonGer',$Number[$i],$NamesGer[$i])
    $ArrayButtonGER = _ArrayAdd($Array,$Read)
    Next
    ElseIf @OSLang = 0409 Then
    For $i = 0 To UBound($Number) -1
    $Read = IniRead($ini,'ButtonENG',$Number[$i],$NamesENG[$i])
    $ArrayButtonENG = _ArrayAdd($Array,$Read)
    Next
    EndIf
    EndFunc
    #endregion ### Button ###

    [/autoit]
    Test.au3
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <LangUDF.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~ _ArrayDisplay($Array,'Array')

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate('Test', 615, 438, 192, 124)
    $Group1 = GUICtrlCreateGroup('', 8, 8, 593, 417)
    $Button1 = GUICtrlCreateButton($Array[3], 512, 384, 75, 25)
    $Button2 = GUICtrlCreateButton($Array[1], 432, 384, 75, 25)
    $Button3 = GUICtrlCreateButton($Array[2], 352, 384, 75, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Meine Scripte kommen meistens ohne Buttons aus, da ich sie entweder brauche, um schnell mal etwas zu automatisieren und ich da zu faul bin ein GUI zu machen und lieber Hotkeys verwende, oder - und das ist bei mir meistens der Fall - weil es keine Eingaben braucht. So wie eben, da habe ich ein kleines Script geschrieben, was die ganze Zeit im Hintergrund in einer Endlosschleife bummelt und wenn der PC heruntergefahren wird, dann dunkelt es für 3 Sekunden den Bildschirm ab und weißt mit großer Roter Schrift und mit lauten Tönen darauf hin, nach dem Herunterfahren die Steckdosenleiste auszuschalten. Und so ähnlich sind meine meisten Scripte aufgebaut.

  • Ja die hab ich gesehen, aber ihrwie is das nich so die art die ich mir dachte, Thread 2 kahm da aber sehr na ran.
    Ich hab das bsp, einmal bissl überarbeitet.

    Bisjetz is halt auch nur Ger und ENG dabei.
    Was für Spachen würden sich noch so tun?

    Eine UDF is das nochnicht wirklich (Glaube ich) aber ich find den Ansatz gut :D

    LangUDF.au3
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.1
    Author: Skilkor

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------
    #cs ----------------------------------------------------------------------------
    $Array[0] = "Names", Irelevant
    $Array[1] = "Weiter","Next"
    $Array[2] = "Zurück","Back"
    $Array[3] = "Optionen","Options"
    $Array[4] = "Speichern","Save"
    $Array[5] = "Laden","Load"
    $Array[6] = "Abbrechen","Quit"
    #ce ----------------------------------------------------------------------------
    #region ### includes ###
    #include <Array.au3>
    #endregion ### includes ###
    ;==========
    #region ### ButtonArray ###
    Global $ini = ('Lang.ini')
    Global $Number[6]=['0','1','2','3','4','5']
    Global $NamesGer[6]=['Weiter','Zurück','Optionen','Speichern','Laden','Abbrechen']
    Global $NamesENG[6]=['Next','Back','Options','Save','Load','Quit']
    Global $Array[1] = [' - ']
    Global $ArrayButtonGER,$ArrayButtonENG
    #endregion ### ButtonArray ###
    ;==========
    #region ### Lang Write ###
    For $i = 0 To UBound($Number) -1
    IniWrite($ini,'OSLang','OSLang',@OSLang)
    IniWrite($ini,'ButtonGer',$Number[$i],$NamesGer[$i])
    IniWrite($ini,'ButtonENG',$Number[$i],$NamesENG[$i])
    Next
    _OSLang()
    #endregion ### Lang Write ###
    ;==========
    #region ### Button ###
    Func _OSLang()
    Local $Read
    If @OSLang = 0407 Then
    For $i = 0 To UBound($Number) -1
    $Read = IniRead($ini,'ButtonGer',$Number[$i],$NamesGer[$i])
    $ArrayButtonGER = _ArrayAdd($Array,$Read)
    Next
    ElseIf @OSLang = 0409 Then
    For $i = 0 To UBound($Number) -1
    $Read = IniRead($ini,'ButtonENG',$Number[$i],$NamesENG[$i])
    $ArrayButtonENG = _ArrayAdd($Array,$Read)
    Next
    EndIf
    EndFunc
    #endregion ### Button ###

    [/autoit]
    Test.aue
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <LangUDF.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~ _ArrayDisplay($Array,'Array')

    [/autoit] [autoit][/autoit] [autoit]

    Global $Button[7] = ['1','2','3','4','5','6','7']
    Global $ButtonLeft[8] = [20,80,140,20,80,140,20,80]
    Global $ButtonTop[8] = [20,20,20,50,50,50,80,20]

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    ;~ $hGui = GUICreate('Test', 240, 130, -1, -1)
    ;~ GUICtrlCreateGroup('', 10, 5, 220, 110)
    ;~ $Button7 = GUICtrlCreateButton($Array[0], 20, 20, -1, -1)
    ;~ $Button2 = GUICtrlCreateButton($Array[1], 80, 50, -1, -1)
    ;~ $Button3 = GUICtrlCreateButton($Array[2], 20, 50, -1, -1)
    ;~ $Button1 = GUICtrlCreateButton($Array[3], 140, 50, -1, -1)
    ;~ $Button4 = GUICtrlCreateButton($Array[4], 20, 80, -1, -1)
    ;~ $Button5 = GUICtrlCreateButton($Array[5], 80, 80, -1, -1)
    ;~ $Button6 = GUICtrlCreateButton($Array[6], 140, 80, -1, -1)

    [/autoit] [autoit][/autoit] [autoit]

    $hGui2 = GUICreate('Test2', 240, 130, -1, -1)
    GUICtrlCreateGroup('', 10, 5, 220, 110)
    For $i = 0 To UBound($Button) -1
    GUICtrlCreateButton($Array[$i],$ButtonLeft[$i],$ButtonTop[$i],-1,-1)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Im Allgemeinen löse ich mehrsprachige Programmierung anders.
    In Sprachdateien (language.german, language.english, language.france etc.) werden alle Ctrls aufgeführt mit Zuweisung der Entsprechung in der jeweiligen Sprache. ( z.B. "$cOpen=Öffnen", in der englischen Version dann: "$cOpen=Open" )
    Das ermöglicht auch die problemlose Erweiterung durch einfaches Hinzufügen einer neuen Sprachdatei. Für eine ausreichende Dimensionierung bei unterschiedlichen Begrifflängen in den Sprachen muss man natürlich sorgen.
    Dann werden die Begriffe in ein einziges Array eingelesen ( $aLang[Anz. Ctrls][Anzahl Sprachen] ) und je nach Sprachwahl on-the-fly den Ctrls zugewiesen.

  • mhm, sie kenn ich dass von kollegen, aber ich wusste nicht genau wie ich es in AutoIt umsetzen könnte.
    Deswegen hab ich eig alles was ich gesehen hab, auf die Seite gelegt und mir überlegt wie das mit AutoIt möglich wäre und das was hier vorliegt is mir auf die schnelle eingefallen.
    Ich sagte auch nicht dasses so sein muss, is ja bis jetz alles ne Idee die evt noch vorschläge oder andere möglichkeiten dargelegt benötigt :D

    Aber, wie würdest du es BugFix in autoit versuchen zu realisieren?

    Greez

    • Offizieller Beitrag

    Skilkor

    Hier mal ein Bsp. mit den verschiedenen Sprachen als Sektionen einer INI:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #cs language.ini
    [german]
    $cLang=Sprache wählen
    $cOpen=Öffnen
    $cNext=Weiter
    $cBack=Zurück
    $cOpt=Optionen
    $cSave=Speichern
    $cLoad=Laden
    $cQuit=Abbrechen

    [/autoit] [autoit][/autoit] [autoit]

    [english]
    $cLang=Select language
    $cOpen=Open
    $cNext=Next
    $cBack=Back
    $cOpt=Options
    $cSave=Save
    $cLoad=Load
    $cQuit=Escape
    #ce

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~ Global $sINI = "Path_INI_Datei"
    ;~ Global $aLanguageNames = IniReadSectionNames($sINI) ; == liest die verfügbaren Sprachen aus

    [/autoit] [autoit][/autoit] [autoit]

    ; == zum TEST, Simulation IniReadSectionNames
    Global $aLanguageNames[3] = [2,'german','english']
    ; ==

    [/autoit] [autoit][/autoit] [autoit]

    Global $sCombo = '', $sDefault = $aLanguageNames[1]
    Global $aLanguages[$aLanguageNames[0] +1] = [$aLanguageNames[0]]
    For $i = 1 To $aLanguageNames[0]
    ;~ $aLanguages[$i] = IniReadSection($aLanguageNames[$i])
    $sCombo &= $aLanguageNames[$i] & '|'
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; == zum TEST, Simulation IniReadSection
    Global $aTmp[9][2] = [[8],['$cLang','Sprache wählen'],['$cOpen','Öffnen'],['$cNext','Weiter'],['$cBack','Zurück'],['$cOpt','Optionen'],['$cSave','Speichern'],['$cLoad','Laden'],['$cQuit','Abbrechen']]
    $aLanguages[1] = $aTmp
    Global $aTmp[9][2] = [[8],['$cLang','Select language'],['$cOpen','Open'],['$cNext','Next'],['$cBack','Back'],['$cOpt','Options'],['$cSave','Save'],['$cLoad','Load'],['$cQuit','Escape']]
    $aLanguages[2] = $aTmp
    ; ==

    [/autoit] [autoit][/autoit] [autoit]

    ; == Deklaration Ctrl-Variablen
    Global $cLang, $cCombo, $cOpen, $cNext, $cBack, $cOpt, $cSave, $cLoad, $cQuit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUICreate('TEST')
    $cLang = GUICtrlCreateLabel('Sprache wählen', 10, 13, 80, 17)
    $cCombo = GUICtrlCreateCombo('', 95, 10, 80, 20)
    GUICtrlSetData(-1, $sCombo, $sDefault)
    $cOpen= GuiCtrlCreateButton('Öffnen', 10, 40, 80, 20)
    $cNext= GuiCtrlCreateButton('Weiter', 100, 40, 80, 20)
    $cBack= GuiCtrlCreateButton('Zurück', 190, 40, 80, 20)
    $cOpt = GuiCtrlCreateButton('Optionen', 280, 40, 80, 20)
    $cSave= GuiCtrlCreateButton('Speichern', 10, 70, 80, 20)
    $cLoad= GuiCtrlCreateButton('Laden', 100, 70, 80, 20)
    $cQuit= GuiCtrlCreateButton('Abbrechen', 190, 70, 80, 20)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $cCombo
    _setLanguage(GUICtrlRead($cCombo))
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _setLanguage($_sLang='german')
    Local $iLang = -1
    For $i = 1 To $aLanguageNames[0]
    If $aLanguageNames[$i] = $_sLang Then
    $iLang = $i
    ExitLoop
    EndIf
    Next
    If $iLang = -1 Then $iLang = 1
    Local $aLang = $aLanguages[$iLang]
    For $i = 1 To $aLang[0][0]
    GUICtrlSetData(Execute($aLang[$i][0]), $aLang[$i][1])
    Next
    EndFunc

    [/autoit]
  • Blume: Thx, dein bsp half mir sehr zu verstehen auf welchem wege was wie Funktioniert :D

    BugFix : Dein Script beeindruckt mich zutiefst, wie zu erwarten vom Array König (Der AutoIt Platform) :D

    Ich werde glaube ich BugFix's Bsp. "nehmen" es studieren und aus dem gelernten versuchen eine eigene version zu "erschaffen" :D

  • So,nach 2 Tagen Faullenzen und immerweider dran rumwerkeln, bleib ich auf der Stelle sitzen ._.

    Ich habe nun soweit schon 7 .lang files, welche ich alle auslesen und soweit verwenden kann.
    Sprich, die variablen zuweisung aus den .lang und so...is nich viel...sind aba schon 300 zeilen o_O
    However, ich bleib beim zuweisen der "Button/Label Names" stecken ._.
    Sprich, ich bekomm es nicht hin, wen ich eine andere Sprache wähle das die "geupdated" wird.
    Hier einmal mein bisheriges Werk

    Lang&quot;UDF&quot;
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.1
    Author: Pascal Vollenweider (Skilkor)

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:

    [/autoit] [autoit][/autoit] [autoit]

    $sPath = (@ScriptDir & '\Language\')

    [/autoit] [autoit][/autoit] [autoit]

    $cLang_Name[0] = Dutch.lang
    $cLang_Name[1] = English.lang
    $cLang_Name[2] = French.lang
    $cLang_Name[3] = German.lang
    $cLang_Name[4] = Italian.lang
    $cLang_Name[5] = Portuguese.lang
    $cLang_Name[6] = Spanish.lang
    $cLang_Name[7] = Swedish.lang

    [/autoit] [autoit][/autoit] [autoit]

    $Lang_File_List[0] = Numbers / Anzahl
    $Lang_File_List[1] = Dutch.lang
    $Lang_File_List[2] = English.lang
    $Lang_File_List[3] = French.lang
    $Lang_File_List[4] = German.lang
    $Lang_File_List[5] = Italian.lang
    $Lang_File_List[6] = Portuguese.lang
    $Lang_File_List[7] = Spanish.lang

    [/autoit] [autoit][/autoit] [autoit]

    $lRead[1][0] = $cLang
    $lRead[2][0] = $cNew
    $lRead[3][0] = $cNext
    $lRead[4][0] = $cBack
    $lRead[5][0] = $cOpen
    $lRead[6][0] = $cSave
    $lRead[7][0] = $cSaveAs
    $lRead[8][0] = $cClose
    $lRead[9][0] = $cOpt

    [/autoit] [autoit][/autoit] [autoit]

    $lRead[1][1] = Sprache / Lang
    $lRead[2][1] = Neu / New
    $lRead[3][1] = Weiter / Next
    $lRead[4][1] = Zurück / Back
    $lRead[5][1] = Öfnen / Öffnen
    $lRead[6][1] = Speichern / Save
    $lRead[7][1] = Speichern unter / SaveAs
    $lread[8][1] = Schliessen / Close
    $lRead[9][1] = Optionen / Option

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    #region ### include ###
    #include <Array.au3>
    #include <File.au3>
    #endregion ### include ###
    ;==========
    #region ### Global ###
    #region ### Global Variables ###
    Global $sPath = (@ScriptDir & '\Language\')
    Global $sFilter = ('*.lang')
    Global $gDefault = ('Fehler')
    Global $sCombo = ''

    [/autoit] [autoit][/autoit] [autoit]

    Global $lRead, $lTemp, $gCombo, $varLang, $cLang, $cNew, $cNext, $cBack, $cOpen, $cSave, $cSaveAs, $cClose, $cOpt
    #endregion ### Global Variables ###
    ;==========
    #region ### Global Array ###
    Global $cLang_Name[8] = ['Dutch.lang', 'English.lang', 'French.lang', 'German.lang', 'Italian.lang', 'Portuguese.lang', 'Spanish.lang', 'Swedish.lang']
    Global $Lang_Names = 'Dutch|English|French|German|Italian|Portuguese|Spanish|Swedish'
    Global $lInfo_Key[2] = ['Name', 'Version']
    Global $lLang_Key[9] = ['$cLang', '$cNew', '$cNext', '$cBack', '$cOpen', '$cSave', '$cSaveAs', '$cClose', '$cOpt']

    [/autoit] [autoit][/autoit] [autoit]

    Global $lInfo_ValueDut[2] = [$cLang_Name[0], '1.0']
    Global $lInfo_ValueEng[2] = [$cLang_Name[1], '1.0']
    Global $lInfo_ValueFre[2] = [$cLang_Name[2], '1.0']
    Global $lInfo_ValueGer[2] = [$cLang_Name[3], '1.0']
    Global $lInfo_ValueIta[2] = [$cLang_Name[4], '1.0']
    Global $lInfo_ValuePor[2] = [$cLang_Name[5], '1.0']
    Global $lInfo_ValueSpa[2] = [$cLang_Name[6], '1.0']
    Global $lInfo_ValueSwe[2] = [$cLang_Name[7], '1.0']
    Global $lInfo_cValue[8] = [$lInfo_ValueDut, $lInfo_ValueEng, $lInfo_ValueFre, $lInfo_ValueGer, $lInfo_ValueIta, $lInfo_ValuePor, $lInfo_ValueSpa, $lInfo_ValueSwe]

    [/autoit] [autoit][/autoit] [autoit]

    Global $ValueDut[9] = ['sprog', 'nyt', 'mere', 'Tilbage', 'åbent', 'Gem', 'Gem til', 'Luk', 'Indstillinger']
    Global $ValueEng[9] = ['Laguage', 'New', 'Next', 'Back', 'Open', 'Save', 'SaveAs', 'Close', 'Option']
    Global $ValueFre[9] = ['languenouveau', 'plus', 'arrière', 'ouvert', 'sauver', 'Enregistrer', 'fermer', 'Options de']
    Global $ValueGer[9] = ['Sprache', 'Neu', 'Weiter', 'Zurück', 'Öffnen', 'Speichern', 'Speichern unter', 'Schliessen', 'Optionen']
    Global $ValueIta[9] = ['lingua', 'nuovo', 'di più', 'indietro', 'aperto', 'salvare', 'Salva', 'chiudere', 'Opzioni']
    Global $ValuePor[9] = ['linguagem', 'novo', 'mais', 'de volta', 'abrir', 'salvar', 'Guardar para', 'fechar', 'opções']
    Global $ValueSpa[9] = ['Idioma', 'Nuevo', 'Próximo', 'Espalda', 'Abierto', 'Ahorrar', 'Ahorrar nuevo', 'Cerrar', 'Opción']
    Global $ValueSwe[9] = ['språk', 'nytt', 'mer', 'Tillbaka', 'öppet', 'Spara', 'Spara till', 'Stäng', 'alternativ']
    Global $lValue[8] = [$ValueDut, $ValueEng, $ValueFre, $ValueGer, $ValueIta, $ValuePor, $ValueSpa, $ValueSwe]

    [/autoit] [autoit][/autoit] [autoit]

    ;~ Global $aTemp[1] = ['']
    #endregion ### Global Array ###
    #endregion ### Global ###
    ;==========
    #region ### Suche nach .lang Dateien ###
    $Lang_File_List = _FileListToArray($sPath, $sFilter, 1)
    ;~ Local $aTemp[$Lang_File_List[0] + 1]
    ;~ For $i = 1 To $Lang_File_List[0]
    ;~ $aTemp[$i] = $sPath & $Lang_File_List[$i]
    ;~ Next
    ;~ $cLF_List = $aTemp
    #endregion ### Suche nach .lang Dateien ###
    ;==========
    #region ### @OSLang ###
    $OSLang = _Language()
    Func _Language()
    Select
    Case StringInStr("0413 0813", @OSLang)
    Return "Dutch"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("0409 0809 0c09 1009 1409 1809 1c09 2009 2409 2809 2c09 3009 3409", @OSLang)
    Return "English"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("040c 080c 0c0c 100c 140c 180c", @OSLang)
    Return "French"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("0407 0807 0c07 1007 1407", @OSLang)
    Return "German"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("0410 0810", @OSLang)
    Return "Italian"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("0414 0814", @OSLang)
    Return "Norwegian"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("0415", @OSLang)
    Return "Polish"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("0416 0816", @OSLang)
    Return "Portuguese"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("040a 080a 0c0a 100a 140a 180a 1c0a 200a 240a 280a 2c0a 300a 340a 380a 3c0a 400a 440a 480a 4c0a 500a", @OSLang)
    Return "Spanish"

    [/autoit] [autoit][/autoit] [autoit]

    Case StringInStr("041d 081d", @OSLang)
    Return "Swedish"

    [/autoit] [autoit][/autoit] [autoit]

    Case Else
    Return "Other (can't determine with @OSLang directly)"

    [/autoit] [autoit][/autoit] [autoit]

    EndSelect
    EndFunc ;==>_Language
    #endregion ### @OSLang ###
    ;==========
    #region ### Language Set ###
    Func _SysLangRead()
    If $OSLang = 'Dutch' Then
    If $Lang_File_List[1] = $cLang_Name[0] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[0], 'Language')
    Next
    EndIf
    EndIf
    If $OSLang = 'English' Then
    If $Lang_File_List[2] = $cLang_Name[1] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[1], 'Language')
    Next
    EndIf
    EndIf
    If $OSLang = 'French' Then
    If $Lang_File_List[3] = $cLang_Name[2] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[2], 'Language')
    Next
    EndIf
    EndIf
    If $OSLang = 'German' Then
    If $Lang_File_List[4] = $cLang_Name[3] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[3], 'Language')
    Next
    EndIf
    EndIf
    If $OSLang = 'Italian' Then
    If $Lang_File_List[5] = $cLang_Name[4] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[4], 'Language')
    Next
    EndIf
    EndIf
    If $OSLang = 'Portuguese' Then
    If $Lang_File_List[6] = $cLang_Name[5] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[5], 'Language')
    Next
    EndIf
    EndIf
    If $OSLang = 'Spanish' Then
    If $Lang_File_List[7] = $cLang_Name[6] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[6], 'Language')
    Next
    EndIf
    EndIf
    If $OSLang = "Other (can't determine with @OSLang directly)" Then
    MsgBox(0, $gDefault, 'Language not Found. Set English as Standard', 5)
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[1], 'Language')
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $lRead[1][0] = $cLang
    $lRead[2][0] = $cNew
    $lRead[3][0] = $cNext
    $lRead[4][0] = $cBack
    $lRead[5][0] = $cOpen
    $lRead[6][0] = $cSave
    $lRead[7][0] = $cSaveAs
    $lRead[8][0] = $cClose
    $lRead[9][0] = $cOpt
    EndFunc ;==>_SysLangRead
    #endregion ### Language Set ###
    _SysLangRead()

    [/autoit] [autoit][/autoit] [autoit]

    Func _LanguageSet($_sLang = $OSLang)
    ;~ MsgBox(0,'',GUICtrlRead($gCombo))
    Local $Combo_Read = GUICtrlRead($gCombo)
    If $Combo_Read = 'Dutch' Then
    For $i = 0 To UBound($lLang_Key) -1
    GUICtrlSetData($lRead[$i][1],$ValueDut)
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;~ GUICtrlSetData(
    EndFunc ;==>_LanguageSet
    ;~ _ArrayDisplay($Lang_File_List)
    ;~ _ArrayDisplay($lRead)
    ;~ _ArrayDisplay($cLang_Name)
    ;~ _ArrayDisplay($cLF_List)
    ;~ MsgBox(0,'',$OSLang)

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    Test
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.8.1
    Author: myName

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------
    #include 'LangUDF.au3'

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate('Test',370,100,-1,-1)
    #region ### Möglichkeit 1 ###
    ;~ $lRead[1][0] = GUICtrlCreateLabel('Sprache', 10, 13, 80, 17)
    ;~ $lRead[2][0] = GuiCtrlCreateButton('Neu', 100, 70, 80, 20)
    ;~ $lRead[3][0] = GuiCtrlCreateButton('Weiter', 100, 40, 80, 20)
    ;~ $lRead[4][0] = GuiCtrlCreateButton('Zurück', 190, 40, 80, 20)
    ;~ $lRead[5][0] = GuiCtrlCreateButton('Öffnen', 10, 40, 80, 20)
    ;~ $lRead[6][0] = GuiCtrlCreateButton('Speichern', 10, 70, 80, 20)
    ;~ $lRead[7][0] = GuiCtrlCreateButton('Speichern unter, 280, 70, 80, 20)
    ;~ $lRead[8][0] = GuiCtrlCreateButton('Schliessen', 190, 70, 80, 20)
    ;~ $lRead[9][0] = GuiCtrlCreateButton('Optionen', 280, 40, 80, 20)
    #endregion ### Möglichkeit 1 ###
    #region ### Möglichkeit 2 ###
    ;~ $lRead[1][0] = GUICtrlCreateLabel($lRead[1][1], 10, 13, 80, 17)
    ;~ $lRead[2][0] = GuiCtrlCreateButton($lRead[2][1], 100, 70, 80, 20)
    ;~ $lRead[3][0] = GuiCtrlCreateButton($lRead[3][1], 100, 40, 80, 20)
    ;~ $lRead[4][0] = GuiCtrlCreateButton($lRead[4][1], 190, 40, 80, 20)
    ;~ $lRead[5][0] = GuiCtrlCreateButton($lRead[5][1], 10, 40, 80, 20)
    ;~ $lRead[6][0] = GuiCtrlCreateButton($lRead[6][1], 10, 70, 80, 20)
    ;~ $lRead[7][0] = GuiCtrlCreateButton($lRead[7][1], 280, 70, 80, 20)
    ;~ $lRead[8][0] = GuiCtrlCreateButton($lRead[8][1], 190, 70, 80, 20)
    ;~ $lRead[9][0] = GuiCtrlCreateButton($lRead[9][1], 280, 40, 80, 20)
    #endregion ### Möglichkeit 2 ###
    #region ### Möglichkeit 3 ###
    $cLang = GUICtrlCreateLabel($lRead[1][1], 10, 13, 80, 17)
    $cNew = GuiCtrlCreateButton($lRead[2][1], 100, 70, 80, 20)
    $cNext = GuiCtrlCreateButton($lRead[3][1], 100, 40, 80, 20)
    $cBack = GuiCtrlCreateButton($lRead[4][1], 190, 40, 80, 20)
    $cOpen = GuiCtrlCreateButton($lRead[5][1], 10, 40, 80, 20)
    $cSave = GuiCtrlCreateButton($lRead[6][1], 10, 70, 80, 20)
    $cSaveAs = GuiCtrlCreateButton($lRead[7][1], 280, 70, 80, 20)
    $cClose = GuiCtrlCreateButton($lRead[8][1], 190, 70, 80, 20)
    $cOpt = GuiCtrlCreateButton($lRead[9][1], 280, 40, 80, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $gCombo = GUICtrlCreateCombo('', 95, 10, 80, 20)
    GUICtrlSetData($gCombo,$Lang_Names,$OSLang)
    #endregion ### Möglichkeit 3 ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~ MsgBox(0,'',$lTemp)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $gCombo
    _LanguageSet(GUICtrlRead($gCombo))
    Case $cNew
    ;~ _ArrayDisplay($lRead)
    EndSwitch
    WEnd

    [/autoit]


    Auserdem, weiss ich nicht wie ich die "#region ### Language Set ###" Verkleinern kann, sprich, es sind 7 o. 8 If abfragen, welche ihrwie total Stupid sind X(
    Nun, ich wusst es nicht besser hand zu haben :(

    Hoffe mir kann jmd Helfen

    Greez

    *Edit
    Ich hab die .lang files vergessen
    *hinzugefügt*

  • Das Problem ist, du Übergibst nicht die Buttons ID's!

    Spoiler anzeigen
    [autoit]

    Func _LanguageSet($_sLang = $OSLang)
    ;~ MsgBox(0,'',GUICtrlRead($gCombo))
    Local $Combo_Read = GUICtrlRead($gCombo)
    If $Combo_Read = 'Dutch' Then
    For $i = 0 To UBound($lLang_Key) -1
    GUICtrlSetData($lRead[$i][1],$ValueDut)
    MsgBox(0, '', $lRead[$i][1]) ;~ (!) Kannst dir ja mal ausgeben lassen :d (!)
    Next
    EndIf

    [/autoit]

    Diese beinhalten nur die Namen die (wahrscheinlich) zugewiesen werden sollen...
    Du benötigst aber die ID's! Die ID's hast du hier gespeichert:

    Spoiler anzeigen
    [autoit]

    $cLang = GUICtrlCreateLabel($lRead[1][1], 10, 13, 80, 17)
    $cNew = GuiCtrlCreateButton($lRead[2][1], 100, 70, 80, 20)
    $cNext = GuiCtrlCreateButton($lRead[3][1], 100, 40, 80, 20)
    $cBack = GuiCtrlCreateButton($lRead[4][1], 190, 40, 80, 20)
    $cOpen = GuiCtrlCreateButton($lRead[5][1], 10, 40, 80, 20)
    $cSave = GuiCtrlCreateButton($lRead[6][1], 10, 70, 80, 20)
    $cSaveAs = GuiCtrlCreateButton($lRead[7][1], 280, 70, 80, 20)
    $cClose = GuiCtrlCreateButton($lRead[8][1], 190, 70, 80, 20)
    $cOpt = GuiCtrlCreateButton($lRead[9][1], 280, 40, 80, 20)

    [/autoit]

    Da liegt dein Denkfehler :D


    Zu der #region ### Language Set ### >> Hier das wäre auch eine Möglichkeit:

    Spoiler anzeigen
    [autoit]

    Func _SysLangRead()
    Local $iLang

    [/autoit] [autoit][/autoit] [autoit]

    Switch $OSLang
    Case 'Dutch'
    $iLang = 1
    Case 'English'
    $iLang = 2
    Case 'French'
    $iLang = 3
    Case 'German'
    $iLang = 4
    Case 'Italian'
    $iLang = 5
    Case 'Portuguese'
    $iLang = 6
    Case 'Spanish'
    $iLang = 7
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    If Not $iLang Then
    MsgBox(0, $gDefault, 'Language not Found. Set English as Standard', 5)
    $iLang = 2
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Lang_File_List[$iLang] = $cLang_Name[$iLang - 1] Then
    For $i = 0 To UBound($lLang_Key) - 1
    $lRead = IniReadSection($sPath & $cLang_Name[$iLang - 1], 'Language')
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $lRead[1][0] = $cLang
    $lRead[2][0] = $cNew
    $lRead[3][0] = $cNext
    $lRead[4][0] = $cBack
    $lRead[5][0] = $cOpen
    $lRead[6][0] = $cSave
    $lRead[7][0] = $cSaveAs
    $lRead[8][0] = $cClose
    $lRead[9][0] = $cOpt
    EndFunc ;==>_SysLangRead

    [/autoit]

    Dies ersetzt die ganzen If-Abfragen und ist etwa (gefühlte) 20 Zeilen kürzer. Aber das ist nur nebensächlich und tut nicht viel zu Sache ^^ Nur weil du drum gefragt hast :P
    Ich hoffe ich konnte dir weiterhelfen ^^

  • @Make-Grafik
    Danke fuür deinen tip bezüglich der zuweisung.
    Die ID nicht zuweissen -.- sowas kann nur mir passieren. :S

    was die verküzung angeht, sieht gut aus, ich wär nie draufgekommen.
    ich kann grad nichts austesten,bin auf arbeit und mit handy on :b