DataObjects/Core_company_type.php
[Pman.Core] / Pman.js
diff --git a/Pman.js b/Pman.js
index 2166fcc..95e2394 100644 (file)
--- a/Pman.js
+++ b/Pman.js
@@ -849,26 +849,54 @@ Pman = new Roo.Document(
         
         
     },
-    
+    /**
+     * 
+     * gtranslate
+     * Translate a string using google translate API
+     * 
+     * Note: this does not handle html input at present - 
+     * @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.
+     */
     gtranslate : function(str, src, dest, cb) {
         // load script: 
         var cur = 0;
         var sbits = [];
         var complete = '';
         
+        function escapeDecode(encodedString) {
+            var output = encodedString;
+            var binVal, thisString;
+            var myregexp = /(&#([0-9]+);)/;
+            while ((match = myregexp.exec(output)) != null
+                       && match.length > 1
+                       && match[1] != '') {
+              //     Roo.log(match);
+              binVal = parseInt(match[2]);
+              thisString = String.fromCharCode(binVal);
+              output = output.replace(match[1], thisString);
+            }
+            return Roo.util.Format.htmlDecode( output);
+        }
+        
+        
+        
         function transbits()
         {
-            if (cur  > sbits.length) {
-                cb.call(complete);
+            if ((cur +1) > sbits.length) {
+                //Roo.log("CALLING COMPLETED: " + complete);
+                cb(complete);
                 return;
             }
-            //console.log("SEND : " + sbits[cur]);
-            Roo.log("SEND : " + sbits[cur]);
+           // Roo.log("SEND : " + sbits[cur]);
             Pman.gtranslate( sbits[cur], src, dest, function(result) {
                 if (typeof(result) == 'object') {
-                    cb.call(result);
+                    cb(result);
                     return;
                 }
+                complete += complete.length ? ' ' : ''; 
                 complete += result;
                 cur++;
                 transbits();
@@ -876,20 +904,22 @@ Pman = new Roo.Document(
         }
         
         
-        if (str.length > 250) {
+        if (str.length > 400) {
             var bits = str.split(/\s+/);
             sbits[0]  = '';
             for (var i =0; i < bits.length; i++) {
-                if (sbits[cur].length + bits[i].length > 240) {
+                if (sbits[cur].length + bits[i].length > 390) {
                     cur++;
-                    sbits[cur] = bits[i] + ' ';
+                    sbits[cur] = bits[i];
                     continue;
                 }
+                sbits[cur] += sbits[cur].length  ? ' ' : '';
                 sbits[cur] += bits[i] + ' '
                 
             }
-            cur = 0; // reset cur..
-            Roo.log(sbits);
+           // Roo.log(sbits);
+            cur = 0; // reset cursor.
+            
             transbits();
             return;
         }
@@ -918,7 +948,7 @@ Pman = new Roo.Document(
                     if (!o.responseData) {
                         return o;
                     }
-                    return o.responseData.translatedText;
+                    return escapeDecode(o.responseData.translatedText);
                 }
             }, 
             function (result) {