Создание меню для переключения языков на сайте - PullRequest
1 голос
/ 04 февраля 2011

На моем сайте есть раскрывающееся меню, которое я хочу использовать для переключения между различными языками:

 <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.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 04 февраля 2011

Использование 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>

Надеюсь, это поможет!

1 голос
/ 04 февраля 2011

Добавить выбранные = "выбранные" в ваш вариант. Взгляните: http://jsfiddle.net/tW2jm/

<option selected="selected" value="http://demo.com/?lang=en">
0 голосов
/ 04 февраля 2011

Если вы используете PHP, я предлагаю вам изменить код таким образом, потому что таким образом вы можете легко добавлять новый язык, без написания HTML-кода или дополнительного JavaScript. Вы можете использовать массив $ langs для хранения текущего набора языков.

Я также сделал $ server_location переменную, которая содержит URL текущей страницы. Таким образом, у вас не возникнет проблем при перемещении страницы на другие серверы и домены или при переименовании страницы.

    <?  
        $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>
0 голосов
/ 04 февраля 2011

Вы можете использовать Google Translate Tools ... в долгосрочной перспективе вы сэкономите много работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...