(Courriels de diversion: <exhumes@demangeaisons-relaxe.com> <disperseraient@admettront-pressentions.com> <ajustant@deplafonneront-dimensionnee.com> <fragmenterais@chirurgiens-terrifieriez.com> <motocyclette@evasion-succombiez.com> <frayait@redistribueras-ca.com> <sanatorium@bourrer-hemostatique.com> <abattoirs@constellation-consommions.com> <ressuscitees@colles-paralyses.com> <maximisera@garbure-rhabillaient.com> )


Jean-Michel a écrit :

> Jean-Michel a écrit :
>
>
>   
> Ou bien un script python qui appelle le service google?
>
>   

A titre d'illustration, l'ébauche de script suivant donne une URL sur le
Japon, écrite en Russe, à traduire au service de traduction en ligne
sus-cité.

Il récupère les 3 frames, et pour chacune d'elle applique la redirection.

Une fois la redirection effectuée, la page html est filtrée avec la
fonction epure, mais ce n'est pas nécessairement le filtre souhaité...

Le tout est dumpé dans la sortie standard. Quelques approximations HTML
ont été faites.


Bonne chance...



#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import urllib
import re
import string
import time



langCode={ "arabic":"ar", "bulgarian":"bg", "chinese":"zh-CN",
"croatian":"hr", "czech":"cs", "danish":"da", "dutch":"nl",
"english":"en", "finnish":"fi", "french":"fr", "german":"de",
"greek":"el", "hindi":"hi", "italian":"it", "japanese":"ja",
"korean":"ko", "norwegian":"no", "polish":"pl", "portugese":"pt",
"romanian":"ro", "russian":"ru", "spanish":"es", "swedish":"sv" }

def setUserAgent(userAgent):
    urllib.FancyURLopener.version = userAgent
    pass

#def translate(text, fromLang="English", toLang="German"):
def translate(text, fromLang="Russian", toLang="French"):
    # urllib.FancyURLopener.version = "Mozilla/5.0 (X11; U; Linux i686;
en-US; rv:1.9.0.1) Gecko/2008070400 SUSE/3.0.1-0.1 Firefox/3.0.1"
    setUserAgent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1)
Gecko/2008070400 SUSE/3.0.1-0.1 Firefox/3.0.1")
    try:
        post_params = urllib.urlencode({"langpair":"%s|%s"
%(langCode[fromLang.lower()],langCode[toLang.lower()]),
"text":text,"ie":"UTF8", "oe":"UTF8"})
    except KeyError, error:
        print "Currently we do not support %s" %(error.args[0])
        return
    page = urllib.urlopen("http://translate.google.com/translate_t";,
post_params)
    content = page.read()
    page.close()
    return content

def translate_url(url, fromLang="Russian", toLang="French"):
    content = translate( url, fromLang, toLang)
    content = string.replace(content,'><', ">\n<")
    content = string.replace(content,'&amp;', "&")  #FIXME: mieux
envisageable...
    return content

def epure(html):
    return re.sub ( '<span class="google-src-text" style="direction:
ltr; text-align: left">(.*?)</span>', '', html) # \1 pas pris
                    #<span class="google-src-text" style="direction:
ltr; text-align: left">



def translate_url_main(url, fromLang="Russian", toLang="French"):
    content = translate_url(url, fromLang, toLang)
    #while ( match = re.search('<frame src="([^"]*?)"', content) ):
    matches = re.findall('<frame src="([^"]*?)"', content)
    for value in matches:
      #value = match.groups()[0]
      print
      print value
      page = urllib.urlopen("http://translate.google.com"; + value )
      time . sleep(3)
      content2 = page.read()
      content2 = string.replace(content2,'><', ">\n<")
      content2 = string.replace(content2,'&amp;', "&")  #FIXME: mieux
envisageable...
      page.close()
      print
      print content2
      print
      match = re.search( '<meta http-equiv="refresh"
content="0;URL=([^"]*?)"' , content2 )
      if (match):
          redirect_url = match.groups()[0]
          print redirect_url
          print
          page = urllib.urlopen(redirect_url)
          time . sleep(3)
          content3 = page.read()
          content3 =  epure(content3)
          content3 = string.replace(content3,'><', ">\n<")
          print epure(content3)

      print

    return content

def translate_text(text, fromLang="Russian", toLang="French"):
    content = translate( text, fromLang, toLang)
    match = re.search("<div id=result_box dir=\"ltr\">(.*?)</div>", content)
    value = match.groups()[0]
    return value


print translate_text( "Высшим органом государственной власти и
единственным законодательным органом в Японии является Парламент. Он
состоит из двух палат: Палаты представителей и Палаты советников." )

print

print translate_url_main( "http://ru.wikipedia.org/wiki/Япония"; )





-----------------------------------------------------------------
Les listes de diffusion du CULTe - Pour une informatique libre
http://www.CULTe.org/listes/
Pour se desabonner:
mailto:linux-31-unsubscribe@CULTe.org?subject=Cliquez_sur_ENVOYER