hide popup message if failure is handled - not sure what knock on effect this may...
[Pman.Core] / Pman.GoogleTranslate.js
index 5196725..0a4fcfb 100644 (file)
@@ -8,7 +8,7 @@
  * @param str {String} input string
  * @param src {String} source language (or '' for autoguess)
  * @param str {String} target language
- * @param str {String} callback - calls back with result or an error object.
+ * @param cb {String} callback - calls back with result or an error object.
  */
 Pman.GoogleTranslate = function(str, src, dest, cb, force) {
         // load script: 
@@ -17,32 +17,32 @@ Pman.GoogleTranslate = function(str, src, dest, cb, force) {
         var complete = '';
         
         
-        if (!Pman.GoogleTranslate.key) {
-            
-            new Pman.Request({
-                method : 'POST',
-                url : baseURL + '/Core/GoogleKey',
-                success : function(data)
-                {
-                    Pman.GoogleTranslate.key = data.data;
-                    
-                    Pman.GoogleTranslate(str, src, dest, cb, force);
-                    
-                },
-                failure : function() {
-                    Roo.log("Google key fetch failed");
-                    // do not display error message...
-                    return true;
-                }
-                
-                
-            });
-            
-            
-            
-            
-            return;
-        }
+//        if (!Pman.GoogleTranslate.key) {
+//            
+//            new Pman.Request({
+//                method : 'POST',
+//                url : baseURL + '/Core/GoogleKey',
+//                success : function(data)
+//                {
+//                    Pman.GoogleTranslate.key = data.data;
+//                    
+//                    Pman.GoogleTranslate(str, src, dest, cb, force);
+//                    
+//                },
+//                failure : function() {
+//                    Roo.log("Google key fetch failed");
+//                    // do not display error message...
+//                    return true;
+//                }
+//                
+//                
+//            });
+//            
+//            
+//            
+//            
+//            return;
+//        }
         
         
         function escapeDecode(encodedString) {
@@ -111,74 +111,87 @@ Pman.GoogleTranslate = function(str, src, dest, cb, force) {
             transbits();
             return;
         }
-                
-                
-                
-                
-          
-        var x = new Roo.data.ScriptTagProxy({ 
-            url:   'https://www.googleapis.com/language/translate/v2',
-                  //'http://ajax.googleapis.com/ajax/services/language/translate', 
-            callbackParam : 'callback'
-            
-            
-        });
-        
+//                
+//                
+//                
+//                
+//          
+//        var x = new Roo.data.ScriptTagProxy({ 
+//            url:   'https://www.googleapis.com/language/translate/v2',
+//                  //'http://ajax.googleapis.com/ajax/services/language/translate', 
+//            callbackParam : 'callback'
+//            
+//            
+//        });
+//        
         src = src.replace('_','-');
         dest = dest.replace('_','-');
         // google does not recognize HK...
-        if (src  == 'zh-HK')  src = 'zh-TW';
-        if (dest == 'zh-HK') dest = 'zh-TW';
-     
+        
+        switch(dest){
+            case 'zh':
+                src = 'zh-CN';
+                break;
+            case 'zh-HK':
+                src = 'zh-TW';
+                break;
+        }
+        
+        switch(dest){
+            case 'zh':
+                dest = 'zh-CN';
+                break;
+            case 'zh-HK':
+                dest = 'zh-TW';
+                break;
+        }
+        
         new Pman.Request({
-            url : baseURL + '/Roo/GoogleTranslate.php',
+            url : baseURL + '/Core/GoogleTranslate.php',
             method :'POST',
             mask : 'Translating',
             maskEl : document.body,
             params : {
                 text : str,
                 src  : src,
-                dest : dest,
+                dest : dest
             },
-            success: function()
+            success: function(o)
             {
-//                Roo.MessageBox.alert("Success", "We logged in OK")
-                return o.data.translations[0].translatedText;
+                if (!o.data) {
+                    return o;
+                }
+                if(typeof(o.data.error) != 'undefined'){
+                    Roo.get(document.body).unmask();
+                    Roo.MessageBox.alert("Failure ", o.data.error.message);
+                    return;
+                }
+                if(typeof(o.data.translations[0].translatedText) == 'undefined'){
+                    Roo.MessageBox.alert("Failure ", "Does not found the translated text.");
+                }
+                cb(o.data.translations[0].translatedText);
             },
             failure: function (res) {
                 Roo.log(res);
-                Roo.MessageBox.alert("Failure", "Failed?")
+                if (!res.data) {
+                    return res;
+                }
+
+                if(typeof(res.data.error) != 'undefined'){
+                    Roo.get(document.body).unmask();
+                    Roo.MessageBox.alert("Failure ", res.data.error.message);
+                    return;
+                }
+
+                if(typeof(res.data.translations[0].translatedText) == 'undefined'){
+                    Roo.MessageBox.alert("Failure ", "Does not found the translated text.");
+                }
+                cb(res.data.translations[0].translatedText);
+                
+                //Roo.MessageBox.alert("Failure ", res.message);
             }
         });
         
-        x.load(
-            {
-                key :  Pman.GoogleTranslate.key,
-              //  v: '1.0',
-                q : str,
-                source : src,
-                target : dest
-                //langpair : src + '|' +dest
-            }, // end params.
-            { // reader
-                readRecords : function (o) {
-                    Roo.log(o);
-                    if (!o.data) {
-                        return o;
-                    }
-                    return o.data.translations[0].translatedText;
-                    //return escapeDecode(o.data.translations[0].translatedText);
-                }
-            }, 
-            function (result) {
-                cb(result);
-            },
-            this,
-            []
-        );
-        
-            
-        
     };