Tradutor on-line em Python+GTK
Publicado por Lincoln de Sousa 16/10/2005
[ Hits: 7.351 ]
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()
Conversor de String em Hex para String plana
Enviando mensagens para celulares TIM
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
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Servidor de DNS BIND Ubuntu server (1)
Podem me chamar de 1mbecil :) (4)
Tem como instalar o Untapped no Linux? (2)
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (3)









