Tradutor on-line em Python+GTK
Publicado por Lincoln de Sousa 16/10/2005
[ Hits: 7.367 ]
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()
Script em Python 3.6 para fazer scrape de uma URL exportando métricas no formato Prometheus
Downloader modo texto - Python 3
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como quebrar senha usando john the ripper
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Não consigo instalar distro antiga no virtualbox nem direto no hd (22)
Podem me chamar de 1mbecil :) [RESOLVIDO] (29)









