rolando2424 Posted November 3, 2006 at 10:27 AM Report #61816 Posted November 3, 2006 at 10:27 AM Este é um pequeno script de Python para poder traduzir Português para albhed e vice-versa e foi usado para uma brincadeira que eu e mais uma pessoa fizesmos num forum (andava tudo a falar pitês e depois começamos nós a falar albhed 😄 ). Apesar de haver vários tradutores online, eu decidi (e estando em Python há cerca de um mês) que seria interessante fazer um simples programa 😄 Bem, tive uma pequena ajuda de uma pessoa do site Qunu que me mostrou o poder do maketrans que era exactamente o que procurava, A partir daí foi fácil (apesar de na versão 0.1 o código não prestava mesmo para nada... nem contador tinha). Depois foi pondo umas coisas no código (que ia aprendendo e descobrindo) até chegar à versão 0.4, que enviei para a Python Mailist, onde me aconcelharam a usar o .strip() = "" pois eu tinha quatro linhas de código para fazer o mesmo efeito (tinha um lingua.isspace() = True e rinha lingua = "") e me disseram que era melhor defenir os maketrans fora do loop (eu tinha tudo defenido dentro do loop). Ah, e peço desculpa por causa do excesso dos comentários, mas como foi o meu primeiro programa, assim se me esquecer de alguma coisa posso sempre lembrar-me do que faz cada coisa. Agora só me falta fazer um simples GUI para ele (estou a pensar em usar Tkinter). #!/usr/bin/python #V 0.5 import string contador = "s" # Cria um contador que verifica que deve ou nao executar o script albhed_portugues = string.maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'epstiwknuvgclrybxhmdofzqajEPSTIWKNUVGCLRYBXHMDOFZQAJ') # Cria a lista de palavra e de que maneira vao ser trocadas de albhed para portugues portugues_albhed = string.maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'ypltavkrezgmshubxncdijfqowYPLTAVkREZGMSHUBXNCDIJFQOW') # Cria a lista de palavra e de que maneira vao ser trocadas de portugues para albhed while contador.lower() == "s" or contador.lower() == "sim": # Enquanto o valor for "s" ou "sim" o programa nao sai (converte a palavra em minusculas) print "Escolhe a lingua que queres traduzir. [p]ortugues ou [a]l-bhed" lingua = raw_input() # Escolhe a lingua if lingua.strip() == "": # Se, depois de se remover os espaços em branco, ficarmos com um conjunto vazio print "Tens de escrever alguma coisa ok?" if lingua.lower() == "a" or lingua.lower() == "al-bhed": print "Escreve a palavra que queres traduzir." palavra = raw_input() # Pede por uma palavra print palavra.translate(albhed_portugues) # Imprime as palavras trocadas if lingua.lower() == "p" or lingua.lower() == "portugues": print "Escreve a palavra que queres traduzir." palavra = raw_input() # Pede por uma palavra print "" + palavra.translate(portugues_albhed) + "" # Imprime as palavras trocadas print "Ainda tens mais alguma coisa para traduzir? [s/N]" contador = raw_input() # Modifica o contador que esta inicio do script if contador.lower() == "n" or contador.lower() == "nao": # Se contador igual a "n" ou "nao" minusculos print "Entao adeus." EDIT: Bem, aqui está um GUI simples feito em Tkinter. Para o usar, escrevam o texto no primeiro campo e depois carregam num dos botões e o texto aparece traduzido no segundo campo 😄 . #!/usr/bin/python from Tkinter import * import string root=Tk() entry=Entry(root) var=StringVar() entry2=Entry(root,textvariable=var) entry.pack(side=TOP) entry2.pack(side=TOP) def albhed_portugues(): a = string.maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'epstiwknuvgclrybxhmdofzqajEPSTIWKNUVGCLRYBXHMDOFZQAJ') b = entry.get() c = b.translate(a) var.set(c) def portugues_albhed(): a = string.maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'ypltavkrezgmshubxncdijfqowYPLTAVkREZGMSHUBXNCDIJFQOW') b = entry.get() c = b.translate(a) var.set(c) button=Button(root,text="Traduzir Albhed-Portugues",command=albhed_portugues) button.pack(side=RIGHT) button2=Button(root,text="Traduzir Portugues-Albhed",command=portugues_albhed) button2.pack(side=RIGHT) root.mainloop() Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
Triton Posted November 3, 2006 at 11:02 AM Report #61820 Posted November 3, 2006 at 11:02 AM Simples e eficaz, bom trabalho! 😛 <3 life
rolando2424 Posted November 3, 2006 at 11:50 AM Author Report #61831 Posted November 3, 2006 at 11:50 AM Ainda estou a pensar em fazer um GUI para ele e depois coloca-lo no sourceforge 😛 Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
Triton Posted November 3, 2006 at 12:02 PM Report #61838 Posted November 3, 2006 at 12:02 PM Ainda estou a pensar em fazer um GUI para ele e depois coloca-lo no sourceforge 😛 Não estou a menosprezar o teu trabalho, mas para quê meter uma coisa deste género no SF? Se metesses no Python Cookbook ou numa coisa do género tinha mais lógica. 😛 <3 life
rolando2424 Posted November 3, 2006 at 07:06 PM Author Report #61928 Posted November 3, 2006 at 07:06 PM Ainda estou a pensar em fazer um GUI para ele e depois coloca-lo no sourceforge 😛 Não estou a menosprezar o teu trabalho, mas para quê meter uma coisa deste género no SF? Se metesses no Python Cookbook ou numa coisa do género tinha mais lógica. 😛 Tava dar um exemplo 😄 Talvez ponha aí no cookbook, afinal ele serve para scripts mais pequenos 😛 Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
Preatorian Posted November 5, 2006 at 11:56 AM Report #62184 Posted November 5, 2006 at 11:56 AM Eu estou a acabar uma versão do tradutor de PT para Pitês e usei o wxPython (amanha ou ainda hoje lanço-o). Se lhe quiseres deixar uma espreitadela 😉
rolando2424 Posted November 5, 2006 at 01:58 PM Author Report #62204 Posted November 5, 2006 at 01:58 PM Apesar de não perceber muito de wxPython, posso sempre dar uma olhadela 😉 Mas estás a usar o comando string.maketrans()? Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
rolando2424 Posted February 9, 2007 at 11:34 PM Author Report #81598 Posted February 9, 2007 at 11:34 PM Bem, que isto tem destas coisas... Está aqui uma pessoa à procura de um tutorial para receber os key input do python (para um outro projecto), dou de caras com uma página a falar sobre o Tkinter e quando dou fé, tenho feito um GUI para isto... (basicamente peguei no código que tinha no site onde estava a ver e adicionei mais um butão e os métodos de tradução. Por isso aqui está a versão GUI feita em Tkinter (acabei de a fazer, por isso ainda não tive tempo de a comentar, mas é um script bastante simples 🙂 ) #!/usr/bin/python from Tkinter import * import string root=Tk() entry=Entry(root) var=StringVar() entry2=Entry(root,textvariable=var) entry.pack(side=TOP) entry2.pack(side=TOP) def albhed_portugues(): a = string.maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'epstiwknuvgclrybxhmdofzqajEPSTIWKNUVGCLRYBXHMDOFZQAJ') b = entry.get() c = b.translate(a) var.set(c) def portugues_albhed(): a = string.maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'ypltavkrezgmshubxncdijfqowYPLTAVkREZGMSHUBXNCDIJFQOW') b = entry.get() c = b.translate(a) var.set(c) button=Button(root,text="Traduzir Albhed-Portugues",command=albhed_portugues) button.pack(side=RIGHT) button2=Button(root,text="Traduzir Portugues-Albhed",command=portugues_albhed) button2.pack(side=RIGHT) root.mainloop() Vou editar o primeiro post para colocar também este GUI. Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now