وحدة:بطاقة/أدوات
يمكن إنشاء صفحة توثيق الوحدة في وحدة:بطاقة/أدوات/شرح
-- أدوات مشتركة لبناء قوالب infobox local localdata = require( 'وحدة:بطاقة/بيانات' ) local wikidata = require 'Module:Wikidata/fr' local item = localdata.item local p = {} function p.title(args) --icon, style, subtitleparam, subtitlequery) return { type = 'title', value = function() return localdata['اسم'] or localdata['الاسم'] or localdata.title or localdata.name 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, } end function p.mainimage(args, defaultimage) if type( args ) ~= 'table' then args = { cat = args, defaultimage = defaultimage } end return { type = 'images', imageparameters = {'Image','image','صورة','الصورة'}, defaultimages = args.defaultimage, defaultimagelink = 'ويكيبيديا:صور', sizeparameter = {'حجم الصورة','حجم_الصورة','عرض_الصورة'}, uprightparameter = 'upright', defaultupright = args.upright, defaultsize = args.size, maintenancecat = args.cat or 'مقالات تحتاج إلى صور', captionparameter = {'تعليق', 'تعليق_الصورة','تعليق الصورة','عنوان_الصورة','عنوان الصورة','التعليق','caption','image_cap,tion','Caption'}, altparameter = args.altparameter or 'بديل الصورة' or 'image_alt', defaultalt = args.alt, defaultimagealt = args.defaultimagealt, wikidata = args.wikidata or {property = 'P18'}, numval = 1, } end function p.logo(upright) return { type = 'images', imageparameters = {'شعار','الشعار','logo'}, -- defaultimage = {}, -- maintenancecat = captionparameter = {'تعليق الشعار','تعليق_الشعار'}, property = 'P154', defaultupright = upright or '0.6', uprightparameter = 'upright logo', sizeparameter = {'حجم الشعار','عرض_الشعار'}, numval = 1, } end function p.blason(upright) return { type = 'images', imageparameters = {'blason', 'sceau'}, -- defaultimage = {}, -- maintenancecat = captionparameter = {'légende blason', 'légende sceau'}, property = {'P94', 'P158'}, defaultupright = upright or '0.8', uprightparameter = {'upright blason', 'upright sceau'}, sizeparameter = {'taille blason', 'taille sceau'}, numval = 1, } end function p.flag(upright) return { type = 'images', imageparameters = {'العلم','علم','flag'}, -- defaultimage = {}, -- maintenancecat = captionparameter = 'تعليق العلم', property = 'P41', defaultupright = upright or '0.6', uprightparameter = 'upright drapeau', sizeparameter = {'حجم العلم','flag_size'}, numval = 1, } end function p.sign(upright) return { type = 'images', imageparameters = {'لافتة'}, -- defaultimage = {}, -- maintenancecat = captionparameter = 'تعليق اللافتة', property = 'P14', defaultupright = upright or '0.4', uprightparameter = 'upright signalisation', sizeparameter = 'حجم اللافتة', numval = 1, } end function p.icon(upright) return { type = 'images', imageparameters = {'icône','icon','أيقونة'}, -- defaultimage = {}, -- maintenancecat = captionparameter = {'légende icône','تعليق أيقونة'}, property = 'P2910', defaultupright = upright or '0.4', uprightparameter = 'upright icon', sizeparameter = 'icon_size', numval = 1, } end function p.scheme(upright) return { type = 'images', imageparameters = {'مخطط','scheme'}, captionparameter = 'تعليق المخطط', property = 'P5555', defaultupright = upright, uprightparameter = 'upright scheme', sizeparameter = 'حجم المخطط', numval = 1, } end function p.bathymetricmap(upright) return { type = 'images', imageparameters = {'خريطة قياس الأعماق'}, -- defaultimage = {}, -- maintenancecat = captionparameter = 'تعليق خريطة قياس الأعماق', property = 'P207', defaultupright = upright or '1', uprightparameter = 'upright carte bathymétrique', sizeparameter = 'حجم خريطة قياس الأعماق', numval = 1, } end -- Liens externes function p.website(localparam) -- texte libre [http://example.org example.org] ou url seule localparam est désigne le paramètre utilisé historiquement dans le modèle pour le site web (legacy) return { type = 'mixed' ,label = 'موقع الويب' ,plurallabel = 'مواقع الويب' ,valueStyle = { ['text-align'] = 'left', ['direction'] = 'ltr', ['font-size'] = '0.9em'} ,wikidata = function() if(localdata.item == nil or localdata.item.id == nil) then return nil end local values, num = wikidata.formatAndCat { entity = localdata.item, displayformat = 'weblink', conjtype = '<br />', property = 'P856', isinlang = 'ar', rank = 'valid', excludespecial = true, -- excludespecial car il peut y avoir marqué "aucune valeur" pour le français, mais y avoir un site en anglais returnnumberofvalues = true, } if not values then values, num = wikidata.formatAndCat { entity = localdata.item, displayformat = 'weblink', conjtype = '<br />', property = 'P856', showlang = true, excludespecial = true, returnnumberofvalues = true, } end return values, num end ,value = function() local siteurl = localdata[localparam] or localdata['موقع ويب'] or localdata['موقع_ويب'] or localdata['موقع'] or localdata['url'] local sitename = localdata['اسم الموقع'] if siteurl then if siteurl:find("url") then return siteurl else return require("Module:Weblink").makelink(siteurl, sitename) end end end, } end -- Son, prononciation function p.selectSound(prop) -- priorité au Arabe Q13955 / français Q150 if(localdata.item == nil or localdata.item.id == nil) then return nil end if wikidata.getClaims{entity = localdata.item, property = prop, qualifier = {'P407'}, qualifiervalue = {'Q13955'} } then return {property = prop, qualifier = {'P407'}, qualifiervalue = {'Q13955'} } end return {property = prop} end function p.prononciation() return { type = 'images', style = {['padding-top'] = '25px'}, defaultcaption = 'التهجئة', captionparameter = 'تعليق التهجئة', value = 'تهجئة', defaultsize = '280', wikidata = p.selectSound('P443'), numval = 1, } end function p.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, } end function p.awards(params) return {type = 'row', label = 'الجوائز', value = 'جوائز' , 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 $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>' }} end -- Fonctions de géolocalisation function p.country(default) local coordfunctions = require 'وحدة:ب.ص.م/أدوات/موقع جغرافي' return coordfunctions.country(default) end function p.geoloc(params) local coordfunctions = require 'وحدة:ب.ص.م/أدوات/موقع جغرافي' return coordfunctions.geoloc(params) end function p.coordinates(params) local coordfunctions = require 'وحدة:ب.ص.م/أدوات/موقع جغرافي' return coordfunctions.coordinates(params) end function p.locationmap(params) local coordfunctions = require 'وحدة:ب.ص.م/أدوات/موقع جغرافي' return coordfunctions.locationmap(params) end return p