0

我正在尝试使用语言和自己的数据库/CMS 结构。到目前为止,我已经选择了 Browserset 语言。这很好用。我知道有更好的解决方案(每种语言的其他域,我已经 google 了很多)...使用自己添加的 cookie(setcookie)它也可以工作。

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

$langCookie = $_COOKIE['language'];

if(!empty($langCookie)){
    $lang = $_COOKIE['language'];
}  

if($lang == en){
//Select from database, got three languages, text (en), textOther1 (otherlang1) and textOther2
}elseif($lang == xy){
//other selecet
}else{
//select if nothing fits
}

我此时的问题是:

如何让用户在页面上选择一种语言。我想让用户通过选择来选择语言......但我无法完成设置我的cookie,因为我选择了一个选项......

我知道我必须在此之后重新加载页面(header_location),但我无法更进一步......

解决此问题的任何帮助或提示都会非常好。

4

1 回答 1

1

我认为您可以使用 GET 方法向页面发送请求,只需将语言代码添加为参数,然后检查此参数是否存在 - 如果不存在,则将您的值作为现在的值。

例如,您可以使用此标记:

<form id="langForm" action="" method="GET">
    <select name="lang" onchange="this.form.submit();">
        <option value="en">English</option>
        <option value="fr">French</option>
    </select>
</form>

然后在服务器端,您应该检查 lang 参数是否存在:

<?php

if( isset( $_GET ) && ! empty( $_GET['lang'] ) ) {
    // do something
} else {
    // do something else
}

?>

希望有帮助!

于 2013-05-10T10:24:31.003 回答