示例#1
0
文件: Translate.php 项目: blrik/bHome
 public function postTranslate($trslen = null, $trslin = 'en', $trslout = 'ru')
 {
     $lang = $trslin . '-' . $trslout;
     $translate = new Translator($this->yandexKey);
     $translation = $translate->translate($trslen, $lang);
     $source['translation'] = $translation;
     $source['source'] = $translation->getSource();
     return $source;
 }
 /**
  * @param string $sourceString
  * @param string $translateDirection
  * @param bool   $html
  * @param int    $options
  *
  * @return Translation
  *
  * @throws FailedTranslationException
  */
 public function translate($sourceString, $translateDirection, $html = false, $options = 0)
 {
     try {
         $translation = $this->translator->translate($sourceString, $translateDirection, $html, $options);
         return $translation;
     } catch (Exception $e) {
         throw new FailedTranslationException($sourceString, $translateDirection);
     }
 }
 protected function _translateByApi()
 {
     try {
         /** @var Yandex\Translate\Translator $translator */
         $translator = new Translator(Xxx_YandexTranslate_Helper_Data::YANDEX_TRANSLATE_API_KEY);
         /** @var Yandex\Translate\Translation $translation */
         $translation = $translator->translate($this->getString(), $this->getLanguage());
         $this->setTranslated($translation->__toString())->save();
     } catch (Exception $e) {
         Mage::logException($e);
         // fallback
         $this->setTranslated($this->getString());
     }
 }
示例#4
0
 public static function generateTranslation($phrase, $thisLang)
 {
     if ($phrase && $thisLang) {
         $checkPresentPhrase = self::where("phrase", "like", $phrase)->first();
         if (!isset($checkPresentPhrase->id)) {
             $newPhrase = self::create(["phrase" => $phrase]);
             try {
                 $langsDef = Config::get('translations::config.def_locale');
                 $langsAll = Config::get('translations::config.alt_langs');
                 foreach ($langsAll as $lang) {
                     $lang = str_replace("ua", "uk", $lang);
                     $langsDef = str_replace("ua", "uk", $langsDef);
                     $translator = new Translator(Config::get('builder::translate_cms.api_yandex_key'));
                     $translation = $translator->translate($phrase, $langsDef . '-' . $lang);
                     $lang = str_replace("uk", "ua", $lang);
                     if (isset($translation->getResult()[0])) {
                         Translate::create(["id_translations_phrase" => $newPhrase->id, "lang" => $lang, "translate" => $translation->getResult()[0]]);
                     } else {
                         return "error.No get results";
                     }
                 }
             } catch (Yandex\Translate\Exception $e) {
                 return $e->getMessage();
                 // handle exception
             }
             self::reCacheTrans();
             $arrayTranslate = Trans::fillCacheTrans();
             if (isset($arrayTranslate[$phrase][$thisLang])) {
                 $phraseReturn = $arrayTranslate[$phrase][$thisLang];
             } else {
                 $phraseReturn = "Ошибка перевода";
             }
             return $phraseReturn;
         } else {
             $translatePhrase = Translate::where("id_translations_phrase", $checkPresentPhrase->id)->where("lang", "like", $thisLang)->first();
             if (isset($translatePhrase->translate)) {
                 return $translatePhrase->translate;
             }
         }
     }
 }
