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 езика, като като си логнат взима от базата дадения потребител какъв език е избрал. Проблема е там, че ако сменя езика на бг, а потребителя е на ен, когато се логна сайта е на бг докато не рефрешна страницата, когато рефрешна страницата езика се сменя на ен. Същото е и когато сменям езика от профила на потребителя. Примерно сменям от бг на ен и всичко си е на бг, докато не рефрешна страницата.
Има ли някакъв начин да се избегне това рефрешване, смисъл в момента в който се логнеш или смениш езика от профила да се сменя веднага без да трябва да се рефрешне страницата?