示例#1
0
 /**
  * Install all langvars from addon xml scheme
  */
 public function getLanguageValues($only_originals = false)
 {
     $language_variables = array();
     $node = $this->_getLangVarsSectionName();
     $default_lang = $this->getDefaultLanguage();
     $original_langvars = (array) $this->_xml->xpath($node . "/item[@lang='en']");
     $_original = array();
     foreach ($original_langvars as $_v) {
         $_original[(string) $_v['id']] = (string) $_v;
     }
     $default_langvars = $this->_xml->xpath($node . "/item[@lang='{$default_lang}']");
     if (!empty($default_langvars)) {
         // Fill all languages by default laguage values
         foreach (fn_get_translation_languages() as $lang_code => $_v) {
             // Install default
             foreach ($default_langvars as $lang_var) {
                 $original = isset($_original[(string) $lang_var['id']]) ? $_original[(string) $lang_var['id']] : (string) $lang_var;
                 if ($only_originals) {
                     $language_variables[] = array('msgctxt' => 'Languages:' . (string) $lang_var['id'], 'msgid' => $original);
                 } else {
                     $language_variables[] = array('lang_code' => $lang_code, 'name' => (string) $lang_var['id'], 'value' => (string) $lang_var);
                 }
             }
             if ($lang_code != $default_lang) {
                 $current_langvars = $this->_xml->xpath($node . "/item[@lang='{$lang_code}']");
                 if (!empty($current_langvars)) {
                     foreach ($current_langvars as $lang_var) {
                         $original = isset($_original[(string) $lang_var['id']]) ? $_original[(string) $lang_var['id']] : (string) $lang_var;
                         if ($only_originals) {
                             $language_variables[] = array('msgctxt' => 'Languages:' . (string) $lang_var['id'], 'msgid' => $original);
                         } else {
                             $language_variables[] = array('lang_code' => $lang_code, 'name' => (string) $lang_var['id'], 'value' => (string) $lang_var);
                         }
                     }
                 }
             }
         }
     }
     return $language_variables;
 }