Google Translator

From Second Life Wiki
Revision as of 14:11, 23 April 2010 by HEN Streeter (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Google Translator by Ugleh Ulrik

Google Translator keeps their translated data in a Array. You can see this by looking at the HTTPRequests.

The URL is this

http://translate.google.com/translate_a/t?client=t&text=words here&hl=en&sl=es

This will make it go from Spanish to English. Then all you need to do is do a string replacement.


<lsl> key http_request_id; string transtring = ""; string nothing = ""; string name; string somestring; string strReplace(string str, string search, string replace) {

   return llDumpList2String(llParseStringKeepNulls((str = "") + str, [search], []), replace);

} default {

   state_entry()
   {
       llListen(0, "", NULL_KEY, "");
   }

   http_response(key request_id, integer status, list metadata, string body)
   {
       if (request_id == http_request_id)
       {
           list trans1 = llParseString2List(body, ["\"orig\""], []);
           transtring = strReplace(llList2String(trans1,0), "{\"sentences\":[{\"trans\":\"", "");
           nothing = strReplace(transtring, "\",", "");
           nothing = strReplace(nothing, ",", "");
           nothing =  strReplace(nothing, "\\" + "\"", "\"");
           if (somestring != nothing){
           llSay(0, nothing);
       }
           llSetObjectName("es2en Translator");
       }
   }
    listen(integer channel, string name, key id, string message)
   {
       somestring = message;
        if (name == llKey2Name(llGetOwner())){
       transtring =  llEscapeURL(message);
        http_request_id = llHTTPRequest("http://translate.google.com/translate_a/t?client=t&text=" + transtring + "&hl=en&sl=es&tl=en&pc=0", [], "");
   llSetObjectName(name);
   }
   }
   

} </lsl>