php菜单设置,用于语言设置 [英] php menu setting for language settings

查看:83
本文介绍了php菜单设置,用于语言设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将使用php实现对网站的多语言支持

I am going to implement the multi-language support for the website using php

默认语言是中文

我选择了en作为英国英语.

I have selected en as british English one.

该网页链接设置为www.abc.com/index.php?lang=zh_CN

the webpage link is set as www.abc.com/index.php?lang=en

在选择其他菜单项时,

查询字符串?lang = en消失了,恢复为中文

the query string ?lang=en is gone and resume to chinese language

请告诉我如何将'en'和?lang =传递给其他菜单,以保持浏览所需的语言选择吗?

Would you please tell me how to pass the 'en' and ?lang= to other menu so as to maintain the selection of language desired through the browsing ?

以下是我的代码

<html>
<body>...    
        <div id="languages">
        <?php $string = basename(__FILE__); ?>
        <?php echo "<a href=".$string.'?lang=en >';  $_SESSION['lang']= 'en'; ?><img src="images/en.png" /></a>
        <?php echo "<a href=".$string.'?lang=hk >';  $_SESSION['lang']= 'hk'; ?><img src="images/hk.png" /></a>
        <?php echo "<a href=".$string.'?lang=cn >';  $_SESSION['lang']= 'cn'; ?><img src="images/cn.png" /></a>
        </div>

    ...


      <div class="navigation">
                <div id="smoothmenu1" class="ddsmoothmenu">
                    <ul>
                        <li><a href="index.php"><?php echo $lang['MENU_HOME']; ?></a></li>
                        <!--<li><a href="#">About Club</a></li>-->
                        <li><a href="news.php"><?php echo $lang['MENU_NEWS']; ?> </a></li>
                        <li><a href="gallery.php"><?php echo $lang['MENU_GALLERY']; ?></a></li>
                        <!--<li><a href="reservation.php">Make Reservation</a></li>-->
                        <li><a href="contact.php"><?php echo $lang['MENU_CONTACTS']; ?></a></li>
                        <!--<li class="dropdown"><a href="#">Pages</a>
                            <ul>       
                                <li><a href="index.php">Home</a> </li>
                                <li><a  href="news.php">News</a></li>
                                <li><a href="blog.php">Blog</a></li>
                                <li><a href="blogpost.php">Blog Post</a></li>
                                <li><a  href="gallery.php">Gallery</a></li>
                                <li><a  href="reservation.php">Reservation</a></li>
                                <li class="nbbdr"><a href="contact.php">Contact Us </a></li>
                            </ul>
                       </li>-->                   
                   </ul>
                </div>
            </div>

推荐答案

这段代码:

<?php $string = basename(__FILE__); ?>
<?php echo "<a href=".$string.'?lang=en >';  $_SESSION['lang']= 'en'; ?><img src="images/en.png" /></a>
<?php echo "<a href=".$string.'?lang=hk >';  $_SESSION['lang']= 'hk'; ?><img src="images/hk.png" /></a>
<?php echo "<a href=".$string.'?lang=cn >';  $_SESSION['lang']= 'cn'; ?><img src="images/cn.png" /></a>

不仅在单击某些锚点时,始终将您的$_SESSION['lang']设置为cn值.相反,您应该将其更改为:

Will always set your $_SESSION['lang'] to cn value, not only when you click certain anchor. Instead you should change it to:

<?php $string = basename(__FILE__); ?>
<a href="<?php echo $string; ?>?lang=en"><img src="images/en.png" /></a>
<a href="<?php echo $string; ?>?lang=hk"><img src="images/hk.png" /></a>
<a href="<?php echo $string; ?>?lang=cn"><img src="images/cn.png" /></a>

同样在文件的开头,您应该添加:

And also at the beginning of the file you should add:

<?php
if(!isset($_SESSION['lang']))
    $_SESSION['lang'] = 'cn'; // Sets default language to 'cn'

if(isset($_GET['lang']) && in_array($_GET['lang'], array('en', 'hk', 'cn')))
    $_SESSION['lang'] = $_GET['lang']; // Sets language based on URL
?>

如果您还没有的话,别忘了在前面提到的代码块之前添加session_start().

Don't forget to add session_start() at the beginning, before previously mentioned block of code aswell, if you don't have it yet.

从现在开始,如果您的URL中没有?lang=...,则将在$_SESSION['lang']中设置最后一个语言.

From now on, if you won't have ?lang=... in your URL, you will have your last lang set in $_SESSION['lang'].

要更改其他菜单(<li><a href="index.php"><?php echo $lang['MENU_HOME']; ?></a></li>等)中的链接,应从以下位置更改其href's:

To change links in the other menu (<li><a href="index.php"><?php echo $lang['MENU_HOME']; ?></a></li> and so on), you should change their href's from:

<li><a href="filename.php"><?php echo $lang['MENU_HOME']; ?></a></li>

收件人:

<li><a href="filename.php?lang=<?php echo $_SESSION['lang']; ?>"><?php echo $lang['MENU_HOME']; ?></a></li>

这篇关于php菜单设置,用于语言设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