改变当前网站语言的最佳方式

时间:2013-01-18 15:20:14

标签: php

我用php用两种语言创建一个网站。要改变页面的语言,我创建链接如下:

<a href="/?lang=fa">FA</a>|<a href="/?lang=en">EN</a>

这两个链接位于名为 header.php 的页面上,其中包含某些页面。但在某些页面中是一些通过URL发送的参数。因此,两个链接不正确,它们应如下所示:

<a href="aPage.php?id=1&lang=en">FA</a>|<a href="aPage.php?id=1&lang=en">EN</a>  

我的问题是如何为所有页面创建动态链接即使有一些参数。

3 个答案:

答案 0 :(得分:2)

您需要将值存储在全局密钥中,最好是php $_SESSION

在页面的开头,您可以查看以下内容:

session_start(); // if not started already
$possible_languages = array('en', 'fr');
$default_language   = 'fr';

$_SESSION['lang'] = ( isset($_GET['lang']) && in_array($_GET['lang']) ? $_GET['lang'] : $default_language );

从现在开始,您可以$_SESSION['lang']在需要的地方

答案 1 :(得分:1)

您可以使用:

<?
$params = $_GET;
$params['lang'] = 'EN';
$qs = '?';
foreach($params as $k=>$v)
  $qs .= $k.'='.urlencode($v).'&';
$url = substr($_SERVER['PHP_SELF'].$qs, 0, -1);

echo $url; //EN

$params['lang'] = 'FR';
$qs = '?';
foreach($params as $k=>$v)
  $qs .= $k.'='.urlencode($v).'&';
$url = substr($_SERVER['PHP_SELF'].$qs, 0, -1);

echo $url; //FR
?>

答案 2 :(得分:0)

首先,将语言存储在会话或cookie中。

其次,使用当前语言设置为您的网站构建链接创建机制,不要直接echo内部链接。应该从函数创建重要的内部链接,以便以后可以快速更改它们。