public function translate($language) { $source_arr = $this->getLanguage(); if (is_array($source_arr) && isset($source_arr['id'])) { $source = $source_arr['id']; } $target_arr = explode('-', $language); $target = $target_arr[0]; $translations = array(); $translations = $this->getAllTranslations(); $translator = new LanguageTranslator('AIzaSyBlwXdmxJZ__ZNScwe4zq5r3qh3ebXb26k'); if (count($translations)) { foreach ($translations as $node) { if ($node['language']['id'] == $target) { $slide = new Slide(); $slide->slide_id = $node['id']; $slide->createFromIDLite($slide->getLastRevisionID()); return $slide->id; } } } $old_slide_id = $this->slide_id; //for questions $this->symbolsToLatex(); $replace_array = array(); $replace_array = $this->filterTags(); $q = $this->content; $content = ''; $translation = $translator->translate($q, $target, $source); if ($translation != -1) { $tags_back = $this->addTagsBack($translation, $replace_array); $content = '<div lang="' . $target . '-x-mtfrom-' . $source . '">' . $tags_back . '</div>'; $this->language = $language; $this->translated_from = $this->slide_id; $translated_from_revision = $this->id; $this->content = $content; $this->description = $this->getDescription(); $this->latexToSymbols(); $based_on = NULL; $this->slide_id = $this->dbInsert('slide', array('user_id' => $this->user->id, 'description' => $this->description, 'language' => $this->language, 'translated_from' => $this->translated_from, 'translated_from_revision' => $translated_from_revision)); $new_slide_id = $this->slide_id; //for questions $this->translateQuestions($old_slide_id, $new_slide_id, $source_arr, $language); $this->based_on = NULL; $this->id = $this->dbInsert('slide_revision', array('slide' => $this->slide_id, 'content' => $this->content, 'user_id' => $this->user->id, 'comment' => $this->comment, 'based_on' => $based_on, 'note' => $this->note, 'translation_status' => 'google', 'translated_from_revision' => $translated_from_revision)); return $this->id; } else { return -1; } }
public function detectLanguage() { $q = $this->title; if (strlen($this->abstract)) { $q .= '. ' . $this->abstract; } if (strlen($this->footer_text)) { $q .= '. ' . $this->footer_text; } $translator = new LanguageTranslator('AIzaSyBlwXdmxJZ__ZNScwe4zq5r3qh3ebXb26k'); $detection = $translator->detect($q); $name = $translator->getLanguageName($detection); return $detection . '-' . $name; }