Pour ceux qui ont du temps devant eux, je vous propose de m'aider à résoudre mes problèmes.
Voulant participer à la traduction de la doc Autoit, je me suis créé un script pour rendre un peut plus ludique ces heures de labeur.
La base du script fonctionne mais je rencontre des petites difficultés dès que je veux utiliser des fonctions que je ne connais pas.
Par exemple, après avoir traduit une fonction je voudrais la prévisualiser.
J'utilise _GUICtrlRichEdit_Create et ses autres fonctions mais je ne sais pas créé un tableau dedans.
► Afficher le texte
Code : Tout sélectionner
#Region visualiseur de fonction
If GUICtrlRead($Edit1) = "" Then
MsgBox(48,"Erreur","Il n'y a aucune fonction à visualiser",5)
Return SetError(1)
EndIf
Global $decal = 0
Global $Form2 = GUICreate("Visionnese", 810, 800, 200, 120, $GUI_SS_DEFAULT_GUI,-1,$Form1)
Global $hRichEdit = _GUICtrlRichEdit_Create($Form2, "", 10, 35, 790, 700, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
If @error Then MsgBox(48,"Erreur","")
Local $arrayfile = FileReadToArray($list[$funcnbr][MsgBoxAskLang()])
GUISetState(@SW_SHOW,$Form2)
If $arrayfile[0] = "" Then _ArrayDelete($arrayfile,0)
For $k = 0 To UBound($arrayfile) -1
Switch $arrayfile[$k]
Case "###Function###"
;~ richedit_titre("Fonction",8)
_GUICtrlRichEdit_setText($hRichEdit,"Fonction")
_GUICtrlRichEdit_SetSel($hRichEdit, 0 , 8)
_GUICtrlRichEdit_ChangeFontSize($hRichEdit,7)
_GUICtrlRichEdit_SetCharColor($hRichEdit,0x000080)
_GUICtrlRichEdit_AppendText($hRichEdit,@CRLF)
$decal += 1
Case "###Description###"
richedit_titre("Description",11)
Case "###Syntax###"
richedit_titre("Syntaxe",7)
Case "###Parameters###"
richedit_titre("Paramètres",10)
Case "###Example###"
richedit_titre("Exemple(s)",10)
Case "###Remarks###"
richedit_titre("Remarques",9)
Case Else
_GUICtrlRichEdit_AppendText($hRichEdit, $arrayfile[$k] & @CRLF)
$decal += 1
Sleep(500)
EndSwitch
Next
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
_GUICtrlRichEdit_Destroy($hRichEdit)
GUIDelete($Form2)
#EndRegion
Code : Tout sélectionner
Func richedit_titre($data,$taille)
$tmp = _GUICtrlRichEdit_GetTextLength($hRichEdit,True,True) - $decal;_GUICtrlRichEdit_GetLineCount($hRichEdit);nombre de caractères autres que les retours à la ligne
_GUICtrlRichEdit_AppendText($hRichEdit,$data);on met le texte
_GUICtrlRichEdit_SetSel($hRichEdit, $tmp, $tmp + $taille);sélection de la dernière ligne écrite
_GUICtrlRichEdit_ChangeFontSize($hRichEdit,7);on augmente la taille
_GUICtrlRichEdit_SetCharColor($hRichEdit,0x000080);on change la couleur
_GUICtrlRichEdit_AppendText($hRichEdit,@CRLF);on ajoute le retour à la ligne
$decal += 1
EndFunc
Je ne suis pas obliger de passer par un RichEdit mais c'est la meilleur solution que j'ai actuellement trouvée.
Si vous avez d'autre idées ou codes...
J'ai aussi du mal à détecter un double clic sur une ligne de ListView
► Afficher le texte
Code : Tout sélectionner
Func _MyArrayDisplay(Const ByRef $avArray, $sSeparator = Chr(124), $sReplace = "|")
If Not IsArray($avArray) Then Return SetError(1, 0, 0)
; Dimension checking
Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
If $iDimension > 2 Then Return SetError(2, 0, 0)
; Swap dimensions if transposing
If $iSubMax < 0 Then $iSubMax = 0
; Set limits for dimensions
$iItemLimit = $iUBound
If $iUBound > $iItemLimit Then $iUBound = $iItemLimit
; Convert array into text for listview
Local $avArrayText[$iUBound + 1]
For $i = 0 To $iUBound
$avArrayText[$i] = $i
For $j = 0 To 1;$iSubMax
If Not $j Then
$vTmp = StringReplace(FileFindNextFile(FileFindFirstFile($avArray[$i][0])),".txt"," ");nom de la fonction
Else
$vTmp = $BddArrey[$i + 1][3];Etat (traduit ?)
EndIf
; Add to text array
$vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
; Set max buffer size
If StringLen($vTmp) > 100 Then $vTmp = StringLeft($vTmp, 100);bloquer la ligne à 100 caractères max
$avArrayText[$i] &= $sSeparator & $vTmp
Next
Next
; Set interface up
Local $iWidth = 640, $iHeight = 480
Local $hGUI = GUICreate("Choix d'une fonction", $iWidth, $iHeight, Default, Default, 0x00070000,-1,$Form1)
GUISetBkColor(0xFFA080)
Local $aiGUISize = WinGetClientSize($hGUI)
Local $hListView = GUICtrlCreateListView("N° de la fonction|Nom de la fonction|Traduit ? ", 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $LVS_SHOWSELALWAYS,4)
$hNumber = GUICtrlCreateInput("0", 3, $aiGUISize[1] - 23, $aiGUISize[0] - 113, 20)
GUICtrlCreateUpdown(-1,36)
Local $hOk = GUICtrlCreateButton("OK",($aiGUISize[0] ) -107 ,$aiGUISize[1] - 23,100 ,20)
GUICtrlSetResizing(-1,4 + 64 + 256 + 512)
GUICtrlSetResizing($hListView, $GUI_DOCKBORDERS)
GUICtrlSetResizing($hNumber, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $WS_EX_CLIENTEDGE, $WS_EX_CLIENTEDGE)
; Fill listview
For $i = 0 To $iUBound
GUICtrlCreateListViewItem($avArrayText[$i], $hListView)
Next
; adjust window width
$iWidth = 0
For $i = 0 To $iSubMax + 1
$iWidth += GUICtrlSendMsg($hListView, $LVM_GETCOLUMNWIDTH, $i, 0)
Next
If $iWidth < 250 Then $iWidth = 230
$iWidth += 20
If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100
WinMove($hGUI, "", (@DesktopWidth - $iWidth) / 2, Default, $iWidth)
; Show dialog
GUISetState(@SW_SHOW, $hGUI)
ToolTip("Le numero de la fonction sélectionnée change " & @CRLF & "quand on passe la souris sur la listview",Default,Default,"Attention",0,1)
Sleep(2000)
ToolTip("")
While 1
Switch GUIGetMsg()
Case -3 , $hOk
ExitLoop
Case $GUI_EVENT_PRIMARYDOWN
If StringInStr(ControlGetFocus("Choix d'une fonction"),"SysListView32") Then
;~ ToolTip("1",Default,Default,"",0,1)
Sleep(100)
If GUIGetMsg() = $GUI_EVENT_PRIMARYUP Then
;~ ToolTip("2",Default,Default,"",0,1)
Sleep(500)
If GUIGetMsg() = $GUI_EVENT_PRIMARYDOWN Then
;~ ToolTip("3",Default,Default,"",0,1)
ExitLoop
EndIf
EndIf
EndIf
EndSwitch
If ControlGetFocus("Choix d'une fonction") = "SysListView321" Then
$hot = _GUICtrlListView_GetHotItem($hListView)
If $hot <> -1 Then
GUICtrlSetData($hNumber,$hot)
EndIf
EndIf
WEnd
$tmp = GUICtrlRead($hNumber)
GUIDelete($hGUI)
Return $tmp
EndFunc ;==>_MyArrayDisplayVoici mon code entier :
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <GuiRichEdit.au3>
#include <GUIListview.au3>
#include <Excel.au3>
#Region ### START Koda GUI section ### Form=
; - - - - Fenêtre - - - -
Global $Form1 = GUICreate("Traducteur", 870, 800, 100, 90, $WS_MINIMIZEBOX+$WS_CAPTION+ $WS_POPUP+ $WS_SYSMENU+ $WS_MAXIMIZEBOX)
GUISetBkColor(0xFFFF80)
; - - - - Zones de texte - - - -
Global $Edit1 = GUICtrlCreateEdit("", 10, 210, 425, 575)
GUICtrlSetResizing(-1,32+64)
Global $Edit2 = GUICtrlCreateEdit("", 440, 210, 425, 575)
GUICtrlSetResizing(-1,32+64)
; - - - - Partie traduction - - - -
GUICtrlCreateLabel("Remplacer :", 20, 20)
GUICtrlSetResizing(-1,802)
Global $Label2 = GUICtrlCreateLabel("Texte à remplacer", 20, 50, 480, 40)
GUICtrlSetBkColor(-1,0xFFFFFF)
GUICtrlSetResizing(-1,2+4+32+512)
GUICtrlCreateLabel("Par :", 20, 100)
GUICtrlSetResizing(-1,802)
Global $Input1 = GUICtrlCreateInput("Texte à remplacer", 20, 120, 480, 22)
GUICtrlSetResizing(-1,32+2+4+512)
; - - - - Boutons - - - -
Global $Button1 = GUICtrlCreateButton("OK", 10, 150, 55, 31)
GUICtrlSetResizing(-1,802)
GUICtrlSetState(-1,$GUI_Disable)
Global $Button2 = GUICtrlCreateButton("", 70, 150, 60, 31)
GUICtrlSetResizing(-1,802)
Global $Checkbox1 = GUICtrlCreateCheckbox(" Ignorer les fichiers traduits", 135, 148,95,35,0x2000 + $WS_TABSTOP + $BS_AUTOCHECKBOX)
GUICtrlSetResizing(-1,802)
Global $Button3 = GUICtrlCreateButton("Chercher une fonction", 230, 150, 120, 31)
GUICtrlSetResizing(-1,802)
Global $Button4 = GUICtrlCreateButton("Choisir le chemin des fonctions", 355, 150, 155, 31)
GUICtrlSetResizing(-1,802)
Global $Button5 = GUICtrlCreateButton("Base de données", 515, 150, 95, 31)
GUICtrlSetResizing(-1,802)
Global $Button6 = GUICtrlCreateButton("Prévisualliser", 615, 150, 70, 31)
GUICtrlSetResizing(-1,802)
Global $Button7 = GUICtrlCreateButton("Valider", 690, 150, 70, 31)
GUICtrlSetResizing(-1,802)
; - - - - Nom des "édit" - - - -
GUICtrlCreateLabel("Anglais", 10, 187)
GUICtrlSetResizing(-1,32+512)
GUICtrlCreateLabel("Francais", 440, 187)
GUICtrlSetResizing(-1,32+512)
; - - - - Logo - - - -
GUICtrlCreatePic(StringReplace(@AutoItExe,"\AutoIt3.exe", "\Examples\GUI\logo4.gif"),512 , 10,338,132)
GUICtrlSetResizing(-1,4+32+256+512)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
#Region - - - - - - - - - - - - - - - - Declaration des variables et initialisation - - - - - - - - - - - - - - - - - - -
Global $dirEN1 = @ScriptDir & "\English\txt2htm\txtFunctions\";chemin des fichiers de la documentation
Global $dirFR1 = @ScriptDir & "\Francais\txt2htm\txtFonctions\"
Global $dirEN2 = $dirEN1;utile pour changedir()
Global $dirFR2 = $dirFR1;quand on change le chemin des fichiers
setlist();initialise la liste des fonctions à traduire
Global $adv = -1
OpenBDD(ChoixBDD(Not (MsgBox(4,"Ouverture d'une Base De Données","Ouvrir la BDD réseau ?",0,$Form1) - 6),1));initialise la BDD
#EndRegion
;echap pour quitter en cas d'erreur
HotKeySet("{esc}","Quitter")
main()
#Region Fonctions
;- - - - - - - - - - - - - - - - - - - - Fonctions - - - - - - - - - - - - - - - - - - -
#region temporaire fonction déjà réparées
Func main()
; - - - - boucle principale - - - -
;la boucle principale doit être une fonction afin de permetre les GoTO's
GUICtrlSetData($Button2,"Suivant")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Quitter()
Case $Button2
Do
Until chosefile() <> 2
Case $Button4
changedir()
Case $Button3
chosefunc()
Do
Until chosefile() <> 2
Case $Button5
GestionBDD()
Case $Button6
afficherfunc($adv)
Case $Button7
ValiderLaFonction()
EndSwitch
WEnd
EndFunc
Func setlist()
Global $list[countfile()][2]
$h_txtEN = FileFindFirstFile($dirEN2 & "*.txt")
For $i = 0 To UBound($list) -1
$list[$i][0] = $dirEN2 & FileFindNextFile($h_txtEN);liste des fichiers de la doc anglaise
$list[$i][1] = StringReplace($list[$i][0],$dirEN2,$dirFR2); liste des fichiers theoriques de la doc française
Next
EndFunc
Func countfile();retourn ne nombre de fichiers .txt dans le dosssier de la documentation Anglaise
Global $h_txtEN = FileFindFirstFile($dirEN2 & "*.txt")
$tmp = 0
Do
$h_nexttxtEN = FileFindNextFile($h_txtEN)
$tmp += 1
Until @error
Return $tmp
EndFunc
Func chosefunc()
Do
$tmp = _MyArrayDisplay($list)
$func = FileFindNextFile(FileFindFirstFile($list[$tmp][0]))
Until MsgBox(4,StringReplace($func,".txt"," "),StringReplace($func,".txt"," ") & @CRLF & "Valider cette fonction ?",0,$Form1) = 6
$adv = $tmp
GUICtrlSetData($Edit2,FileRead($list[$adv][1]));"")
Global $texteEN = FileRead($list[$adv][0])
GUICtrlSetData($Edit1,$texteEN)
Return $tmp
EndFunc
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Func chosefile();parcourt la liste des fonction dans l'odre
If $adv < 0 Then $adv = 0;si l'avancement n'a pas été initialisé, on commence à zero
If $adv >= UBound($list) Then;si toutes les fonctions ont été vues
MsgBox(64,"Information","Toutes les fonctions on été vues. Retour au debut de la liste.",0,$Form1)
$adv = 0;on retourne au debut de la liste
Return 1
EndIf
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then;si on oublie les fonction déjà traduites
If FileExists($list[$adv][1]) Then; si la fonction est déjà traduite
GUICtrlSetData($Edit2,""); on nettoye la zone d'edition de la version francaise
$adv += 1; on passe à la suivante
Return 2
Else
Global $texteEN = FileRead($list[$adv][0]);recuperation du texte en anglais
GUICtrlSetData($Edit1,$texteEN);affichage du texte
GUICtrlSetData($Edit2,"");nettoyage de la zone FR
If MsgBox(260,"","Ok ?",0,$Form1) = 7 Then;si l'utilisateur ne veut pas travailler sur cette fonction
$adv += 1; on passe à la suivante
Return 2; on quitte la fonction
EndIf
If MsgBox(36,"Traducteur","Traduire cette fonction ?",0,$Form1) = 6 Then remplace();si l'utilisateur veut la traduire alors on traduit
If MsgBox(36,"Traducteur","Passer à la fonction suivante maintenant ?",0,$Form1) = 6 Then;si l'utilisateur veut passer directement à la fonction suivante
$adv += 1; on passe à la suivante
Return 2
Else
Return 1;sinon on quitte la fonction et on retoune dans la boucle principale
EndIf
EndIf
Else; si on affiche touts les fonctions
GUICtrlSetData($Edit2,FileRead($list[$adv][1]));"")
Global $texteEN = FileRead($list[$adv][0])
GUICtrlSetData($Edit1,$texteEN)
If MsgBox(36,"Traducteur","Traduire cette fonction ?",0,$Form1) = 6 Then remplace()
If MsgBox(36,"Traducteur","Passer à la fonction suivante maintenant ?",0,$Form1) = 6 Then
$adv += 1
Return 2
Else
Return 1
EndIf
EndIf
EndFunc
Func remplace()
GUICtrlSetData($Button2,"Changer")
GUICtrlSetState($Button1,$GUI_Enable)
Local $line = 0
Do
$line += 1
$lineEN = FileReadLine($list[$adv][0],$line)
$lineFR = $lineEN
GUICtrlSetData($Label2,$lineEN)
If StringInStr($lineEN,"Failure") Then $lineFR = StringReplace($lineFR,"Failure","Échec")
If StringInStr($lineEN,"Success") Then $lineFR = StringReplace($lineFR,"Success","Succès")
If StringInStr($lineEN,"[optional]") Then $lineFR = StringReplace($lineFR,"[optional]","[optionnel]")
GUICtrlSetData($Input1,$lineFR)
If Not ($lineEN = "" Or StringInStr($lineEN,"###") Or StringInStr($lineEN,'@@')) Then
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
main()
Case $Button1
ExitLoop
EndSwitch
WEnd
EndIf
GUICtrlSetData($Edit2,GUICtrlRead($Edit2) & @CRLF & GUICtrlRead($Input1))
Until MsgBox(4,"Traduction","Ligne suivante ?",0,$Form1) = 7 Or GUICtrlRead($Input1) = "@@IncludeExample@@"
StringInStr(GUICtrlRead($Edit2),"###Function###",0,0,4)
If @error Then;si le fichier n'a pas été traduit 2 fois
Switch MsgBox(36,"","Sauvgarder le fichier ?",0,$Form1)
Case 6 ;Yes
SaveFunc()
GUICtrlSetData($Edit2,"")
GUICtrlSetState($Button1,$GUI_Disable)
Case 7 ;No
GUICtrlSetState($Button1,$GUI_Disable)
Return
EndSwitch
EndIf
EndFunc
Func changedir()
HotKeySet("{esc}");desactivation du blocage de la touche Echap
$dirEN1 = FileSelectFolder("Documentation en Anglais","",0,$dirEN2)
$dirFR1 = FileSelectFolder("Documentation en Français","",7,$dirFR2)
HotKeySet("{esc}","Quitter")
If $dirEN1 <> $dirEN2 And $dirEN1 <> "" Then
$dirEN2 = $dirEN1
EndIf
If $dirFR1 <> $dirFR2 And $dirFR1 <> "" Then
$dirFR2 = $dirFR1
EndIf
If $dirEN2 = $dirFR2 Then
MsgBox(48,"Erreur","Le chemin de la documentation en Anglais et le chemin de la documentation en Français sont identiques" & @CRLF & @CRLF & "Veuillez selectionner d'autres dossiers",0,$Form1)
changedir()
Else
For $i = 0 To UBound($list) - 1
_ArrayDelete($list,0)
Next
$adv = 0
setlist()
EndIf
EndFunc
Func Quitter()
If MsgBox(4,"Traducteur","Voulez-vous enregistrer la Base de Données avant de quitter ?",0,$Form1) = 6 Then exportBDD()
If MsgBox(4,"Quitter ?","",0,$Form1) = 6 Then Exit
EndFunc
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Func MsgBoxAskLang()
; retourne le choix de la langue du texte à afficher
Global $msgGUI = GUICreate("Langue", 220, 100,Default,Default,0,-1,$Form1)
Global $msgLabel = GUICtrlCreateLabel("Veuillez selectionner la langue du fichier à traduire", 9, 9, 196, 25)
Global $msgB1 = GUICtrlCreateButton("Français", 8, 43, 95, 25)
Global $msgB2 = GUICtrlCreateButton("Anglais", 111, 43, 95, 25)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $msgB1;Francais 1
GUIDelete($msgGUI)
Return 1
Case $msgB2;Anglais 0
GUIDelete($msgGUI)
Return 0
EndSwitch
WEnd
EndFunc ;==> MsgBoxAskLang
Func afficherfunc($funcnbr = -1)
; - - - - Visualise la fonction - - - -
If $funcnbr < 0 Then
$funcnbr = chosefunc()
EndIf
;-----------------------------------------------------------------------------------------------------------
Local $Form6 = GUICreate("", 350, 420, Default , Default ,BitOR($WS_SYSMENU,$WS_POPUP),-1,$Form1)
GUISetBkColor(0xFF80FF)
Local $a_func = GUICtrlCreateLabel("", 8, 8, 340, 41,0x201)
GUICtrlSetFont(-1,18,700)
GUICtrlSetColor(-1,0x1010FF)
GUICtrlSetData(-1,StringReplace(FileFindNextFile(FileFindFirstFile($list[$adv][0])),".txt"," "))
Local $a_B1 = GUICtrlCreateButton("&Changer de fonction", 16, 80, 321, 57)
Local $a_B2 = GUICtrlCreateButton("Ouvrir avec le &BlocNotes", 16, 144, 321, 57)
Local $a_B3 = GUICtrlCreateButton("&Ouvrir avec l'éditeur associé", 16, 208, 321, 57)
Local $a_B4 = GUICtrlCreateButton("Aperçu avec le &visualisateur", 16, 272, 321, 57)
Local $a_B5 = GUICtrlCreateButton("&Annuler", 16, 336, 321, 57)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $a_B5
GUIDelete($Form6)
ExitLoop
Case $a_B4
#Region visualisateur de fonction
If GUICtrlRead($Edit1) = "" Then
MsgBox(48,"Erreur","Il n'y a acucune fonction à visaliser",5)
Return SetError(1)
EndIf
Global $decal = 0
Global $Form2 = GUICreate("Visionnese", 810, 800, 200, 120, $GUI_SS_DEFAULT_GUI,-1,$Form1)
Global $hRichEdit = _GUICtrlRichEdit_Create($Form2, "", 10, 35, 790, 700, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
If @error Then MsgBox(48,"Erreur","")
Local $arrayfile = FileReadToArray($list[$funcnbr][MsgBoxAskLang()])
GUISetState(@SW_SHOW,$Form2)
If $arrayfile[0] = "" Then _ArrayDelete($arrayfile,0)
For $k = 0 To UBound($arrayfile) -1
Switch $arrayfile[$k]
Case "###Function###"
_GUICtrlRichEdit_setText($hRichEdit,"Fonction")
_GUICtrlRichEdit_SetSel($hRichEdit, 0 , 8)
_GUICtrlRichEdit_ChangeFontSize($hRichEdit,7)
_GUICtrlRichEdit_SetCharColor($hRichEdit,0x000080)
_GUICtrlRichEdit_AppendText($hRichEdit,@CRLF)
$decal += 1
Case "###Description###"
richedit_titre("Description",11)
Case "###Syntax###"
richedit_titre("Syntaxe",7)
Case "###Parameters###"
richedit_titre("Paramètres",10)
Case "###Example###"
richedit_titre("Exemple(s)",10)
Case "###Remarks###"
richedit_titre("Remarques",9)
Case Else
_GUICtrlRichEdit_AppendText($hRichEdit, $arrayfile[$k] & @CRLF)
$decal += 1
Sleep(500)
EndSwitch
Next
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
_GUICtrlRichEdit_Destroy($hRichEdit)
GUIDelete($Form2)
#EndRegion
ExitLoop
Case $a_B1
GUIDelete($Form6)
afficherfunc(-1)
Case $a_B2
ShellExecute("notepad.exe",$list[$adv][MsgBoxAskLang()])
Case $a_B3
ShellExecute($list[$adv][MsgBoxAskLang()])
EndSwitch
WEnd
GUIDelete($Form6)
EndFunc
Func richedit_titre($data,$taille)
$tmp = _GUICtrlRichEdit_GetTextLength($hRichEdit,True,True) - $decal;_GUICtrlRichEdit_GetLineCount($hRichEdit);nombre de caracteres autres que les retours à la ligne
_GUICtrlRichEdit_AppendText($hRichEdit,$data);on met le texte
_GUICtrlRichEdit_SetSel($hRichEdit, $tmp, $tmp + $taille);selection de la dernière ligne écrite
_GUICtrlRichEdit_ChangeFontSize($hRichEdit,7);on augmente la taille
_GUICtrlRichEdit_SetCharColor($hRichEdit,0x000080);on change la couleur
_GUICtrlRichEdit_AppendText($hRichEdit,@CRLF);on ajoute le retour à la ligne
$decal += 1
EndFunc
Func ChoixBDD($type = 1,$open = 1)
Global $BDDreseau = $type
If $open = 1 Then
If $type = 0 Then ;Base de données locale
$BDDdir = @ScriptDir & "\bdd.txt"
If Not FileExists($BDDdir) Then
$BDDdir = FileOpenDialog("Choisir une Base de donnée",@ScriptDir,"Fichier TXT (*.txt)| Tous les fichiers (*.*)",1,"",$Form1)
If @error Then Return SetError(2);Bdd inexistante
EndIf
Return $BDDdir
ElseIf $type = 1 Then ;BDD en réseau
MsgBox(48,"Désolé","Ce script ne gère pas encore les BDD en réseau")
Else
Return SetError(1);$type mal defini
EndIf
Else
If $type = 0 Then ;Base de données locale
$BDDdir = @ScriptDir & "\bdd.txt"
If Not FileExists($BDDdir) Then $BDDdir = FileSaveDialog("Exporter une Base de donnée",@ScriptDir,"Fichier TXT (*.txt)",18,"bdd.txt",$Form1)
If @error Then Return SetError(2)
Return $BDDdir
ElseIf $type = 1 Then ;BDD en réseau
MsgBox(48,"Désolé","Ce script ne gère pas encore les BDD en réseau")
Else
Return SetError(1);$type mal defini
EndIf
EndIf
EndFunc
Func OpenBDD($BDDpath)
$BddArrey1 = FileReadToArray($BDDpath)
Global $BddArrey[UBound($BddArrey1)+1][11]
For $i = 0 To UBound($BddArrey1) -1
$BddArrey2 = StringSplit($BddArrey1[$i],@TAB,2)
For $j = 0 To 10
$BddArrey[$i][$j] = $BddArrey2[$j]
Next
Next
EndFunc
Func AfficherBDD()
$header = $BddArrey[0][0]
For $i = 1 To 10
$header &= "|"&$BddArrey[0][$i]
Next
_ArrayDisplay($BddArrey,"Base de données","1:",4+32+64,Default,$header)
EndFunc
Func ValiderLaFonction()
If $adv < 0 Then chosefunc()
#Region ### START Koda GUI section ### Form=
Local $Form3 = GUICreate("", 358, 320, Default,Default, BitOR($WS_SYSMENU,$WS_POPUP),-1,$Form1)
GUISetBkColor(0)
Local $username = GUICtrlCreateInput("", 16, 260, 329, 21)
Local $v_B1 = GUICtrlCreateButton("&Signaler", 16, 285, 105, 25)
Local $v_B2 = GUICtrlCreateButton("&Valider", 128, 285, 105, 25)
If $BddArrey[$adv][10] <> "" Then GUICtrlSetState(-1,$GUI_Disable)
Local $v_B3 = GUICtrlCreateButton("&Annuler", 240, 285, 105, 25)
Local $v_func = GUICtrlCreateLabel("", 8, 8, 340, 41)
GUICtrlSetFont(-1,18,700)
GUICtrlSetColor(-1,0xA04020)
GUICtrlSetData(-1,StringReplace(FileFindNextFile(FileFindFirstFile($list[$adv][0])),".txt"," "))
GUICtrlCreateLabel(" Valider la fonction signifie que vous êtes d'accord avec la traduction proposée, que vous ne voyer pas comment l'améliorer." & @CRLF & @CRLF & " La fonction doit être validée par cinq utilisateurs différents, en plus de son traducteur, pour être entièrement validée pour la compilation.", 8, 64, 205,110)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlCreateLabel( " Signalez la fonction pour qu'elle soit recorigée si elle contient des fautes ou si elle ne corespond pas à la fonction indiquée ou si la version indiquée n'est pas la bonne.", 8, 184, 340,40)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlCreateLabel("Votre Nom d'utilisateur :", 16, 235,150,21)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlCreatePic(@ScriptDir & "\3.bmp",215 , 55,120,120)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $v_B3
GUIDelete($Form3)
Return
Case $v_B1
$BddArrey[$adv][3] = "À revoir"
MsgBox(64,"Information","La fonction est signalée.")
GUIDelete($Form3)
Return
Case $v_B2
For $l = 6 To 10
If $BddArrey[$adv + 1][$l] = "" Then
$tmp = GUICtrlRead($username)
If $tmp <> "" Then
$BddArrey[$adv + 1][$l] = $tmp
$BddArrey[$adv + 1][4] = "3.3.12.0"
If $BddArrey[$adv + 1][3] = "À revoir" Then $BddArrey[$adv + 1][3] = "Maj"
MsgBox(64,"Information",$tmp & " à bien été ajouté à la liste des validateurs de cette fonction.")
GUIDelete($Form3)
Return
Else
MsgBox(48,"Erreur","Vous n'avez pas entré de nom d'utilisateur.")
ExitLoop
EndIf
EndIf
Next
EndSwitch
WEnd
EndFunc
Func GestionBDD()
Local $Form4 = GUICreate("", 350, 420, Default , Default ,BitOR($WS_SYSMENU,$WS_POPUP),-1,$Form1)
GUISetBkColor(0x6080FF)
Local $Avi1 = GUICtrlCreateAvi(@ScriptDir & "\1.avi", 0, 32,16,321)
Local $b_B1 = GUICtrlCreateButton("&Importer une BDD existante", 16, 80, 321, 57)
Local $b_B2 = GUICtrlCreateButton("&Visualiser la BDD actuelle", 16, 144, 321, 57)
Local $b_B3 = GUICtrlCreateButton("&Enregister la BDD", 16, 208, 321, 57)
Local $b_B4 = GUICtrlCreateButton("E&xporter vers Excel", 16, 272, 321, 57)
Local $b_B5 = GUICtrlCreateButton("&Annuler", 16, 336, 321, 57)
GUISetState(@SW_SHOW)
GUICtrlSetState($Avi1,$GUI_AVISTART)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $b_B5
GUIDelete($Form4)
Return
Case $b_B1
OpenBDD(ChoixBDD(Not (MsgBox(4,"Ouverture d'une Base De Données","Ouvrir la BDD réseau ?") - 6),1))
Case $b_B2
AfficherBDD()
Case $b_B3
exportBDD()
If @error Then MsgBox(16,"Erreur","Erreur de code : " & @error)
Case $b_B4
$txt = ""
For $i = 0 To UBound($BddArrey) -1
For $j = 0 To 10
$txt &= $BddArrey[$i][$j] & @TAB
Next
$txt &= @CRLF
Next
ClipPut($txt)
$excel = _Excel_Open()
_Excel_BookNew($excel)
Sleep(1000)
Send("^v")
EndSwitch
WEnd
EndFunc
Func exportBDD();exporter la BDD
$savedir = ChoixBDD(Not (MsgBox(4,"Ouverture d'une Base De Données","Actualiser la BDD réseau ?") - 6),0)
If @error Then Return SetError(1);l'operation est annulée par l'utilisateur ou la boîte de message a renconté un problème
FileMove($savedir,StringReplace($savedir,".","1."),1)
If @error Then Return SetError(2);erreur lors du deplacement de la BDD actuelle
FileWrite($savedir,"Nom" & @TAB & "Chemin source EN" & @TAB & "Chemin source FR" & @TAB & "Traduit" & @TAB & "Version" & @TAB & "Traducteur" & @TAB & "1" & @TAB & 2 & @TAB & 3 & @TAB & 4 & @TAB & 5)
For $i = 1 to UBound($list)
$lineBDD = $BddArrey[$i][0]
For $j = 1 To 10
$lineBDD &= @TAB&$BddArrey[$i][$j]
Next
FileWrite($savedir,$lineBDD)
Next
;~ HotKeySet("b")
If @error Then
MsgBox(16,"Erreur","Erreur lors de la sinchronisation de la BDD.")
Else
MsgBox(64,"Information","La BDD a été enregistrée.")
EndIf
EndFunc
Func SaveFunc()
#Region ### START Koda GUI section ### Form=
Global $Form5 = GUICreate("", 377, 360, Default,Default,$WS_SYSMENU+$WS_POPUP,-1,$Form1)
GUISetBkColor(0)
Global $v_func = GUICtrlCreateLabel("", 8, 8, 340, 32)
GUICtrlSetFont(-1,18,700)
GUICtrlSetColor(-1,0xA04020)
GUICtrlSetData(-1,"Nom de la fonction")
GUICtrlCreateLabel(" Enregistrer la fonction" & @CRLF & @CRLF & "Si vous avez fini de traduire la fonction et que vous avez corrigé vos eventuelles fautes, enregistez-la pour pouvoir sauvegarder votre traduction." & @CRLF & @CRLF & " La fonction doit être validée par cinq utilisateurs différents, en plus de son traducteur, pour être entièrement validée pour la compilation.", 8, 45, 205,150)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlCreateLabel( " Veuillez indiquer votre nom d'utilisateur pour que les autres traducteurs puissent savoir qui l'a traduit.", 8, 200, 340,40)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlCreateLabel("Votre Nom d'utilisateur :", 16, 265,150,21)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlCreatePic(@ScriptDir & "\3.bmp",215 , 55,120,120)
Global $InputName = GUICtrlCreateInput("", 8, 288, 361, 21)
Global $s_B1 = GUICtrlCreateButton("&OK", 8, 320, 177, 33)
Global $s_B2 = GUICtrlCreateButton("&Annuler", 192, 320, 177, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $s_B2
GUIDelete($Form5)
Return
Case $s_B1
If GUICtrlRead($InputName) = "" Then
MsgBox(0,"Erreur","Vous n'avez pas entré de nom d'utilisateur")
Else
$tmp = GUICtrlRead($InputName)
ExitLoop
EndIf
EndSwitch
WEnd
If $BddArrey[$adv][3] <> "Non" Then
$BddArrey[$adv][3] = "Maj"
Else
$BddArrey[$adv][3] = "Oui"
$BddArrey[$adv][5] = $tmp
EndIf
$BddArrey[$adv][4] = "3.3.12.0"
If FileWrite($list[$adv][1],GUICtrlRead($Edit2)) Then
MsgBox(64,"Information"," Le fichier :"& @CRLF & $list[$adv][1] & @CRLF & " à correctement été enregistré.")
Else
MsgBox(16,"Erreur..."," Le fichier :" & @CRLF & $list[$adv][1] & @CRLF & " n'a pas put être enregistré.")
;~ MsgBox(0,"Erreur...","Veuillez reparer manuellement votre BDD en l'exportant en local et en léditnt, puis en la chargant en local.")
EndIf
GUIDelete($Form5)
EndFunc
#EndRegion
Func _MyArrayDisplay(Const ByRef $avArray, $sSeparator = Chr(124), $sReplace = "|")
If Not IsArray($avArray) Then Return SetError(1, 0, 0)
; Dimension checking
Local $iDimension = UBound($avArray, 0), $iUBound = UBound($avArray, 1) - 1, $iSubMax = UBound($avArray, 2) - 1
If $iDimension > 2 Then Return SetError(2, 0, 0)
; Swap dimensions if transposing
If $iSubMax < 0 Then $iSubMax = 0
; Set limits for dimensions
$iItemLimit = $iUBound
If $iUBound > $iItemLimit Then $iUBound = $iItemLimit
; Convert array into text for listview
Local $avArrayText[$iUBound + 1]
For $i = 0 To $iUBound
$avArrayText[$i] = $i
For $j = 0 To 1;$iSubMax
If Not $j Then
$vTmp = StringReplace(FileFindNextFile(FileFindFirstFile($avArray[$i][0])),".txt"," ");nom de la fonction
Else
$vTmp = $BddArrey[$i + 1][3];Etat (traduit ?)
EndIf
; Add to text array
$vTmp = StringReplace($vTmp, $sSeparator, $sReplace, 0, 1)
; Set max buffer size
If StringLen($vTmp) > 100 Then $vTmp = StringLeft($vTmp, 100);bloquer la ligne à 100 caractères max
$avArrayText[$i] &= $sSeparator & $vTmp
Next
Next
; Set interface up
Local $iWidth = 640, $iHeight = 480
Local $hGUI = GUICreate("Choix d'une fonction", $iWidth, $iHeight, Default, Default, 0x00070000,-1,$Form1)
GUISetBkColor(0xFFA080)
Local $aiGUISize = WinGetClientSize($hGUI)
Local $hListView = GUICtrlCreateListView("N° de la fonction|Nom de la fonction|Traduit ? ", 0, 0, $aiGUISize[0], $aiGUISize[1] - 26, $LVS_SHOWSELALWAYS,4)
$hNumber = GUICtrlCreateInput("0", 3, $aiGUISize[1] - 23, $aiGUISize[0] - 113, 20)
GUICtrlCreateUpdown(-1,36)
Local $hOk = GUICtrlCreateButton("OK",($aiGUISize[0] ) -107 ,$aiGUISize[1] - 23,100 ,20)
GUICtrlSetResizing(-1,4 + 64 + 256 + 512)
GUICtrlSetResizing($hListView, $GUI_DOCKBORDERS)
GUICtrlSetResizing($hNumber, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $WS_EX_CLIENTEDGE, $WS_EX_CLIENTEDGE)
; Fill listview
For $i = 0 To $iUBound
GUICtrlCreateListViewItem($avArrayText[$i], $hListView)
Next
; adjust window width
$iWidth = 0
For $i = 0 To $iSubMax + 1
$iWidth += GUICtrlSendMsg($hListView, $LVM_GETCOLUMNWIDTH, $i, 0)
Next
If $iWidth < 250 Then $iWidth = 230
$iWidth += 20
If $iWidth > @DesktopWidth Then $iWidth = @DesktopWidth - 100
WinMove($hGUI, "", (@DesktopWidth - $iWidth) / 2, Default, $iWidth)
; Show dialog
GUISetState(@SW_SHOW, $hGUI)
ToolTip("Le numero de la fonction sélectionnée change " & @CRLF & "quand on passe la souris sur la listview",Default,Default,"Attention",0,1)
Sleep(2000)
ToolTip("")
While 1
Switch GUIGetMsg()
Case -3 , $hOk
ExitLoop
Case $GUI_EVENT_PRIMARYDOWN
If StringInStr(ControlGetFocus("Choix d'une fonction"),"SysListView32") Then
;~ ToolTip("1",Default,Default,"",0,1)
Sleep(100)
If GUIGetMsg() = $GUI_EVENT_PRIMARYUP Then
;~ ToolTip("2",Default,Default,"",0,1)
Sleep(500)
If GUIGetMsg() = $GUI_EVENT_PRIMARYDOWN Then
;~ ToolTip("3",Default,Default,"",0,1)
ExitLoop
EndIf
EndIf
EndIf
EndSwitch
If ControlGetFocus("Choix d'une fonction") = "SysListView321" Then
$hot = _GUICtrlListView_GetHotItem($hListView)
If $hot <> -1 Then
GUICtrlSetData($hNumber,$hot)
EndIf
EndIf
WEnd
$tmp = GUICtrlRead($hNumber)
GUIDelete($hGUI)
Return $tmp
EndFunc ;==>_MyArrayDisplay
#EndRegion
Merci de me dire que remplacer et par quoi.



