+// Checks wether a language file is there for optional extension
+function isLanguageIncludeReadable ($ext_name = 'none') {
+ // Do we have array element?
+ if (!isset($GLOBALS['lang_inc'][$ext_name])) {
+ // Generate filename
+ if ($ext_name == 'none') {
+ // Generic
+ $languageInclude = sprintf("inc/language/%s.php", getLanguage());
+ } else {
+ // Extension's language file
+ $languageInclude = sprintf("inc/language/%s_%s.php", $ext_name, getLanguage());
+ }
+
+ // Look for file if no extension name is provided
+ $GLOBALS['lang_inc'][$ext_name] = isIncludeReadable($languageInclude);
+ //* DEBUG: */ print __FUNCTION__.':'.$ext_name.'='.$languageInclude.'='.intval(isIncludeReadable($languageInclude)).'<br />';
+ } // END - if
+
+ // Return it
+ return $GLOBALS['lang_inc'][$ext_name];
+}
+
+// Load the current language file or fixes it to 'de'
+// If ext_name is 'none', load general language support, else load extension's
+// language file. In installation phase load the install language file.
+function loadLanguageFile ($ext_name = 'none') {
+ // Try to get language from session
+ $currLanguage = getLanguage();
+
+ // Set default language if it is not (yet) set
+ if (is_null($currLanguage)) {
+ // Get it from config
+ $currLanguage = getConfig('DEFAULT_LANG');
+
+ // And save it in session
+ setLanguage($currLanguage);
+ } // END - if
+
+ // Do we have the language file NOT?
+ if (!isLanguageIncludeReadable($ext_name)) {
+ // Switch to default (DO NOT CHANGE!!!)
+ setLanguage('de');
+
+ // And set it temporarily
+ setConfigEntry('DEFAULT_LANG', 'de');
+ } // END - if
+
+ // Is the file there?
+ if (isLanguageIncludeReadable($ext_name)) {
+ // Load language file
+ loadLanguageInclude($ext_name);
+ } elseif ((isDebugModeEnabled()) && (getOutputMode() == 0) && ($ext_name != 'sql_patches') && (substr($ext_name, 0, 10) != 'admintheme')) {
+ // No language file is not so good...
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("NOTICE: Extension %s has no language file or we cannot read from it. lang=%s, mode=%s",
+ $ext_name,
+ getLanguage(),
+ getExtensionMode()
+ ));
+ }
+
+ // Check for installation mode
+ if ((isInstallationPhase()) || (!isAdminRegistered())) {
+ // Load language file
+ loadLanguageInclude('install');
+ } // END - if
+}
+
+// Loads the language file
+function loadLanguageInclude ($ext_name = 'none') {
+ // Generate filename
+ if ($ext_name == 'none') {
+ // Generic
+ $languageInclude = sprintf("inc/language/%s.php", getLanguage());
+ } else {
+ // Extension's language file
+ $languageInclude = sprintf("inc/language/%s_%s.php", $ext_name, getLanguage());
+ }
+
+ // Check it before loading
+ if (isLanguageIncludeReadable($ext_name)) {
+ // Load it
+ loadIncludeOnce($languageInclude);
+ } else {
+ // Not readable!
+ DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Language file %s not found or readable.", $languageInclude));
+ }
+}
+