다국어 웹 사이트에서 작업 중이며 지금 문제가 있습니다. 때 $ _GET [ 'setlang'], 언어는 내가 가진 경우에도 ko 페이지에 빈 설정되어 setlang = (잘 작동되는 - 언어가 변경됩니다) 전에 열 PL?쿠키 및 세션 값 확인
empty($_GET['setlang']) ? $_GET['setlang'] = '' : $_GET['setlang'];
switch ($_GET['setlang']) {
case 'en':
$lang = 'en_US';
putenv('LC_ALL='.$lang);
setlocale(LC_ALL, $lang.'.UTF8');
setcookie('lang', $lang, time()+60*60*24*365);
$_SESSION['lang'] = $lang;
$_config['lang'] = $lang;
break;
case 'pl':
$lang = 'pl_PL';
putenv('LC_ALL='.$lang);
setlocale(LC_ALL, $lang.'.UTF8');
setcookie('lang', $lang, time()+60*60*24*365);
$_SESSION['lang'] = $lang;
$_config['lang'] = $lang;
break;
default:
if((isset($_SESSION['lang']) && $_SESSION['lang'] ='en_US') || (isset($_COOKIE['lang']) && $_COOKIE['lang'] = 'en_US')){
$lang = 'en_US';
putenv('LC_ALL='.$lang);
setlocale(LC_ALL, $lang.'.UTF8');
}
else{
$lang = 'pl_PL';
putenv('LC_ALL='.$lang);
setlocale(LC_ALL, $lang.'.UTF8');
}
$_config['lang'] = $lang;
break;
}
$my_name = 'default';
bindtextdomain($my_name,'./locale');
textdomain($my_name);
내가 얻을 수 이 스크립트는 내가 setlang = pl 액션을 실행 한 후 언어를 pl_PL로 바꾼다. 이 get 값이 비어 있으면 쿠키 값이 en_US로 변경됩니다./
어떻게 확인하고이 문제를 방지해야합니까?
또한 MVC로 작업하고 있습니다. 이 코드가 옳은 것 같습니까? 아니면 컨트롤러 대신 모델에 코드를 넣어야합니까?
네, 그랬습니다. 그러나 비록 내가 원하지 않는다면, 쿠키는 그 일을해야합니다 .. – jdrzejb