如何一次更改多个页面中的语言?

时间:2015-05-31 13:22:29

标签: jquery html twitter-bootstrap

我有一个下拉按钮,提供两种语言,我的母语和英语。问题是,当我用英语更改它时,它会更改该页面上的文本,但其余页面仍然是我的原生。该脚本与所有这些脚本相关联。有什么我错过了吗? 以下是下拉列表的代码:

     <div class="dropdown pull-right">
            <button class="btn btn-success dropdown-toggle btn-lg" id="menu1" type="button" data-toggle="dropdown">Јазик / Language
                <span class="caret"></span></button>
            <ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
                <li role="presentation" value="1"><a role="menuitem" tabindex="-1" href="#">Македонски</a></li>
                <li role="presentation" value="2"><a role="menuitem" tabindex="-1" href="#">English</a></li>
            </ul>
        </div>

以下是我如何更改脚本中的文本。这些来自本网站的两页:

       $("ul li").on('click', function () {
    var val = $(this).val();

    if(val==2){
        $("#buy").html("Buy ticket");
        $("#validate").html("Validate ticket");
        $("#q1").html("How many tickets would you like to buy?");
        $("#back").html("Back");
        $("#q2").html("Please enter" + "<span class='den'></span>" + "denars in the slot labeled as 'ENTER'");
        $("#q3").html("Please take your ticket/s and your change!");
        $("#q4").html("Thank you");
        $("#q5").html("Please show the barcode on your ticket in front of the camera.");
        $("#q6").html("Successful validation! Thank you!");
    }else{
        $("#buy").html("Купи карта");
        $("#validate").html("Валидирај карта");
        $("#q1").html("Колку карти сакате да купите?");
        $("#back").html("Назад");
        $("#q2").html("Ве молиме внесете вредност од" + "<span class='den'></span>" + "денари во слотот назначен со „ВНЕСИ“.");
        $("#q3").html("Ве молиме подигнете ја/ги картата/те и кусурот.");
        $("#q4").html("Ви благодариме!");
        $("#q5").html("Ве молиме покажете го баркодот од картата пред камерата");
        $("#q6").html("Успешна валидација! Ви благодариме!");
    }
});

1 个答案:

答案 0 :(得分:1)

当您从一个页面导航到另一个页面时,第一页的状态或其任何JavaScript状态都不会传递到第二页;第二页从头开始加载,好像第一页从未存在过一样。

我假设您的页面中的导航菜单在所有页面中都是相同的,但即使页面可能相同,当您从第A页到第B页时发生的是整个页面,包括常见的导航在初始的点击前状态下,东西正在从头开始加载和渲染。

您可以使用多种技术将一个状态从一个页面传递到下一个页面。对于这种情况,最简单的可能是cookie。

JavaScript cookies

jquery cookie plugin

每当语言发生变化时,你要做的就是设置一个像lang = 1或lang = 2这样的cookie。使您的语言切换代码成为一个单独的功能,可以通过点击来调用,也可以在页面加载(或页面就绪)上调用。在页面加载/就绪时,如果存在lang cookie,请使用lang cookie的值调用语言切换函数。您的所有页面都具有相同的点击和页面加载/准备的代码。

jquery .ready()