Changeset 111345 in spip-zone for _plugins_/traduire_texte/trunk


Ignore:
Timestamp:
Aug 17, 2018, 2:22:22 PM (7 months ago)
Author:
toutati@…
Message:

Ajout du moteur de traduction Yandex en mode simple (sans librairie donc) tests ok. +Z

Location:
_plugins_/traduire_texte/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/traduire_texte/trunk/formulaires/configurer_traduiretexte.html

    r105912 r111345  
    3232                                        attention=[(#VAL{_GOOGLETRANSLATE_APIKEY}|defined|?{<:traduiretexte:une_constante_surcharge:>,''})],
    3333                                        placeholder=Izef5CnvCBhkNd15cvgM61Lpn2Y4d2hfW4ht9aO})]
     34                                       
     35                                [(#SAISIE{input, cle_yandex,
     36                                        label=<:traduiretexte:label_cle_yandex:>,
     37                                        conteneur_class=pleine_largeur,
     38                                        attention=[(#VAL{_YANDEX_APIKEY}|defined|?{<:traduiretexte:une_constante_surcharge:>,''})],
     39                                        placeholder=Izef5CnvCBhkNd15cvgM61Lpn2Y4d2hfW4ht9aO})]
    3440
    3541                        </div>
  • _plugins_/traduire_texte/trunk/inc/traduire_texte.php

    r105924 r111345  
    9999}
    100100
     101/**
     102 * Traduire avec Yandex
     103 */
     104class TT_Traducteur_Yandex extends TT_Traducteur {
     105        public $type = 'yandex';
     106        public $maxlen = 10000;
     107
     108        protected function _traduire($texte, $destLang = 'fr', $srcLang) {
     109                $destLang = urlencode($destLang);
     110                //yandex peut deviner la langue source
     111                if (isset($srcLang)){
     112                        $srcLang = urlencode($srcLang);
     113                        $lang = "$srcLang-$destLang";
     114                } else {
     115                        $lang = $destLang;
     116                }
     117
     118                $url_page = "https://translate.yandex.net/api/v1.5/tr.json/translate?";
     119                //  & [format=<text format>] & [options=<translation options>] & [callback=<name of the callback function>]
     120                $parameters = "key=" . $this->apikey . "&text=" . rawurlencode($texte) . "&lang=$lang";
     121
     122                $ch = curl_init();
     123                curl_setopt($ch, CURLOPT_URL, $url_page);
     124                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     125                curl_setopt($ch, CURLOPT_REFERER, !empty($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : "");
     126                curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
     127                curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-HTTP-Method-Override: GET'));
     128                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     129        $body = curl_exec($ch);
     130                curl_close($ch);
     131
     132                //{"code":200,"lang":"fr-en","text":["hello"]}
     133                $json = json_decode($body, true);
     134               
     135                if (isset($result['code']) && $result['code'] > 200) {
     136                        spip_log($json, 'translate');
     137                        return false;
     138        }
     139               
     140                return urldecode($json["text"][0]);
     141        }
     142}
     143
    101144
    102145class TT_Traducteur_Shell extends TT_Traducteur {
     
    152195        if (is_null($traducteur)) {
    153196                include_spip('inc/config');
    154                 if (defined('_BING_APIKEY')) {
     197                if (defined('_YANDEX_APIKEY')) {
     198                        $traducteur = new TT_Traducteur_Yandex(_YANDEX_APIKEY);
     199                } elseif (defined('_BING_APIKEY')) {
    155200                        $traducteur = new TT_Traducteur_Bing(_BING_APIKEY, 10000);
    156201                } elseif (defined('_GOOGLETRANSLATE_APIKEY')) {
  • _plugins_/traduire_texte/trunk/lang/traduiretexte_fr.php

    r105912 r111345  
    2222        'label_cle_google' => 'Clé d’API pour Google Translate',
    2323        'label_cle_bing' => 'Clé d’API pour Bing',
     24        'label_cle_yandex' => 'Clé d’API pour Yandex',
    2425        'label_texte_source' => 'Texte source',
    2526        'label_hash' => 'Hash',
  • _plugins_/traduire_texte/trunk/paquet.xml

    r105924 r111345  
    22        prefix="traduiretexte"
    33        categorie="outil"
    4         version="0.4.0"
     4        version="0.4.1"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.