Tradutor on-line em Python+GTK
Publicado por Lincoln de Sousa 16/10/2005
[ Hits: 7.460 ]
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 que obtém informações disponibilizadas a bots pelos sites
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
como usar o caja como cliente FTP no linux mint? (3)
O que você está ouvindo agora? [2] (247)
O que significa essa expressão? (3)
o que é esta mensagem? relatorios do sistema (8)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (3)









