Google Translate
From awesome
First, you will need a translator-script. I've found two versions. First version taken from here.
#!/usr/bin/env python
from urllib2 import urlopen
from urllib import urlencode
import sys
# The google translate API can be found here:
# http://code.google.com/apis/ajaxlanguage/documentation/#Examples
lang1=sys.argv[1]
lang2=sys.argv[2]
langpair='%s|%s'%(lang1,lang2)
text=' '.join(sys.argv[3:])
base_url='http://ajax.googleapis.com/ajax/services/language/translate?'
params=urlencode( (('v',1.0),
('q',text),
('langpair',langpair),) )
url=base_url+params
content=urlopen(url).read()
start_idx=content.find('"translatedText":"')+18
translation=content[start_idx:]
end_idx=translation.find('"}, "')
translation=translation[:end_idx]
print translation
Idea of second version from here:
wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=$2|${3:-en}" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/'
Save one of them to any/dir/google-translate and make executable.
You should add function aw_translate to your rc.lua.
function aw_translate()
local val = nil
awful.prompt.run({ text=val and tostring(val),
selectall = true,
fg_cursor = black,
bg_cursor = orange,
prompt = "<span color='#00A5AB'>Translate:</span> "}, mypromptbox.widget,
function(expr)
-- if you use the second script, you will need "any/dir/google-translate" .. expr .. " en hu"
-- "en hu": "source language" "target language", you may want to change this
local f = io.popen("any/dir/google-translate en hu " .. expr)
if f then
val = f:read("*line")
f:close()
else
val = "< error >"
end
notify_keychain = naughty.notify({
text = expr .. ' <span color="white">' .. val .. "</span>",
timeout = 0,
position = "bottom_right"
})
root.keys(awful.util.table.join(
keychain["awesome"],
awful.key({},"Escape",function ()
reset_keychain()
end)
))
end,
nil, awful.util.getdir("cache") .. "/translate")
end
After this you can use aw_translate() (eg. with keybinding).