创建菜单以在现场切换语言

发布于 2024-10-15 22:08:51 字数 522 浏览 1 评论 0原文

我的网站上有一个下拉菜单,我想用它在不同语言之间切换:

 <select onChange="if(this.selectedIndex!=0) self.location=this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage">
    <option value="http://demo.com/?lang=en">
                English (International)</option>    
        <option value="http://demo.com/?lang=es">
                Español (European)</option>
                     </select>

如何让上面的菜单显示当前显示的语言。有没有办法显示活跃状态。网站使用的是 php。

提前致谢。

I have a dropdown menu on my site that I want to use to switch between the different languages:

 <select onChange="if(this.selectedIndex!=0) self.location=this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage">
    <option value="http://demo.com/?lang=en">
                English (International)</option>    
        <option value="http://demo.com/?lang=es">
                Español (European)</option>
                     </select>

How can I get the above menu to display which language is currently showing. Is there someway of showing an active state. Site is using php.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

痴意少年 2024-10-22 22:08:51

使用 PHP 这个,是可行的。 (我稍微改变了选择。)

<select onChange="if(this.selectedIndex!=0) self.location='http://demo.com/?lang='+this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage">
    <option <?php if ($_GET['lang'] == "en") { ?>selected="selected"<?php } ?> value="en">English (International)</option>    
    <option <?php if ($_GET['lang'] == "es") { ?>selected="selected"<?php } ?> value="es">Español (European)</option>
</select>

希望这有帮助!

Using PHP this, is a go. (I changed the selection a bit.)

<select onChange="if(this.selectedIndex!=0) self.location='http://demo.com/?lang='+this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage">
    <option <?php if ($_GET['lang'] == "en") { ?>selected="selected"<?php } ?> value="en">English (International)</option>    
    <option <?php if ($_GET['lang'] == "es") { ?>selected="selected"<?php } ?> value="es">Español (European)</option>
</select>

Hope this helps!

晨与橙与城 2024-10-22 22:08:51

将 selected="selected" 添加到您的选项中。看一下:http://jsfiddle.net/tW2jm/

<option selected="selected" value="http://demo.com/?lang=en">

Add selected="selected" to your option. Take a look: http://jsfiddle.net/tW2jm/

<option selected="selected" value="http://demo.com/?lang=en">
一页 2024-10-22 22:08:51

您可以使用谷歌翻译工具...从长远来看将为您节省大量工作。

http://translate.google.com/translate_tools

You could use Google Translate Tools... will save you a whole lot of work in the long run.

http://translate.google.com/translate_tools

将军与妓 2024-10-22 22:08:51

如果您使用 PHP,我建议您像这样修改代码,因为这样您就可以轻松添加新语言,而无需编写 HTML 代码或其他 javascript。您可以使用 $langs 数组来保存当前的语言集。

我还创建了包含当前页面 URL 的 $server_location 变量。这样,当您将页面移动到不同的服务器和域或重命名页面时,您就不会遇到问题。

    <?  
        $langs = array('en' => 'English (International)',
                       'es' => 'Español (European)'
                      );

        function is_current_language($code)
        { 
                 return ($code == $_GET['lang'])? 'selected="selected"': "";
        }

        $server_location= $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];

    ?>

    <select onchange="if(this.selectedIndex!=0) self.location='<?=$server_location;?>?lang='+this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage">

       <? foreach($langs as $code => $lang): ?>
          <option <?= is_current_language($code); ?> value="<?= $code; ?>">
             <?= $lang; ?>
          </option>
       <? endforeach; ?>

    </select>

If you are using PHP I'll suggest you to refector the code like this, because that way you can easily add new language, without writing HTML code or additional javascript. You can use the $langs array to hold your current set of languages.

I also made $server_location variable that contains the current page URL. That way you will not have problems when you move you page to different servers and domains or if you rename your page.

    <?  
        $langs = array('en' => 'English (International)',
                       'es' => 'Español (European)'
                      );

        function is_current_language($code)
        { 
                 return ($code == $_GET['lang'])? 'selected="selected"': "";
        }

        $server_location= $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];

    ?>

    <select onchange="if(this.selectedIndex!=0) self.location='<?=$server_location;?>?lang='+this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage">

       <? foreach($langs as $code => $lang): ?>
          <option <?= is_current_language($code); ?> value="<?= $code; ?>">
             <?= $lang; ?>
          </option>
       <? endforeach; ?>

    </select>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文