示例#5
0
public function postTranslate(){
if(Input::has('text')){
$key = 'trnsl.1.1.20140602T141504Z.c89e08d35fd83139.2bf4e4b64549f6bab0223db6d66c0eed408825db';
$text = Input::get('text');
try {
  $translator = new Translator($key);
  $translation = $translator->translate($text, 'ru');
return View::make('tools.translate')
->with('translation', $translation)
->with('source', $translation->getSource());
} catch (Exception $e) {
  echo 'error';
return View::make('tools.translate')
->with('error', $e->getMessage());
}
}
else{
return Redirect::back()->with('error', 'Необходимо написать текст для перевода');
}

}
 public function chatInGameForKOS(Request $request)
 {
     $Username = $request->user()->displayName();
     $Msg = $request->serverchatmsg;
     $Msg = htmlentities($Msg);
     if ($Msg == '' || empty($Msg)) {
         return;
     }
     if ($request->user()->muted) {
         return;
     }
     if ($request->user()->isAdmin()) {
         $explode = explode(" ", $Msg);
         // If server command then run it
         if ($explode[0] == "kosc") {
             array_forget($explode, ["0"]);
             $msg = implode(" ", $explode);
             $MsgFormated = env("ADMIN_COMMAND_SECRET") . " " . $Username . " " . $msg;
         } else {
             $explode = explode(" ", $Msg);
             // If server command then run it
             if ($explode[0] == "!translate" || $explode[0] == "!tr" || $explode[0] == "!t") {
                 array_forget($explode, ["0"]);
                 $Msg = implode(" ", $explode);
                 try {
                     $translator = new Translator(env('YANDEX_API_KEY'));
                     $translation = $translator->translate($Msg, 'en');
                     $Msg = $translation;
                 } catch (Exception $e) {
                     $Msg = implode(" ", $explode);
                 }
             }
             $userLvl = $request->user()->roles()->first()->display_name;
             if ($userLvl == "Super Administrator") {
                 $userLvl = "[c=00ff00]<SuperAdmin>[\\c]";
             } elseif ($userLvl == "Administrator") {
                 $userLvl = "[c=00ff00]<Admin>[\\c]";
             } else {
                 $userLvl = "[c=ffa500]<{$userLvl}>[\\c]";
             }
             $MsgFormated = "[c=ffff00][u][b]" . $Username . "[\\b][\\u][\\c] {$userLvl}: [c=FFFFFF]" . $Msg;
         }
     } else {
         $explode = explode(" ", $Msg);
         // If server command then run it
         if ($explode[0] == "!translate" || $explode[0] == "!tr" || $explode[0] == "!t") {
             array_forget($explode, ["0"]);
             $Msg = implode(" ", $explode);
             try {
                 $translator = new Translator(env('YANDEX_API_KEY'));
                 $translation = $translator->translate($Msg, 'en');
                 $Msg = $translation;
             } catch (Exception $e) {
                 $Msg = implode(" ", $explode);
             }
         }
         $userLvl = $request->user()->roles()->first()->display_name;
         if ($userLvl == "Super Administrator") {
             $userLvl = "[c=00ff00]<SuperAdmin>[\\c]";
         } elseif ($userLvl == "Administrator") {
             $userLvl = "[c=00ff00]<Admin>[\\c]";
         } else {
             $userLvl = "[c=ffa500]<{$userLvl}>[\\c]";
         }
         $MsgFormated = "[c=ffff00][u][b]" . $Username . "[\\b][\\u][\\c] {$userLvl}: [c=FFFFFF]" . $Msg;
     }
     $txtip = "127.0.0.1";
     $txtportnum = "10485";
     $sock = fsockopen("udp://" . $txtip, $txtportnum, $errno, $errstr, 2);
     if (!$sock) {
         echo "{$errstr} ({$errno})<br/>\n";
         exit;
     }
     $MsgFormated = htmlspecialchars_decode(html_entity_decode($MsgFormated));
     fputs($sock, $MsgFormated);
     $gotfinal = False;
     $data = "";
     socket_set_timeout($sock, 0, 1000);
     fclose($sock);
     exit;
 }
 public function doTranslate()
 {
     try {
         $lang = Input::get("lang");
         $phrase = Input::get("phrase");
         $langs_def = Config::get('builder::translate_cms.lang_default');
         if ($lang == $langs_def) {
             $arr_res = array("lang" => $lang, "text" => $phrase);
             return json_encode($arr_res);
         }
         $lang = str_replace("ua", "uk", $lang);
         $langs_def = str_replace("ua", "uk", $langs_def);
         $translator = new Translator(Config::get('builder::translate_cms.api_yandex_key'));
         $translation = $translator->translate($phrase, $langs_def . '-' . $lang);
         $lang = str_replace("uk", "ua", $lang);
         if (isset($translation->getResult()[0])) {
             $arr_res = array("lang" => $lang, "text" => $translation->getResult()[0]);
             return json_encode($arr_res);
         } else {
             return "error.No get results";
         }
     } catch (Yandex\Translate\Exception $e) {
         return $e->getMessage();
         // handle exception
     }
 }
