ماژول:صندخ/ادوات
توضیحات این پودمان میتواند در ماژول:صندخ/ادوات/توضیحات قرار گیرد.
-- أدوات مشتركة لبناء قوالب 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
local function getValue(val, params)
if type(val) == "string" then
return localdata[val]
elseif type(val) == "function" then
return val(localdata, localdata.item, params)
elseif type(val) == "table" then
for i, j in pairs(val) do -- في حال وجود قيم لأكثر من وسيط : أخذ بعين الاعتبار أول قيمة
if localdata[j] then
return localdata[j]
end
end
end
end
generic.FormatNumVal = FormatNumVal
generic.description["title"] = "عنوان پارامتر ره دینگنین و وه ره صفحه نوم جه پر هاکنین.";
function generic.title(args)
return {
type = "title",
suggested = true,
value = {"اسم","نوم","title","name"},
wikidata = function()
return (args and localdata[args.titleparam]) or
(type(localdata.item) == "table" and type(localdata.item.id) == "string" and
mw.wikibase.label(localdata.item.id) and
mw.language.getContentLanguage():ucfirst(mw.wikibase.label(localdata.item.id))) or
mw.title.getCurrentTitle().text
end,
subtitle = function()
return args and localdata[args.subtitleparam]
end,
wikidatasubtitle = args and args.subtitlequery,
icon = args and args.icon,
style = args and args.style,
metadata = {
description = "مقالهی عنوان یا نوم",
option = "",
type = "",
}
}
end
generic.description["mainimage"] = " اتا پارامتر عکس وسه دینگنین و اتا پرونده نوم ره ونه دله بییلین";
function generic.mainimage(params)
if type(params) ~= "table" then
params = {}
end
return {
type = "images",
suggested = true,
wikidata = params.wikidata or {property = "P18"},
imageparameters = params.imageparameters or {"عکس", "تصویر", "پرونده", "Image", "image"},
defaultimages = params.defaultimage,
defaultimagelink = "ویکیپدیا:عکس",
sizeparameter = params.sizeparameter or {"عکس قایده", "عکس_قایده", "عکس اندازه"},
uprightparameter = params.uprightparameter or "upright",
defaultupright = params.upright,
defaultsize = params.size,
maintenancecat = params.cat or "مقالاتی که عکس ندارنه",
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 = " فقط پرونده نوم ره بییلین و ونه پشت پرونده: یا File: ننویسین",
example = "abc.jpg",
option = "suggested",
type = "wiki-file-name",
}
}
end
generic.description["logo"] = "لوگو پارامتر ره دینگنین و وه ره لوگو عکس جه پر هاکنین.";
function generic.logo(params)
if not params then
params = {}
end
return {
type = "images",
wikidata = params.wikidata or {property = "P154"},
imageparameters = params.imageparameters or {"نماد", "لوگو", "logo"},
-- defaultimage = {},
-- maintenancecat =
captionparameter = params.captionparameter or {"لوگو جیرنویس", "لوگو توضیحات"},
defaultupright = params.upright or upright or "0.6",
uprightparameter = params.uprightparameter or "upright logo",
sizeparameter = params.sizeparameter or {"لوگو اندازه", "لوگو قایده"},
numval = 1,
metadata = {
description = "لوگوی عکس نوم ره بدون پیشوند بییلین و پرونده: ره ننویسین",
example = "abc_logo.jpg",
option = "suggested",
type = "wiki-file-name",
}
}
end
generic.description["blason"] = "";
function generic.blason(params)
if not params then
params = {}
end
return {
type = "images",
wikidata = params.wikidata or {property = {"P94", "P158"}},
imageparameters = params.imageparameters
or {"نشونه", "آرم", "نشون", "coat_of_arms", "seal"},
-- defaultimage = {},
-- maintenancecat =
captionparameter = params.captionparameter or
{"نشون توضیح", "نشون جیرنویس", "آرم جیرنویس", "coat_of_arms_caption", "seal_caption"},
defaultupright = params.upright or upright or "0.8",
uprightparameter = params.uprightparameter or {"upright coa", "upright seal"},
sizeparameter = params.sizeparameter or {"coa_size", "seal_size"},
numval = 1,
metadata = {
description = "صورة لشعار النبالة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_coat.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["flag"] = "";
function generic.flag(params)
if not params then
params = {}
end
return {
type = "images",
suggested = true,
wikidata = params.wikidata or {property = "P41"},
imageparameters = params.imageparameters or {"پرچم", "flag"},
-- defaultimage = {},
-- maintenancecat =
captionparameter = params.captionparameter or "پرچم جیرنویس",
defaultupright = params.upright or upright or "0.6",
uprightparameter = params.uprightparameter or "upright drapeau",
sizeparameter = params.sizeparameter or {"پرچم قایده", "flag_size"},
numval = 1,
metadata = {
description = "صورة للعلم (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_flag.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["sign"] = "";
function generic.sign(params)
if not params then
params = {}
end
return {
type = "images",
wikidata = params.wikidata or {property = "P14"},
imageparameters = params.imageparameters or {"تابلو"},
-- defaultimage = {},
-- maintenancecat =
captionparameter = params.captionparameter or "تابلو جیرنویس",
defaultupright = params.upright or upright or "0.4",
uprightparameter = params.uprightparameter or "upright signalisation",
sizeparameter = params.sizeparameter or "تابلو قایده",
numval = 1,
metadata = {
description = "صورة اللافتة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["icon"] = "";
function generic.icon(params)
if not params then
params = {}
end
return {
type = "images",
wikidata = params.wikidata or {property = "P2910"},
imageparameters = params.imageparameters or {"آیکون", "icon"},
-- defaultimage = {},
-- maintenancecat =
captionparameter = params.captionparameter or {"آیکون جیرنویس"},
defaultupright = params.upright or upright or "0.4",
uprightparameter = params.uprightparameter or "upright icon",
sizeparameter = params.sizeparameter or "icon_size",
numval = 1,
metadata = {
description = "صورة الأيقونة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_icon.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["scheme"] = "";
function generic.scheme(params)
if not params then
params = {}
end
return {
type = "images",
wikidata = params.wikidata or {property = "P5555"},
imageparameters = params.imageparameters or {"طرح", "scheme"},
captionparameter = params.captionparameter or "طرح جیرنویس",
defaultupright = params.upright or upright,
uprightparameter = params.uprightparameter or "upright scheme",
sizeparameter = params.sizeparameter or "طرح قایده",
numval = 1,
metadata = {
description = "صورة المخطط (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_scheme.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["planview"] = "";
function generic.planview(params)
if not params then
params = {}
end
return {
type = "images",
wikidata = params.wikidata or {property = "P3311"},
imageparameters = params.imageparameters or {"پلن", "planview"},
captionparameter = params.captionparameter or "پلن جیرنویس",
defaultupright = params.upright,
uprightparameter = params.uprightparameter or "upright planview",
sizeparameter = params.sizeparameter or "پلن قایده",
numval = 1,
metadata = {
description = "صورة المسقط (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_planview.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["bathymetricmap"] = "";
function generic.bathymetricmap(params)
if not params then
params = {}
end
return {
type = "images",
wikidata = params.wikidata or {property = "P207"},
imageparameters = params.imageparameters or {"خريطة قياس الأعماق"},
-- defaultimage = {},
-- maintenancecat =
captionparameter = params.captionparameter or "تعليق خريطة قياس الأعماق",
defaultupright = params.upright or upright or "1",
uprightparameter = params.uprightparameter or "upright carte bathymétrique",
sizeparameter = params.sizeparameter or "حجم خريطة قياس الأعماق",
numval = 1,
metadata = {
description = "صورة خريطة قياس الأعماق (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc.jpg",
option = "",
type = "wiki-file-name",
}
}
end
-- روابط خارجية
generic.description["website"] = "";
function generic.website(params)
if not params then
params = {}
end
return {
type = "mixed",
suggested = true,
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 = "Q13356", -- مازرونی زوون سایت وسه
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:#555;">($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:#555;">($1)</span></small>',
colformat0 = "weblink",
colformat1 = "label"
},
metadata = {
description = "فقط الموقع الرسمي على الويب (المواقع غير الرسمية تذكر في فقرة «وصلات خارجية»).",
option = "suggested",
type = "url",
}
}
end
-- أصوات
generic.description["selectSound"] = "";
function generic.selectSound(params)
if not params then
params = {}
end
params.type = "images"
params.style = params.style or {["padding-top"] = "25px"}
params.defaultcaption = "صدا"
params.caption = params.captionparameter or "صدای جیرنویس"
params.value = params.valueparameter or {"صدا", "صوت", "sound"}
params.defaultsize = "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 = "ملف صوتي (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc.ogg",
option = "",
type = "wiki-file-name",
}
return params
end
generic.description["pronunciation"] = "";
function generic.pronunciation(params)
if not params then
params = {}
end
params.property = "P443"
params.defaultcaption = "التهجئة"
params.captionparameter = params.captionparameter or "تعليق التهجئة"
params.value = params.valueparameter or {"تهجئة", "pronunciation"}
params.numval = 1
return p.selectSound(params)
end
generic.description["dimensions"] = "";
function generic.dimensions(default)
local function getDimensions(args)
local Dimensionsfunction = require("Module:Dimensions").main
local noerr, data, nb
noerr, data = pcall(Dimensionsfunction, args)
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 = function()
return localdata["ابعاد"] or localdata["ابعاد"] or localdata.dimensions or localdata.dim or
(type(localdata.item) == "table" and type(localdata.item.id) == "string" and
getDimensions(
{
item = localdata.item.id,
diameter = localdata.diameter or localdata["قطر"],
height = localdata.height or localdata["ارتفاع"],
draft = localdata.draft or localdata["عمق از سطح دریا"],
clearance = localdata.clearance or localdata["بنه مسافت"],
width = localdata.width or localdata.beam or localdata["عرض"],
length = localdata.length or localdata["horizontal depth"] or localdata["طول"] or
localdata["افقی جولی"],
span = localdata.span or localdata["ستون تا ستون"],
thickness = localdata.thickness or localdata["کلفتی"]
}
))
end,
metadata = {
description = "ابعاد معیارون نوم",
option = "",
type = "",
}
}
end
generic.description["awards"] = "";
function generic.awards(params)
return {
type = "row",
label = "جوایز",
value = {"جوایز", "awards"},
wikidata = {
wikimod = "Wikidata.Ca",
property = "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 = "[[file:$4|30px|link=]]",
rowsubformat5 = "<small><br />اهدا بئی به $5</small>"
},
metadata = {
description = "جوایزی که بنا بیته.",
option = "",
type = "string",
}
}
end
generic.description["motto"] = "";
function generic.motto(param)
return {
type = "row",
label = "شعار",
value = {"شعار", "motto", "motto_text"},
defaultvalue = getValue {param},
wikidata = {
wikimod = "Wikidata.Ca",
property = "P1451",
conjunction = "<br />",
formatting = "$text {{Language icon|NoCat=y|$language}}"
},
metadata = {
description = "متنی شعار",
option = "",
type = "string",
}
}
end
-- أدوات تحديد الموقع الجغرافي
generic.description["country"] = "";
function generic.country(default)
local building = require "ماژول:صندخ/ادوات/بنا"
return building.country(default)
end
generic.description["geoloc"] = "";
function generic.geoloc(params)
if not params then
params = {}
end
if (localdata["سایت نقشه"] == "-") then
return nil
end
local id = (localdata.item and localdata.item.id)
local geotype = "Point"
if id and (#(mw.wikibase.getBestStatements(id, "P3896")) ~= 0) then
geotype = "geoshape"
end
--mw.logObject(mw.wikibase.getBestStatements(id, 'P3896')) --P402
return {
type = "map",
latitude = {"دایره عرض", "دائرة العرض", "latitude"},
longitude = {"خط طول", "خط طول", "longitude"},
pointtype = params.pointtype,
maptype = params.type,
globe = localdata.globe or localdata["اساره"] or params.globe,
marker = params.marker,
markercolor = params.markercolor,
shapecolor = params.shapecolor,
markersize = params.markersize,
markersymbol = params.markersymbol,
default_zoom = localdata["zoom"] or localdata["زوم"] or params.default_zoom,
ids = params.ids or params.id,
geotype = geotype,
--debug = 1,
metadata = {
description = "",
option = "",
type = "",
}
}
end
generic.description["coordinates"] = "";
function generic.coordinates(params)
if not params then
params = {}
end
return {
type = "mixed",
label = "مختصات",
value = {"مختصات", "جوغرافیایی مختصات", "coordinates"},
wikidata = {
wikimod = "Wikidata.Ca",
listrank = "bestrank",
property = "P625",
formatting = "{{coord|$lat|$lon|globe:$globe|format=dms}}"
},
metadata = {
description = "جوغرافیایی مختصات",
option = "",
type = "string",
}
}
end
generic.description["locationmap"] = "";
function generic.locationmap(params)
if not params then
params = {}
end
return {
type = "images",
imageparameters = params.imageparameters or {"نقشه عکس"},
sizeparameter = params.sizeparameter or "نقشه عکس قایده",
captionparameter = params.captionparameter or {"نقشه عکس جیرنویس"},
defaultupright = params.upright or "1",
property = "P242",
numval = 1,
metadata = {
description = "صورة خريطة جغرافية (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_map.jpg",
option = "",
type = "wiki-file-name",
}
}
end
generic.description["detailedmap"] = "";
function generic.detailedmap(params)
if not params 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 = "P1621",
numval = 1,
metadata = {
description = "صورة خريطة جغرافية مفصلة (ضع اسم الملف فقط دون السابقة «ملف:» أو «File:»)",
example = "abc_map.jpg",
option = "",
type = "wiki-file-name",
}
}
end
return generic