Soyez le premier à donner votre avis sur cette source.
Vue 7 415 fois - Téléchargée 309 fois
import tkinter import tkinter.filedialog import tkinter.messagebox as Msg racine=tkinter.Tk() racine.geometry("220x150") def traduire(): chfichier =tkinter.filedialog.askopenfilename(parent=racine,title='Choisissez un fichier' ,filetypes = [("Fichiers","*.py;*.pyw;*.txt")]) f=open(chfichier,'r') chaine1=f.read().replace('ouvrir','open') f.close() f=open(chfichier,'w') f.write(chaine1) f.close() f=open(chfichier,'r') chaine2=f.read().replace('remplacer','replace') f.close() f=open(chfichier,'w') f.write(chaine2) f.close() f=open(chfichier,'r') chaine3=f.read().replace('fermer','close') f.close() f=open(chfichier,'w') f.write(chaine3) f.close() f=open(chfichier,'r') chaine4=f.read().replace('ecrire','write') f.close() f=open(chfichier,'w') f.write(chaine4) f.close() f=open(chfichier,'r') chaine5=f.read().replace('lire','read') f.close() f=open(chfichier,'w') f.write(chaine5) f.close() f=open(chfichier,'r') chaine6=f.read().replace('Et','and') f.close() f=open(chfichier,'w') f.write(chaine6) f.close() f=open(chfichier,'r') chaine7=f.read().replace('Si','if') f.close() f=open(chfichier,'w') f.write(chaine7) f.close() f=open(chfichier,'r') chaine8=f.read().replace('faux','False') f.close() f=open(chfichier,'w') f.write(chaine8) f.close() f=open(chfichier,'r') chaine9=f.read().replace('vrai','True') f.close() f=open(chfichier,'w') f.write(chaine9) f.close() f=open(chfichier,'r') chaine10=f.read().replace('afficher','print') f.close() f=open(chfichier,'w') f.write(chaine10) f.close() f=open(chfichier,'r') chaine11=f.read().replace('texte','text') f.close() f=open(chfichier,'w') f.write(chaine11) f.close() f=open(chfichier,'r') chaine12=f.read().replace('pour','for') f.close() f=open(chfichier,'w') f.write(chaine12) f.close() f=open(chfichier,'r') chaine13=f.read().replace('dans','in') f.close() f=open(chfichier,'w') f.write(chaine13) f.close() f=open(chfichier,'r') chaine14=f.read().replace('sinon','else') f.close() f=open(chfichier,'w') f.write(chaine14) f.close() f=open(chfichier,'r') chaine15=f.read().replace('fichier','file') f.close() f=open(chfichier,'w') f.write(chaine15) f.close() f=open(chfichier,'r') chaine16=f.read().replace('Nom','name') f.close() f=open(chfichier,'w') f.write(chaine16) f.close() f=open(chfichier,'r') chaine17=f.read().replace('Ou','or') f.close() f=open(chfichier,'w') f.write(chaine17) f.close() f=open(chfichier,'r') chaine18=f.read().replace('attribuer','attribute') f.close() f=open(chfichier,'w') f.write(chaine18) f.close() f=open(chfichier,'r') chaine19=f.read().replace('Cle','key') f.close() f=open(chfichier,'w') f.write(chaine19) f.close() f=open(chfichier,'r') chaine20=f.read().replace('effacer','del') f.close() f=open(chfichier,'w') f.write(chaine20) f.close() f=open(chfichier,'r') chaine21=f.read().replace('enfin','finally') f.close() f=open(chfichier,'w') f.write(chaine21) f.close() f=open(chfichier,'r') chaine22=f.read().replace('titre','title') f.close() f=open(chfichier,'w') f.write(chaine22) f.close() f=open(chfichier,'r') chaine23=f.read().replace('tant que','while') f.close() f=open(chfichier,'w') f.write(chaine23) f.close() f=open(chfichier,'r') chaine24=f.read().replace('avec','with') f.close() f=open(chfichier,'w') f.write(chaine24) f.close() f=open(chfichier,'r') chaine25=f.read().replace('essai','try') f.close() f=open(chfichier,'w') f.write(chaine25) f.close() f=open(chfichier,'r') chaine26=f.read().replace('continuer','continue') f.close() f=open(chfichier,'w') f.write(chaine26) f.close() f=open(chfichier,'r') chaine27=f.read().replace('Droite','RIGHT') f.close() f=open(chfichier,'w') f.write(chaine27) f.close() f=open(chfichier,'r') chaine28=f.read().replace('Gauche','LEFT') f.close() f=open(chfichier,'w') f.write(chaine28) f.close() f=open(chfichier,'r') chaine29=f.read().replace('Haut','TOP') f.close() f=open(chfichier,'w') f.write(chaine29) f.close() f=open(chfichier,'r') chaine30=f.read().replace('longueur','length') f.close() f=open(chfichier,'w') f.write(chaine30) f.close() f=open(chfichier,'r') chaine31=f.read().replace('largeur','width') f.close() f=open(chfichier,'w') f.write(chaine31) f.close() f=open(chfichier,'r') chaine32=f.read().replace('Bas','BOTTOM') f.close() f=open(chfichier,'w') f.write(chaine32) f.close() f=open(chfichier,'r') chaine33=f.read().replace('excepte','except') f.close() f=open(chfichier,'w') f.write(chaine33) f.close() f=open(chfichier,'r') chaine34=f.read().replace('bouger','move') f.close() f=open(chfichier,'w') f.write(chaine34) f.close() f=open(chfichier,'r') chaine35=f.read().replace('produit','yield') f.close() f=open(chfichier,'w') f.write(chaine35) f.close() f=open(chfichier,'r') chaine36=f.read().replace('passer','pass') f.close() f=open(chfichier,'w') f.write(chaine36) f.close() f=open(chfichier,'r') chaine37=f.read().replace('affirme','assert') f.close() f=open(chfichier,'w') f.write(chaine37) f.close() f=open(chfichier,'r') chaine38=f.read().replace('zone','area') f.close() f=open(chfichier,'w') f.write(chaine38) f.close() f=open(chfichier,'r') chaine39=f.read().replace('auto','self') f.close() f=open(chfichier,'w') f.write(chaine39) f.close() f=open(chfichier,'r') chaine40=f.read().replace('aucun','None') f.close() f=open(chfichier,'w') f.write(chaine40) f.close() f=open(chfichier,'r') chaine41=f.read().replace('distance','range') f.close() f=open(chfichier,'w') f.write(chaine41) f.close() f=open(chfichier,'r') chaine42=f.read().replace('pause','break') f.close() f=open(chfichier,'w') f.write(chaine42) f.close() f=open(chfichier,'r') chaine43=f.read().replace('Fin','end') f.close() f=open(chfichier,'w') f.write(chaine43) f.close() f=open(chfichier,'r') chaine44=f.read().replace('hausse','raise') f.close() f=open(chfichier,'w') f.write(chaine44) f.close() f=open(chfichier,'r') chaine45=f.read().replace('retour','return') f.close() f=open(chfichier,'w') f.write(chaine45) f.close() f=open(chfichier,'r') chaine46=f.read().replace('En Tant Que','as') f.close() f=open(chfichier,'w') f.write(chaine46) f.close() f=open(chfichier,'r') chaine47=f.read().replace('classe','class') f.close() f=open(chfichier,'w') f.write(chaine47) f.close() f=open(chfichier,'r') chaine48=f.read().replace('filtre','filter') f.close() f=open(chfichier,'w') f.write(chaine48) f.close() f=open(chfichier,'r') chaine49=f.read().replace('ou bien','elif') f.close() f=open(chfichier,'w') f.write(chaine49) f.close() f=open(chfichier,'r') chaine50=f.read().replace('Non','not') f.close() f=open(chfichier,'w') f.write(chaine50) f.close() f=open(chfichier,'r') chaine51=f.read().replace('chaîne','string') f.close() f=open(chfichier,'w') f.write(chaine51) f.close() Msg.showinfo(message="Vous avez traduit :"+ chfichier) bouton=tkinter.Button(racine, text="Quitter", command=racine.quit) bouton.pack(side=tkinter.BOTTOM,ipady=10,ipadx=10) bouton2=tkinter.Button(racine, text="Traduire", command=traduire) bouton2.pack(side=tkinter.BOTTOM,ipady=10,ipadx=7) texte=tkinter.Label(racine, text="Cliquez sur traduire pour traduire un fichier", fg="black", height=20) texte.pack() racine.mainloop()
Moi j'aurais plus fais comme ça :
# Tous les mots clefs et leur traduction dans le dictionnaire trad
trad = {"string":"chaine", "class":"classe", "if":"si", "else":"sinon"} # etc...
# Ouverture du fichier, lecture et fermeture
f=open(chfichier,'r')
chaine51=f.read()
f.close()
# Pour tous les mots dans trad, remplace les mots
for anglais, francais in trad.items():
chaine51.replace(francais,anglais)
# Réouverture du fichier, écriture et fermeture.
f=open(chfichier,'w')
f.write(chaine51)
f.close()
Tu économises à peu près 300 lignes de code, tu n'ouvres/fermes pas le fichier 50 fois mais plus qu'une seule pour la lecture et une pour la fermeture.
Reste plus qu'a modifier la boucle avec des conditions pour ne pas traduire les mots contenus entre "" par exemple, pour ne pas modifier les chaines de caratères, etc... Sinon ça peut être gênant :)
Have fun :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.