Changeset 64685 in spip-zone


Ignore:
Timestamp:
Aug 10, 2012, 1:46:33 PM (7 years ago)
Author:
bruno.caillard@…
Message:

Quelques améliorations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/tradauto/inc/translator.php

    r63744 r64685  
    1616        public $clientID; //Client ID of the application.
    1717        public $clientSecret;   //Client Secret key of the application.
    18         public $accessToken;
     18        public $accessToken; // Le token d'accès au service
     19        public $accessTokenDate; // La date de création du token. Un token microsoft expire au bout de 10min.
    1920        public $mt; // Microsoft Translator object
    2021  public $authHeader;
     
    4748                        $authObj = new AccessTokenAuthentication();
    4849                        $this->accessToken = $authObj->getTokens(self::GRANT_TYPE, self::URL_SCOPE, $this->clientID, $this->clientSecret, self::URL_AUTH);
     50                        $this->accessTokenDate = time();
    4951        $this->authHeader = "Authorization: Bearer ". $this->accessToken;
    5052                }
     
    5759
    5860
     61        //**************************************************
     62        // Vérifie l'age du token. Si >=10min (600s), le renouvelle
     63        //**************************************************
     64        function TokenUpdate()
     65        {
     66                if ((time() - $this->accessTokenDate) >= 500) // marge de 100s
     67                {
     68                        echo "<br>TOKENUPDATE : ".date("c");
     69                        $this->get_token();
     70                }
     71        }
     72
     73
    5974        //*************************************************************************************
    6075        // Renvoie une liste des codes des langues prise en charge par le service de traduction
     
    6277        function GetLanguagesForTranslate()
    6378        {
     79                $this->TokenUpdate();
     80
    6481                try
    6582                {
     
    88105        function GetLanguageNames($languageCodes, $locale)
    89106        {
     107                $this->TokenUpdate();
     108
    90109                try
    91110                {
     
    125144        function GetLanguages($locale)
    126145        {
     146                $this->TokenUpdate();
     147
    127148                $languageCodes = $this->GetLanguagesForTranslate();
    128149    $languages = $this->GetLanguageNames($languageCodes, $locale);
     
    132153        //***************************************************************************************
    133154        // Traduit une chaine $inputStr dans une langue $fromLanguage vers une langue $toLanguage
     155        // resultat dans &$result
     156        // renvoie true si OK
     157        // $contenType = 'text/plain' ou "text/html"
    134158        //***************************************************************************************
    135         function Translate($inputStr, $fromLanguage, $toLanguage, $contentType='text/plain')
     159        function Translate($inputStr, $fromLanguage, $toLanguage, &$result, $contentType='text/plain')
    136160        {
     161                $this->TokenUpdate();
     162//sleep(1); $result=$inputStr; return true;  // pour tester sans consommer du quota
    137163
    138164                try
    139165                {
     166                        $translatedStr = "";
    140167        $params = "text=".urlencode($inputStr)."&to=$toLanguage&from=$fromLanguage&contentType=$contentType";
    141168                        //Call Curl Request.//
    142169                        $strResponse = $this->mt->curlRequest(self::URL_Translate."?$params", $this->authHeader);
    143 
     170//echo "<br>strResponse="; var_dump($strResponse);
    144171                        // Interprets a string of XML into an object.
    145172                        $xmlObj = simplexml_load_string($strResponse);
     
    148175            }
    149176
    150                         return $translatedStr;
     177//var_dump($translatedStr);
     178                        if (!is_string($translatedStr)) {echo "Class Translator:Translate : ERREUR : le résultat de traduction est vide.<br>inputStr=$inputStr"; var_dump($strResponse); return false;}
     179
     180      $result = $translatedStr;
     181                        return true;
    151182
    152183                } catch (Exception $e) {
    153184                    echo "Class Translator:Translate : Exception: " . $e->getMessage() . PHP_EOL;
     185                                return false;
    154186                }
    155187        }
Note: See TracChangeset for help on using the changeset viewer.