وحدة:Wikidata2/pra
توثيق الوحدة [أنشئ] [محو الاختزان][استخدامات] [قوالب]
local Wikidata2 = require('Module:Wikidata2').formatStatementsFromLua
local p = {}
local alies = {
["barlist"] = { "قائمة شريطية" },
["page"] = { "مقالة" },
["entityId"] = { "صفحة", "id", "معرف ويكي بيانات", "qid", "", "" },
["property"] = { "خاصية", "", "", "", "" },
["formatcharacters"] = { "formatcharacters", "", "", "", "", "" },
["addTrackingCat"] = { "", "", "", "", "", "" },
["category"] = { "تصنيف", "", "", "", "" },
["noicon"] = { "إيقونة", "رمز", "", "", "", "" },
["nocate"] = { "دون تصنيف", "", "", "", "", "" },
["icon2"] = { "icon2", "", "", "", "", "" },
["urllabel"] = { "urllabel", "", "", "", "", "" },
["mainsuffixAfterIcon"] = { "لاحقة2", "", "", "", "", "" },
["mainprefix"] = { "سابقة", "بادئة", "", "", "", "" },
["mainsuffix"] = { "لاحقة", "", "", "", "", "" },
["property1"] = { "خاصية قيمة", "", "", "", "", "" },
["property1rank"] = { "property1rank", "", "", "", "", "" },
["property1after"] = { "property1after", "", "", "", "", "" },
["property1formatting"] = { "property1formatting", "", "", "", "", "" },
["property1pref"] = { "سابقة خاصية قيمة", "", "", "", "", "" },
["property1suff"] = { "لاحقة خاصية قيمة", "", "", "", "", "" },
["image"] = { "image", "صورة", "", "", "", "" },
["center"] = { "center", "", "", "", "", "" },
["size"] = { "حجم صورة", "", "", "", "", "" },
["formatting"] = { "formatting", "", "", "", "", "" },
["illwd2"] = { "illwd2", "", "", "", "", "" },
["pattern"] = { "نمط", "", "", "", "", "" },
["NoPropValue"] = { "تصنيف 3", "تصنيف3", "بديل", "", "", "" },
["langpref"] = { "langpref", "", "", "", "", "" },
["noref"] = { "مراجع", "مراجع ويكي بيانات", "", "", "", "" },
["numberofreferences"] = { "numberofreferences", "", "", "", "", "" },
["justthisqual"] = { "justthisqual", "تصفية فقط", "", "", "", "" },
["modifytime"] = { "", "", "", "", "", "" },
["rank"] = { "rank", "", "", "", "", "" },
["bothdates"] = { "بداية ونهاية", "", "", "", "", "" },
["withdate"] = { "نقطة", "", "", "", "", "" },
["firstvalue"] = { "واحد فقط", "وصلة كاملة", "", "", "", "" },
["modifyqualifiertime"] = { "modifyqualifiertime", "", "", "", "", "" },
["enlabelcate"] = { "enlabelcate", "", "", "", "", "" },
["qual1"] = { "تصفية", "", "", "", "", "" },
["qual1pref"] = { "سابقة تصفية", "", "", "", "", "" },
["qual1a"] = { "تصفية1", "", "", "", "", "" },
["qp1apref"] = { "سابقة تصفية1", "", "", "", "", "" },
["qual2"] = { "تصفية2", "", "", "", "", "" },
["qual2pref"] = { "سابقة تصفية2", "", "", "", "", "" },
["qual3"] = { "تصفية3", "", "", "", "", "" },
["qual3pref"] = { "سابقة تصفية3", "", "", "", "", "" },
["qual4"] = { "تصفية4", "", "", "", "", "" },
["qual4pref"] = { "سابقة تصفية4", "", "", "", "", "" },
["qual5"] = { "تصفية5", "", "", "", "", "" },
["qual5pref"] = { "سابقة تصفية5", "", "", "", "", "" },
["sortbytime"] = { "ترتيب", "", "", "", "", "" },
["option1"] = { "خيار", "", "", "", "", "" },
["option1value"] = { "قيمة خيار", "", "", "", "", "" },
["propertyimage"] = { "propertyimage", "", "", "", "", "" },
["property2"] = { "property2", "", "", "", "", "" },
["qualifierprefix"] = { "بادئة تصفيات", "", "", "", "", "" },
["qualifiersuffix"] = { "لاحقة تصفيات", "", "", "", "", "" },
["avoidqualifier"] = { "تجاهل تصفية ", "", "", "", "", "" },
["preferqualifier"] = { "preferqualifier", "", "", "", "", "" },
["avoidvalue"] = { "avoidvalue", "", "", "", "", "" },
["preferqualifiervalue"] = { "preferqualifiervalue", "", "", "", "", "" },
["separator"] = { "separator", "", "", "", "", "" },
["conjunction"] = { "conjunction", "", "", "", "", "" },
["link"] = { "وصلة", "", "", "", "", "" },
["linkname"] = { "تسمية وصلة", "", "", "", "", "" },
}
function switch_qualls(property, qual1, Table)
--local property
if qual1 and qual1 ~= "" then return qual1 end
if property:upper():sub(1, 1) == "P" then
property = property:sub(2)
property = tonumber(property)
end
local val = Table[property] or ""
return val
end
function switch_contry(property, argvalue, property2, Table)
--local property
if argvalue and argvalue ~= "" then return argvalue end
if property:upper():sub(1, 1) then
property = property:sub(2)
property = tonumber(property)
end
for i, v in pairs(Table) do
if v == property
then
return property2
end
end
return argvalue
end
local function isavild(x)
if x and x ~= "" then return x end
return nil
end
function p.prase(frame)
--local prgs = frame.args
local prgs = frame:getParent().args
local args = prgs
local value = mw.text.trim(args["قيمة موجودة"] or args.value or args["1"] or "")
if value and value ~= '' then
mw.log("value:" .. value)
if value == 'لا' or value == 'no' then
return ""
else
return value
end
end
for k, t in pairs(alies) do
--mw.log(" arg:" .. k )
for i, v in pairs(t) do
if args[v] and v ~= "" then
--mw.log( "v arg: v".. v )
if v ~= k
then
args[k] = args[v]
args.k = args[v]
--mw.log("rename arg:".. v .. " to : " .. k )
end
end
end
end
--If a value if already set, use it
local property = args.property or args["property"] or args["خاصية"]
local contries = { 17, 1532, 27, 495 }
args.property1 = switch_contry(property, args.property1, "P41", contries)
args.image = switch_contry(property, args.image, "image", contries)
args.size = switch_contry(property, args.size, "20", contries)
args.formatting = switch_contry(property, args.formatting, "sitelink", { 1811, 1881 })
args.bothdates = switch_contry(property, args.bothdates, "true", { 26, 551, 27, 69, 1376, 1532, 17, 495, 102, 1451 })
args.onlyvaluewithref = switch_contry(property, args.onlyvaluewithref, "t", { 172, 140, 91, 1853 })
args.qual1 = switch_qualls(property, args.qual1, {
[856] = "P407", -- لغة الموقع الرسمي
[159] = "P17", -- بلد مقر رسمي
[1120] = "P2868", -- خاصية دور شخص
[1561] = "P2868", -- خاصية دور شخص
[1132] = "P2868", -- خاصية دور شخص
})
-- firstvalue
if isavild(args["وصلة كاملة"]) or isavild(args.firstvalue) then
args.firstvalue = "true"
end
-- value-module / value-function
value_module = switch_qualls(property, args["value-module"], {
[106] = "Wikidata2/P106",
[413] = "Wikidata2/P106",
[172] = "Wikidata2/P172",
})
value_function = switch_qualls(property, args["value-function"], {
[106] = "formatEntityWithGenderClaim",
[413] = "formatEntityWithGenderClaim",
[172] = "get_P172_lab",
})
if isavild(value_module) and isavild(value_function) then
args["value-module"] = value_module
args["value-function"] = value_function
end
-- rank
if isavild(args.rank) == nil then
if isavild(args["رقم"]) or isavild(args.link) then
args.rank = "all"
else
args.rank = "best"
end
end
-- قائمة
if isavild(args["قائمة"])
or isavild(args["نقطة"])
or isavild(args["bothdates"])
or isavild(args["فاصل سطر"])
or switch_contry(property, args["قائمة"], "true", { 26, 551, 27, 69, 1376, 1532, 17, 495, 102, 1451 })
then
args.separator = "{{-}}"
args.conjunction = "{{-}}"
else
args.separator = args.separator or "، و"
args.conjunction = args.conjunction or "، و"
end
-- قائمة شريطية
if args.barlist and args.barlist ~= "" then
args.mainprefix = "{{Div/top}}" .. (args.mainprefix or "")
args.mainsuffixAfterIcon = (args.mainsuffixAfterIcon or "") .. "</div>"
end
if args.pattern and args.pattern ~= "" then
if args.pattern == "وصلة" then args.pattern = "autourl2" end
else
if not args["وصلة كاملة"] or args["وصلة كاملة"] == "" then
if args.link and args.link ~= "" then
args.pattern = "[" .. args.link .. " " .. (args.linkname or "$1") .. "]"
end
end
end
args.addTrackingCat = "yes"
args.NosValue = args.NoPropValue
args.showlang = "t"
return Wikidata2(args)
end
return p