예제 #1
0
 public static function setdbLanguageTag()
 {
     if (self::$vmlang) {
         return self::$vmlang;
     }
     $langs = (array) self::get('active_languages', array());
     self::$langCount = count($langs);
     $siteLang = vRequest::getString('vmlang', false);
     $params = JComponentHelper::getParams('com_languages');
     $defaultLang = $params->get('site', 'en-GB');
     //use default joomla
     if (self::$jDefLang = self::get('vmDefLang', false)) {
         self::$jDefLang = strtolower(strtr(self::$jDefLang, '-', '_'));
     } else {
         self::$jDefLang = strtolower(strtr($defaultLang, '-', '_'));
     }
     if (JFactory::getApplication()->isSite()) {
         if (!$siteLang) {
             jimport('joomla.language.helper');
             $siteLang = JFactory::getLanguage()->getTag();
         }
     } else {
         if (!$siteLang) {
             $siteLang = $defaultLang;
         }
     }
     self::$vmLangSelected = $siteLang;
     if (!in_array($siteLang, $langs)) {
         if (count($langs) === 0) {
             $siteLang = $defaultLang;
         } else {
             $siteLang = $langs[0];
         }
     }
     self::$vmlangTag = $siteLang;
     if (count($langs) > 1) {
         $lfbs = self::get('vm_lfbs');
         vmdebug('my lfbs ' . $lfbs);
         if (!empty($lfbs)) {
             $pairs = explode(';', $lfbs);
             if ($pairs and count($pairs) > 0) {
                 $fbsAssoc = array();
                 foreach ($pairs as $pair) {
                     $kv = explode('~', $pair);
                     if ($kv and count($kv) === 2) {
                         $fbsAssoc[$kv[0]] = $kv[1];
                     }
                 }
                 if (isset($fbsAssoc[$siteLang])) {
                     $defaultLang = $fbsAssoc[$siteLang];
                 }
                 self::set('fbsAssoc', $fbsAssoc);
             }
         }
         // this code is uses logic derived from language filter plugin in j3 and should work on most 2.5 versions as well
         if (class_exists('JLanguageHelper') && method_exists('JLanguageHelper', 'getLanguages')) {
             $languages = JLanguageHelper::getLanguages('lang_code');
             $ltag = JFactory::getLanguage()->getTag();
             self::$vmlangSef = $languages[$ltag]->sef;
         }
     }
     self::$vmlang = strtolower(strtr($siteLang, '-', '_'));
     self::$defaultLang = strtolower(strtr($defaultLang, '-', '_'));
     vmdebug('$siteLang: ' . $siteLang . ' self::$vmlangSef: ' . self::$vmlangSef . ' self::$_jpConfig->lang ' . self::$vmlang . ' DefLang ' . self::$defaultLang);
     //@deprecated just fallback
     defined('VMLANG') or define('VMLANG', self::$vmlang);
     return self::$vmlang;
 }