Проблем с мултиезичност

tyrla4eto

Registered
PHP:
<?php
header('Cache-control: private'); // IE 6 FIX
if(isset($_SESSION['user_id'])) {
	global $userProfile;

	$lang = $userProfile['lang'];
	if(isset($_COOKIE['lang']) != $userProfile['lang']) {
		setcookie("lang", $lang, time() + (3600 * 24 * 30));
	}
	$lang = $_COOKIE['lang'];
	$lang_file = 'lang.'.$userProfile['lang'].'.php';
} else {
	
if(isSet($_GET['lang']))
{
$lang = $_GET['lang'];

setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else if(isSet($_COOKIE['lang']))
{
$lang = $_COOKIE['lang'];
}
else
{
$lang = 'en';
}
}

switch ($lang) {
  case 'en':
  $lang_file = 'lang.en.php';
  break;

  case 'bg':
  $lang_file = 'lang.bg.php';
  break;

  default:
  $lang_file = 'lang.en.php';

}

include_once 'languages/'.$lang_file;
?>

Използвам този код за смяна на 2 езика, като като си логнат взима от базата дадения потребител какъв език е избрал. Проблема е там, че ако сменя езика на бг, а потребителя е на ен, когато се логна сайта е на бг докато не рефрешна страницата, когато рефрешна страницата езика се сменя на ен. Същото е и когато сменям езика от профила на потребителя. Примерно сменям от бг на ен и всичко си е на бг, докато не рефрешна страницата.
Има ли някакъв начин да се избегне това рефрешване, смисъл в момента в който се логнеш или смениш езика от профила да се сменя веднага без да трябва да се рефрешне страницата?
 

Back
Горе