Модуль:Wikidata/where: различия между версиями
Перейти к навигации
Перейти к поиску
[отпатрулированная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
Lockal (обсуждение | вклад) преобразователь Германия, Франция -> в Германии, во Франции |
Vlsergey (обсуждение | вклад) модуль Модуль:Wikidata:Dictionary/P1464 более не поддерживается, используйте arbitrary access |
||
Строка 1: | Строка 1: | ||
local p = {} |
local p = {} |
||
local ListOfCountries = mw.loadData( 'Модуль:Wikidata:Dictionary/P1464'); |
-- local ListOfCountries = mw.loadData( 'Модуль:Wikidata:Dictionary/P1464'); |
||
local ListOfCountries = {} |
|||
local function MakeWherePlaces(places) |
local function MakeWherePlaces(places) |
Версия от 12:08, 8 июля 2015
Реализация шаблона {{Wikidata/where}}
local p = {}
-- local ListOfCountries = mw.loadData( 'Модуль:Wikidata:Dictionary/P1464');
local ListOfCountries = {}
local function MakeWherePlaces(places)
local res = ''
for i, place in pairs(places) do
if i > 1 then
if next(places, _) == nil then
res = res .. ' и ';
else
res = res .. ', ';
end
end
if place.mainsnak.datavalue then -- если значение свойства "значение неизвестно", то datavalue nil
local id = 'Q' .. place.mainsnak.datavalue.value['numeric-id']
if ListOfCountries[id] then
local sitelink = mw.wikibase.sitelink(id)
local prep, linktext = string.match(ListOfCountries[id][1], '^Категория:Родившиеся ([^ ]+) (.+)$');
if sitelink then
res = res .. prep .. ' ' .. "[[" .. sitelink .. "|" .. linktext .. "]]";
else
res = res .. prep .. ' ' .. linktext;
end
end
end
end
return res
end
function p.mainFunction(frame)
local args = {}
if frame == mw.getCurrentFrame() then
args = frame.args;
else
args = frame
end
local result = ''
local entity = mw.wikibase.getEntityObject()
if entity ~= nil and entity.claims ~= nil then
countries = entity.claims[ args[1] ]
if countries ~= nil then
result = result .. MakeWherePlaces(countries)
end
end
return result
end
return p