Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
 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;
 }