مندرجات کا رخ کریں

ماڈیول:Wikidata2/P106

آزاد دائرۃ المعارف، ویکیپیڈیا سے
Documentation icon دستاویز [تخلیق]
local p = {}
local sandbox = "تختہ مشق"
local sandbox_added = ""
if nil ~= string.find(mw.getCurrentFrame():getTitle(), sandbox, 1, true) then
	sandbox_added = "/" .. sandbox
end
local config = mw.loadData('Module:Wikidata2/config' .. sandbox_added)
local i18n = config.i18n

local to_skip = config.skip_items["P106"] or {}

local function formatGenderLabelForEntityId(jobqid, isFemale, options)
	local vv = formatEntityId(jobqid, options)
	
	if isFemale and (isFemale == 'Q6581072' or isFemale == 'Q1052281') then
		local joblabel = ""
		local statements = mw.wikibase.getBestStatements(jobqid, 'P2521')
		for _, statement in ipairs(statements) do
			if statement.mainsnak.snaktype == 'value' then
				local datavalue = statement.mainsnak.datavalue
				if datavalue.type == 'monolingualtext' then
					if datavalue.value.language == i18n.local_lang or datavalue.value.language == 'ur' then
						joblabel = datavalue.value.text
						break
					end
				end
			end
		end
		
		if joblabel ~= "" then
			local sitelink = mw.wikibase.getSitelink(jobqid)
			if sitelink then
				vv.value = '[[' .. sitelink .. '|' .. joblabel .. ']]'
			else
				vv.value = joblabel
			end
		end
	end
	
	return vv
end

function p.formatEntityWithGenderClaim(datavalue, datatype, options)
	local jobqid = datavalue.value.id

	for k, v in pairs(to_skip) do
		if jobqid == v then
			mw.log("P106:" .. jobqid .. " undisplayed.")
			return ""
		end
	end

	local personqid = options.entityId or options.qid
	local gender = formatStatements({
		property = 'P21',
		entityId = personqid,
		noref = 't',
		rank = 'all',
		firstvalue = 't',
		formatting = 'raw'
	})
	
	local s = formatGenderLabelForEntityId(jobqid, gender, options).value
	return s
end

return p