-- أدوات مشتركة لبناء قوالب infobox
local localdata = require( 'وحدة:ب.ص.م/بيانات' )
local wikidata = require( 'Module:Wikidata2' )
local p = {}
function p.title(icon, style, subtitleparam, subtitlequery)
return {
type = 'title',
value = function()
if(localdata.item) then
return localdata['اسم'] or localdata['الاسم'] or localdata['name']
or wikidata.getLabel(localdata.item.id) and mw.language.getContentLanguage():ucfirst( wikidata.getLabel(localdata.item.id) )
or mw.title.getCurrentTitle().text
else
return localdata['اسم'] or localdata['الاسم'] or localdata['name']
or mw.title.getCurrentTitle().text
end
end,
subtitle = function() return localdata[subtitleparam] end,
wikidatasubtitle = subtitlequery,
icon = icon,
style = style,
}
end
function p.mainimage(args, defaultimage)
if type( args ) ~= 'table' then
args = { cat = args, defaultimage = defaultimage }
end
return {
type = 'images',
imageparameters = args.imageparameters or {'image','صورة','الصورة'},
defaultimages = args.defaultimage,
defaultimagelink = 'ويكيبيديا:صور',
sizeparameter = {'حجم الصورة','حجم_الصورة','عرض_الصورة'},
uprightparameter = 'upright',
defaultupright = args.upright,
defaultsize = args.size,
maintenancecat = args.cat or 'مقالات تحتاج إلى صور',
captionparameter = args.captionparameter or {'تعليق', 'تعليق_الصورة','تعليق الصورة','عنوان_الصورة','عنوان الصورة','caption','image_caption'},
defaultcaption = args.defaultcaption,
altparameter = args.altparameter or 'بديل الصورة' or 'image_alt',
defaultalt = args.alt,
defaultimagealt = args.defaultimagealt,
wikidata = args.wikidata or {property = 'P18'},
numval = 1,
}
end
function p.interior(upright)
return {
type = 'images',
imageparameters = {'intérieur', 'interior','داخل'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = {'légende intérieur','تعليق الداخل'},
property = 'P5775',
defaultupright = upright or '1',
uprightparameter = 'upright interior',
sizeparameter = 'size interior',
numval = 1,
}
end
function p.logo(upright)
return {
type = 'images',
imageparameters = {'شعار','الشعار','logo'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = {'تعليق الشعار','تعليق_الشعار','logo_caption'},
defaultcaption = 'الشعار',
property = 'P154',
defaultupright = upright or '0.6',
uprightparameter = 'upright logo',
sizeparameter = {'حجم الشعار','عرض_الشعار'},
numval = 1,
}
end
function p.blason(upright)
return {
type = 'images',
imageparameters = {'blason','درع','الدرع'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'تعليق الدرع',
defaultcaption = 'الدرع',
property = 'P94',
defaultupright = upright or '0.3',
uprightparameter = 'upright blason',
sizeparameter = 'حجم الدرع',
numval = 1,
}
end
function p.flag(upright)
return {
type = 'images',
imageparameters = {'علم','flag'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'تعليق العلم',
property = 'P41',
defaultupright = upright or '0.6',
defaultcaption = 'العلم',
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.routemap(upright)
return {
type = 'images',
imageparameters = {'tracé','خريطة الطريق'},
-- defaultimage = {},
-- maintenancecat =
captionparameter = 'légende tracé',
property = 'P15',
defaultupright = upright or '1',
uprightparameter = 'routemap_upright',
sizeparameter = 'routemap_size',
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 = 'مواقع الويب',
wikidata = function()
local values, num = require("Module:Wikidata/fr").formatAndCat {
entity = localdata.item,
displayformat = 'weblink',
conjtype = '<br />',conjunction = "<br />", separator = "<br />",
property = 'P856',
isinlang = 'ar',
qual1 = 'P407',
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 = require("Module:Wikidata/fr").formatAndCat {
entity = localdata.item,
displayformat = 'weblink',
conjtype = '<br />', conjunction = "<br />", separator = "<br />",
property = 'P856',
qual1 = 'P407',
rank = 'best',
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'] or localdata['website']
local sitename = localdata['اسم الموقع']
return require("Module:Weblink").makelink(siteurl, sitename)
end,
}
end
-- Son, prononciation
function p.selectSound(prop)
-- priorité au Arabe Q13955 / français Q150
if wikidata.formatStatementsFromLua{entity = item, property = prop, preferqualifier = 'P407', preferqualifiervalue = 'Q13955' ,raw = 'true'} then
return {property = prop, preferqualifier = 'P407' , preferqualifiervalue = '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
-- 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