Tradutor on-line em Python+GTK
Publicado por Lincoln de Sousa 16/10/2005
[ Hits: 7.317 ]
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 do Dólar e Euro e conversão para Real
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Erro ao instalar programa, "você tem pacotes retidos quebrados&qu... (4)
VOL já não é mais como antes? (15)
Como personalizar o lxde? [RESOLVIDO] (5)
Flatpaks não funcionam após atualizar pelo Gerenciador de Atualizações... (3)









