| 224 | | if (count($switch_lang['stack']) == 0) |
| 225 | | { |
| 226 | | $prev_language = $user['language']; |
| | 224 | // explanation of switch_lang |
| | 225 | // $switch_lang['language'] contains data of language |
| | 226 | // $switch_lang['stack'] contains stack LIFO |
| | 227 | // $switch_lang['initialisation'] allow to know if it's first call |
| | 228 | |
| | 229 | // Treatment with current user |
| | 230 | // Language of current user is saved (it's considered OK on firt call) |
| | 231 | if (!isset($switch_lang['initialisation']) and !isset($switch_lang['language'][$user['language']])) |
| | 232 | { |
| | 233 | $switch_lang['initialisation'] = true; |
| | 234 | $switch_lang['language'][$user['language']]['lang_info'] = $lang_info; |
| | 235 | $switch_lang['language'][$user['language']]['lang'] = $lang; |
| | 236 | } |
| | 237 | |
| | 238 | // Change current infos |
| | 239 | $switch_lang['stack'][] = $user['language']; |
| | 240 | $user['language'] = $language; |
| | 241 | |
| | 242 | // Load new data if necessary |
| | 243 | if (!isset($switch_lang['language'][$language])) |
| | 244 | { |
| | 245 | // Re-Init language arrays |
| | 246 | $lang_info = array(); |
| | 247 | $lang = array(); |
| | 248 | |
| | 249 | // language files |
| | 250 | load_language('common.lang', '', array('language'=>$language) ); |
| | 251 | // No test admin because script is checked admin (user selected no) |
| | 252 | // Translations are in admin file too |
| | 253 | load_language('admin.lang', '', array('language'=>$language) ); |
| | 254 | trigger_action('loading_lang'); |
| | 255 | load_language('local.lang', '', array('language'=>$language, 'no_fallback'=>true)); |
| | 256 | |
| | 257 | $switch_lang['language'][$language]['lang_info'] = $lang_info; |
| | 258 | $switch_lang['language'][$language]['lang'] = $lang; |
| 230 | | $prev_language = end($switch_lang['stack']); |
| 231 | | } |
| 232 | | |
| 233 | | $switch_lang['stack'][] = $language; |
| 234 | | |
| 235 | | if ($prev_language != $language) |
| 236 | | { |
| 237 | | if (!isset($switch_lang['language'][$prev_language])) |
| 238 | | { |
| 239 | | $switch_lang[$prev_language]['lang_info'] = $lang_info; |
| 240 | | $switch_lang[$prev_language]['lang'] = $lang; |
| 241 | | } |
| 242 | | |
| 243 | | if (!isset($switch_lang['language'][$language])) |
| 244 | | { |
| 245 | | // Re-Init language arrays |
| 246 | | $lang_info = array(); |
| 247 | | $lang = array(); |
| 248 | | |
| 249 | | // language files |
| 250 | | load_language('common.lang', '', array('language'=>$language) ); |
| 251 | | // No test admin because script is checked admin (user selected no) |
| 252 | | // Translations are in admin file too |
| 253 | | load_language('admin.lang', '', array('language'=>$language) ); |
| 254 | | trigger_action('loading_lang'); |
| 255 | | load_language('local.lang', '', array('language'=>$language, 'no_fallback'=>true)); |
| 256 | | |
| 257 | | $switch_lang[$language]['lang_info'] = $lang_info; |
| 258 | | $switch_lang[$language]['lang'] = $lang; |
| 259 | | } |
| 260 | | else |
| 261 | | { |
| 262 | | $lang_info = $switch_lang[$language]['lang_info']; |
| 263 | | $lang = $switch_lang[$language]['lang']; |
| 264 | | } |
| 265 | | |
| 266 | | $user['language'] = $language; |
| | 262 | $lang_info = $switch_lang['language'][$language]['lang_info']; |
| | 263 | $lang = $switch_lang['language'][$language]['lang']; |
| 283 | | $language = end($switch_lang['stack']); |
| 284 | | } |
| 285 | | else |
| 286 | | { |
| 287 | | $language = $user['language']; |
| 288 | | } |
| 289 | | |
| 290 | | if ($last_language != $language) |
| 291 | | { |
| 292 | | if (!isset($switch_lang['language'][$language])) |
| 293 | | { |
| 294 | | $lang_info = $switch_lang[$language]['lang_info']; |
| 295 | | $lang = $switch_lang[$language]['lang']; |
| | 278 | // Get last value |
| | 279 | $language = array_pop($switch_lang['stack']); |
| | 280 | |
| | 281 | // Change current infos |
| | 282 | if (isset($switch_lang['language'][$language])) |
| | 283 | { |
| | 284 | $lang_info = $switch_lang['language'][$language]['lang_info']; |
| | 285 | $lang = $switch_lang['language'][$language]['lang']; |