private function translate_google_api() { $sBaselang = Yii::app()->getRequest()->getPost('baselang'); $sTolang = Yii::app()->getRequest()->getPost('tolang'); $sToconvert = Yii::app()->getRequest()->getPost('text'); $aSearch = array('zh-Hans', 'zh-Hant-HK', 'zh-Hant-TW', 'nl-informal', 'de-informal', 'it-formal', 'pt-BR', 'es-MX', 'nb', 'nn'); $aReplace = array('zh-CN', 'zh-TW', 'zh-TW', 'nl', 'de', 'it', 'pt', 'es', 'no', 'no'); $sBaselang = str_replace($aSearch, $aReplace, $sBaselang); $sTolang = str_replace($aSearch, $aReplace, $sTolang); $error = false; try { require_once APPPATH . '/third_party/gtranslate-api/GTranslate.php'; $gtranslate = new Gtranslate(); $objGt = $gtranslate; // Gtranslate requires you to run function named XXLANG_to_XXLANG $sProcedure = $sBaselang . "_to_" . $sTolang; $parts = LimeExpressionManager::SplitStringOnExpressions($sToconvert); $sparts = array(); foreach ($parts as $part) { if ($part[2] == 'EXPRESSION') { $sparts[] = $part[0]; } else { $convertedPart = $objGt->{$sProcedure}($part[0]); $convertedPart = str_replace("<br>", "\r\n", $convertedPart); $convertedPart = html_entity_decode(stripcslashes($convertedPart)); $sparts[] = $convertedPart; } } $sOutput = implode(' ', $sparts); } catch (GTranslateException $ge) { // Get the error message and build the ouput array $error = TRUE; $sOutput = $ge->getMessage(); } $aOutput = array('error' => $error, 'baselang' => $sBaselang, 'tolang' => $sTolang, 'converted' => $sOutput); header('Content-type: application/json'); return ls_json_encode($aOutput); Yii::app()->end(); }
* Creates a JSON interface for the auto-translate feature */ include_once "login_check.php"; header('Content-type: application/json'); include_once 'classes/gtranslate/GTranslate.php'; $sBaselang = $_REQUEST['baselang']; $sTolang = $_REQUEST['tolang']; $sToconvert = $_REQUEST['text']; $aSearch = array('zh-Hans', 'zh-Hant-HK', 'zh-Hant-TW', 'nl-informal', 'de-informal', 'it-formal', 'pt-BR', 'es-MX', 'nb', 'nn'); $aReplace = array('zh-CN', 'zh-TW', 'zh-TW', 'nl', 'de', 'it', 'pt', 'es', 'no', 'no'); $sTolang = str_replace($aSearch, $aReplace, $sTolang); try { $objGt = new Gtranslate(); // Gtranslate requires you to run function named XXLANG_to_XXLANG $sProcedure = $sBaselang . "_to_" . $sTolang; $parts = LimeExpressionManager::SplitStringOnExpressions($sToconvert); $sparts = array(); foreach ($parts as $part) { if ($part[2] == 'EXPRESSION') { $sparts[] = $part[0]; } else { $convertedPart = $objGt->{$sProcedure}($part[0]); $convertedPart = str_replace("<br>", "\r\n", $convertedPart); $convertedPart = html_entity_decode(stripcslashes($convertedPart)); $sparts[] = $convertedPart; } } $sConverted = implode(' ', $sparts); $aOutput = array('error' => false, 'baselang' => $sBaselang, 'tolang' => $sTolang, 'converted' => $sConverted); } catch (GTranslateException $ge) { // Get the error message and build the ouput array