Since CZB's Google Translate script doesn't work anymore (because of the Google Api changes) I thought I'd make a script that loads the GoogleTranslate page in FARR with a given word.
So, here's my first attempt at it, I've used the NinjaWords script as a starting point :
Usage :
gt source_language destination_language word <space>
or
gt source_language destination_language word <enter>
source_language can be "auto" and then Google Translate will try to detect what language it is from.
There are still some bugs in it, the most notable ones are :
- you need to press space after the word (pressing Enter doesn't do the translation)
- doesn't support multiple word translation
- sometimes the page loads without the word(s), if you delete the space and add it again then it loads correctly
- after pressing Enter at the end of the search string FARR looses focus and the editbox from GoogleTranslate page gets the focus
Note : this script requires FarSubScript, make sure you have it installed and working in FARR.
Install :
extract the content of the archive into a subfolder under the Scripts folder of FARR (for example : plugins\GoogleTranslate) and either write "goreload" in FARR (this will reload all plugins) or restart FARR.
If anybody wants to improve the script feel free to do so.
Update : now supports multiple texts in one line and you can either press space or enter after the word(s) that you want to translate.
So, here's my first attempt at it, I've used the NinjaWords script as a starting point :
Spoiler (click to show/hide)
Code: (javascript)
plugins["GoogleTranslate"] =
{
version: "1.0",
lastChange: new Date(fso.GetFile(currentDirectory+"\\fsubscript.js").DateLastModified).toDateString(),
displayName: "GoogleTranslate",
directory: currentDirectory,
icon: currentDirectory + "\\favicon.ico",
aliasstr: "gt",
description: "Translate the word using Google Translate"
};
(function ()
{
var js = plugins["GoogleTranslate"];
var loaded = false;
var match = false;
var match2 = false;
var loadurl = "";
js.search = function search(querykey, explicit, queryraw, querynokeyword,modifierstring,triggermethod)
{
if(!explicit) return;
idletime = 0;
// first : match when a space is at the end of the string
match = queryraw.match(new RegExp("^"+js.aliasstr+" ([a-z,A-Z,0-9]+) ([a-z,A-Z,0-9]+) (.+) $"));
// second : match when the user presses enter
match2= queryraw.match(new RegExp("^"+js.aliasstr+" ([a-z,A-Z,0-9]+) ([a-z,A-Z,0-9]+) (.+)$"));
if((match && match[1] && match[2] && match[3])||
(triggermethod && match2 && match2[1] && match2[2] && match2[3]))
{
loaded = true;
// formated HTML must be like this :
// http://translate.google.com/#<srclng>/<destlng>/<word>
// you can use "auto" as srclng for autodetection
// Example : http://translate.google.com/#auto/en/word
if (match)
loadurl = "http://translate.google.com/#"+match[1]+"/"+match[2]+"/"+match[3];
else if (match2)
loadurl = "http://translate.google.com/#"+match2[1]+"/"+match2[2]+"/"+match2[3];
else
loadurl = "";
htmlViewURL(loadurl);
showPleaseWait("Loading..");
}
else
{
showHTML("<b>GoogleTranslate</b>\
<br>Translate a given text using the Google Translate service\
<br><br>\
<br>Syntax : <b>"+js.aliasstr+" srclng destlng word</b>\
<br><b>srclng</b> is the source language\
<br><b>destlng</b> is the destination language\
<br><b>word</b> is the word we want to translate\
<br><br>Example: <b><br>"+js.aliasstr+" en de computer</b>\
<br> this will translate the 'computer' word from english to german\
<br><br>Note : for source language you can type <b>'auto'</b> and Google will try to detect the language\
");
}
};
js.setStrValue = function onSetStrValue(varname,value)
{
if(varname == "EmbeddedWb.DocumentComplete")
{
var pl = pluginInCharge();
if(pl == "GoogleTranslate" && loaded)
{
loaded = false;
// hide the "Chrome browser" advertisment
// hide the "Search | Images |..." toolbar
execSafeJS(
"document.getElementById('gt-bbar').style.display='none';\n\
document.getElementById('gb').style.display='none';\
");
hidePleaseWait();
}
}
}
}());Usage :
gt source_language destination_language word <space>
or
gt source_language destination_language word <enter>
source_language can be "auto" and then Google Translate will try to detect what language it is from.
There are still some bugs in it, the most notable ones are :
- sometimes the page loads without the word(s), if you delete the space and add it again then it loads correctly
- after pressing Enter at the end of the search string FARR looses focus and the editbox from GoogleTranslate page gets the focus
Note : this script requires FarSubScript, make sure you have it installed and working in FARR.
Install :
extract the content of the archive into a subfolder under the Scripts folder of FARR (for example : plugins\GoogleTranslate) and either write "goreload" in FARR (this will reload all plugins) or restart FARR.
If anybody wants to improve the script feel free to do so.
Update : now supports multiple texts in one line and you can either press space or enter after the word(s) that you want to translate.











)