使用<select> <option value = ""> </option>
更改了网站上的语言。
<select class="tt-select" id="lang" name="forma" onchange="location = this.value;">
<option value="<?php echo htmlspecialchars(return_i18n_setlang_url('en')); ?>">ENG</option>
<option value="<?php echo htmlspecialchars(return_i18n_setlang_url('ru')); ?>">RUS</option>
<option value="<?php echo htmlspecialchars(return_i18n_setlang_url('de')); ?>">DEU</option>
<option value="<?php echo htmlspecialchars(return_i18n_setlang_url('es')); ?>">SPA</option> </select>
选择语言后,将重新加载页面并显示列表中的第一个值。如何显示所选语言?
他们建议使用localStorage,但我对此一无所知。我使用Google来完成此操作,但无法正常工作::
<script>
(function(){
var select = document.querySelector('#lang');
if (localStorage.selectedIndex !== undefined) {
select.selectedIndex = localStorage.selectedIndex;
}
select.onchange = function() {
localStorage.selectedIndex = this.selectedIndex;
}
})()
</script>
代码<?php echo htmlspecialchars(return_i18n_setlang_url('es')); ?>
强制网站以所需的语言提供内容。我了解它需要以其他方式给出,但我不知道如何
答案 0 :(得分:0)
我完全不会使用js,PHP知道您选择的语言,使用它来在适当的selected
中打印<option>
属性:
// assuming the PHP variable $lang contains the selected language
<select class="tt-select" id="lang" name="forma" onchange="location = this.value;">
<option <?php echo $lang == "en" ? "selected" : "" ?> value="<?php echo htmlspecialchars(return_i18n_setlang_url('en')); ?>">ENG</option>
<option <?php echo $lang == "ru" ? "selected" : "" ?> value="<?php echo htmlspecialchars(return_i18n_setlang_url('ru')); ?>">RUS</option>
<option <?php echo $lang == "de" ? "selected" : "" ?> value="<?php echo htmlspecialchars(return_i18n_setlang_url('de')); ?>">DEU</option>
<option <?php echo $lang == "es" ? "selected" : "" ?> value="<?php echo htmlspecialchars(return_i18n_setlang_url('es')); ?>">SPA</option>
</select>