Pman.GoogleTranslate.js
[Pman.Core] / Pman.GoogleTranslate.js
index 34776e3..f4ada53 100644 (file)
  * @param str {String} target language
  * @param str {String} callback - calls back with result or an error object.
  */
-Pman.GoogleTranslate = function(str, src, dest, cb) {
+Pman.GoogleTranslate = function(str, src, dest, cb, force) {
         // load script: 
         var cur = 0;
         var sbits = [];
         var complete = '';
         
+        
+        if (!Pman.GoogleTranslate.key) {
+            
+            new Pman.Request({
+                method : 'POST',
+                url : baseURL + '/Core/GoogleKey',
+                success : function(data)
+                {
+                    Pman.GoogleTranslate.key = data.key;
+                    
+                    Pman.GoogleTranslate(str, src, dest, cb, force);
+                    
+                }
+                
+                
+            });
+            
+            
+            
+            
+            return;
+        }
+        
+        
         function escapeDecode(encodedString) {
             var output = encodedString;
             var binVal, thisString;
@@ -31,8 +55,7 @@ Pman.GoogleTranslate = function(str, src, dest, cb) {
             return Roo.util.Format.htmlDecode( output);
         }
         
-        
-        
+         
         function transbits()
         {
             while (true) {
@@ -59,12 +82,13 @@ Pman.GoogleTranslate = function(str, src, dest, cb) {
                 complete += result;
                 cur++;
                 transbits();
-            });
+            }, true);
         }
         
         // chunk up long strings..
-        if (str.length > 200) {
-            var bits = str.split(/(\s+|[0-9]+)/);
+        // we should roo.encode to test lenght..
+        if (!force && str.length > 200) {
+            var bits = str.split(/(\s+|[0-9\u3002\uff0c\u3001\u201c\u201d]+)/);
             sbits[0]  = '';
             for (var i =0; i < bits.length; i++) {
                 if (sbits[cur].length + bits[i].length > 190) {
@@ -86,16 +110,13 @@ Pman.GoogleTranslate = function(str, src, dest, cb) {
                 
                 
                 
-                
-        
-        
-        
-        
+          
         var x = new Roo.data.ScriptTagProxy({ 
             url:  'http://ajax.googleapis.com/ajax/services/language/translate', 
             callbackParam : 'callback' 
             
         });
+        
         x.load(
             {
                 v: '1.0',