Function loadLanguageFile() does now support extensions
[mailer.git] / inc / language-functions.php
index b416d32dc07b60e39a2e7d6741f0efa2346e04e1..c2cde5f34ff215b79f018c289459040edd1a1094 100644 (file)
@@ -83,7 +83,7 @@ function getLanguage () {
                $ret = $GLOBALS['cache_array']['language'];
        } elseif (!empty($lang)) {
                // Check if main language file does exist
-               if (isFileReadable(constant('PATH') . 'inc/language/'.$lang.'.php')) {
+               if (isFileReadable(constant('PATH') . 'inc/language/' . $lang . '.php')) {
                        // Okay found, so let's update cookies
                        setLanguage($lang);
                } // END - if
@@ -111,5 +111,52 @@ function setLanguage ($lang) {
        setSession('mx_lang', $lang);
 }
 
+// Load the current language file or fixes it to 'de'
+// If ext_name is empty, load general language support, else load extension's
+// language file.
+function loadLanguageFile ($ext_name = '') {
+       // Try to get language from session
+       $mx_lang = getSession('mx_lang');
+
+       // Set default language if it is not (yet) set
+       if (is_null($mx_lang)) $mx_lang = getConfig('DEFAULT_LANG');
+
+       // Generate filename
+       if (empty($ext_name)) {
+               // Generic
+               $languageInclude = sprintf("inc/language/%s.php", SQL_ESCAPE($mx_lang));
+       } else {
+               // Extension's language file
+               $languageInclude = sprintf("inc/language/%s_%s.php", $ext_name, getLanguage());
+       }
+
+       // Look for file if no extension name is provided
+       if ((empty($ext_name)) && (isIncludeReadable($languageInclude) === false)) {
+               // Switch to default (DO NOT CHANGE!!!)
+               setLanguage('de');
+               $languageInclude = 'inc/language/de.php';
+
+               // And set it temporarily
+               setConfigEntry('DEFAULT_LANG', 'de');
+       } // END - if
+
+       // Is the file there?
+       if (isIncludeReadable($languageInclude)) {
+               // Load language file
+               loadIncludeOnce($languageInclude);
+       } elseif ((isDebugModeEnabled()) && ($ext_name != 'sql_patches') && (substr($ext_name, 0, 10) != 'admintheme')) {
+               // No language file is not so good...
+               DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("WARNING: Extension %s has no language file or we cannot read from it. lang=%s",
+                       $ext_name, getLanguage()
+               ));
+       }
+
+       // Check for installation mode
+       if ((isInstalling()) || (!isInstalled()) || (!isAdminRegistered())) {
+               // Load matching language file
+               loadInclude('inc/language/install_' . getSession('mx_lang') . '.php');
+       } // END - if
+}
+
 // [EOF]
 ?>