我使用PHP的gettext扩展将我的网站翻译成不同的语言。我有三个链接可以根据URL更改语言:
$locale = false;
if (isSet($_GET["locale"])){
$locale = $_GET["locale"];
setcookie("locale", $locale, time()+60*60*24*30, "/");
}
if (!$locale && isSet($_COOKIE["locale"])){
$locale = $_COOKIE["locale"];
}
putenv("LC_ALL=$locale");
putenv("LANGUAGE=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", "UTF-8");
textdomain("messages");
与
<a href="?locale=en">English</a>
和
<a href="?locale=ru">Russian</a>
我希望保持网址清洁,并在网址外加上?lang=en
参数。因此,当用户点击lin products.php
时,它会保持原样并且不显示products.php?locale=ru
我该怎么做?
答案 0 :(得分:0)
如果你想要
无论浏览器语言如何,用户都可以自由选择语言
用户可以使用不同语言版本的网站打开不同的标签
然后无法将语言信息放在URL中的某个位置。要么像你一样使用GET参数,要么使用mod_rewrite将其掩盖为像
这样的东西www.domain.com/en/pagename.php
如果你对标签问题没问题,那么在cookie中设置语言。实际上,您在上面显示的代码已经实现了这一点。只有在实际切换语言时才需要?lang=xx
参数。