Module:TranslateThis

return { main = function( frame ) function shallowcopy(orig) if type(orig) ~= 'table' then return orig end local result = {} for key, value in pairs(orig) do			result[key] = value end return result end local lang = frame:preprocess("") -- I don't know of any other way to get the user's language... local args = shallowcopy(frame:getParent.args) local anchor = args.anchor args.anchor = nil if (anchor and args[anchor]) then anchor = args[anchor] end anchor = anchor and frame:expandTemplate( { title = "Anchor", args = { anchor } } ) or '' local result = args[ lang ] if result and result ~= '' then result = ' ' .. result .. ' '	else result = '' for i, v in pairs( args ) do			if v ~= "" then result = result .. ' / ' .. v .. ' (' .. i .. ') ' end end local langname = mw.language.fetchLanguageName( lang, lang ) result = result:sub( 4 ) if langname ~= "" then result = result .. " – " .. frame:expandTemplate( { title = "Help translate", args = { langname } } ) end end return anchor .. result end}