Tradutor on-line em Python+GTK
Publicado por Lincoln de Sousa 16/10/2005
[ Hits: 7.155 ]
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()
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
Controle do PS5 no Linux Mint funciona? [RESOLVIDO] (5)
Bluetooth CSR 4.0 Dongle (Alternativo) (0)
Atualização do Linux para 21 "Vanessa... (3)