Ejemplo n.º 1
0
 public function translateAll()
 {
     $this->consoleInit();
     $input = JFactory::getApplication()->input;
     //$from = $input->get('translate_from', '*');
     //$to = $input->get('translate_to', '*');
     $languages = JalangHelper::getListInstalledLanguages();
     $from = JalangHelper::getDefaultLanguage();
     if (!headers_sent()) {
         header('Content-type: text/html; charset=utf-8');
     }
     foreach ($languages as $lang) {
         if ($lang->element == $from) {
             continue;
         }
         $params = JComponentHelper::getParams('com_jalang');
         $translator = JalangHelperTranslator::getInstance($params->get('translator_api_active', 'bing'));
         $translator->sendOutput('<h3>' . JText::sprintf('START_TO_TRANSLATE_FOR_THE_VAR_LANGUAGE', $lang->name) . '</h3>');
         $translator->translateAllTables($from, $lang->element);
         //sleep(2);
         $translator->sendOutput(str_pad('', 50, '-'));
     }
     jexit('Done');
 }
Ejemplo n.º 2
0
 /**
  * Build an SQL query to load the list data.
  *
  * @return  JDatabaseQuery
  * @since   1.6
  */
 public function getListQuery2($model)
 {
     if (!$this->table) {
         $this->errorExtendMethod(__METHOD__);
         return false;
     }
     // Create a new query object.
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('*');
     $query->from('#__' . $this->table . ' AS a');
     // Filter on the language.
     $defaultLanguage = JalangHelper::getDefaultLanguage();
     $language = $model->getState('mainlanguage');
     $filter_search = $model->getState('filter.search');
     if ($language) {
         if ($this->table_type == 'native' || $this->table_type == 'table_ml') {
             $langField = 'a.' . $db->quoteName($this->language_field);
             if ($this->language_mode == 'id') {
                 $query->where($langField . ' = ' . $db->quote(JalangHelper::getLanguageIdFromCode($language)));
             } else {
                 if ($language == $defaultLanguage) {
                     $query->where('(' . $langField . ' = ' . $db->quote($language) . ' OR ' . $langField . ' = ' . $db->quote('*') . ' OR ' . $langField . ' = ' . $db->quote('') . ')');
                 } else {
                     $query->where($langField . ' = ' . $db->quote($language));
                 }
             }
         } elseif ($this->table_type == 'table') {
             if ($language == '*') {
                 $language = $defaultLanguage;
             }
             $params = JComponentHelper::getParams('com_jalang');
             $translator = JalangHelperTranslator::getInstance($params->get('translator_api_active', 'bing'));
             $table = $translator->getLangTable($this->table, $language);
             $query->clear('from');
             $query->from('#__' . $table);
         } elseif ($this->table_type == 'alias') {
             if ($language != '*') {
                 @(list($shortlang, $country) = explode('-', $language));
                 if ($language == $defaultLanguage) {
                     $query->where('(' . $db->quoteName($this->alias_field) . ' LIKE ' . $db->quote('%-' . $shortlang) . ' OR ' . $db->quoteName($this->alias_field) . ' NOT REGEXP ' . $db->quote('\\-[a-z]{2}$') . ')');
                 } else {
                     $query->where($db->quoteName($this->alias_field) . ' LIKE ' . $db->quote('%-' . $shortlang));
                 }
             } else {
                 $query->where($db->quoteName($this->alias_field) . ' NOT REGEXP ' . $db->quote('\\-[a-z]{2}$'));
             }
         }
     }
     if (count($this->translate_filters)) {
         $query->where($this->translate_filters);
     }
     if ($filter_search) {
         $fields = $this->getDisplayFields();
         if (is_array($fields)) {
             $filterKeyword = array();
             foreach ($fields as $field => $ftitle) {
                 $filterKeyword[] = $db->quoteName($field) . ' LIKE ' . $db->quote('%' . $filter_search . '%');
             }
             $query->where('(' . implode(' OR ', $filterKeyword) . ')');
         } else {
             $query->where($db->quoteName($this->title_field) . ' LIKE ' . $db->quote('%' . $filter_search . '%'));
         }
     }
     $ordering = $model->getState('list.ordering', 'a.ordering');
     if (in_array($ordering, $this->getSortFields())) {
         $query->order($ordering . ' ' . $model->getState('list.direction', 'ASC'));
     }
     return $query;
 }