Modulo:AutoDescriptionLocality
Dokumentado por ĉi tiu modulo povas esti kreata ĉe Modulo:AutoDescriptionLocality/dokumentado
--[[
------------------------------------------
-- AutoDescriptionLocality
-- Модуль для заполнения населённых пунктов.
------------------------------------------
--]]
local Declension = require("Module:Declension")
local Langs = require("Module:Langs")
local MathTonumber = require("Module:Math/tonumber")
local SerializeTable = require("Module:SerializeTable")
local AutoDescriptionLocality={}
-- Нам необходимо сформировать и вернуть три переменных
local description = "" -- уточнение (то, что в скобочках после имени, например, на языке оригинала, годы жизни и т.п.)
local details = "" -- строка описания
local categories = "[[Kategorio:Loĝlokoj laŭ alfabeto]]" -- категории
-- Промежуточный масив сущностей, в который помещаются результаты парсинга перед формированием описания
local entitiesArray = {typeOf = "", country = "", unitOfTime = "", inception = "",
centuary = "", headOf="", locatedITATE = "", langPr = "", nativeL = "",
population="", populationT = "", area = "", dimension = "", sisterTowns = "",
P421 = "", P131 = "", P6 = "", P1082 = "", P2046 = "", P190 = "", P1705 = ""}
-- Точка входа
function AutoDescriptionLocality.launch(entity)
AutoDescriptionLocality.parsing(entity) -- парсим карточку викиданных
AutoDescriptionLocality.forming() -- формируем переменные
return details, description, categories
end
-- Последовательно проходим свойства в карточке викиданных, для формирования массива сущностей entitiesArray
function AutoDescriptionLocality.parsing(entity)
AutoDescriptionLocality.parseP17(entity) -- государство
AutoDescriptionLocality.parseP31(entity) -- это частный случай понятия
entitiesArray["P421"] = AutoDescriptionLocality.parseP421(entity) -- часовой пояс
AutoDescriptionLocality.parseP571(entity) -- дата основания/создания/возникновения
entitiesArray["P131"] = AutoDescriptionLocality.parseP131(entity) -- административно-территориальная единица
entitiesArray["P6"] = AutoDescriptionLocality.parseP6(entity) -- глава правительства
entitiesArray["P1082"] = AutoDescriptionLocality.parseP1082(entity) -- численность населения
entitiesArray["P2046"] = AutoDescriptionLocality.parseP2046(entity) -- площадь
entitiesArray["P190"] = AutoDescriptionLocality.parseP190(entity) -- ĝemelurbo
entitiesArray["P1705"] = AutoDescriptionLocality.parseP1705(entity) -- название на языке оригинала
end
function AutoDescriptionLocality.forming()
if((entitiesArray.langPr ~= "") and entitiesArray.langPr ~= "eo") then details = details .. "(" .. Langs.launch(entitiesArray.langPr, entitiesArray.nativeL) .. ")" end
if (entitiesArray.typeOf ~= "" ) then
do
description = description .. "[[" .. entitiesArray.typeOf .. "]]"
if(entitiesArray.country == "") then description = description .. "." end
end
end
if (entitiesArray.country ~= "" ) then
do
if(Declension.declineWord(entitiesArray.country, 1) ~= "Logical error Declension.declineWord(arg): word not found") then description = description .. " en [[" .. entitiesArray.country .. "|" .. Declension.declineWord(entitiesArray.country, 1) .. "]]."
else description = description .. "."
end
end
end
if(entitiesArray.unitOfTime == "jarcento") then
do
if( (entitiesArray.typeOf == "urbo") or (entitiesArray.typeOf == "setlejo") or (entitiesArray.typeOf == "Urbotipa setlejo") or (entitiesArray.typeOf == "municipo") )
then description = description .. " Fondita en [[" .. entitiesArray.inception .. " " .. entitiesArray.centuary .. "]]"
elseif ( (entitiesArray.typeOf == "vilaĝo") or (entitiesArray.typeOf == "komunumo") or (entitiesArray.typeOf == "komunumo") )
then description = description .. " Fondita en [[" .. entitiesArray.inception .. " " .. entitiesArray.centuary .. "]]"
elseif(entitiesArray.typeOf == "vilaĝo")
then description = description .. " Fondita en [[" .. entitiesArray.inception .. " " .. entitiesArray.centuary .. "]]"
end
end
elseif( (entitiesArray.unitOfTime == "januaro") or (entitiesArray.unitOfTime == "februaro") or (entitiesArray.unitOfTime == "marto")
or (entitiesArray.unitOfTime == "aprilo") or (entitiesArray.unitOfTime == "majo") or (entitiesArray.unitOfTime == "junio")
or (entitiesArray.unitOfTime == "julio") or (entitiesArray.unitOfTime == "aŭgusto") or (entitiesArray.unitOfTime == "septembro")
or (entitiesArray.unitOfTime == "oktobro") or (entitiesArray.unitOfTime == "novembro") or (entitiesArray.unitOfTime == "decembro") )
then
do
if( (entitiesArray.typeOf == "urbo") or (entitiesArray.typeOf == "setlejo") or (entitiesArray.typeOf == "Urbotipa setlejo") or (entitiesArray.typeOf == "municipo") )
then description = description .. " Fondita [[" .. entitiesArray.inception .. " jaro]]."
elseif( (entitiesArray.typeOf == "vilaĝo") or (entitiesArray.typeOf == "komunumo") or (entitiesArray.typeOf == "komunumo") )
then description = description .. " Fondita [[" .. entitiesArray.inception .. " jaro]]."
elseif(entitiesArray.typeOf == "vilaĝo")
then description = description .. " Fondita [[" .. entitiesArray.inception .. " jaro]]."
end
end
elseif (entitiesArray.inception ~= "")
then
do
if( (entitiesArray.typeOf == "urbo") or (entitiesArray.typeOf == "setlejo") or (entitiesArray.typeOf == "Urbotipa setlejo") or (entitiesArray.typeOf == "municipo") )
then description = description .. " Fondita en [[" .. entitiesArray.inception .. " jaro]]."
elseif( (entitiesArray.typeOf == "vilaĝo") or (entitiesArray.typeOf == "komunumo") or (entitiesArray.typeOf == "komunumo") )
then description = description .. " Fondita en [[" .. entitiesArray.inception .. " jaro]]."
elseif(entitiesArray.typeOf == "vilaĝo")
then description = description .. " Fondita en [[" .. entitiesArray.inception .. " jaro]]."
end
end
end
if (entitiesArray.locatedITATE ~= "") then description = description .. entitiesArray["P131"] end
if(entitiesArray.headOf ~= "") then description = description .. entitiesArray["P6"] end
if(entitiesArray.population ~= "") then description = description .. entitiesArray["P1082"] end
if(entitiesArray["P2046"] ~= "") then description = description .. entitiesArray["P2046"] end
if(entitiesArray.sisterTowns ~= "") then description = description .. " <br><b>ĝemelurboj:</b>" .. entitiesArray.sisterTowns:sub(1, #entitiesArray.sisterTowns - 1) .. "." end
if (entitiesArray.country ~= "" ) then
do
if(Declension.declineWord(entitiesArray.country, 1) == "Logical error Declension.declineWord(arg): word not found") then categories = categories .. "[[Kategorio:Landoj sen deklinacio]]"
else do
categories = categories .. " [[Kategorio:Loĝlokoj de " .. Declension.declineWord(entitiesArray.country, 1) .. "]]" .. " [[Kategorio:" .. Declension.declineWord(entitiesArray.typeOf, 7) .. " de " .. Declension.declineWord(entitiesArray.country, 1) .. "]]"
end
end
end
end
categories = categories .. " [[Kategorio:" .. Declension.declineWord(entitiesArray.typeOf, 7) .. " laŭ alfabeto]]"
if(entitiesArray.unitOfTime == "jarcento") then
do
if(entitiesArray.inception ~= "") then categories = categories .. " [[Kategorio:Loĝlokoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif (entitiesArray.typeOf == "urbo") then categories = categories .. " [[Kategorio:Urboj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif(entitiesArray.typeOf == "vilaĝo") then categories = categories .. " [[Kategorio:Vilaĝoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif(entitiesArray.typeOf == "vilaĝo") then categories = categories .. " [[Kategorio:Vilaĝoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif(entitiesArray.typeOf == "setlejo") then categories = categories .. " [[Kategorio:Setlejoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif(entitiesArray.typeOf == "Urbotipa setlejo") then categories = categories .. " [[Kategorio:Urbotipaj setlejoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif(entitiesArray.typeOf == "komunumo") then categories = categories .. " [[Kategorio:Komunumoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif(entitiesArray.typeOf == "komunumo") then categories = categories .. " [[Kategorio:Komunumoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
elseif(entitiesArray.typeOf == "municipo") then categories = categories .. " [[Kategorio:Municipoj, fonditaj en " .. entitiesArray.inception .. " jarcento]]"
end
end
elseif( (entitiesArray.unitOfTime == "januaro") or (entitiesArray.unitOfTime == "februaro") or (entitiesArray.unitOfTime == "marto") or (entitiesArray.unitOfTime == "aprilo")
or (entitiesArray.unitOfTime == "majo") or (entitiesArray.unitOfTime == "junio") or (entitiesArray.unitOfTime == "julio") or (entitiesArray.unitOfTime == "aŭgusto")
or (entitiesArray.unitOfTime == "septembro") or (entitiesArray.unitOfTime == "oktobro") or (entitiesArray.unitOfTime == "novembro") or (entitiesArray.unitOfTime == "decembro") ) then
do
categories = categories .. " [[Kategorio:Loĝlokoj, fonditaj, fonditaj " .. entitiesArray.inception .. " jaro]]"
if(entitiesArray.typeOf == "urbo") then categories = categories .. " [[Kategorio:Urboj, fonditaj " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "vilaĝo") then categories = categories .. " [[Kategorio:Vilaĝoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "setlejo") then categories = categories .. " [[Kategorio:Setlejoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "Urbotipa setlejo") then categories = categories .. " [[Kategorio:Urbotipaj setlejoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "komunumo") then categories = categories .. " [[Kategorio:Komunumoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "komunumo") then categories = categories .. " [[Kategorio:Komunumoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "municipo") then categories = categories .. " [[Kategorio:Municipoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
end
end
elseif (entitiesArray.inception ~= "") then
do
categories = categories .. " [[Kategorio:Loĝlokoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
if(entitiesArray.typeOf == "urbo") then categories = categories .. " [[Kategorio:Urboj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "vilaĝo") then categories = categories .. " [[Kategorio:Vilaĝoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "vilaĝo") then categories = categories .. " [[Kategorio:Vilaĝoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "setlejo") then categories = categories .. " [[Kategorio:Setlejoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "Urbotipa setlejo") then categories = categories .. " [[Kategorio:Urbotipaj setlejoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "komunumo") then categories = categories .. " [[Kategorio:Komunumoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "komunumo") then categories = categories .. " [[Kategorio:Komunumoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
elseif(entitiesArray.typeOf == "municipo") then categories = categories .. " [[Kategorio:Municipoj, fonditaj en " .. entitiesArray.inception .. " jaro]]"
end
end
end
end
function AutoDescriptionLocality.parseP17(entity) -- Tabelo de landoj
local p17Statements = entity:getAllStatements("P17")
local v = entity:formatPropertyValues("P17", { mw.wikibase.entity.claimRanks.RANK_PREFERRED }).value
local countries = {
Q408 = "Aŭstralio", Q40 = "Aŭstrio", Q227 = "Azerbajĝano ", Q222 = "Albanio", Q262 = "Alĝerio",
Q399 = "Armenio", Q398 = "Barejno", Q184 = "Belorusio", Q31 = "Belgio", Q219 = "Bulgario",
Q225 = "Bosnio kaj Hercegovino", Q155 = "Brazilio", Q965 = "Burkino", Q145 = "Unuiĝinta Reĝlando", Q28 = "Hungario",
Q183 = "Germanio", Q41 = "Grekio", Q230 = "Kartvelio", Q35 = "Danio", Q801 = "Israelo", Q796 = "Irako",
Q189 = "Islando", Q29 = "Hispanio", Q38 = "Italio", Q805 = "Jemeno", Q232 = "Kazaĥio",
Q148 = "Ĉina Popola Respubliko", Q739 = "Kolombio", Q211 = "Latvio", Q37 = "Litovio", Q244165 = "Arcaĥa Respubliko",
Q836 = "Birmo", Q55 = "Nederlando", Q20 = "Norvegio", Q878 = "Unuiĝintaj Arabaj Emirlandoj", Q419 = "Peruo", Q36 = "Pollando", Q45 = "Portugalio",
Q884 = "Korea Respubliko", Q159 = "Rusio", Q218 = "Rumanio", Q851 = "Sauda Arabio", Q403 = "Serbio",
Q858 = "Sirio", Q214 = "Slovakio", Q215 = "Slovenio", Q30 = "Unuiĝintaj Ŝtatoj de Ameriko", Q43 = "Turkio",
Q212 = "Ukraino", Q33 = "Finlando", Q142 = "Francio", Q224 = "Kroatio", Q236 = "Montenegro",
Q213 = "Ĉeĥio", Q298 = "Ĉilio", Q39 = "Svisio", Q34 = "Svedio", Q191 = "Estonio", Q889 = "Afganio", Q668 = "Barato",
Q790 = "Haitio", Q822 = "Libano"
} -- Tabelo de landoj supras
for ki, vi in pairs (p17Statements) do
for kj, vj in pairs (countries) do
if (vi['mainsnak'] and vi['mainsnak']['datavalue'] and vi['mainsnak']['datavalue']['value'] and vi['mainsnak']['datavalue']['value']['id'] == kj) then
if (vj == "Ukraino") then entitiesArray.country = "Ukraino"
elseif(vj == "Korea Respubliko") then entitiesArray.country = "Sud-Koreio"
elseif(vj == "Unuiĝintaj Ŝtatoj de Ameriko") then entitiesArray.country = "Usono"
elseif(vj == "Arcaĥa Respubliko") then entitiesArray.country = "Arcaĥo"
elseif(vj == "Ĉina Popola Respubliko") then entitiesArray.country = "Ĉinio"
else entitiesArray.country = vj
end
end
end
end
if(entitiesArray.country == "") then categories = categories .. "[[Kategorio:Lando mankas en AutoDescriptionLocality]]" end
if(v ~= nil and v ~= "") then entitiesArray.country = v end
end
function AutoDescriptionLocality.parseP31(entity)
local p31Statements = entity:getAllStatements("P31")
local towns = {Q515 = "urbo", Q3957 = "urbeto", Q532 = "vilaĝo", Q5084 = "vilaĝo", Q51049922 = "vilaĝo", Q2514025 = "setlejo", Q486972 = "Loĝoko", Q3744870 = "setlejo", Q13539802 = "urba komunumo",
Q2989457 = "Urbotipa setlejo", Q7216840 = "Urbotipaj setlejoj de Ukrainio", Q15078955 = "Urbotipaj setlejoj de Rusio",
Q1637706 = "milionurbo", Q50330360 = "la dua laŭ grandeco urbo", Q12134916 = "administra centro", Q317548 = "kuracloka urbo", Q5119 = "ĉefurbo",
Q15661340 = "antikva urbo", Q15127838 = "urbo de federacia signifo", Q1549591 = "urbo kun loĝantaro pli ol 100 000 homoj", Q13218391 = "ĉarta urbo", Q537250 = " federacia urbo", Q1187811 = "universitata urbo",
Q262882 = "statuturbo de Aŭstrio", Q667509 = "municipo de Aŭstrio", Q2989398 = "komunumo de Alĝerio", Q257978 = "statuta urbo de Ĉeĥio",
Q1906268 = "komunumo de Bulgario", Q3184121 = "municipo de Brazilio",
Q2590631 = "municipo de Hungario",
Q747074 = "komunumo de Italio",
Q33146843 = "municipo de Katalunio", Q2074737 = "municipo de Hispanio", Q2039348 = "komunumo de Nederlando",
Q482821 = "metropola urbo de Sud-Koreio",
Q21518270 = "ĉefurbo de ŝtato aŭ insula areo en Usono",
Q5123999 = "urbo de provinca signifo", Q79323854 = "urbo de provinca signifo", Q79323854 = "urbo de provinca signifo", Q113560245 = "urbo de provinca signifo", Q12131624 = "urbo",
Q484170 = "komunumo de Francio",
Q25412763 = "urbo de Ĉilio",
Q12813115 = "Loĝoko de Svislando", Q70208 = "komunumo de Svisio", Q14770218 = "ĉefurbo de Svisia kantono",
Q21672098 = "vilaĝo de Ukrainio", Q7930989 = "urbo", Q755707 = "komunumo de Norvegio",
Q12131640 = "urbo de distrikta signifo", Q7830079 = "urbo de distrikta signifo", Q79324274 = "urbo de distrikta signifo", Q3199141 = "administra unuo",
Q1093829 = "urbego de Usono", Q18511725 = "bazarurbeto",
Q20202352 = "Loĝoko de Meksiko", Q3685430 = "komunumo de Armenio"
}
for ki, vi in pairs (p31Statements) do
for kj, vj in pairs (towns) do
if (vi['mainsnak']['datavalue']['value']['id'] == kj) then
if( (vj == "urbo") or (vj == "vilaĝo") or (vj == "vilaĝo") or (vj == "Loĝoko") or (vj == "setlejo") or (vj == "setlejo") ) then entitiesArray.typeOf = vj
elseif( (vj == "Urbotipa setlejo") or (vj == "Urbotipaj setlejoj de Ukrainio") or (vj == "Urbotipaj setlejoj de Rusio") )
then entitiesArray.typeOf = "Urbotipa setlejo"
elseif( (vj == "urbo de provinca signifo de Ukrainio") or (vj == "urbo de distrikta signifo") or (vj == "urbo en Ukrainio") or (vj == "urbo de rekta subigo de Korea Respubliko")
or (vj == "la dua laŭ grandeco urbo") or (vj == "urbo kun loĝantaro pli ol 100 000 homoj") or (vj == "statuturbo de Aŭstrio" ) or (vj == "statuta urbo") or (vj == "municipo de Aŭstrio")
or (vj == "Loĝoko de Svisio") or (vj == "ĉefurbo de svisa kantono") or (vj == "urbo de Ĉilio") or (vj == "ĉefurbo de subŝtato aŭ insula areo de Usono")
or (vj == "urbo") or (vj == "ĉefurbo") or (vj == "ĉarta urbo") or (vj == "koracloka urbo") or (vj == "milionurbo") or (vj == "malgranda urbo") or (vj == "federacia urbo")
or (vj == "universitata urbo") or (vj == "provinca ĉefurbo") or (vj == "urbo de respubliga subigo") or (vj == "antikva urbo") or (vj == "urbego de Usono") )
then entitiesArray.typeOf = "urbo"
elseif (vj == "komunumo de Italio" or vj == "komunumo de Norvegio" or (vj == "komunumo de Francio") or (vj == "komunumo de Alĝerio") or (vj == "komunumo de Armenio"))
then entitiesArray.typeOf = "komunumo"
elseif( (vj == "urba komunumo") or (vj == "komunumo de Bulgario") or (vj == "komunumo de Nederlando") or (vj == "komunumo de Svisio"))
then entitiesArray.typeOf = "komunumo"
elseif( (vj =="municipo de Katalunio") or (vj == "municipo de Hungario") or (vj == "municipo de Hispanio") or (vj == "municipo de Brazilio") or (vj == "municipo de Nederlando"))
then entitiesArray.typeOf = "municipo"
elseif(vj == "vilaĝo de Ukrainio")
then entitiesArray.typeOf = "vilaĝo"
elseif(vj == "Loĝoko de Meksikio")
then entitiesArray.typeOf = "Loĝoko"
else entitiesArray.typeOf = vj
end
if((entitiesArray.typeOf ~= "") and (entitiesArray.typeOf ~= "Loĝoko")) then return "" end -- (entitiesArray.typeOf ~= "Loĝoko")) - костыль, чтобы не возвращало его, если есть более точное значение
end
end
end
end
function AutoDescriptionLocality.parseP1705(entity)
local p1705Statements = entity:getAllStatements("P1705")
for ki, vi in pairs (p1705Statements) do
if (vi['mainsnak']['datavalue']['value']['language']) then entitiesArray.langPr=vi['mainsnak']['datavalue']['value']['language'] end
if (vi['mainsnak']['datavalue']['value']['text']) then entitiesArray.nativeL=vi['mainsnak']['datavalue']['value']['text'] end
end
end
function AutoDescriptionLocality.parseP571(entity)
local valuesP=entity:formatPropertyValues("P571", { mw.wikibase.entity.claimRanks.RANK_PREFERRED }).value
local valuesN=entity:formatPropertyValues("P571", { mw.wikibase.entity.claimRanks.RANK_NORMAL }).value
local values=""
if(valuesP ~= nil) then values=valuesP end
if (values == "" and valuesN ~= nil) then values=valuesN end
entitiesArray.unitOfTime=string.gsub(values, '[^a-z]', '' )
if(entitiesArray.unitOfTime == "jarcento") then do
entitiesArray.centuary = string.gsub(values, '[^a-z]', '' )
entitiesArray.inception = string.gsub(values, '[^0-9]', '' )
entitiesArray.P571 = "t"
end
elseif( (entitiesArray.unitOfTime == "januaro") or (entitiesArray.unitOfTime == "februaro") or (entitiesArray.unitOfTime == "marto") or (entitiesArray.unitOfTime == "aprilo")
or (entitiesArray.unitOfTime == "majo") or (entitiesArray.unitOfTime == "junio") or (entitiesArray.unitOfTime == "julio") or (entitiesArray.unitOfTime == "aŭgusto")
or (entitiesArray.unitOfTime == "septembro") or (entitiesArray.unitOfTime == "oktobro") or (entitiesArray.unitOfTime == "novembro") or (entitiesArray.unitOfTime == "decembro") ) then do
entitiesArray.inception=values
entitiesArray.P571 = "t"
end
elseif (values ~= "") then do
entitiesArray.inception=values
entitiesArray.P571 = "t"
end
else return ""
end
end
function AutoDescriptionLocality.parseP1376(entity)
local values=entity:formatPropertyValues("P1376",mw.wikibase.entity.claimRanks).value
q={["capitalOf"]=" "}
q["capitalOf"] = "(ст. " .. values .. " )"
return q["capitalOf"]
end
function AutoDescriptionLocality.parseP131(entity)
local p131Statements = entity:getAllStatements("P131")
local qLI = {Q167859 = "Volina provinco", Q2347421 = "Rivna distrikto"}
for ki, vi in pairs (p131Statements) do
for kj, vj in pairs (qLI) do
if (vi['mainsnak']['datavalue']['value']['id'] == kj) then
if (vj == "Volina provinco") then do
categories = categories .. " [[Kategorio:Loĝlokoj, fonditaj en Volina provinco]]" .. " [[Kategorio:Urboj de Volina provinco]]"
return " Situas en [[Volina provinco|Volina provinco]]."
end
elseif (vj == "Rivna distrikto") then do
categories = categories .. " [[Kategorio:Loĝlokoj, fonditaj en Rivna distrikto]]" .. " [[Kategorio:Urboj en Rivna distrikto]]"
return " Situas en [[Rivna distrikto|Rivna distrikto]]."
end
end
end
end
end
end
function AutoDescriptionLocality.parseP6(entity)
local valuesP=entity:formatPropertyValues("P6", { mw.wikibase.entity.claimRanks.RANK_PREFERRED }).value
local valuesN=entity:formatPropertyValues("P6", { mw.wikibase.entity.claimRanks.RANK_NORMAL }).value
entitiesArray.headOf=values
if(valuesN ~= "") then do
if(valuesP ~= "") then entitiesArray.headOf=valuesP
else entitiesArray.headOf=valuesN end
return " <br><b>Urbestro</b> — [[" .. entitiesArray.headOf .. "]]."
end
else return ""
end
end
function AutoDescriptionLocality.parseP1082(entity)
local p1082Statements = entity:getAllStatements("P1082")
local rankMax="0"
local pO=""
for ki, vi in pairs (p1082Statements) do
rankMax=vi['mainsnak']['rank']
entitiesArray.population=string.gsub( vi['mainsnak']['datavalue']['value']['amount'], '+', '' )
--if(vi['qualifiers'] and vi['qualifiers']['P585']) then entitiesArray.populationT = MathTonumber.integerModule(vi['qualifiers']['P585'][1]['datavalue']['value']['time']) end
if(vi['qualifiers'] and vi['qualifiers']['P585']) then entitiesArray.populationT = MathTonumber.integerModule(vi['qualifiers']['P585'][1]['datavalue']['value']['time'])
elseif(vi['references'] and vi['references']['P813']) then entitiesArray.populationT = MathTonumber.integerModule(vi['references'][1]['snaks']['P813'][1]['datavalue']['value']['time'])
end
--return SerializeTable.go(vi['qualifiers'])
--if (vi['qualifiers']['snaks']) then return SerializeTable.go(p1082Statements) end
--vi['qualifiers']['P585'][1]['datavalue']['value']['time']
end
if(entitiesArray.population) then return " <br><b>Kvanto da loĝantoj</b> en [[" ..entitiesArray.populationT .. " jaro]] estis " .. entitiesArray.population .. " homoj."
else return ""
end
end
function AutoDescriptionLocality.parseP2046(entity)
local values=entity:formatPropertyValues("P2046",mw.wikibase.entity.claimRanks).value
entitiesArray.area = string.gsub(values, '[^0-9]', '' )
if(string.find(values, "kvadrata kilometro" )) then entitiesArray.dimension = "km²" end
if(string.find(values, "kvadrata metro" )) then entitiesArray.dimension = "m²" end
if(values ~= "") then return " <br><b>Areo:</b> " .. entitiesArray.area .. " " .. entitiesArray.dimension .."."
else return ""
end
end
function AutoDescriptionLocality.parseP421(entity)
local values=entity:formatPropertyValues("P421",mw.wikibase.entity.claimRanks).value
if(values ~= "") then return " (" .. values .. ")"
else return ""
end
end
function AutoDescriptionLocality.parseP190(entity)
local p190Statements = entity:getAllStatements("P190")
local d="d"
for ki, vi in pairs (p190Statements) do
d=p
if(vi['mainsnak'] ~= nil and vi['mainsnak']['datavalue'] ~= nil and vi['mainsnak']['datavalue']['value'] ~= nil and vi['mainsnak']['datavalue']['value']['id'] ~= nil) then
local cl = mw.wikibase.getLabel(vi['mainsnak']['datavalue']['value']['id'])
if(cl ~= None) then entitiesArray.sisterTowns = entitiesArray.sisterTowns .. " [[" .. cl .. "]]," end
end
end
if(d == "p") then
do
entitiesArray.sisterTowns=entitiesArray.sisterTowns:sub(1, #entitiesArray.sisterTowns - 1)
return entitiesArray.sisterTowns .. "."
end
else return "" end
end
return AutoDescriptionLocality