function bing_text_translate($text, $lang_from = 'en', $lang_to = 'ru') { global $settings, $seftranslate_error; //DBQuery $database =& JFactory::getDBO(); $ret_value = $text; $lang_from2 = $lang_from; $lang_to2 = $lang_to; if ($lang_from == 'pt-PT') { $lang_from2 = 'pt'; } if ($lang_to == 'pt-PT') { $lang_to2 = 'pt'; } if ($lang_from == 'zh-CN') { $lang_from2 = 'zh-CHS'; } if ($lang_to == 'zh-CN') { $lang_to2 = 'zh-CHS'; } if ($lang_from == 'zh-TW') { $lang_from2 = 'zh-CHT'; } if ($lang_to == 'zh-TW') { $lang_to2 = 'zh-CHT'; } $params = array(); if (!empty($settings['api_bing_client_secret']) && !empty($settings['api_bing_client_id'])) { //Create the AccessTokenAuthentication object. $authObj = new AccessTokenAuthentication(); //Get the Access token. $accessToken = $authObj->getTokens(); $params['appId'] = "Bearer" . " " . $accessToken; } else { if ($settings['debug']) { throw "Please set bing client secret and client id"; exit; } } $params['text'] = $text; $params['from'] = $lang_from2; $params['to'] = $lang_to2; $params['contentType'] = "text/html"; try { $bing_client = new SoapClient("http://api.microsofttranslator.com/V2/SOAP.svc"); $result = $bing_client->Translate($params); $ret_value = html_entity_decode($result->TranslateResult, ENT_NOQUOTES, 'UTF-8'); } catch (Exception $e) { if ($settings['debug']) { throw $e; exit; } else { $seftranslate_error = true; return $ret_value; } } if (trim($ret_value) == "") { return $ret_value; } //save to database $efentity = new mosSefentity($database); $efentity->hash = md5($text); $efentity->entity_text = $ret_value; $efentity->lang_from = $lang_from; $efentity->lang_to = $lang_to; $efentity->hits = 1; $efentity->date = date("Y-m-d H:i:s"); $efentity->checkin(); $efentity->store(); return $ret_value; }