Tradutor on-line em Python+GTK
Publicado por Lincoln de Sousa 16/10/2005
[ Hits: 7.413 ]
Um exemplo de utilização de rotinas em GTK, regular expressions e urllib. E é mais uma prova que o Python também é Orientado a Objetos!!!
import gtk
import urllib
import re
# marretinha para converter os caracteres pra utf-8
# aqrui voce pode substituir esse lambda pelo pygettext se voce
# quiser internacionalizar o programa
_ = lambda x: unicode(x, 'utf-8', 'ignore')
class Tradutor(gtk.Window):
""" classe principal da aplicacao. """
def __init__(self):
""" construtora da classe """
gtk.Window.__init__(self)
self.set_title(_('PyTranslate'))
self.set_border_width(3)
self.connect('destroy', self.quit_window)
vbox = gtk.VBox()
hbox = gtk.HBox()
self.label = gtk.Label()
entry = gtk.Entry()
bnt = gtk.Button('Ok')
bnt.connect('clicked', self.update_answer, entry)
hbox.pack_start(entry)
hbox.pack_start(bnt)
vbox.pack_start(hbox)
vbox.pack_start(self.label)
self.add(vbox)
def quit_window(self, *args):
""" sai da aplicacao """
gtk.main_quit()
def update_answer(self, button, entry):
""" atualiza o label de resposta """
url = 'http://online.babylon.com/cgi-bin/trans.cgi'\
'?layout=uol.txt&lang=ptg&word=%s'
button.set_sensitive(False)
etext = entry.get_text()
page = urllib.urlopen(url % etext)
page = page.read()
page = page.replace('<br>', '<BR>')
page = page.replace('<BR>', '\n')
no_title = re.compile('(<title>.*</title>)', re.S)
page = no_title.sub('', page)
no_html = re.compile('(<.*?>)', re.S)
page = no_html.sub('', page).strip()
page = page.replace(etext, '<b>%s</b>' % etext, 1)
self.label.set_markup(_(page))
button.set_sensitive(True)
if __name__ == '__main__':
new_app = Tradutor()
new_app.show_all()
gtk.main()
Cotação atual do dólar - versão Python
EVOSIGN - Assinatura aleatória no Evolution
Script em Python 3.6 para fazer scrape de uma URL exportando métricas no formato Prometheus
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Centralizar Logo com Transparência via ImageMagick
Removendo entradas de boot UEFI "fantasmas" via terminal
Atualizações de Segurança Automáticas no Debian
Como cortar as partes de um vídeo com passagens de áudio em branco
Alguém tem que acabar com ANATEL!!! (3)
Uma pergunta bem simples mas não achei resposta (ainda) [RESOLVIDO] (2)
Tentativa de instalar Linux em um notebook HP 246 G6 (2)









