return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
 
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
	frame = frame or {}
	options = options or {}
 
	--[[
	-- Set up argument translation.
	--]]
	options.translate = options.translate or {}
	if getmetatable(options.translate) == nil then
		setmetatable(options.translate, translate_mt)
	end
	if options.backtranslate == nil then
		options.backtranslate = {}
		for k,v in pairs(options.translate) do
			options.backtranslate[v] = k
		end
	end
	if options.backtranslate and getmetatable(options.backtranslate) == nil then
		setmetatable(options.backtranslate, {
			__index = function(t, k)
				if options.translate[k] ~= k then
					return nil
				else
					return k
				end
			end
		})
	end
	--[[
					end
				end
				
				-- We test for false specifically here so that nil (the default) acts like true.
				if found or options.frameOnly == false then
		luaArgs = frame
	end
	
	-- Set the order of precedence of the argument tables. If the variables are
	-- nil, nothing will be added to the table, which is how we avoid clashes
	-- between the frame/parent args and the Lua args.	
	local argTables = {fargs}
	argTables[#argTables + 1] = pargs
		-- must be nil.
		--]]
		if type(key) == 'string' then
			key = options.translate[key]
		end
		local val = metaArgs[key]
		if val ~= nil then
		-- This function is called when a module tries to add a new value to the
		-- args table, or tries to change an existing value.
		if type(key) == 'string' then
			key = options.translate[key]
		end
		if options.readOnly then
			error(
		else
			metaArgs[key] = val
		end
	end
 
	local function translatenext(invariant)
		local k, v = next(invariant.t, invariant.k)
		invariant.k = k
		if k == nil then
			return nil
		elseif type(k) ~= 'string' or not options.backtranslate then
			return k, v
		else
			local backtranslate = options.backtranslate[k]
			if backtranslate == nil then
				-- Skip this one. This is a tail call, so this won't cause stack overflow
				return translatenext(invariant)
			else
				return backtranslate, v
			end
		end
	end
			metatable.donePairs = true
		end
		return pairs(translatenext, { t = metaArgs)}
	end
	
	local function inext(t, i)
		-- This uses our __index metamethod