private static function _load_realm($realm)
 {
     $curlang = CmsNlsOperations::get_current_language();
     if (!$realm) {
         $realm = 'admin';
     }
     if (is_array(self::$_langdata) && isset(self::$_langdata[$curlang][$realm])) {
         return;
     }
     if (!is_array(self::$_langdata)) {
         self::$_langdata = array();
     }
     if (!isset(self::$_langdata[$curlang])) {
         self::$_langdata[$curlang] = array();
     }
     $config = cmsms()->GetConfig();
     // load the english file first.
     $dir = '';
     $has_realm = 0;
     $filename = 'en_US.php';
     if ($realm == 'admin') {
         $dir = cms_join_path($config['root_path'], $config['admin_dir'], 'lang');
         $filename = 'admin.inc.php';
         $fn = cms_join_path($dir, 'en_US', $filename);
         $has_realm = 1;
     } else {
         $dir = cms_join_path($config['root_path'], 'lib', 'lang', $realm);
         $fn = cms_join_path($dir, $filename);
     }
     if (!file_exists($fn)) {
         return FALSE;
     }
     if ($has_realm) {
         $lang = array();
         include $fn;
         if (isset($lang[$realm])) {
             self::$_langdata[$curlang][$realm] = $lang[$realm];
         }
         unset($lang);
     } else {
         $lang = array();
         include $fn;
         self::$_langdata[$curlang][$realm] = $lang;
         unset($lang);
     }
     if ($curlang != 'en_US') {
         if (!is_array(self::$_engdata)) {
             self::$_engdata = array();
         }
         // backup the english data... in case we need to get it later.
         self::$_engdata[$realm] = self::$_langdata[$curlang][$realm];
         // load the lang file itself.
         if ($realm == 'admin') {
             $dir = cms_join_path($dir, 'ext', $curlang);
         } else {
             $dir = cms_join_path($dir, 'ext');
             $filename = $curlang . '.php';
         }
         $fn = cms_join_path($dir, $filename);
         if (file_exists($fn)) {
             if ($has_realm) {
                 $lang = array();
                 include $fn;
                 if (isset($lang[$realm])) {
                     self::$_langdata[$curlang][$realm] = array_merge(self::$_langdata[$curlang][$realm], $lang[$realm]);
                 }
                 unset($lang);
             } else {
                 $lang = array();
                 include $fn;
                 if (isset($lang)) {
                     self::$_langdata[$curlang][$realm] = array_merge(self::$_langdata[$curlang][$realm], $lang);
                 }
                 unset($lang);
             }
         }
         // file exists.
     }
     // not english
     if ($realm != 'admin') {
         return TRUE;
     }
     // load custom admin realm.
     $dir = cms_join_path($config['root_path'], $config['admin_dir'], 'custom/lang', $curlang);
     $fn = cms_join_path($dir, $filename);
     if (!file_exists($fn)) {
         return TRUE;
     }
     $lang = array();
     include $fn;
     if (isset($lang)) {
         if (isset($lang[$realm]) && is_array($lang[$realm]) && count($lang[$realm])) {
             self::$_langdata[$curlang][$realm] = array_merge(self::$_langdata[$curlang][$realm], $lang[$realm]);
         } else {
             self::$_langdata[$curlang][$realm] = array_merge(self::$_langdata[$curlang][$realm], $lang);
         }
     }
     unset($lang);
     return TRUE;
 }