diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/functions.inc.php | 10 | ||||
-rw-r--r-- | include/functions_mail.inc.php | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/include/functions.inc.php b/include/functions.inc.php index 861d85064..560bc5a4b 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -1209,7 +1209,15 @@ function get_pwg_charset() function load_language($filename, $dirname = '', $options = array() ) { - global $user; + global $user, $language_files; + + if ( !empty($dirname) and !empty($filename) ) + { + if ( empty($language_files[$dirname]) or !in_array($filename,$language_files[$dirname]) ) + { + $language_files[$dirname][] = $filename; + } + } if (! @$options['return'] ) { diff --git a/include/functions_mail.inc.php b/include/functions_mail.inc.php index 7ad0b1853..74a7f17e1 100644 --- a/include/functions_mail.inc.php +++ b/include/functions_mail.inc.php @@ -192,7 +192,7 @@ function get_str_email_format($is_html) */ function switch_lang_to($language) { - global $switch_lang, $user, $lang, $lang_info; + global $switch_lang, $user, $lang, $lang_info, $language_files; // explanation of switch_lang // $switch_lang['language'] contains data of language @@ -224,6 +224,14 @@ function switch_lang_to($language) // No test admin because script is checked admin (user selected no) // Translations are in admin file too load_language('admin.lang', '', array('language'=>$language) ); + + if (!empty($language_files)) + { + foreach ($language_files as $dirname => $files) + foreach ($files as $filename) + load_language($filename, $dirname, array('language'=>$language) ); + } + trigger_action('loading_lang'); load_language('lang', PHPWG_ROOT_PATH.PWG_LOCAL_DIR, array('language'=>$language, 'no_fallback'=>true, 'local'=>true) |