Make jquery.i18n fallback to en_US by default 41/47641/3
authorQuoc Nghia Nguyen <quocnghia.nguyen@orange.com>
Tue, 15 May 2018 15:16:40 +0000 (17:16 +0200)
committerQuoc Nghia Nguyen <quocnghia.nguyen@orange.com>
Wed, 16 May 2018 08:59:28 +0000 (10:59 +0200)
  - rewrite some comments in a proper order
  - fix indentation

Change-Id: I34e149a0b78291698c1a3f44640cc6ee458bd8c8
Issue-ID: MSB-196
Signed-off-by: Quoc Nghia Nguyen <quocnghia.nguyen@orange.com>
discovery-ui/src/main/resources/iui/microservices/js/jquery.i18n/jquery.i18n.properties-1.0.9.js

index a4a6a81..1476348 100644 (file)
@@ -80,21 +80,24 @@ $.i18n.properties = function(settings) {
        // load and parse bundle files
        var files = getFiles(settings.name);
        for(i=0; i<files.length; i++) {
-               // 1. load base (eg, Messages.properties)
-               //loadAndParseFile(settings.path + files[i] + '.properties', settings);
-        // 2. with language code (eg, Messages_pt.properties)
-               //if(settings.language.length >= 2) {
-        //    loadAndParseFile(settings.path + files[i] + '-' + settings.language.substring(0, 2) +'.properties', settings);
-               //}
-               // 3. with language code and country code (eg, Messages_pt_PT.properties)
-               // 将寻找资源文件的顺序倒置
-        if(settings.language.length >= 5) {
-            loadAndParseFile(settings.path + files[i] + '-' + settings.language.substring(0, 5) +'.properties', settings);
-        } else if(settings.language.length >= 2) {
-            loadAndParseFile(settings.path + files[i] + '-' + settings.language.substring(0, 2) +'.properties', settings);
-               } else {
-                       loadAndParseFile(settings.path + files[i] + '.properties', settings);
-               }
+        // Look for the bundle files in the following order:
+        //   1. with language code and country code (eg, Messages_pt_PT.properties)
+        //   2. with language code (eg, Messages_pt.properties)
+        //   3. load base (eg, Messages.properties)
+        //   4. if none of the above is found, load en_US by default (eg, Messages_en_US.properties)
+        var xhrResult;
+        if (settings.language.length >= 5) {
+            xhrResult = loadAndParseFile(settings.path + files[i] + '-' + settings.language.substring(0, 5) + '.properties', settings);
+        } else if (settings.language.length >= 2) {
+            xhrResult = loadAndParseFile(settings.path + files[i] + '-' + settings.language.substring(0, 2) + '.properties', settings);
+        } else {
+            xhrResult = loadAndParseFile(settings.path + files[i] + '.properties', settings);
+        }
+
+        if (xhrResult.status === 404) {
+            // fallback to en_US by default
+            loadAndParseFile(settings.path + files[i] + '-en-US.properties', settings);
+        }
        }
        
        // call callback
@@ -260,15 +263,15 @@ $.i18n.browserLang = function() {
 
 /** Load and parse .properties files */
 function loadAndParseFile(filename, settings) {
-       $.ajax({
+       return $.ajax({
         url:        filename,
         async:      false,
-        cache:         settings.cache,
+        cache:      settings.cache,
         contentType:'text/plain;charset='+ settings.encoding,
         dataType:   'text',
         success:    function(data, status) {
-                                       parseData(data, settings.mode); 
-                                       }
+                        parseData(data, settings.mode); 
+                    }
     });
 }