وحدة:بطاقة/أدوات
المظهر
وحدات فرعية
[عدل]في نطاق وحدة:
نقاش الوحدة:
-- Credits:
-- Original from fr:Module:Infobox/Fonctions
-- forked by وهراني @arwiki (ar:وحدة:بطاقة/أدوات)
-- Version: 20240607
-- أدوات مشتركة لبناء قوالب infobox
local localdata = require("وحدة:بطاقة/بيانات")
local item = localdata.item
local generic = {}
generic.description = {"أدوات مشتركة عامة لبناء البطائق"}
local xmath = require("Module:Math")
function FormatNumVal(value)
value = tonumber(value)
if value == 0 then
return value
end
if (math.abs(value) > 1E15) then
return xmath.round({precision = 3, value = value / 1E15}) .. " [[كوادريليون|بليار]]"
elseif (math.abs(value) > 1E12) then
return xmath.round({precision = 3, value = value / 1E12}) .. " [[تريليون]]"
elseif (math.abs(value) > 1E9) then
return xmath.round({precision = 3, value = value / 1E9}) .. " [[بليون]]"
elseif (math.abs(value) > 1E6) then
return xmath.round({precision = 3, value = value / 1E6}) .. " [[مليون]]"
end
return xmath.round({precision = 3, value = value})
end
generic.FormatNumVal = FormatNumVal
generic.description["title"] = "وضع لبنة «العنوان» وتحوي اسما مشارا إليه أو اسم المقالة.";
function generic.title(params)
if(type(params) ~='table') then params={} end
return {
type = "title",
value = params.value or {"اسم","الاسم","title","name"},
wikidata = function(item)
return (localdata.getValue(params.titleparam)) or
(type(item) == "table" and type(item.id) == "string" and
mw.wikibase.label(item.id) and
mw.language.getContentLanguage():ucfirst(mw.wikibase.label(item.id))) or
mw.title.getCurrentTitle().text
end,
subtitle = function()
return params and localdata.getValue(params.subtitleparam)
end,
wikidatasubtitle = params.subtitlequery,
icon = params.icon,
style = params.style,
metadata = {
description = params.description or "عنوان أو اسم المقالة",
option = "suggested",
type = "",
}
}
end
generic.description["native_name"] = "وضع لبنة «اسم أصلي»";
function generic.native_name(params)
if(type(params) ~='table') then params={} end
return
{
type = params.type or 'subtitle' ,
label = params.label,
value = params.value or {'اسم أصلي','العنوان الأصلي' , 'الاسم الأصلي','native_name','title_orig'},
wikidata = params.wikidata or {
property = params.property or 'P1476',
list = 'notlang',
formatting='$text {{Language icon|NoCat=y|$language}}',
conjunction = "<br />" ,
listmax= 1, listrank='bestrank'
},
metadata = params.metadata or {
description = "الاسم الأصلي للموضوع.(يفضل إضافة اللغة كذلك)",
option = "",
type = "string",
example = "Evolution {{لغة وصلة|en}}",
}
}
end
generic.description["mainimage"] = " وضع لبنة «صورة» وتعرض صورة من المدخلات أو ويكي بيانات";
function generic.mainimage(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P18"},
imageparameters = params.imageparameters or {"صورة", "الصورة", "Image", "image"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat or params.cat or "مقالات تحتاج إلى صور",
sizeparameter = params.sizeparameter or {"حجم الصورة", "حجم_الصورة", "عرض_الصورة"},
uprightparameter = params.uprightparameter or "upright",
defaultupright = params.upright,
defaultsize = params.size,
captionparameter = params.captionparameter or
{
"تعليق",
"تعليق_الصورة",
"تعليق الصورة",
"عنوان_الصورة",
"عنوان الصورة",
"التعليق",
"caption",
"image_caption",
"Caption"
},
altparameter = params.altparameter or "بديل الصورة" or "image_alt",
defaultalt = params.alt,
defaultimagealt = params.defaultimagealt,
numval = 1,
metadata = {
description = params.description or " صورة تناسب الموضوع (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»).",
example = "abc.jpg",
option = "suggested",
type = "wiki-file-name",
}
}
end
generic.description["logo"] = "وضع لبنة «الشعار المرسوم» وتعرض صورة الشعار.";
function generic.logo(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P154"},
imageparameters = params.imageparameters or {"شعار", "الشعار", "logo"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat,
captionparameter = params.captionparameter or {"تعليق الشعار", 'logo_caption'},
defaultupright = params.upright or "0.6",
uprightparameter = params.uprightparameter or "upright logo",
sizeparameter = params.sizeparameter or {"حجم الشعار", "عرض_الشعار"},
numval = 1,
defaultcaption = 'الشعار',
metadata = {
description = params.description or "صورة للشعار (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_logo.jpg",
option = "suggested",
type = "wiki-file-name",
}
}
end
generic.description["coat_of_arms"] = "إضافة صورة شعار النبالة";
function generic.coat_of_arms(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = {"P94"}},
imageparameters = params.imageparameters
or {"شعار_النبالة", "coat_of_arms"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat,
captionparameter = params.captionparameter or
{"تعليق نبالة", "coat_of_arms_caption"},
defaultupright = params.upright or "0.8",
uprightparameter = params.uprightparameter or {"upright coa"},
sizeparameter = params.sizeparameter or {"coa_size"},
numval = 1,
defaultcaption = 'شعار النبالة',
metadata = {
description = params.description or "صورة لشعار النبالة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_coat.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.blason = generic.coat_of_arms
generic.description["seal"] = "إضافة صورة الختم";
function generic.seal(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = {"P158"}},
imageparameters = params.imageparameters
or { "ختم", "seal"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat,
captionparameter = params.captionparameter or
{ "تعليق ختم", "seal_caption"},
defaultupright = params.upright or "0.8",
uprightparameter = params.uprightparameter or { "upright seal"},
sizeparameter = params.sizeparameter or { "seal_size"},
numval = 1,
defaultcaption = 'الختم',
metadata = {
description = params.description or "صورة للختم (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_seal.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.sceau = generic.seal
generic.description["flag"] = "إضافة صورة العلم";
function generic.flag(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P41"},
imageparameters = params.imageparameters or {"العلم", "علم", "flag"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat,
captionparameter = params.captionparameter or {"تعليق العلم",'flag_caption'},
defaultupright = params.upright or "0.6",
uprightparameter = params.uprightparameter or "upright drapeau",
sizeparameter = params.sizeparameter or {"حجم العلم", "flag_size"},
numval = 1,
defaultcaption = 'العلم',
metadata = {
description = params.description or "صورة للعلم (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_flag.jpg",
option = "suggested",
type = "wiki-file-name",
}
}
end
generic.description["sign"] = "إضافة صورة لافتة";
function generic.sign(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P14"},
imageparameters = params.imageparameters or {"لافتة"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat,
captionparameter = params.captionparameter or {"تعليق اللافتة","sign_caption"},
defaultupright = params.upright or "0.4",
uprightparameter = params.uprightparameter or "upright signalisation",
sizeparameter = params.sizeparameter or "حجم اللافتة",
numval = 1,
metadata = {
description = params.description or "صورة اللافتة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["icon"] = "إضافة صورة أيقونة";
function generic.icon(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P2910"},
imageparameters = params.imageparameters or {"أيقونة", "icon"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat,
captionparameter = params.captionparameter or {"تعليق أيقونة","icon_caption"},
defaultupright = params.upright or "0.4",
uprightparameter = params.uprightparameter or "upright icon",
sizeparameter = params.sizeparameter or "icon_size",
numval = 1,
metadata = {
description = params.description or "صورة الأيقونة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_icon.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["scheme"] = "إضافة صورة مخطط";
function generic.scheme(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P5555"},
imageparameters = params.imageparameters or {"مخطط", "scheme"},
captionparameter = params.captionparameter or {"تعليق المخطط","scheme_caption"},
defaultupright = params.upright,
uprightparameter = params.uprightparameter or "upright scheme",
sizeparameter = params.sizeparameter or "حجم المخطط",
numval = 1,
metadata = {
description = params.description or "صورة المخطط (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_scheme.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["planview"] = "إضافة صورة مسقط";
function generic.planview(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P3311"},
imageparameters = params.imageparameters or {"مسقط", "planview"},
captionparameter = params.captionparameter or {"تعليق المسقط","planview_caption"},
defaultupright = params.upright,
uprightparameter = params.uprightparameter or "upright planview",
sizeparameter = params.sizeparameter or "حجم المسقط",
numval = 1,
metadata = {
description = params.description or "صورة المسقط (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_planview.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["bathymetricmap"] = "إضافة صورة خريطة قياس الأعماق";
function generic.bathymetricmap(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
wikidata = params.wikidata or {property = "P207"},
imageparameters = params.imageparameters or {"خريطة قياس الأعماق"},
defaultimage = params.defaultimage,
maintenancecat = params.maintenancecat,
captionparameter = params.captionparameter
or {"تعليق خريطة قياس الأعماق",'bathymetricmap_caption'},
defaultupright = params.upright or "1",
uprightparameter = params.uprightparameter or "upright bathymetricmap",
sizeparameter = params.sizeparameter or "حجم خريطة قياس الأعماق",
numval = 1,
metadata = {
description = params.description or "صورة خريطة قياس الأعماق (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc.jpg",
option = "",
type = "wiki-file-name",
}
}
end
-- روابط خارجية
generic.description["website"] = "إضافة موقع ويب";
function generic.website(params)
if(type(params) ~='table') then params={} end
return {
type = "mixed",
label = params.label or "موقع الويب",
plurallabel = params.plurallabel or "مواقع الويب",
value = params.value or {"موقع ويب", "موقع_ويب", "موقع", "url", "website"},
valueStyle = {["text-align"] = "left", ["direction"] = "ltr", ["font-size"] = "0.9em"},
wikidata = {
wikimod = "Wikidata.Ca",
property = params.property or "P856",
qualifier = "P407",
whitelist1 = "Q13955", -- for arabic website
qualifier2 = "P518", blacklist2 = "Q19778981", -- for Tor onion service
formatting = "table",
conjunction = "<br />",
rowformat = "$0$R0 $1",
rowsubformat1 = '<small><span class="languageicon" style="font-size:0.75em; font-weight:bold; color:var(--color-subtle, #54595d);">($1)</span></small>',
colformat0 = "weblink",
colformat1 = "label"
},
wikidata2 = {
wikimod = "Wikidata.Ca",
property = params.property or "P856",
listrank = "bestrank",
qualifier = "P407", -- for other languages website
qualifier2 = "P518", blacklist2 = "Q19778981", -- for Tor onion service
formatting = "table",
conjunction = "<br />",
rowformat = "$0$R0 $1",
rowsubformat1 = '<small><span class="languageicon" style="font-size:0.75em; font-weight:bold; color:var(--color-subtle, #54595d);">($1)</span></small>',
colformat0 = "weblink",
colformat1 = "label"
},
metadata = {
description = params.description or "فقط الموقع الرسمي على الويب (المواقع غير الرسمية تذكر في فقرة «وصلات خارجية»).",
option = "suggested",
type = "url",
}
}
end
generic.description["blog"] = "إضافة موقع المدونة";
function generic.blog(params)
if(type(params) ~='table') then params={} end
return generic.website({
label = params.label or "[[مدونة|المدونة الرسمية]]",
value = params.value or {'مدونة','blog'},
property = params.property or 'P1581',
description = params.description or 'فقط المدونة الرسمية (المواقع غير الرسمية تذكر في فقرة «وصلات خارجية»).'
})
end
-- أصوات
generic.description["selectSound"] = "إضافة صوت";
function generic.selectSound(params)
if(type(params) ~='table') then params={} end
params.type = "images"
params.style = params.style or {["padding-top"] = "25px"}
params.defaultcaption = params.defaultcaption or "الصوت"
params.captionparameter = params.captionparameter or {"تعليق الصوت",'sound_caption'}
params.imageparameters = params.imageparameters or params.valueparameter or {"صوت", "sound"}
params.defaultsize = params.defaultsize or "280"
params.numval = params.numval or 1
params.wikidata = {
wikimod = "Wikidata.Ca",
property = params.property or "P51",
qualifier = "P407",
whitelist1 = "Q13955", -- for arabic
formatting = "table",
conjunction = "<br />",
rowformat = "$0"
}
params.wikidata2 = {
wikimod = "Wikidata.Ca",
property = params.property or "P51",
listrank = "bestrank",
qualifier = "P407", -- for other languages
formatting = "table",
conjunction = "<br />",
rowformat = "$0"
}
params.metadata = {
description = params.description or "ملف صوتي (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc.ogg",
option = "",
type = "wiki-file-name",
}
return params
end
generic.description["pronunciation"] = "إضافة ملف صوتي للتهجئة";
function generic.pronunciation(params)
if(type(params) ~='table') then params={} end
params.property = params.property or "P443"
params.defaultcaption = "التهجئة"
params.captionparameter = params.captionparameter or {"تعليق التهجئة",'pronunciation_caption'}
params.value = params.valueparameter or {"تهجئة", "pronunciation"}
params.numval = 1
return generic.selectSound(params)
end
generic.description["dimensions"] = "إضافة الأبعاد";
function generic.dimensions()
local function getDimensions(params)
local Dimensionsfunction = require("Module:Dimensions").main
local noerr, data, nb
noerr, data = pcall(Dimensionsfunction, params)
if noerr then
return data
else
addMaintenanceCat("مقالات بها أخطاء مصدرها وحدة بطاقة")
mw.log("WD Query Error : " .. mw.dumpObject(data))
return '<span class="error">' .. (data) .. "</span>"
end
end
return {
type = "mixed",
label = "الأبعاد",
value = {"أبعاد","الأبعاد","dimensions","dim"},
wikidata = function(item)
return getDimensions({
item = item.id,
diameter = localdata.getValue({"diameter","قطر"}),
height = localdata.getValue({"height","ارتفاع"}),
draft = localdata.getValue({"draft","عمق تحت خط الماء"}),
clearance = localdata.getValue({"clearance","مسافة تحتية"}),
width = localdata.getValue({"width","beam","عرض"}),
length = localdata.getValue({"length","horizontal depth","طول","عمق أفقي"}),
span = localdata.getValue({"span","بين الركائز"}),
thickness = localdata.getValue({"thickness","سمك"})
})
end,
metadata = {
description = "قيم الأبعاد (طول- عرض - عمق - قطر - ارتفاع - سمك ...) بوحدات القياس",
option = "",
type = "",
}
}
end
generic.description["awards"] = "إضافة الجوائز";
function generic.awards(params)
if(type(params) ~='table') then params={} end
return {
type = params.type or "row",
label = params.label or "الجوائز",
value = params.value or {"جوائز", "جائزة", "awards"},
wikidata = {
wikimod = "Wikidata.Ca",
property = params.property or "P166",
tablesort = "1",
sorting = "-1",
separator = "<br />",
qualifier = "P585",
qualifier2 = "P1686",
qualifier3 = "P1027",
qualifier4 = "P166/P2425",
qualifier5 = "P1346",
formatting = "table",
rowformat = "* $4 $0$R0 $1$2$3$5",
rowsubformat1 = "<small>($1)</small>",
rowsubformat2 = "<small><br />, عن عمل ''«$2»''</small>",
rowsubformat3 = "<small><br /> تمنحها $3</small>",
rowsubformat4 = "[[ملف:$4|30px|link=]]",
rowsubformat5 = "<small><br />منحت لـ $5</small>"
},
metadata = {
description = params.description or "الجوائز الملحوظة فقط والتي لا تمنح ألقاب.",
option = "",
type = "string",
}
}
end
generic.description["motto"] = "إضافة الشعار النصي";
function generic.motto(params)
if(type(params) ~='table') then params={} end
return {
type = params.type or "row",
label = params.label or "الشعار النصي",
value = params.value or {"شعار_نصي", "motto", "motto_text"},
defaultvalue = params.defaultvalue,
wikidata = {
wikimod = "Wikidata.Ca",
property = params.property or "P1451",
conjunction = "<br />", listrank="bestrank",
formatting = "$text {{Language icon|NoCat=y|$language}}"
},
metadata = {
description = params.description or "شعار نصي (بالإنجليزية:motto) (وليس صورة)",
option = "",
type = "string",
}
}
end
-- أدوات تحديد الموقع الجغرافي
generic.description["country"] = "إضافة البلد";
function generic.country(params)
if(type(params) ~='table') then params={} end
return {
type = params.type or "row",
label = params.label or "البلد",
value = params.value or {"دولة", "بلد", "country"},
wikidata = {
wikimod = "Wikidata.Ca",
property = params.property or "P17", listrank="bestrank",
formatting = "table",
conjunction = "<br />",
rowformat = "{{flag|$0}}$R0",
colformat0 = "label"
},
metadata = {
description = "دولة ذات سيادة لهذا الموضوع",
option = "",
type = "string",
}
}
end
generic.description["geoloc"] = "إضافة خريطة الموقع التفاعلية";
function generic.geoloc(params)
if(type(params) ~='table') then params={} end
if (localdata.getValue("خريطة الموقع") == "-") then
return nil
end
local params2
params.id = params.id or (localdata.item and localdata.item.id)
local geotype = "Point"
if params.id then
if(#(mw.wikibase.getBestStatements(params.id, "P3896")) > 0) then
local commons2 = mw.wikibase.getBestStatements(params.id, "P3896")
commons2 = commons2[1]["mainsnak"]["datavalue"]["value"]
params2 = {geotype2 = 'page', commons2= commons2, id2 = params.id, stroke2 = "#FF0000"}
elseif(#(mw.wikibase.getBestStatements(params.id, "P402")) > 0) then
geotype = "geoshape"
params2 = {geotype2 = 'geoline', id2 = params.id, stroke2 = "#FF0000"}
end
end
return {
type = "map",
latitude = {"دائرة عرض", "دائرة العرض", "latitude"},
longitude = {"خط طول", "خط الطول", "longitude"},
pointtype = params.pointtype,
maptype = params.type,
globe = localdata.globe or localdata.getValue("كوكب") or params.globe,
marker = params.marker,
markercolor = params.markercolor,
shapecolor = params.shapecolor,
markersize = params.markersize,
markersymbol = params.markersymbol,
default_zoom = localdata.getValue({"zoom","تكبير"}) or params.default_zoom,
ids = params.ids ,
id = params.id,
geotype = params.geotype or geotype,
params = params2,
--debug = 1,
metadata = {
description = params.description or "",
option = "",
type = "",
}
}
end
generic.description["coordinates"] = "إضافة الإحداثيات";
function generic.coordinates(params)
if(type(params) ~='table') then params={} end
return {
type = "mixed",
label = "الإحداثيات",
value = {"إحداثيات", "احداثيات", "coordinates"},
wikidata = {
wikimod = "Wikidata.Ca",
listrank = "bestrank",
property = params.property or "P625",
formatting = "{{coord|$lat|$lon|globe:$globe|format=dms}}"
},
metadata = {
description = params.description or "الإحداثيات الجغرافية",
option = "",
type = "string",
}
}
end
generic.description["locationmap"] = "إضافة خريطة الموقع";
function generic.locationmap(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
imageparameters = params.imageparameters or {"صورة خريطة"},
sizeparameter = params.sizeparameter or "حجم صورة خريطة",
captionparameter = params.captionparameter or {"تعليق صورة خريطة"},
defaultupright = params.upright or "1",
property = params.property or "P242",
numval = 1,
metadata = {
description = params.description or "صورة خريطة جغرافية (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_map.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["detailedmap"] = "إضافة خريطة مفصلة";
function generic.detailedmap(params)
if(type(params) ~='table') then params={} end
return {
type = "images",
imageparameters = params.imageparameters or {"صورة خريطة مفصلة"},
sizeparameter = params.sizeparameter or "حجم صورة خريطة مفصلة",
captionparameter = params.captionparameter or {"تعليق صورة خريطة مفصلة"},
defaultupright = params.upright or "1",
defaultsize = params.defaultsize,
property = params.property or "P1621",
numval = 1,
metadata = {
description = params.description or "صورة خريطة جغرافية مفصلة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_map.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["replaces"] = "حل محل";
function generic.replaces(params)
if(type(params) ~='table') then params={} end
return {
type = "row",
label = "عوض",
value = {"عوض","replaces"},
wikidata= params.wikidata or {property = "P1398 OR P1365"},
metadata = {
description = params.description or "حل محل",
option = "",
type = "",
}
}
end
generic.description["replacedby"] = "حل مكانه";
function generic.replacedby(params)
if(type(params) ~='table') then params={} end
return {
type = "row",
label = "حل مكانه",
value = {"حل مكانه","replaced_by"},
wikidata = params.wikidata or {property = "P167 OR P1366"},
metadata = {
description = params.description or "عوضه",
option = "",
type = "",
}
}
end
generic.description["memberof"] = "المنظمات والهيئات التي انتسب إليها."
function generic.memberof(params)
if(type(params) ~='table') then params={} end
return {
type = 'row',
label = params.label or 'عضو في',
value = params.value or {'عضو','عضو في','عضوية','member of','membre de'},
wikidata = {
wikimod = 'Wikidata.Ca', formatting='table',
property = params.property or 'P463',
qualifier1='P2868' ,rowsubformat1=' <small>($1)</small>',
rowformat = '$0$R0$1', showDate = 'true',
conjunction = '<br />'},
metadata = {
description = params.description or "المنظمات والهيئات التي انتسب إليها.",
option = "",
type = "",
}
}
end
return generic