Модуль:WDCommon
Для документации этого модуля может быть создана страница Модуль:WDCommon/doc
require('strict')
local p = {}
local base = require('Модуль:WDBase')
p.base = base
p.P_SHORT_NAME = 'P1813'
p.P_UNIT = 'P5061'
p.P_URL_MASK = 'P1630'
p.P_NAME = 'P1476'
p.P_ABBR_ENTRY = 'P8703'
p.P_USED_BY = 'P1535'
function p.name(entity, lang)
local name, valueLang = base.tryTextByLang(entity, p.P_NAME, lang)
if not name then
if lang then
name = mw.wikibase.getLabelByLang(entity, lang)
valueLang = lang
end
if not name then
name, valueLang = mw.wikibase.getLabelWithLang(entity)
end
end
return name, valueLang
end
function p.short(entity, lang)
local short = base.textByLang(entity, p.P_SHORT_NAME, lang)
local ok = true
if not short then
if lang then
short = mw.wikibase.getLabelByLang(entity, lang)
else
short, lang = mw.wikibase.getLabelWithLang(entity)
end
ok = false
end
return short, lang, ok
end
function p.abbr(entity, lang)
-- Currently there is no global property for abbreviations by languages,
-- see [[d:Wikidata:Property proposal/abbreviation for details]]
local abbrByLang = {
ru = 'Q114796497',
}
local abbrTableEntity = abbrByLang[lang]
local abbr = base.valueByQualifier(entity, p.P_ABBR_ENTRY, p.P_USED_BY, abbrTableEntity)
if not abbr then
local short, lang = p.short(entity, lang)
return short, lang, false
end
return abbr, lang, true
end
function p.abbrBiblio(entity, lang)
-- Only Russian language is supported
local abbrByLang = {
ru = 'Q19670003',
}
if not lang then
lang = defaultLang
end
local abbrTableEntity = abbrByLang[lang]
local abbr = base.valueByQualifier(entity, p.P_ABBR_ENTRY, p.P_USED_BY, abbrTableEntity)
if not abbr then
return p.abbr(entity, lang)
end
return abbr, lang, true
end
function p.unit(entity, lang)
return base.textByLang(entity, p.P_UNIT, lang)
end
function p.urlMask(entity, lang)
return base.tryTextByLang(entity, p.P_URL_MASK, lang)
end
return p