Pular para o conteúdo

Tradutor on-line em Python+GTK

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!!!
Lincoln de Sousa mindingo
Hits: 7.494 Categoria: Python Subcategoria: Internet
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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!!!
Download tradutor.py Enviar nova versão

Esconder código-fonte

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

Python script para inundação de email

Envio e recebimento de arquivos em Python

X-Chat 2 MultiMsg

Upload gráfico via ftp em GTK

#1 Comentário enviado por poet em 14/12/2005 - 17:24h
Muito Legal mesmo !!
valeu.
[]ś
#2 Comentário enviado por Brunonormandia em 07/09/2007 - 19:39h
muito útil seu script!
Parabéns

Contribuir com comentário

Entre na sua conta para comentar.