php多语言会话

时间:2014-07-27 15:47:22

标签: php session-variables multilingual

我已经尝试了几个小时,但无法解决这个问题。我正在尝试创建一个多语言网站,我有一个表单来切换语言。每次我切换语言时,我都必须重新加载页面两次以查看结果。网站结构如下:

1:general.php检查用户是否已登录,并将语言存储在会话变量

if($count ==1){
  while ($row = $result->fetch(PDO::FETCH_ASSOC)){
    $_SESSION['language'] = $row['language'];               
  }
}

2:每个页面都包含header.php,它将运行setLanguage函数setLanguage($_SESSION['language'])

这是general.php

function setLanguage($lan){
  if($lan == "english"){
    include("languages/en.php");
  }elseif($lan == "tra_chinese"){
    include("languages/tra_chinese.php");
  }else{
    include("languages/en.php");
  }
}

3:change.php是包含更改语言的表单的页面。

if(!empty($_POST)){
$sql = "update users set `language` = :language where `username` = :id";
    $result = $db->prepare($sql);
    $result->execute(array(
        ':language'=>$_POST['language'],
        ':id'=>$id
        )
    );
  $_SESSION['language'] = $_POST['language'];
  setLanguage($_SESSION['language']);
}

<form action="change.php" method="post">
    <input type="radio" name="language" value="english" <?php if($_SESSION['language']=='english') echo 'checked="checked"' ?>>English
    <input type="radio" name="language" value="tra_chinese" <?php if($_SESSION['language']=='tra_chinese') echo 'checked="checked"' ?>>中文
    <input style="margin-top:8px" type="submit" value="<?PHP echo CHANGE_LANGUAGE;?>" class="button">
</form>...then goes on to display the contents

第一次在change.php中切换语言时,似乎没有加载不同的语言文件。有人可以教我如何解决这个问题吗?谢谢!

0 个答案:

没有答案