function bing_array_text_translate($arr_text, $lang_from = 'en', $lang_to = 'ru') { global $settings, $seftranslate_error; //DBQuery $database =& JFactory::getDBO(); $ret_value = $arr_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['texts'] = $arr_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->TranslateArray($params); //$ret_value = $result->TranslateArrayResult->TranslateArrayResponse; } catch (Exception $e) { if ($settings['debug']) { throw $e; exit; } else { $seftranslate_error = true; return $ret_value; } } $ret_value = array(); for ($kk = 0; $kk < count($arr_text); $kk++) { $TranslatedText = ""; if (is_array($result->TranslateArrayResult->TranslateArrayResponse)) { $TranslatedText = $result->TranslateArrayResult->TranslateArrayResponse[$kk]->TranslatedText; } else { $TranslatedText = $result->TranslateArrayResult->TranslateArrayResponse->TranslatedText; } $TranslatedText = html_entity_decode($TranslatedText, ENT_NOQUOTES, 'UTF-8'); $ret_value[] = $TranslatedText; $is_translated_before = get_text_translated($arr_text[$kk], $lang_from, $lang_to); if ($is_translated_before !== false || trim($TranslatedText) == "") { continue; } //save to database $efentity = new mosSefentity($database); $efentity->hash = md5($arr_text[$kk]); $efentity->entity_text = $TranslatedText; $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; }