File: babelfish.lua

package info (click to toggle)
elinks 0.19.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,424 kB
  • sloc: ansic: 174,653; cpp: 31,967; sh: 7,841; python: 4,039; perl: 2,183; javascript: 1,794; pascal: 1,710; makefile: 1,006; yacc: 295; lisp: 125; awk: 79; ruby: 70
file content (55 lines) | stat: -rw-r--r-- 1,491 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function babelfish (url)
    local from, to, rest
    local lang_pair
    local param
    local lang2code = {
        ["chinese-simp"] = 'zh',
        ["chinese-simple"] = 'zh',
        ["chinese-simplified"] = 'zh',
        ["chinese-trad"] = 'zt',
        ["chinese-traditional"] = 'zt',
        ["dutch"] = 'nl',
        ["nederlands"] = 'nl',
        ["Nederlands"] = 'nl',
        ["german"] = 'de',
        ["deutsch"] = 'de',
        ["Deutsch"] = 'de',
        ["english"] = 'en',
        ["french"] = 'fr',
        ["fran\231ais"] = 'fr',
        ["greek"] = 'el',
        ["italian"] = 'it',
        ["italiano"] = 'it',
        ["japanese"] = 'ja',
        ["korean"] = 'ko',
        ["portuguese"] = 'pt',
        ["portugu\234s"] = 'pt',
        ["russian"] = 'ru',
        ["spanish"] = 'es',
        ["espanol"] = 'es',
        ["espa\241ol"] = 'es',
    }

    _,_,from,to,rest = string.find(url, '^bb%s*([^%s]+)[%s]+([^%s]+)[%s]*(.*)')

    if not rest then return url,nil end

    from = lang2code[from] or from
    to = lang2code[to] or to

    lang_pair = from..'_'..to

    if string.find(rest, ':[^%s]') then
        url = "http://babelfish.altavista.com/babelfish/urltrurl"
               .."?url="..escape(rest)
               .."&lp="..lang_pair
    else
        url = "http://babelfish.altavista.com/babelfish/tr"
               .."?trtext="..escape(rest)
               .."&lp="..lang_pair
    end

    return url,true
end

table.insert(goto_url_hooks, babelfish)