用href切换语言

时间:2015-06-10 12:34:28

标签: php html url

我的网站上运行了三种语言,并且希望在页面底部使用工作按钮切换语言。问题是,主页(index.php)需要后缀SendKeys "{ESC}"而其他页面(index.php?contact,index.php?about etc)需要URL中的?lang=X。 / p>

我已经设置了这样一个href:

&lang=X

它修复了'?'或者'&',但每当我点击主页以外的页面上的语言更改按钮时,它会将我带到主页而不是停留在当前页面上,尽管语言切换确实有效。我想这是由我的.htaccess文件引起的,该文件将主页重写为无效,联系人以及关于' / contact'和' / about'。

有关如何解决此问题的任何建议?或者关于如何更容易地完成这种语言转换?

2 个答案:

答案 0 :(得分:1)

您可以阅读当前网址中的参数并将新的参数添加到其中,如下所示:

$params = array_merge($_GET, array("lang" => "X"));
$new_query_string = http_build_query($params);

但是使用cookie有助于避免松散"从一个页面移动到另一个页面时的语言参数。并留下更清晰的网址

使用Cookie:

位于您网站的顶部

if ($_GET['lang'])
{
    setcookie("lang", $_GET['lang'], time() + 3600);
}

并在您的语言面板集中:

<a href="?lang=X" title="X language">X</a>
<a href="?lang=Y" title="Y language">Y</a>
<a href="?lang=Z" title="Z language">Z</a>

答案 1 :(得分:1)

由于OP只需修复导航问题。这就是我要做的事。

我只需按当前页面网址

$Url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

然后连接导航

<a href="<?php echo $Url ?>?lang=en">Home</a>

所以,守则将

<?php
$Url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
?>
<a href="<?php echo $Url ?>?lang=en">Home</a>

注意:

我使用en作为静态,您可以根据需要动态更改它。