iT邦幫忙

2

HTML多國語言化

今天小妹我想做一個支援一個以上語言的多國語言網頁,index.html的部分是ok的,可以達到我要的多國語言,但問題來了,小妹我不知道該怎麼讓其他網頁知道index.html設定了哪國語言,有大大能幫小妹解答嗎??
下面全都是index.html的code

var lan
unction init(){
    changePage_check("Li");
    set_lan('en'); //一開始語言為英文
}
function lan_value(){ //下拉式選單被點擊後會做判斷語言的動作
    lan = document.getElementById("LanguageSelect").value;
    $.getScript({
        url: "lg/"+lan+".js",
        cache: true
    }).done(function(){//成功就做...
        set_lan(lan);
    }).fail(function(){//失敗就做...
        set_lan('en');
    });
    console.log("lan=",lan);
}
<body onload="init();">
    <div id="base" >
        <div id="MenuFrame">
            <table id="tbl_menu">
                <tr>
                    <td>
                        <img id="logotd" src="images/logo.png" style="width: 257px;">
                    </td>
                    <td>
                        <p id="text_Li"></p>
                    </td>
                    <td>
                        <p id="text_Pl"></p>
                    </td>
                    <td>
                        <p id="text_De"></p>
                    </td>
                    <td id="td_Select">
                        <td id="td_Language"></td>
                        <td>
                            <select id="LanguageSelect" onchange="lan_value();">
                                <option value="en">Engilsh</option>
                                <option value="tw">繁體中文</option>
                                <option value="jp">日本語</option>
                                <option value="ch">简体中文</option>
                            </select>
                        </td>
                    </td>
                </tr>
            </table>
        </div>
    </div>
    <div id="subMenuDiv" name="subMenuDiv" src=""></div><!--這個div將做為顯示其他分頁用-->
</body>

下面是決定語言的js檔中要給各id使用的東西為何

function set_lan(lan_index){
    var translator = new Language(lan_index);
    $("#text_Live").html(translator.getStr("menu_live"));
    $("#text_Playback").html(translator.getStr("menu_pb"));
    $("#text_Device").html(translator.getStr("menu_dev"));
    $("#td_Language").html(translator.getStr("sys_Language"));
}

1 個回答

0
小魚
iT邦高手 1 級 ‧ 2018-12-27 15:02:37

這要用後端處理,
可以考慮Cookie或Session,
有時候需要記在資料庫裡面,
如果你下次上來還要維持這個語系的話.

看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2018-12-27 16:39:39 檢舉

看他的程式,應該用Cookie就可以,這樣不必用後端。他不同語系的文字放在不同的js檔,然後確定語系後才去下載然後顯示。

是的,我的code正式那樣做,但現在的問題是我不知道該怎麼在其他分頁裡寫code去知道首頁在語言部份設定成哪個。

<script type="text/javascript" src="../include/js/jquery.cookie.js"></script>

我後來有加這個js檔,請問這個能用嗎?

小魚 iT邦高手 1 級 ‧ 2018-12-27 18:14:26 檢舉

你載進來了之後呢?
怎麼寫?

看起來只是要讓其他頁面知道某個資訊而已,用 cookie 或 localstorage 處理會有什麼問題嗎?

甲土豆 iT邦新手 5 級 ‧ 2018-12-28 17:56:46 檢舉

感覺用AJAX比較符合用戶體驗喔

我要發表回答

立即登入回答