/**
  * Load language settings
  *
  * @access public
  * @param void
  * @throws DirDnxError If language dir does not exists
  * @throws FileDnxError If language settings file for this local settings
  *   does not exists in lanuage dir
  */
 private function loadLanguageSettings()
 {
     // Check dir...
     if (!is_dir($this->getLanguageDirPath())) {
         throw new DirDnxError($this->getLanguageDirPath());
     }
     // if
     // Get settings file path and include it
     $settings_file = $this->getLanguageDirPath() . '/' . $this->getLocale() . '.php';
     if (is_file($settings_file)) {
         include $settings_file;
     } else {
         throw new FileDnxError($settings_file, "Failed to find language settings file. Expected location: '{$settings_file}'.");
     }
     // if
     // Clear langs
     $this->langs->clear();
     // Get langs dir
     $langs_dir = $this->getLanguageDirPath() . '/' . $this->getLocale();
     if (is_dir($langs_dir)) {
         $files = get_files($langs_dir, 'php');
         // Loop through files and add langs
         if (is_array($files)) {
             sort($files);
             foreach ($files as $file) {
                 $langs = (include $file);
                 if (is_array($langs)) {
                     $this->langs->append($langs);
                 }
             }
             // foreach
         }
         // if
         //Load plugin langs after fengoffice default langs
         $plugins_dir = $langs_dir . '/plugins';
         if (is_dir($plugins_dir)) {
             sort($files);
             $files = get_files($plugins_dir, 'php');
             // Loop through files and add langs
             if (is_array($files)) {
                 foreach ($files as $file) {
                     $langs = (include $file);
                     if (is_array($langs)) {
                         $this->langs->append($langs);
                     }
                 }
                 // foreach
             }
             // if
         }
         // if
     } else {
         throw new DirDnxError($langs_dir);
     }
     // if
     // Done!
     return true;
 }
 /**
 * loadLanguageFiles
 *
 * @access private
 * @param String $dir Select files from this dir
 * @param String $ext Select files with given extension
 * @return string
 */
 private function loadLanguageFiles($dir, $ext = 'php') {
   trace(__FILE__,"loadLanguageFiles($dir, $ext):begin");
   $files = get_files($dir, $ext);
     
   // Loop through files and add langs
   if (is_array($files)) {
     foreach ($files as $file) {
       //try {
         $langs = include_once $file;
       //} catch (Exception $e) {}
       if (is_array($langs)) {
         $this->langs->append($langs);
       } // if
     } // foreach
   } // if
 }
 /**
  * Load language settings
  *
  * @access public
  * @param void
  * @throws DirDnxError If language dir does not exists
  * @throws FileDnxError If language settings file for this local settings
  * does not exists in lanuage dir
  */
 private function loadLanguageSettings()
 {
     // Check dir...
     if (!is_dir($this->getLanguageDirPath())) {
         throw new DirDnxError($this->getLanguageDirPath());
     }
     // if
     // Get settings file path and include it
     $settings_file = $this->getLanguageDirPath() . '/' . $this->getLocale() . '.php';
     if (is_file($settings_file)) {
         include $settings_file;
     } else {
         $base_settings = $this->getLanguageDirPath() . '/default.php';
         if (is_file($base_settings)) {
             include $base_settings;
         } else {
             throw new FileDnxError($settings_file, "Failed to find language settings file. Expected location: '{$settings_file}'.");
         }
     }
     // Clear langs
     $this->langs->clear();
     // Get langs dir - ONLY PHP langs !
     $langs_dir = $this->getLanguageDirPath() . '/' . $this->getLocale();
     if (is_dir($langs_dir)) {
         $files = get_files($langs_dir, 'php');
         // Loop through files and add langs
         if (is_array($files)) {
             sort($files);
             foreach ($files as $file) {
                 $langs = (include $file);
                 if (is_array($langs)) {
                     $this->langs->append($langs);
                 }
             }
         }
         // Plugins - Only PHP langs - include all installed plugins, no matter if they they have not been activated
         $plugins = Plugins::instance()->getAll();
         foreach ($plugins as $plugin) {
             /* @var $plugin Plugin */
             $plg_dir = $plugin->getLanguagePath() . "/" . $this->getLocale();
             if (is_dir($plg_dir)) {
                 $files = get_files($plg_dir, 'php');
                 // Loop through files and add langs
                 if (is_array($files)) {
                     sort($files);
                     foreach ($files as $file) {
                         $langs = (include $file);
                         if (is_array($langs)) {
                             $this->langs->append($langs);
                         }
                     }
                 }
             }
         }
     } else {
         throw new DirDnxError($langs_dir);
     }
     // if
     // Done!
     return true;
 }