Scite Funktionsbeschreibung (au3.api) übersetzen

  • Hi,
    wie mir aufgefallen ist, erscheint wenn ich eine Funktion in Scite eingebe deren Beschreibung leider nur auf englisch.
    Dies kann man ändern.
    Die Beschreibungen stehen in der "au3.api" im Ordner "C:\Programme\AutoIt3\SciTE\api"
    Originaldatei siehe Anhang (leider zu groß zum einbinden)


    Da wird ja zumindest die meisten Funktion übersetzt haben, ist dies eine gute Grundlage dafür auch dies automatisch übersetzen zu lassen.

    Jedoch brauchen wir dazu ein Script.
    Dies habe ich mal geschrieben.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    #include <Math.au3>
    #include <String.au3>

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

    ;Dieses Script dient zum automatischen erstellen der deutschen au3.api Datei für Scite (C:\Programme\AutoIt3\SciTE\api)
    ;Als Quelle dienen die txt-Dateien mit den Funktionen.
    ;Vor dem starten muß die Varible $pfad_gross auf den eigenen Pfad angepasst werden

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

    ;Ersteller: Tweaky
    ;Datum: 17.03.2009
    ;Version: 3.6

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

    ;getestet mit
    ;Scite: vom 20.12.2008
    ;AutoIt: 3.3.0.0
    ;deutsche Hilfe: 3.3.0.0

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

    Dim $einlesen_array, $datei_au3_api_array, $array_welches
    Dim $pruef_array_ori, $pruef_array_uebersetzt
    Dim $nur_Funktion
    Dim $eintragen
    Dim $array_alles_da_api

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

    Opt("GUICloseOnESC", 1) ;1=ESC beendet, 0=ESC schließt nicht

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

    ; -------------------------------------------- Pfade Tweaky --------------------------------------------
    ;Pfade zu den Funktionen (Core und UDF)
    ;~ $pfad_gross = "D:\_AutoIt Hilfe\autoit-docs-v3.2.10.0-src\docs\autoit\english\txt2htm\"
    ;~ $pfad1 = $pfad_gross & "txtFunctions\"
    ;~ $pfad2 = $pfad_gross & "txtlibFunctions\"

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

    ;~ ;Pfade zu der originalen und neuen au3.api Datei
    ;~ $pfad_datei_au3_api = "C:\Programme\AutoIt3\SciTE\api\au3.api"
    ;~ $zieldatei = @ScriptDir & "\" & "übersetzt.au3.api"
    ; -------------------------------------------------------------------------------------------------------

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

    ; -------------------------------------------- Pfade peethebee-------------------------------------------
    ;Pfade zu den Funktionen (Core und UDF)
    $pfad_gross = @ScriptDir & "\txt2htm\"
    $pfad1 = $pfad_gross & "txtFunctions\"
    $pfad2 = $pfad_gross & "txtlibFunctions\"

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

    ;Pfade zu der originalen und neuen au3.api Datei
    $pfad_datei_au3_api = @ScriptDir & "\base_au3.api"
    $zieldatei = @ScriptDir & "\au3.api"
    ; -------------------------------------------------------------------------------------------------------

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

    SplashTextOn("Bitte warten", "Die deutsche au3.api wird erstellt", 300, 50, -1, 200)

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

    ;originale au3.api Datei einlesen und kürzen (für die Sachen ohne Beschreibung)
    _au3_api()

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

    ;Funktionen aus den beiden Ordnern in ein Array schreiben und sortieren
    $dateien_array1 = _FileListToArray($pfad1, "*.txt", 1)
    $dateien_array2 = _FileListToArray($pfad2, "*.txt", 1)
    _ArraySort($dateien_array1, 0, 1)
    _ArraySort($dateien_array2, 0, 1)

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

    ;Funktion und Beschreibung aus den txts auslesen und in ein Array schreiben
    _einlesen($pfad1, $dateien_array1)
    $core_array = $array_welches
    _einlesen($pfad2, $dateien_array2)
    $udf_array = $array_welches

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

    ;neue au3.api Datei löschen und erstellen
    FileDelete($zieldatei)
    $file = FileOpen($zieldatei, 1)
    If $file = -1 Then
    MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf

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

    ;erstelltes Array in die au3.api Datei schreiben
    _FileWriteFromArray($file, $datei_au3_api_array, 1, 0)
    _FileWriteFromArray($file, $core_array, 1, 0)
    _FileWriteFromArray($file, $udf_array, 1, 0)
    FileClose($file)

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

    ;die originale und neue au3-api Datei wieder in ein Array schreiben (damit die fehlenden Funktionen zur neuen Version auch enthalten sind)
    _FileReadToArray($pfad_datei_au3_api, $pruef_array_ori)
    _FileReadToArray($zieldatei, $pruef_array_uebersetzt)

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

    ;die fehlenden Funktionen zur neuen Version dazuschreiben (aus der originalen au3.api)
    _ueberpruefen()

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

    ;korrigiert den Syntax (den der deutschen Hilfe verwenden)
    _syntax_korrigieren()

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

    ;Kontrolle ob alle Funktionen auch in der au3.api enthalten sind)
    _FileReadToArray($zieldatei, $array_alles_da_api)
    _kontrolle($dateien_array1)
    _kontrolle($dateien_array2)

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

    SplashOff()

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

    ;********************************************************************************************
    ; originale au3.api Datei einlesen und kürzen (für die Sachen ohne Beschreibung) *
    ;********************************************************************************************

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

    Func _au3_api()
    _FileReadToArray($pfad_datei_au3_api, $datei_au3_api_array)
    For $i = 1 To UBound($datei_au3_api_array) - 1
    If StringInStr($datei_au3_api_array[$i], "(") Then
    ReDim $datei_au3_api_array[$i]
    ExitLoop
    EndIf
    Next
    EndFunc ;==>_au3_api

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

    ;****************************************************************************************
    ; Funktion und Beschreibung aus den txts auslesen und in ein Array schreiben *
    ;****************************************************************************************

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

    Func _einlesen($pfad, $dateien_array)
    Dim $array_welches[10000]
    Dim $array_opt[1]
    Dim $beschreibung
    $opt_start = 0
    $tcp_start_start = 0
    $tcp_stopp_start = 0
    $t = 0
    For $i = 1 To UBound($dateien_array) - 1
    $ab_hier = 0
    If Not StringInStr($dateien_array[$i], '$tag') And Not StringInStr($dateien_array[$i], 'ChangeLog') Then
    $datei_komplett = $pfad & $dateien_array[$i]
    _FileReadToArray($datei_komplett, $einlesen_array)
    $include = ""

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

    If $dateien_array[$i] = "ObjName.txt" Then $opt_start = $i + 1 ;Sonderfunktion Opt >>> ObjName.txt verwendet, da Opt nach dieser steht, evtl. anpassen, falls eine andere Funktion dazwischen kommt
    If $dateien_array[$i] = "UDPSend.txt" Then $tcp_stopp_start = $i + 1 ;Sonderfunktion UDPShutdown und UDPStartup >>> UDPSend.txt verwendet, da TCPShutdown nach dieser steht, evtl. anpassen, falls eine andere Funktion dazwischen kommt

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

    For $z = 1 To UBound($einlesen_array) - 1

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

    If StringInStr($einlesen_array[$z], '###Syntax###') Then ;Grundinfos für alle Funktionen (Funktion, Parameter, includes)
    For $z = $z + 1 To UBound($einlesen_array) - 1
    If StringInStr($einlesen_array[$z], '#Include') Then ;zu includende Datei ermitteln
    $include = $einlesen_array[$z]
    ElseIf Not StringInStr($einlesen_array[$z], '#Include') Then ;Funktionsname
    $funktion = $einlesen_array[$z]
    _zeichen_ersetzen($funktion)
    $funktion_tmp = $funktion ;für Sonderfunktionen

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

    If $dateien_array[$i] = "ObjEvent.txt" Then ;Sonderfunktion ObjEvent (2 Funktionen in einer txt-Datei)
    $ergebnis = $funktion & " " & $beschreibung
    $t += 1
    $array_welches[$t] = $ergebnis
    $funktion = $einlesen_array[$z + 1]
    _zeichen_ersetzen($funktion)
    $ergebnis = $funktion & " " & $beschreibung
    $t += 1
    $array_welches[$t] = $ergebnis
    EndIf

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

    If $dateien_array[$i] = "TCPShutdown.txt" Then ;Sonderfunktion UDPShutdown (TCPShutdown und UDPShutdown stehen beide in einer txt-Datei)
    $funktion_udp = $einlesen_array[$z + 1]
    _zeichen_ersetzen($funktion_udp)
    $ergebnis_tcp_stopp = $funktion_udp & " " & $beschreibung
    EndIf

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

    If $dateien_array[$i] = "TCPStartup.txt" Then ;Sonderfunktion UDPStartup (TCPStartup und UDPStartup stehen beide in einer txt-Datei)
    $funktion_udp = $einlesen_array[$z + 1]
    _zeichen_ersetzen($funktion_udp)
    $ergebnis_tcp_start = $funktion_udp & " " & $beschreibung
    EndIf

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

    ExitLoop
    EndIf
    Next
    ElseIf StringInStr($einlesen_array[$z], '###Description###') Then ;Grundinfos für alle Funktionen (Beschreibung)
    $beschreibung = $einlesen_array[$z + 1]
    _zeichen_ersetzen($beschreibung)
    EndIf

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

    If $dateien_array[$i] = "AutoItSetOption.txt" Then ;Sonderfunktion AutoItSetOption
    If StringInStr($einlesen_array[$z], '<a name="') Then
    $teilfunktion_werte = ""

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

    ;Beschreibung für Funktion ermitteln
    $teilfunktion_zwischen = _StringBetween($einlesen_array[$z], '<a name="', '"></a>')
    $teilfunktion = $teilfunktion_zwischen[0]
    _zeichen_ersetzen($teilfunktion)
    $teilfunktion_split = StringSplit($einlesen_array[$z], '></a>', 1)
    $teilfunktion_beschr = $teilfunktion_split[2]
    _zeichen_ersetzen($teilfunktion_beschr)

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

    ;Werte für Funktion ermitteln
    For $z = $z + 1 To UBound($einlesen_array) - 1
    If StringLeft($einlesen_array[$z], 1) = " " Then
    $teilfunktion_werte = $teilfunktion_werte & $einlesen_array[$z]
    $teilfunktion_werte = StringReplace($teilfunktion_werte, " ", "") ;Tab entfernen
    Else
    ExitLoop
    EndIf
    Next

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

    ;in Array schreiben
    $funktion = StringReplace($funktion_tmp, '"option"', '"' & $teilfunktion & '"')
    $beschreibung = $teilfunktion_beschr & $teilfunktion_werte
    $ergebnis = $funktion & " " & $beschreibung
    $t += 1
    $array_welches[$t] = $ergebnis

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

    _ArrayAdd($array_opt, $ergebnis)
    ;~ _ArrayDisplay($array_opt)
    EndIf
    EndIf

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

    If $dateien_array[$i] = "Controlcommand.txt" Or $dateien_array[$i] = "Controllistview.txt" Or $dateien_array[$i] = "Controltreeview.txt" Or $dateien_array[$i] = "_IEAction.txt" Then ;Sonderfunktionen Controlcommand, Controllistview, Controltreeview
    If (StringInStr($einlesen_array[$z], '@@ControlCommandTable@@') Or $ab_hier = 1 Or StringInStr($einlesen_array[$z], "@@ParamTable@@")) And Not StringInStr($einlesen_array[$z], '<b>') Then
    $ab_hier = 1
    $teilfunktion_werte = ""

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

    If StringLeft($einlesen_array[$z], 1) = '"' Then
    ;Beschreibung für Funktion ermitteln
    $teilfunktion = $einlesen_array[$z]
    _zeichen_ersetzen($teilfunktion)
    $teilfunktion_beschr = StringReplace($einlesen_array[$z + 1], " ", "") ;zusätzlich Tab entfernen
    _zeichen_ersetzen($teilfunktion_beschr)

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

    ;in Array schreiben
    If $dateien_array[$i] = "Controlcommand.txt" Then ;Controlcommand
    $funktion = StringReplace($funktion_tmp, '"command" [, "option"]', $teilfunktion)
    ElseIf $dateien_array[$i] = "_IEAction.txt" Then ;_IEAction
    $funktion = StringReplace($funktion_tmp, '$s_action', $teilfunktion)
    Else ;Controllistview, Controltreeview
    $funktion = StringReplace($funktion_tmp, '"command" [, option1 [, option2]]', $teilfunktion)
    EndIf
    $beschreibung = $teilfunktion_beschr
    $ergebnis = $funktion & " " & $beschreibung
    $t += 1
    $array_welches[$t] = $ergebnis

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

    EndIf
    EndIf
    EndIf

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

    If $opt_start = $i Then ;Sonderfunktion Opt
    For $u = 1 To UBound($array_opt) - 1
    $t += 1
    $funktion_opt = StringReplace($array_opt[$u], "AutoItSetOption", "Opt")
    $array_welches[$t] = $funktion_opt
    Next
    $opt_start = 0
    EndIf

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

    If $tcp_stopp_start = $i Then ;Sonderfunktion für UDPShutdown und UDPStartup
    $t += 1
    $array_welches[$t] = $ergebnis_tcp_stopp
    $tcp_start_start = 0
    $t += 1
    $array_welches[$t] = $ergebnis_tcp_start
    $tcp_stopp_start = 0
    EndIf

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

    Next

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

    If $include = "" Then
    $ergebnis = $funktion & " " & $beschreibung
    Else
    $ergebnis = $funktion & " " & $beschreibung & " (benötigt: " & $include & ")"
    EndIf

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

    ;nur eintragen wenn es keine Sonderfunktion ist (bei Sonderfunktionen erfolgt dies weiter oben)
    If $dateien_array[$i] <> "AutoItSetOption.txt" And $dateien_array[$i] <> "Controlcommand.txt" And $dateien_array[$i] <> "Controllistview.txt" And $dateien_array[$i] <> "ControlTreeview.txt" _
    And $dateien_array[$i] <> "ObjEvent.txt" And $dateien_array[$i] <> "_IEAction.txt" Then
    $t += 1
    $array_welches[$t] = $ergebnis
    EndIf
    EndIf
    Next
    ReDim $array_welches[$t + 1]
    EndFunc ;==>_einlesen

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

    ;************************************************************
    ; bestimmte Zeichen in der Beschreibung ersetzen *
    ;************************************************************

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

    Func _zeichen_ersetzen(ByRef $beschreibung_tmp)
    If StringInStr($beschreibung_tmp, '<a', 1) Then
    $beschreibung_tmp_zwischen = _StringBetween($beschreibung_tmp, '<a', '>')
    $beschreibung_tmp2 = $beschreibung_tmp_zwischen[0]
    $beschreibung_tmp = StringReplace($beschreibung_tmp, $beschreibung_tmp2, "")
    EndIf
    $beschreibung_tmp = StringRegExpReplace($beschreibung_tmp, '(</a>)|(<i>)|(</i>)|(<b>)|(</b>)|(<a>)', "") ; alles was in den Klammern steht entfernen
    EndFunc ;==>_zeichen_ersetzen

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

    ;****************************************************************************************************
    ; die fehlenden Funktionen zur neuen Version dazuschreiben (aus der originalen au3.api) *
    ;****************************************************************************************************

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

    Func _ueberpruefen()
    Dim $array_pruefen[10000]
    $max_array_ori = UBound($pruef_array_ori) - 1
    $max_array_uebersetzt = UBound($pruef_array_uebersetzt) - 1
    $max = _Max($max_array_ori, $max_array_uebersetzt)
    $p = 0
    $h = 0

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

    For $i = 1 To $max_array_uebersetzt
    $p += 1
    Dim $array_sortieren[3]
    _nur_name($pruef_array_ori, $p)
    $string_ori = $nur_Funktion
    $array_sortieren[1] = $nur_Funktion
    _nur_name($pruef_array_uebersetzt, $i)
    $array_sortieren[2] = $nur_Funktion

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

    If $array_sortieren[1] <> $array_sortieren[2] Then ; original <> übersetzt
    _ArraySort($array_sortieren, 0)
    ;~ ConsoleWrite($array_sortieren[1] & @CRLF)
    If $array_sortieren[1] = $string_ori And $array_sortieren[1] <> "ControlTreeView Command" And $array_sortieren[1] <> "_IEAction $s_action" Then ;neue Funktion >>> hinzu ;zusätzlich eine Funktion die im original 1-mal und im deutschen x-mal auftaucht ausschließen
    $eintragen = $pruef_array_ori[$p]
    $i -= 1
    Else ;ungültige Funktion >>> löschen
    ;Ausnahme ControlTreeView bleibt enthalten, da dies in der originale au3.api Datei nur 1x vorhanden ist, in der deutschen au3.api ist diese mehrmals vorhanden
    If StringInStr($array_sortieren[1], "ControlTreeView") Or StringInStr($array_sortieren[1], "_IEAction") Then
    $eintragen = $pruef_array_uebersetzt[$i]
    Else ;löschen
    $eintragen = ""
    EndIf
    $p -= 1
    EndIf
    If $array_sortieren[1] = "ControlTreeView Command" Or $array_sortieren[1] = "_IEAction $s_action" Then $p += 1 ;eine Funktion die im original 1-mal und im deutschen x-mal auftaucht ausschließen

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

    Else
    $eintragen = $pruef_array_uebersetzt[$i]
    EndIf

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

    If $eintragen <> "" Then
    $h += 1
    $array_pruefen[$h] = $eintragen
    EndIf
    Next
    ReDim $array_pruefen[$h + 1]

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

    ;au3.api löschen und neu schreiben
    FileDelete($zieldatei)
    _FileWriteFromArray($zieldatei, $array_pruefen, 1, 0)
    EndFunc ;==>_ueberpruefen

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

    ;****************************************************************************
    ; nur die Funktion aus der "Funktion mit Beschreibung" rausholen *
    ;****************************************************************************

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

    Func _nur_name(ByRef $array, $zaehler)
    $leerzeichen_pos = StringInStr($array[$zaehler], "(") - 1
    If $leerzeichen_pos > 0 Then
    $nur_Funktion = StringLeft($array[$zaehler], $leerzeichen_pos)
    Else
    $nur_Funktion = $array[$zaehler]
    EndIf
    $nur_Funktion = StringReplace($nur_Funktion, " ", "")
    ;~ ConsoleWrite($nur_Funktion & @CRLF)

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

    ;da diese Funktion mehrmals auftaucht, muss zusätzlich zum Funktionsname noch Parameter ausgelesen werden
    If $nur_Funktion = "AutoItSetOption" Or $nur_Funktion = "Opt" Then
    $unterfunktion_zwischen = _StringBetween($array[$zaehler], '"', '"')
    $unterfunktion = $unterfunktion_zwischen[0]
    $nur_Funktion = $nur_Funktion & " " & $unterfunktion
    EndIf

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

    ;da diese Funktion mehrmals auftaucht, muss zusätzlich zum Funktionsname noch Parameter ausgelesen werden
    If $nur_Funktion = "ControlCommand" Or $nur_Funktion = "ControlListView" Or $nur_Funktion = "ControlTreeView" Then
    $komma_pos = StringInStr($array[$zaehler], ',', 0, 3)
    $func_rechts = StringTrimLeft($array[$zaehler], $komma_pos - 1)
    $unterfunktion_zwischen = _StringBetween($func_rechts, '"', '"')
    $unterfunktion = $unterfunktion_zwischen[0]
    $nur_Funktion = $nur_Funktion & " " & $unterfunktion
    EndIf

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

    ;da diese Funktion mehrmals auftaucht, muss zusätzlich zum Funktionsname noch Parameter ausgelesen werden
    If $nur_Funktion = "_IEAction" Then
    $komma_pos = StringInStr($array[$zaehler], ',', 0, 1)
    $func_rechts = StringTrimLeft($array[$zaehler], $komma_pos - 1)
    $unterfunktion_zwischen = _StringBetween($func_rechts, ' ', ' ')
    $unterfunktion = $unterfunktion_zwischen[0]
    $unterfunktion = StringReplace($unterfunktion, '"', "")
    $nur_Funktion = $nur_Funktion & " " & $unterfunktion
    EndIf
    EndFunc ;==>_nur_name

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

    ;****************************************************************************
    ; korrigiert den Syntax (den der deutschen Hilfe verwenden) *
    ;****************************************************************************
    ;ACHTUNG sollte in Zukunft eine ältere deutsche Hilfe erstellt werden, obwohl es bereits eine neue AutoIt Version gibt, so sind die Syntaxe nicht aktuell

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

    Func _syntax_korrigieren()
    _FileReadToArray($pfad_datei_au3_api, $pruef_array_ori)
    _FileReadToArray($zieldatei, $pruef_array_uebersetzt)

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

    Dim $pruef_array_ori2[UBound($pruef_array_ori)]
    Dim $pruef_array_uebersetzt2[UBound($pruef_array_uebersetzt)]

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

    ;Ersatz Array original nur Funktionsname
    For $i = 1 To UBound($pruef_array_ori) - 1
    $pos = StringInStr($pruef_array_ori[$i], "(") - 1
    $func_name = StringLeft($pruef_array_ori[$i], $pos)
    $func_name = StringReplace($func_name, " ", "")
    $pruef_array_ori2[$i] = $func_name
    Next

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

    ;Ersatz Array übersetzt nur Funktionsname
    For $i = 1 To UBound($pruef_array_uebersetzt) - 1
    $pos = StringInStr($pruef_array_uebersetzt[$i], "(") - 1
    $func_name = StringLeft($pruef_array_uebersetzt[$i], $pos)
    $func_name = StringReplace($func_name, " ", "")
    $pruef_array_uebersetzt2[$i] = $func_name
    Next

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

    ;~ _ArrayDisplay($pruef_array_uebersetzt)

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

    ;wenn der Syntax unterschiedlich ist, dann den Syntax der englischen neuen Hilfe nehmen
    For $i = 1 To UBound($pruef_array_uebersetzt) - 1
    $func_name_suche = _ArraySearch($pruef_array_ori2, $pruef_array_uebersetzt2[$i])
    If $func_name_suche = -1 Then
    ;~ ConsoleWrite(" NICHT GEFUNDEN " & $pruef_array_ori[$i] & @tab & $pruef_array_uebersetzt2[$i] & @CRLF)
    Else
    $parameter_uebersetzt_zwischen = _StringBetween($pruef_array_uebersetzt[$i], "(", ")")
    If IsArray($parameter_uebersetzt_zwischen) Then
    If $parameter_uebersetzt_zwischen[0] <> "" Then
    $parameter_uebersetzt1 = $parameter_uebersetzt_zwischen[0]
    $parameter_ori_zwischen = _StringBetween($pruef_array_ori[$func_name_suche], "(", ")")
    $parameter_ori1 = $parameter_ori_zwischen[0]
    If $pruef_array_uebersetzt2[$i] <> "AutoItSetOption" And $pruef_array_uebersetzt2[$i] <> "Opt" And $pruef_array_uebersetzt2[$i] <> "Controlcommand" And $pruef_array_uebersetzt2[$i] <> "Controllistview" _
    And $pruef_array_uebersetzt2[$i] <> "ControlTreeview" And $pruef_array_uebersetzt2[$i] <> "ObjEvent" And $pruef_array_uebersetzt2[$i] <> "UDPStartup" And $pruef_array_uebersetzt2[$i] <> "UDPShutdown" _
    And $pruef_array_uebersetzt2[$i] <> "_IEAction" Then
    $pruef_array_uebersetzt[$i] = StringReplace($pruef_array_uebersetzt[$i], "(" & $parameter_ori1 & ")", "(" & $parameter_uebersetzt1 & ")")
    _zeichen_ersetzen($pruef_array_uebersetzt[$i])
    ;~ ConsoleWrite($pruef_array_uebersetzt[$i] & @TAB & @TAB & @TAB & "(" & $parameter_ori1 & ")" & @TAB & @TAB & @TAB & "(" & $parameter_uebersetzt1 & ")" & @CRLF)
    ;~ ConsoleWrite($pruef_array_uebersetzt[$i] & @TAB & @TAB & @TAB & $parameter_uebersetzt1 & @TAB & @TAB & @TAB & $parameter_ori1 & @CRLF)
    EndIf
    EndIf
    EndIf

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

    EndIf
    Next

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

    ;au3.api löschen und neu schreiben
    FileDelete($zieldatei)
    _FileWriteFromArray($zieldatei, $pruef_array_uebersetzt, 1, 0)
    EndFunc ;==>_syntax_korrigieren

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

    ;************************************************************************************
    ; Kontrolle ob alle Funktionen auch in der au3.api enthalten sind) *
    ;************************************************************************************

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

    Func _kontrolle($dateien_array)
    For $i = 1 To UBound($dateien_array) - 1
    If Not StringInStr($dateien_array[$i], '$tag') Then ;$tag-Funktionen auslassen
    $suchbegriff = StringReplace($dateien_array[$i], '.txt', "") & '(' ;Funktionsame mit Klammer
    $search = _ArraySearch($array_alles_da_api, $suchbegriff, 1, 0, 0, 1) ;in der au3.api danach suchen
    If $search = -1 Then
    $suchbegriff = StringReplace($dateien_array[$i], '.txt', "") & ' (' ;Funktionsame mit Komma und Klammer
    $search = _ArraySearch($array_alles_da_api, $suchbegriff, 1, 0, 0, 1) ;in der au3.api danach suchen
    If $search = -1 Then
    ConsoleWrite($dateien_array[$i] & @CRLF) ;fehlende Funktionen in der au3.api
    EndIf
    EndIf
    EndIf
    Next
    EndFunc ;==>_kontrolle

    [/autoit]

    Folgende Funktionen sind mehrfach aufgelistet:
    AutoItSetOption
    ControlCommand
    ControlListView
    Opt
    Wobei Opt ja unter AutoItSetOption läuft. Opt als txt-Datei gibts nicht.
    ControlTreeView erscheint komischerweise in der englischen Hilfe nur einmal, obwohl es eigentlich auch mehrere Befehle gibt.
    Durch mein Script wird auch ControlTreeView mehrmals aufgelistet.

    Es sind nur gültige Funktionen der AutoIt Version 3.3.0.0 enthalten.

    Script ausgelegt auf
    ;Scite:vom 20.12.2008
    ;AutoIt:3.3.0.0
    ;deutsche Hilfe:3.3.0.0

    Die neue deutsche au3.api Datei muß bei jeder neuen Scite Version und jeder neuen AutoIt Version neu von peethebee erstellt werden.
    Die erstellte Datei findet ihr links unter AutoIt Downloads - Hilfe: Deutsch

    EDIT: 3.1 unnötige Tabs entfernt
    EDIT: 3.2 nun wird _IEAction auch mehrmals aufgelistet
    Edit peethebee: Anpassungen der Pfade für mich (allgemeiner gehalten). Ich habe eine Datei base_au3.api mit den Originaldaten, damit eine au3.api im ScriptDir erzeugt werden kann.

    EDIT: 3.3 kleinen Fehler behoben
    EDIT: 3.4 ObjEvent wird nun korrekterweise zweimal angezeigt / UDPShutdown und UDPStartup werden nun auch automatisch übersetzt
    EDIT: 3.5 Splash-Fenster eingefügt, englische au3.api aktualisiert
    EDIT: 3.6 diverse Anpassungen, englische au3.api aktualisiert

    • Offizieller Beitrag

    Ich rate davon ab, diese Datei zu übersetzen.
    Bei jeder neuen Version von AutoIt wird diese Datei überschrieben. Deshalb gibt es ja auch die au3.user.calltips.api, um eigene Einträge für UDF zu erstellen.
    Du kannst aber, wenn es unbedingt übersetzt werden soll, den Inhalt mit in die au3.user.calltips.api einfügen, dann geht nichts verloren. Allerdings muß dann die au3.api aus dem Ordner entfernt oder umbenannt werden - sonst gibts englisch-deutschen Mix ;)

  • Hallo zusammen,

    ich habe die deutsche au3.api v.3.3.6.1 mal mithilfe der englischen au3.api v3.3.8.0 auf das akuelle Niveau gebracht. Sie könnte im Zusammenhang mit der Übersetzung der 3.3.8.1 Hilfe als Basis für ein offizielles Release dienen. By the way - wann ist die nächste Übersetzungsrunde geplant.

    Peter

  • Die au3.api wird automatisch aus den übersetzten Funktionen erzeugt.
    Ist zwar schön, dass du die au3.api angepasst hast, jedoch wird diese spätestens bei der Veröffentlichung der Hilfe für 3.3.8.1 umsonst sein.

    Die Hilfe wird weiter übersetzt, sobald die Übersetzseite fertigprogrammiert wurde.
    Dies dauert leider noch.
    Update der Übersetzseite für die Hilfe auf 3.3.8.1

  • Tweaky,

    danke für die Info bezüglich zum Status des Übersetzungssystem.

    Mir schon klar das Ihr die api aus den Übersetzungen des Forum generieren wollt. Ich habe die Übersetzung auch primär für den Eigenbedarf gemacht.

    Noch eine Anregung zur neuen Version: Macht es Sinn auch Ergänzungen wie die "pcre pattern man page" mit zu übersetzen und direkt in der deutschen Hilfe zu verlinken (statt der englischen Seite auf autoitscript.com)? Regular Expressions sind wirklich mächtig, aber nicht so leicht zu verstehen - deshalb würde es für mich Sinn machen eine deutsche Version zu verlinken.

    PapaPeter

    Mit freundlichen Grüßen - PapaPeter