Google Translator
Revision as of 23:18, 18 April 2010 by Ugleh Ulrik (talk | contribs)
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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 = strReplace(message, " ", "%20"); 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>