開發網頁很有可能會遇到要做多國語言的問題,像 ASP.NET 等的 Server 端程式可能都有提供相關的套件來達到效果,但是前端的 JavaScript 要怎樣做到多國語言呢?
筆者曾經也做過類似的多國語言程式,不過當時只需要英文及繁體中文兩種而已,所以用了比較簡單的作法來完成。不過現在若還有同樣需求的話,筆者會改採用 jQuery Localisation 來做。
jQuery Localisation 在使用時要先指定一個預設的語言檔,例如:lang.js,接著其它語言檔名就依瀏覽器所取到的 language 名稱為主,因此像是繁體中文的語言檔名就變成了 lang-zh-TW.js,簡體中文就是 lang-zh-CN.js。
套件名稱:jQuery Localisation
套件版本:1.0.5
作者網站:http://keith-wood.name/localisation.html
套件網址:http://plugins.jquery.com/project/localisation
發佈日期:2010-07-03
檔案大小:4.01 KB
檔案下載:jquery.localisation.js
其它語言檔:greeting.js greeting-en.js greeting-zh-CN.js greeting-zh-TW.js
參數說明:
檢視原始碼 JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | packages(必填參數) 描述: 要載入的 js 語言檔的前綴名稱(可加上路徑), 可為字串或是字串陣列[] 預設值: 無 settings(選填) 描述: 如果提供的是字串則表示指定得語系; 或者是包含了進階設定參數的物件。其中物件的屬性有 language, loadBase, path 及 timeout 預設值: 無 language(選填) 描述: 指定載入的語言,這邊以瀏覽器所取得的 language 為主 預設值: 無 loadBase(選填) 描述: 是否載入預設的 js 語言檔 預設值: false path(選填) 描述: 語言檔的路徑 預設值: 無 timeout(選填) 描述: 載入語言檔的等待時間,若設為 0 表示一直等待 預設值: 500 |
屬性說明:
檢視原始碼 JavaScript
1 2 | $.localise.defaultLanguage 描述:指定預設的語言 |
方法說明:
檢視原始碼 JavaScript
1 2 | // 載入語言檔 $.localise (packages[, settings][, loadBase][, path][, timeout]); |
使用範例:
檢視原始碼 JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.localisation.js"></script> <script type="text/javascript"> $(function(){ // 載入以 greeting 為前綴的語言檔 // 並同時載入 greeting.js 為預設的語言檔 // 語言檔的路徑是在 js/lang 中 $.localise('greeting', {loadBase: true, path: 'js/lang/'}); // 變更顯示在介面上的語言文字 changeLangs(); // 當選擇了其它語言時就載入該語言的語言檔 // 並變更顯示在介面上的語言文字 $("#selLan").change(function(){ $.localise('js/lang/greeting', {loadBase: true, language: $(this).val()}); changeLangs(); }); }); // 變更顯示在介面上的語言文字的函式 function changeLangs(){ // 設定 .selTitle 的文字內容為變數 selTitle 的值 $(".selTitle").html(selTitle); // 一一指定 #selLan 的 option 的文字內容為變數 selOptionN 的值 // 並設定 #selLan 的寬為 200 $("#selLan option").each(function(i){ $(this).text(eval("selOption" + (i+1))); }).parent().css({"width": 200}); // 設定 .show 的文字內容為變數 greeting 的值 $(".show").html(greeting); } </script> <body> <h3 class="selTitle"></h3> <select id="selLan"> <option value="zh-TW"></option> <option value="zh-CN"></option> <option value="en"></option> <option value="unknown"></option> </select> <h3 class="show"></h3> </body> |
範例檔的下載連結無法下載(會員和非會員的皆是)!!!能另外提供下載嗎??
會員的應該是可以下載的, 那空間應該都會在
男大您好
請教一下
title="中文" 要如何將中文二字 ~ 用jQuery Localisation 取代~
程式碼的設定是依照電腦時區自動代入,請問要如何修改成"預設英文",然後我如果點了英文,當下有翻譯,不過一跳頁後,又自動跳回中文,請問要如何讓語系固定住?
我也有跳下頁又換回預設語言的問題,請問一下這該如何處理呢?
在遊覽器關閉前或點切換語言前都保持舊語言,
請問該如何固定呢?