我有一个能够选择语言的网站。当用户第一次进入网站时,我想做到这一点,php获取他的系统语言并写入cookie(因此,每次进入时间时,用户默认使用相同的语言)。但是当用户想要更改网站语言时,他会按下一个选定语言的按钮(例如俄语),然后将为俄语设置网站语言,当他再次进入网站时,他将使用俄语。
到目前为止,我有这段代码,但它真的很混乱,而且无法正常运行。
HTML:
FieldB
if (Left(A2,1)="#", A2, B1)
PHP:
<a href="index.php?language=en">
<a href="index.php?language=ru">
答案 0 :(得分:1)
这里可以采用一个简单的逻辑 -
当用户登陆您的网站时,您应该跟踪他/她的IP地址,我们可以轻松地使用该IP获取他们的国家/地区。然后,您可以轻松地为他们提供语言。
答案 1 :(得分:1)
首先应该查找用户首选语言的是Accept-Language标头。地理IP查找是一种危险且昂贵的浪费时间(至少对于确定语言而言)。除此之外,您可以设置一个cookie来覆盖浏览器提供的选项,但对于欧洲的网站来说,这会产生法律影响。
$avail_lang=array(
'en'=>1,
'fr'=>1,
'de'=>1,
'ru'=>1
);
define("DEFAULT_LANG", 'en');
...
if ($_COOKIE['language'] && isset($avail_lang[$_COOKIE['language']]) {
$use_lang=$_COOKIE['language'];
}
// override with GET if provided
if ($_GET['language'] && isset($avail_lang[$_GET['language']]) {
$use_lang=$_GET['language'];
}
// no language? check browser
if (!$use_lang) {
$request_lang=explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
foreach($request_lang as $i) {
list($lang, $pref)=explode("=", trim($i));
$pref=$pref ? 0.0+$pref : 1.0;
list($lang, $country)=explode("-", $lang);
$pref_lang[$lang]=$pref;
}
rsort($pref_lang);
$use_lang=array_shift(array_intersect_key($pref_lang, $avail_lang));
if (!$use_lang) $use_lang=DEFAULT_LANGUAGE;
}
if (user_accepts_cookies() && $use_lang!=$_COOKIE['language']) {
set_lang_cookie($use_lang);
}
答案 2 :(得分:0)
找到了如何做到这一点的方法:
function display_star($rating){
$output="";
$step = calculate_stars($rating);
$output ='<ul class="c-rating">';
for ($i=0;$i<10;$i++)
{
$class = '';
if($i<=$step) $class = ' is-active';
if($i%2 == 0) $class .= ' left';
$output .= '<li class="c-rating__item'. $class.'" data-index="'.$i.'"></li>';
}
$output .='</ul>';
return $output;
}
echo display_star(0.5);