Pārlūkot izejas kodu

Fixed applocale conflict bug

Toby Chui 2 gadi atpakaļ
vecāks
revīzija
58d9215777

+ 5 - 3
web/SystemAO/info/audio.html

@@ -61,9 +61,11 @@
         </div>
     </div>
     <script>
-           applocale.init("../locale/system_info_audio.json", function(){
-                applocale.translate();
-            });
+        
+        var audioTestLocale = NewAppLocale();
+        audioTestLocale.init("../locale/system_info_audio.json", function(){
+            audioTestLocale.translate();
+        });
 
         getGlobalVol();
         setInterval(getGlobalVol, 1000);

+ 3 - 2
web/SystemAO/info/clientInfo.html

@@ -66,8 +66,9 @@
     <br><br><br><br>
     </div>
     <script>
-        applocale.init("../locale/system_info_clientinfo.json", function(){
-            applocale.translate();
+        var infoLocale = NewAppLocale();
+        infoLocale.init("../locale/system_info_clientinfo.json", function(){
+            infoLocale.translate();
         });
 
         $("#cke").html(navigator.cookieEnabled);

+ 4 - 2
web/SystemAO/info/display.html

@@ -37,8 +37,10 @@
         <button class="ui blue button" onClick='startTest();'><i class="external icon"></i> <span locale="displaytest/start-test-button">Start Test</span></button>
     </div>
     <script>
-        applocale.init("../locale/system_info_display.json", function(){
-            applocale.translate();
+
+        var displayTestLocale = NewAppLocale();
+        displayTestLocale.init("../locale/system_info_display.json", function(){
+            displayTestLocale.translate();
         });
 
         function startTest() {

+ 3 - 2
web/SystemAO/info/locale.html

@@ -49,8 +49,9 @@
         </div>
     </div>
     <script>
-        applocale.init("../locale/system_info_locale.json", function(){
-            applocale.translate();
+        var languageLocale = NewAppLocale();
+        languageLocale.init("../locale/system_info_locale.json", function(){
+            languageLocale.translate();
         });
 
 

+ 3 - 2
web/SystemAO/iot/info.html

@@ -43,8 +43,9 @@
         </div>
     </div>
     <script>
-        applocale.init("../locale/system_info_iot.json", function(){
-            applocale.translate();
+        var iotLocale = NewAppLocale();
+        iotLocale.init("../locale/system_info_iot.json", function(){
+            iotLocale.translate();
         });
 
         initScannerHandlerList();

+ 2 - 2
web/SystemAO/locale/system_info_audio.json

@@ -4,7 +4,7 @@
     "keys": {
         "zh-tw": {
             "name": "繁體中文(台灣)",
-            "fwtitle" : "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings":{
                 "arozaudio/arozaudio-title": "ArozOS 音訊測試",
                 "arozaudio/system-audio": "系統音訊",
@@ -25,7 +25,7 @@
         },
         "zh-hk": {
             "name": "繁體中文(香港)",
-            "fwtitle" : "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings":{
                 "arozaudio/arozaudio-title": "ArozOS 音訊測試",
                 "arozaudio/system-audio": "系統音訊",

+ 3 - 4
web/SystemAO/locale/system_info_clientinfo.json

@@ -4,14 +4,14 @@
     "keys": {
         "zh-tw": {
             "name": "繁體中文(台灣)",
-            "fwtitle" : "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings":{
                 "clientinfo/client-information-title": "客戶端資訊",
                 "clientinfo/client-device-information": "客戶端設備資訊",
                 "clientinfo/client-device-information-subheader": "這些是您的瀏覽器提供給 ArozOS 的資訊。",
                 "clientinfo/browser-information": "瀏覽器資訊",
                 "clientinfo/cookie-enabled": "Cookie 已啟用",
-                "clientinfo/operation-system": "作系統",
+                "clientinfo/operation-system": "作系統",
                 "clientinfo/application-name": "應用程式名稱",
                 "clientinfo/browser-engine": "瀏覽器引擎",
                 "clientinfo/user-agent": "使用者代理"
@@ -25,7 +25,7 @@
         },
         "zh-hk": {
             "name": "繁體中文(香港)",
-            "fwtitle" : "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings":{
                 "clientinfo/client-information-title": "客戶端資訊",
                 "clientinfo/client-device-information": "客戶端設備資訊",
@@ -46,7 +46,6 @@
         },
         "zh-cn": {
             "name": "简体中文(简体)",
-            "fwtitle" : "",
             "strings":{
                 "clientinfo/client-information-title": "客户端信息",
                 "clientinfo/client-device-information": "客户端设备信息",

+ 2 - 2
web/SystemAO/locale/system_info_display.json

@@ -4,7 +4,7 @@
     "keys": {
         "zh-tw": {
             "name": "繁體中文(台灣)",
-            "fwtitle": "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings": {
                 "displaytest/display-test-title": "ArozOS 顯示測試",
                 "displaytest/display-testing-title": "顯示測試",
@@ -18,7 +18,7 @@
         },
         "zh-hk": {
             "name": "繁體中文(香港)",
-            "fwtitle": "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings": {
                 "displaytest/display-test-title": "ArozOS 顯示測試",
                 "displaytest/display-testing-title": "顯示測試",

+ 2 - 2
web/SystemAO/locale/system_info_iot.json

@@ -4,7 +4,7 @@
     "keys": {
         "zh-tw": {
             "name": "繁體中文(台灣)",
-            "fwtitle": "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings": {
                 "locale/iot-control-panel-title": "IoT 控制面板",
                 "locale/iot-hub-title": "IoT 中心",
@@ -20,7 +20,7 @@
         },
         "zh-hk": {
             "name": "繁體中文(香港)",
-            "fwtitle": "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings": {
                 "locale/iot-control-panel-title": "IoT 控制面板",
                 "locale/iot-hub-title": "IoT 中心",

+ 2 - 2
web/SystemAO/locale/system_info_locale.json

@@ -4,7 +4,7 @@
     "keys": {
         "zh-tw": {
             "name": "繁體中文(台灣)",
-            "fwtitle": "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings": {
                 "locale/language-setting-title": "語言設定",
                 "locale/language-setting-description": "您可以在這裡更改顯示語言。<br> 語言設定只會影響當前的電腦。",
@@ -19,7 +19,7 @@
         },
         "zh-hk": {
             "name": "繁體中文(香港)",
-            "fwtitle": "",
+            "fontFamily":"\"Microsoft JhengHei\",\"SimHei\", \"Apple LiGothic Medium\", \"STHeiti\"",
             "strings": {
                 "locale/language-setting-title": "語言設定",
                 "locale/language-setting-description": "您可以在這裡更改顯示語言。<br> 語言設定只會影響當前的電腦。",

+ 88 - 83
web/script/applocale.js

@@ -16,96 +16,101 @@
     }
 */
 
-var applocale = {
-    lang: (localStorage.getItem('global_language') == null || localStorage.getItem('global_language') == "default" ? navigator.language : localStorage.getItem('global_language')).toLowerCase(),
-    localeFile: "",
-    localData: {},
-    init: function(localeFile, callback = undefined) {
-        this.localeFile = localeFile;
-        $.ajax({
-            dataType: "json",
-            url: localeFile,
-            success: function(data) {
-                applocale.localData = data;
-                if (callback != undefined) {
-                    callback(data);
+function NewAppLocale(){
+    return {
+        lang: (localStorage.getItem('global_language') == null || localStorage.getItem('global_language') == "default" ? navigator.language : localStorage.getItem('global_language')).toLowerCase(),
+        localeFile: "",
+        localData: {},
+        init: function(localeFile, callback = undefined) {
+            this.localeFile = localeFile;
+            let targetApplocaleObject = this;
+            $.ajax({
+                dataType: "json",
+                url: localeFile,
+                success: function(data) {
+                    targetApplocaleObject.localData = data;
+                    if (callback != undefined) {
+                        callback(data);
+                    }
+                    
+                    if (data.keys[targetApplocaleObject.lang] != undefined && data.keys[targetApplocaleObject.lang].fwtitle != undefined && data.keys[targetApplocaleObject.lang].fwtitle != "" && ao_module_virtualDesktop) {
+                        //Update the floatwindow title as well
+                        ao_module_setWindowTitle(data.keys[targetApplocaleObject.lang].fwtitle);
+                    }
+    
+                    if (data.keys[targetApplocaleObject.lang] != undefined && data.keys[targetApplocaleObject.lang].fontFamily != undefined){
+                        //This language has a prefered font family. Inject it
+                        $("h1, h2, h3, p, span, div, a, button").css({
+                            "font-family":data.keys[targetApplocaleObject.lang].fontFamily
+                        });
+                        console.log("[Applocale] Updating font family to: ", data.keys[targetApplocaleObject.lang].fontFamily)
+                    }
+                  
                 }
-                
-                if (data.keys[applocale.lang] != undefined && data.keys[applocale.lang].fwtitle != undefined && ao_module_virtualDesktop) {
-                    //Update the floatwindow title as well
-                    ao_module_setWindowTitle(data.keys[applocale.lang].fwtitle);
+            });
+        },
+        translate: function(targetLang = "") {
+            var targetLang = targetLang || this.lang;
+            //Check if the given locale exists
+            if (this.localData == undefined || this.localData.keys === undefined || this.localData.keys[targetLang] == undefined) {
+                console.log("[Applocale] This language is not supported. Using default")
+                return
+            }
+    
+            //Update the page content to fit the localization
+            let hasTitleLocale = (this.localData.keys[targetLang].titles !== undefined);
+            let hasStringLocale = (this.localData.keys[targetLang].strings !== undefined);
+            let hasPlaceHolderLocale = (this.localData.keys[targetLang].placeholder !== undefined);
+            let localizedDataset =  this.localData.keys[targetLang];
+            $("*").each(function() {
+                if ($(this).attr("title") != undefined && hasTitleLocale) {
+                    let targetString = localizedDataset.titles[$(this).attr("title")];
+                    if (targetString != undefined) {
+                        $(this).attr("title", targetString);
+                    }
+    
                 }
-
-                if (data.keys[applocale.lang] != undefined && data.keys[applocale.lang].fontFamily != undefined){
-                    //This language has a prefered font family. Inject it
-                    $("h1, h2, h3, p, span, div, a, button").css({
-                        "font-family":data.keys[applocale.lang].fontFamily
-                    });
-                    console.log("[Applocale] Updating font family to: ", data.keys[applocale.lang].fontFamily)
+    
+                if ($(this).attr("locale") != undefined && hasStringLocale) {
+                    let targetString = localizedDataset.strings[$(this).attr("locale")];
+                    if (targetString != undefined) {
+                        $(this).html(targetString);
+                    }
                 }
-              
-            }
-        });
-    },
-    translate: function(targetLang = "") {
-        var targetLang = targetLang || this.lang;
-        //Check if the given locale exists
-        if (this.localData == undefined || this.localData.keys === undefined || this.localData.keys[targetLang] == undefined) {
-            console.log("[Applocale] This language is not supported. Using default")
-            return
-        }
-
-        //Update the page content to fit the localization
-        let hasTitleLocale = (this.localData.keys[targetLang].titles !== undefined);
-        let hasStringLocale = (this.localData.keys[targetLang].strings !== undefined);
-        let hasPlaceHolderLocale = (this.localData.keys[targetLang].placeholder !== undefined);
-        let localizedDataset =  this.localData.keys[targetLang];
-        $("*").each(function() {
-            if ($(this).attr("title") != undefined && hasTitleLocale) {
-                let targetString = localizedDataset.titles[$(this).attr("title")];
-                if (targetString != undefined) {
-                    $(this).attr("title", targetString);
+    
+                if ($(this).attr("placeholder") != undefined && hasPlaceHolderLocale) {
+                    let targetString = localizedDataset.placeholder[$(this).attr("placeholder")];
+                    if (targetString != undefined) {
+                        $(this).attr("placeholder", targetString);
+                    }
                 }
-
+            })
+    
+            if (this.localData.keys[this.lang] != undefined && this.localData.keys[this.lang].fontFamily != undefined){
+                //This language has a prefered font family. Inject it
+                $("h1, h2, h3, h4, h5, p, span, div, a").css({
+                    "font-family":this.localData.keys[this.lang].fontFamily
+                });
             }
-
-            if ($(this).attr("locale") != undefined && hasStringLocale) {
-                let targetString = localizedDataset.strings[$(this).attr("locale")];
-                if (targetString != undefined) {
-                    $(this).html(targetString);
-                }
+        },
+        getString: function(key, original, type = "strings") {
+            var targetLang = this.lang;
+            if (this.localData.keys === undefined || this.localData.keys[targetLang] == undefined) {
+                return original;
             }
-
-            if ($(this).attr("placeholder") != undefined && hasPlaceHolderLocale) {
-                let targetString = localizedDataset.placeholder[$(this).attr("placeholder")];
-                if (targetString != undefined) {
-                    $(this).attr("placeholder", targetString);
-                }
+            let targetString = this.localData.keys[targetLang].strings[key];
+            if (targetString != undefined) {
+                return targetString
+            } else {
+                return original
             }
-        })
-
-        if (applocale.localData.keys[applocale.lang] != undefined && applocale.localData.keys[applocale.lang].fontFamily != undefined){
-            //This language has a prefered font family. Inject it
-            $("h1, h2, h3, p, span, div, a").css({
+        },
+        applyFontStyle: function(target){
+            $(target).css({
                 "font-family":applocale.localData.keys[applocale.lang].fontFamily
-            });
-        }
-    },
-    getString: function(key, original, type = "strings") {
-        var targetLang = this.lang;
-        if (this.localData.keys === undefined || this.localData.keys[targetLang] == undefined) {
-            return original;
+            })
         }
-        let targetString = this.localData.keys[targetLang].strings[key];
-        if (targetString != undefined) {
-            return targetString
-        } else {
-            return original
-        }
-    },
-    applyFontStyle: function(target){
-        $(target).css({
-            "font-family":applocale.localData.keys[applocale.lang].fontFamily
-        })
     }
-}
+}
+
+var applocale = NewAppLocale();