模組:Google translation interwiki
外观
require('Module:No globals')
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
return p._main(args, frame)
end
function p._main(args, frame)
--------------------------------------------
local getLink = function(iw, label, to)
local sl, tl, u, text
sl = args.from or iw:match('^([^:]+):.+$')
if to == 'zh' then to = nil end
tl = to or require('Module:Lan')._main({['zh-cn']='zh-CN', ['zh-tw']='zh-TW'}, frame)
u = tostring(mw.uri.fullUrl(iw))
text = label or iw
local ret
ret = mw.ustring.format(
'https://translate.google.com/translate?sl=%s&tl=%s&prev=_t&hl=%s&u=%s',
sl, tl, sl, u
)
ret = mw.ustring.format(
'[%s %s]',
ret, text
)
ret = mw.ustring.format(
'<span class="machinetrans machinetrans_to_%s machinetrans_from_%s">%s</span>',
tl, sl, ret
)
return ret
end
--------------------------------------------
if args.to then
local langs = mw.text.split(args.to, ',')
local links = {}
for _, v in ipairs(langs) do
local lang = mw.text.trim(v)
table.insert(links, getLink(args[1], lang, lang))
end
local text = table.concat(links, ',')
text = '<sup>[' .. text .. ']</sup>'
text = '[[:' .. args[1] .. (args[2] and ('|' .. args[2]) or '') .. ']]' .. text
return text
end
return getLink(args[1], args[2])
end
return p