示例#8
0
 /**
  * Translate from one langage to other via google translate api
  * @param Request $request
  */
 public function translateText(Request $request)
 {
     \Log::info(\Input::all());
     if (env('TRANSLATE_KEY') != $request->key) {
         print "KnightofSorrow.tk: Invalid Usage Key";
         exit;
     }
     $from_lang = $request->from_lang;
     if ($from_lang == "detect") {
         $from_lang = null;
     }
     $to_lang = $request->to_lang;
     $text = $request->text;
     $player = $request->player;
     try {
         $translator = new Translator(env('YANDEX_API_KEY'));
         $translation = $translator->translate($text, 'en');
         $translated_text = $translation;
         $language = $translation->getSourceLanguage();
     } catch (Exception $e) {
         $language = "Unknown";
         $translated_text = $text;
     }
     if ($language == false || $language == null || $language == "") {
         $language = "Unknown";
     } else {
         $language = Utils::languageByCode1($language);
     }
     printf("[c=00ff00][b]%s[\\b][c=ffff00] (in %s)[c=00ff00]: %s[\\c]", $player, $language, $translated_text);
     exit;
 }
示例#9
0
 public function translate($text, $language, $isHtml = false, $options = 0)
 {
     $key = Config::get('jarboe::translate.yandex_api_translation_key');
     if (!$key) {
         throw new \RuntimeException('Yandex api key for translations is not set');
     }
     $translator = new Translator($key);
     $translation = $translator->translate($text, $language, $isHtml, $options);
     // FIXME:
     return $translation->__toString();
 }
<?php

header('Content-Type: text/json; charset=utf-8');
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once __DIR__ . '/vendor/autoload.php';
use Yandex\Translate\Translator;
use Yandex\Translate\Exception;
if (isset($_GET['text'])) {
    $text = $_GET['text'];
    $key = "trnsl.1.1.20151128T201030Z.26dda6883a34f555.9f891613514d6b32abf4346be07fd229183f1429";
    try {
        $translator = new Translator($key);
        $en = $translator->translate($text, 'en')->getResultText();
        $de = $translator->translate($text, 'de')->getResultText();
        $ru = $translator->translate($text, 'ru')->getResultText();
        $fr = $translator->translate($text, 'fr')->getResultText();
        $ar = $translator->translate($text, 'ar')->getResultText();
        $language = file_get_contents('http://ws.detectlanguage.com/0.2/detect?key=4a34be079e10fe1aa3fd334e8de3434c&q=' . urlencode($text));
        $language = json_decode($language);
        $language = json_encode($language->data->detections[0]->language);
        $language = trim($language, '"');
        $response = array('lang' => $language, 'en' => $en, 'ru' => $ru, 'de' => $de, 'fr' => $fr, 'ar' => $ar);
        echo json_encode($response);
    } catch (Exception $e) {
        // handle exception
    }
}
 private function check_db()
 {
     $langs = Config::get('translations::config.alt_langs');
     foreach ($this->arr_fraze as $el) {
         $el_slashes = addslashes($el);
         $check_phrase = DB::table("translations_phrases")->whereRaw(" phrase like BINARY '{$el_slashes}' ")->count();
         if ($check_phrase == 0) {
             $model = new Trans();
             $model->phrase = trim($el_slashes);
             $model->save();
             $id_last = $model->id;
             foreach ($langs as $k => $ellg) {
                 $lg = $ellg;
                 if ($ellg == "ua") {
                     $ellg = "uk";
                 }
                 $def_lang = Config::get('translations::config.def_locale');
                 if ($def_lang == "ua") {
                     $def_lang = "uk";
                 }
                 $translator = new Translator(Config::get('builder::translate_cms.api_yandex_key'));
                 $translation = $translator->translate($el, $def_lang . '-' . $ellg);
                 if (isset($translation->getResult()[0])) {
                     $text = $translation->getResult()[0];
                 }
                 if ($ellg == "uk") {
                     $ellg = "ua";
                 }
                 if ($text) {
                     $translate_rec = new Translate();
                     $translate_rec->lang = $ellg;
                     $translate_rec->translate = $text;
                     $translate_rec->id_translations_phrase = $id_last;
                     $translate_rec->save();
                 }
             }
         }
     }
 }
示例#12
-1
 /**
  * Detects the language of the specified text.
  * @param string $text The text to detect the language for.
  * @return string
  * @throws InvalidTranslationException
  */
 public function detect($text)
 {
     try {
         $translation = $this->translator->detect($text);
         return (string) $translation;
     } catch (\Exception $e) {
         throw new InvalidTranslationException('Yandex: ' . $e->getMessage(), $e->getCode(), $e);
     }
 }