Tradutor on-line em Python+GTK
Publicado por Lincoln de Sousa 16/10/2005
[ Hits: 7.146 ]
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()
HCrawler 3.0 - crawler escrito em Python 3
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Como corrigir o erro chave publica virtual box (1)
Qual driver da NVIDIA instalar? (4)