所以我正在建立一个小型多语言(法语+英语)网站,并且有一个小错误。我想在代码中删除“英语默认”语言,因此如果用户在一个页面上选择法语,那么他之后将选择的任何页面都将使用法语而不是“返回”英语。如果用户首先选择英语,则相同。但由于将有更多的法国用户,我希望它成为主页上的默认语言。
内容位于包含前缀的文件夹中:fr_language.php和en_language.php
FR或EN的链接
<a href="?lang=fr">Français</a>
<a href="?lang=en">English</a>
导航
<ul>
<li><a href="index.php"><?php echo $lang['home']; ?></a></li>
<li><a href="services.php"><?php echo $lang['services']; ?></a></li>
<li><a href="about.php"><?php echo $lang['aboutus']; ?></a></li>
<li><a href="contact.php"><?php echo $lang['contact']; ?></a></li>
</ul>
感谢您的帮助!
编辑:
好的,在你的帮助下它正在发挥作用!在我的“nav.php”中包括,I wrote this.也许可以做一个更干净的版本,哈哈!有任何想法吗?再次感谢!
答案 0 :(得分:0)
你需要保持语言的状态。
您必须通过
传递每个请求或使用cookie来存储它。您将获得随每个服务器请求传递的cookie值
您可以通过$_COOKIE var阅读Cookie。您可以在javascript或php
中进行设置答案 1 :(得分:0)
就个人而言,我建议您点击一下语言选择器,它将创建一个新的PHP会话并存储该语言。
这样做的好处是您不必总是将您的语言附加到URL的末尾。这只会在每次创建会话时发生(因此,如果您没有设置超时,则仅在计算机重新启动时)。页面重定向后,将页面重定向到不再需要$_GET
的语言,而只是检查活动会话。
您必须将用户重定向到包含PHP脚本的页面,然后根据URL中发送的内容设置语言。但是,您可以在脚本完成返回用户所在的页面后重定向(并加载他们新选择的语言)。
HTML:
<a href="setLanguage.php?lang=fr">Français</a>
<a href="setLanguage.php?lang=en">English</a>
PHP:
// intitially set language by your selector
<?php
session_start();
$_SESSION['language'] = $_GET['lang'];
?>
现在,您可以将getter代码放在任何页面上(包括页眉或基页):
// check for the language
<?php
session_start();
if (isset($_SESSION['language'])) {
// now change the language of the page based on what it is
if ($_SESSION['language'] == "en") {
// change page language to english
} else {
// change page language to french
}
}
?>
答案 2 :(得分:0)
看起来您正在使用的是使用名为get_lang_id()
的函数从cookie中提取并使用它来加载语言文件。
get_lang_id()
函数目前默认为英语:
function get_lang_id()
{
return ( isset( $_COOKIE['lang'] ) &&
strlen( $_COOKIE['lang'] ) == 2 &&
is_language_supported( $_COOKIE['lang'] ) ) ?
htmlspecialchars($_COOKIE['lang']) : 'en';
}
如果您将末尾的'en'更改为'fr',它会将默认语言文件更改为法语版本。单击任一链接将设置一个cookie,该cookie将跳过使用默认值。
答案 3 :(得分:0)
考虑使用以下方法/方法:
if(isset($_GET['lang']) && $_GET['lang'] == "fr"){
// do something
} else {
// do something else
}
您还应该了解(XSS)跨站点脚本。
以下是一些可供阅读的链接:
您可以使用&#34; XSS注入php&#34;进一步研究。作为您最喜欢的搜索引擎中的关键字。