/** * 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; }