Journal Google translate sans quitter votre emacs

Posté par . Licence CC by-sa
Tags : aucun
7
2
mar.
2015

Bonjour à tous,
J'écris cette dépêche pour partager un modeste script elisp nommé gg-translate.el. Ce script permet d'utiliser les services de google translate sans quitter votre emacs. Le code source est dans un dépôt git publique hébergé par gitlab.

Utilisation

Il suffit simplement de sectionner le texte à traduire puis de taper la commande M-x gg-translate et d'indiquer la langue dans laquelle vous voulez traduire le texte. Le script vouvre un nouveau buffer ou apparaît la traduction.

Comment ça fonctionne ?

Le script gg-translate.el n'est, en fait, qu'une interface au module python goslate. Ce dernier est facilement installable avec pip. Concernant la qualité du script elisp, j'ai fait ce que j'ai pu… mais vous conviendrez que le lisp, ça se mérite !

Libre à vous de cloner, comitter, pusher & puller !

Bien à vous,
omc.

  • # Des fautes...

    Posté par . Évalué à -1.

    Zut, il y a quelques fautes de frappe… Est-il possible de modifier le journal ?

  • # en bash

    Posté par (page perso) . Évalué à 9.

    #!/bin/bash
    # access translate.google.com from terminal
    
    help='translate <text> [[<source language>] <target language>]
    if target missing, use DEFAULT_TARGET_LANG
    if source missing, use auto'
    
    # adjust to taste
    DEFAULT_TARGET_LANG=en
    
    if [[ $1 = -h || $1 = --help ]]
    then
        echo "$help"
        exit
    fi
    
    if [[ $3 ]]; then
        source="$2"
        target="$3"
    elif [[ $2 ]]; then
        source=auto
        target="$2"
    else
        source=auto
        target="$DEFAULT_TARGET_LANG"
    fi
    
    result=$(curl -s -i --user-agent "" -d "sl=$source" -d "tl=$target" --data-urlencode "text=$1" https://translate.google.com)
    encoding=$(awk '/Content-Type: .* charset=/ {sub(/^.*charset=["'\'']?/,""); sub(/[ "'\''].*$/,""); print}' <<<"$result")
    #iconv -f $encoding <<<"$result" | awk 'BEGIN {RS="<div"};/<span[^>]* id=["'\'']?result_box["'\'']?/ {sub(/^.*id=["'\'']?result_box["'\'']?(>| [^>]*>)([ \n\t]*<[^>]*>)*/,"");sub(/<.*$/,"");print}' | html2text -utf8
    iconv -f $encoding <<<"$result" |  awk 'BEGIN {RS="</div>"};/<span[^>]* id=["'\'']?result_box["'\'']?/' | html2text -utf8
    exit
    

    sur cette page : http://crunchbang.org/forums/viewtopic.php?id=17034

  • # Intéressant

    Posté par . Évalué à 2.

    C'est une bonne idée. Je n'ai pas le temps de jouer avec (nouveau job avec déménagement) mais cela pourrait être utile.

    Ta commande gg-translate ne semble gérer que le langage destination avec l'option -t de goslate.py mais il serait bien de pouvoir aussi spécifier le langage source avec l'option -s.

    Idéalement, il faudrait aussi pouvoir prédéfinir des alias pour les paires source & destination.

    • [^] # Re: Intéressant

      Posté par . Évalué à -1.

      Merci du retour.
      Oui, il faudrait rajouter la langue source avec l'option -s. Mais gg détecte de façon automatique la langue source. C'est tés efficace et je n'ai jamais eu de problème de ce coté là.

  • # BrowseAproposURL

    Posté par (page perso) . Évalué à 1.

    Pas testé gg-translate.el mais je profite de l'occasion pour rappeler l'existence de BrowseAproposURL que j'utilise quotidiennement.

  • # apertium ?

    Posté par (page perso) . Évalué à 2. Dernière modification le 03/03/15 à 18:52.

    S'il te prend l'envie d'ajouter d'autres moteurs de traduction, tu peux regarder du côté de http://apertium.org (qui est un moteur de traduction libre).

    Il n'y a pas (encore) toutes les paires de langues mais cela va en s'améliorant.

    Il y a même un service web : http://wiki.apertium.org/wiki/Apertium_web_service

  • # text-translator.el

    Posté par . Évalué à 1.

    Dans le même ordre d'idées, j'ai pas mal utilisé text-translator.el de khiker. Il permet, à partir d'un même texte, de comparer les traductions obtenues d'une demi-douzaine de sites.

    TextTranslator sur EmacsWiki
    Home Page

    Bien pratique ces petits scripts, surtout le soir après 23h, quand on a plus bien les yeux en face des trous.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.