انتقل إلى المحتوى

وحدة:License scope

من ويكي مصدر، المكتبة الحرة
--[=[
Implements [[قالب:License scope]] and [[قالب:License grammar]]
]=]

local p = {} --p stands for package

local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')

local namespace = mw.title.getCurrentTitle().nsText

function p.plural_namespace()
	local plural_namespaces = {
		["مؤلف"] = true,
		["نقاش المؤلف"] = true,
		["بوابة"] = true,
		["نقاش البوابة"] = true,
		["تصنيف"] = true,
		["نقاش التصنيف"] = true
	}
	return plural_namespaces[namespace] or false
end

--[=[
Implements [[قالب:License scope]]
]=]

function p._license_scope(args)
	if not args then
		args = {}
	end
	
	local text
	if p.plural_namespace() then
		local usesome
		if namespace == "تصنيف" or namespace == "نقاش التصنيف" then
			usesome = yesno(args.usesome or 'no')
		else
			usesome = yesno(args.usesome or 'yes')
		end
		if usesome then
			text = "بعض أو كل الأعمال "
		else
			text = "أعمال "
		end
		if namespace == "مؤلف" or namespace == "نقاش المؤلف" then
			text = text .. "بواسطة هذا المؤلف"
		elseif namespace == "بوابة" or namespace == "نقاش البوابة" then
			text = text .. "المدرجة في هذه البوابة"
		elseif namespace == "تصنيف" or namespace == "نقاش التصنيف" then
			text = text .. "في هذا التصنيف"
		end
	elseif namespace == "ملف" or namespace == "نقاش الملف" then
		text = "هذا الملف"
	elseif namespace == "Image" or namespace == "Image talk" then
		text = "This image"
	else
		text = "هذا العمل"
	end
	
	local useverb = yesno(args.useverb) or args.useverb == nil
	if useverb then
		local past = yesno(args.past or 'no')
		if past and p.plural_namespace() then
			text = text .. " were"
		elseif past then
			text = text .. " was"
		elseif p.plural_namespace() then
			text = text .. " هي"
		else
			text = text .. " هو"
		end
	end
	
	if yesno(args.lc or 'no') then
		text = string.lower(text)
	end
	
	return text
end

function p.license_scope(frame)
	return p._license_scope(getArgs(frame))
end

--[=[
Implements [[قالب:License grammar]]
]=]

function p._license_grammar(args)
	if not args then
		args = {}
	end
	if p.plural_namespace() then
		return args[2]
	else
		return args[1]
	end
end

function p.license_grammar(frame)
	return p._license_grammar(getArgs(frame))
end

return p