public function doSaveTranslate() { parse_str(Input::get('data'), $data); $validator = Validator::make($data, Trans::$rules); if ($validator->fails()) { return Response::json(array('status' => 'error', "errors_messages" => $validator->messages())); } $model = new Trans(); $model->phrase = strip_tags(str_replace('"', '', trim($data['phrase']))); $model->save(); $langs = Config::get('translations::config.alt_langs'); foreach ($data as $k => $el) { if (in_array($k, $langs) && $el && $model->id) { $model_trans = new Translate(); $model_trans->translate = trim($el); $model_trans->lang = $k; $model_trans->id_translations_phrase = $model->id; $model_trans->save(); } } Trans::reCacheTrans(); return Response::json(array("status" => "ok", "ok_messages" => "Фраза успешно добавлена")); }
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(); } } } } }