Reputation: 199
I'm building multiple language web and found problem. My language is changing depending on session variable and on first load the session is empty,only after refreshing the page it gets the right session variable. How to set the variable before the page load? This is the code :
session_start();
$available_langs = array('en','rus');
if ($_SESSION['lang']=='') {
$_SESSION['lang'] = 'en';
}
if(isset($_GET['lang']) && $_GET['lang'] != ''){
if(in_array($_GET['lang'], $available_langs))
{
$_SESSION['lang'] = $_GET['lang'];
}
}
include('language/'.$_SESSION['lang'].'.php');
Upvotes: 1
Views: 213
Reputation: 41958
session_start();
// Direct override beats session
$lang = $_GET['lang'] ?: $_SESSION['lang'];
$available_langs = array('en','rus');
// If the requested language isn't available, or not provided, fall back to first
if(!in_array($lang, $available_langs))
$lang = $available_langs[0];
// Store it in the session and include the template
$_SESSION['lang'] = $lang;
include 'language/'.$lang.'.php';
Upvotes: 2