Vikipediya crhwiki https://crh.wikipedia.org/wiki/Ba%C5%9F_Saife MediaWiki 1.46.0-wmf.26 first-letter Media Mahsus Muzakere Qullanıcı Qullanıcı muzakeresi Vikipediya Vikipediya muzakeresi Fayl Fayl muzakeresi MediaViki MediaViki muzakeresi Şablon Şablon muzakeresi Yardım Yardım muzakeresi Kategoriya Kategoriya muzakeresi R R talk TimedText TimedText talk Modul Modul muzakeresi Event Event talk Pokrovske 0 16760 243745 233005 2026-05-03T17:10:59Z Spokiyny 35104 243745 wikitext text/x-wiki {{MY |tip = qasaba |qırımtatar adı = Pokrovske |original adı = ''ukr.'' Покровське |memleket = Ukraina |tuğra = Pokrovske_dn2_s.png |bayraq = Pokrovske_dn_h.png |tuğra eni = |bayraq eni = |lat_deg =47 |lat_min =58 |lat_sec =57 |lon_deg =36 |lon_min =14 |lon_sec =02 |CoordAddon = |CoordScale = |memleket haritasınıñ büyükligi = 300 |region1 haritasınıñ büyükligi = |region2 haritasınıñ büyükligi = |region1 türü = Vilâyet |region1 = Dnipropetrovsk vilâyeti |cedvelde region1 adı = |içki bölünüv = |baş türü = |baş = |temeli qoyulğan tarihı = 1779 |ilki añıluv = |evelki adları = |bu seneden berli statuslı = 2024 |meydanlıq = 9 |yükseklik = |iklim = |resmiy til = |resmiy til-ref = |eali = 11 661 |cedvelge aluv senesi = 2001 |eali sıqlığı = |aglomeratsiya = |milliy terkip = |diniy terkip = |saat quşağı = +2 |DST = bar |telefon kodu = +380 5638 |poçta indeksi = |poçta indeksleri = 53600-53604 |avtomobil kodu = |identifikator türü = |raqamlı identifikator = |Commons = Pokrovske |sayt = |sayt tili = }} '''Pokrovske''' ({{Lang-uk|Покровське}}) - [[Ukraina]]nıñ [[Dnipropetrovsk vilâyeti]]nde bir [[qasaba]]. Ealisiniñ sayısı 200 kişi. [[Kategoriya:Dnipropetrovsk vilâyetindeki qasabalar]] 2c3jk9u3r9okvg87ffr2q47q0i3n290 Modul:Wikidata/config 828 19261 243752 243692 2026-05-04T09:20:47Z Хтосьці 13041 [[Категория:Википедия:Страницы с ошибками скриптов, использующих Викиданные]] → [[Vikipediya:Vikimalümatnı qullanğan kodta hatalar olğan maqaleler]] ([[Modul:Wikidata/Places]] modulinde kibi) 243752 Scribunto text/plain -- Property configuration for Wikidata module return { global = { separator = ',&#32;', conjunction = '&#32;ve&#32;', }, presets = { ['catonly'] = { datatype = 'wikibase-item', conjunction = '', invisible = true, ['value-module'] = 'Wikidata/item', ['value-function'] = 'formatCategoryOnly', references = '', category = 'P910', }, ['country'] = { ['claim-module'] = 'Wikidata/Places', ['claim-function'] = 'formatCountryClaimWithFlag', before = '<ul><li>', separator = '</li><li>', conjunction = '</li><li>', after = '</li></ul>', }, ['from-to'] = { ['property-module'] = 'Wikidata/date', ['property-function'] = 'formatDateIntervalProperty', }, ['link'] = { ['value-module'] = 'Wikidata/link', ['value-function'] = 'fromModule', }, ['list'] = { before = '<ul><li>', separator = '</li><li>', conjunction = '</li><li>', after = '</li></ul>', }, ['name'] = { monolingualLangTemplate = 'lang', separator = '<br>', conjunction = '<br>', }, ['place'] = { ['claim-module'] = 'Wikidata/Places', ['claim-function'] = 'formatPlaceWithQualifiers', before = '<ul><li>', separator = '</li><li>', conjunction = '</li><li>', after = '</li></ul>', }, ['quantity (date)'] = { before = '<ul><li>', separator = '</li><li>', conjunction = '</li><li>', after = '</li></ul>', qualifier = 'P585', }, }, datatypes = { commonsMedia = { limit = 1, references = false, size = '274x400px', separator = '<br>', conjunction = '<br>', somevalue = '', ['value-module'] = 'Wikidata/media', ['value-function'] = 'formatCommonsMediaValue', }, ['external-id'] = { references = false, }, ['globe-coordinate'] = { limit = 1, references = false, }, url = { separator = '<br>', conjunction = '<br>', references = false, ['value-module'] = 'Wikidata/url', ['value-function'] = 'formatUrlValue', }, quantity = { siConversion = true } }, properties = { P6 = { datatype = 'wikibase-item', }, P17 = { datatype = 'wikibase-item', preset = 'country', }, P18 = { datatype = 'commonsMedia', fixdouble = true, }, P19 = { datatype = 'wikibase-item', preset = 'place', separator = ',</li><li>', conjunction = ' ya da </li><li>', }, P20 = { datatype = 'wikibase-item', preset = 'place', separator = ',</li><li>', conjunction = ' ya da </li><li>', }, P22 = { datatype = 'wikibase-item', conjunction = ' ya da ' }, P25 = { datatype = 'wikibase-item', conjunction = ' ya da ' }, P26 = { datatype = 'wikibase-item', }, P27 = { datatype = 'wikibase-item', preset = 'country', }, P31 = { datatype = 'wikibase-item', references = false, }, P37 = { datatype = 'wikibase-item', }, P39 = { ['claim-module'] = 'Wikidata/positions', ['claim-function'] = 'formatPositionClaim', separator = '', conjunction = '', allowTables = true, }, P40 = { datatype = 'wikibase-item', }, P41 = { datatype = 'commonsMedia', size = '150x200px', }, P53 = { datatype = 'wikibase-item', category = 'P910', }, P54 = { category = 'P6112', }, P57 = { datatype = 'wikibase-item', preset = 'list', }, P58 = { datatype = 'wikibase-item', preset = 'list', }, P59 = { datatype = 'wikibase-item', category = 'P910', references = false, }, P69 = { datatype = 'wikibase-item', preset = 'list', category = 'P3876', qualifier = 'P582', }, P86 = { datatype = 'wikibase-item', preset = 'list', }, P94 = { datatype = 'commonsMedia', size = '100x200px', }, P101 = { datatype = 'wikibase-item', }, P102 = { datatype = 'wikibase-item', preset = 'list', qualifier = 'P582', category = 'P6365', }, P103 = { datatype = 'wikibase-item', }, P106 = { datatype = 'wikibase-item', ['claim-module'] = 'Wikidata/item', ['claim-function'] = 'formatEntityWithGenderClaim', conjunction = ',&#32;', }, P108 = { datatype = 'wikibase-item', preset = 'list', category = 'P4195', }, P109 = { datatype = 'commonsMedia', size = '150x150px', alt = 'Avtograf resmi', }, P117 = { datatype = 'commonsMedia', size = '290x300px', alt = 'Himiyeviy qurulış resmi', }, P119 = { datatype = 'wikibase-item', preset = 'place', thisLocationOnly = 'true', }, P131 = { datatype = 'wikibase-item', }, P140 = { datatype = 'wikibase-item', }, P154 = { size = '220x80px', alt = 'Logotip resmi', }, P159 = { preset = 'place', }, P161 = { preset = 'list', }, P162 = { preset = 'list', }, P163 = { datatype = 'wikibase-item', }, P166 = { datatype = 'wikibase-item', ['property-module'] = 'Wikidata/Medals', ['property-function'] = 'formatProperty', ['value-module'] = 'Wikidata/Medals', ['value-function'] = 'formatValue', before = '<div style="text-align:justify">', after = '</div>', separator = '&#32;', conjunction = '&#32;', references = false, allowTables = true, }, P190 = { datatype = 'wikibase-item', }, P212 = { preset = 'link', }, P225 = { preset = 'list', ['claim-module'] = 'Wikidata/Biology', ['claim-function'] = 'formatTaxonNameClaim', }, P237 = { datatype = 'wikibase-item', }, P241 = { datatype = 'wikibase-item', }, P242 = { datatype = 'commonsMedia', size = '300x300px', }, P247 = { formatter = 'https://nssdc.gsfc.nasa.gov/nmc/spacecraft/display.action?id=$1', }, P267 = { preset = 'link', }, P276 = { preset = 'place', }, P281 = { datatype = 'string', }, P286 = { preset = 'list', }, P296 = { formatter = 'http://osm.sbin.ru/esr/esr:$1', }, P301 = { rawArticle = true, }, P344 = { preset = 'list', }, P345 = { preset = 'link', }, P348 = { preset = 'list', ['property-module'] = 'Wikidata/Software', ['property-function'] = 'formatVersionProperty', }, P361 = { datatype = 'wikibase-item', }, P367 = { datatype = 'commonsMedia', size = '16x16px', }, P373 = { datatype = 'string', ['value-module'] = 'Wikidata/media', ['value-function'] = 'formatCommonsCategory', limit = 1, }, P374 = { datatype = 'external-id', }, P395 = { datatype = 'string', }, P407 = { datatype = 'wikibase-item', }, P410 = { datatype = 'wikibase-item', }, P412 = { datatype = 'wikibase-item', category = 'P910', }, P413 = { datatype = 'wikibase-item', ['claim-module'] = 'Wikidata/item', ['claim-function'] = 'formatEntityWithGenderClaim', conjunction = ',&#32;', category = 'P910', }, P414 = { ['claim-module'] = 'Wikidata/item', ['claim-function'] = 'applyDefaultTemplate', }, P421 = { datatype = 'wikibase-item', }, P473 = { datatype = 'string', }, P495 = { preset = 'country', }, P505 = { preset = 'list', }, P512 = { datatype = 'wikibase-item', ['property-module'] = 'Wikidata/P512', ['property-function'] = 'formatAcademicDegree', }, P527 = { preset = 'list', }, P528 = { references = false, qualifier = 'P972', }, P551 = { preset = 'place', }, P569 = { datatype = 'time', ['claim-module'] = 'Wikidata/date', ['claim-function'] = 'formatDateOfBirthClaim', }, P570 = { datatype = 'time', ['claim-module'] = 'Wikidata/date', ['claim-function'] = 'formatDateOfDeathClaim', }, P571 = { datatype = 'time', }, P576 = { datatype = 'time', }, P598 = { datatype = 'wikibase-item', }, P607 = { datatype = 'wikibase-item', preset = 'list', }, P625 = { datatype = 'globe-coordinate', }, P669 = { qualifier = 'P670', }, P685 = { formatter = 'https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=$1', }, P721 = { preset = 'link', }, P764 = { preset = 'link', }, P803 = { datatype = 'wikibase-item', }, P856 = { datatype = 'url', }, P881 = { novalue = 'нет', category = 'P910', }, P884 = { preset = 'link', }, P915 = { category = 'P1740', }, P957 = { preset = 'link', }, P972 = { preset = 'catonly', }, P1077 = { preset = 'link', }, P1082 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator' }, P1098 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi', }, P1120 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator' }, P1128 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator' }, P1174 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi', }, P1195 = { ['value-module'] = 'Wikidata/Software', ['value-function'] = 'formatExtension', conjunction = ' ya da ', }, P1215 = { datatype = 'quantity', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatVisualMagnitude' }, P1246 = { preset = 'link', }, P1249 = { datatype = 'time', }, P1376 = { datatype = 'wikibase-item', }, P1402 = { preset = 'link', }, P1448 = { datatype = 'monolingualtext', preset = 'name', }, P1458 = { datatype = 'quantity', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatColorIndex' }, P1464 = { datatype = 'wikibase-item', }, P1476 = { preset = 'name', }, P1477 = { datatype = 'monolingualtext', preset = 'name', }, P1532 = { preset = 'country', rank = '[rank:normal, rank:preferred]', }, P1543 = { datatype = 'commonsMedia', }, P1559 = { datatype = 'monolingualtext', preset = 'name', }, P1603 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator' }, P1621 = { size = '300x300px', }, P1692 = { preset = 'link', }, P1705 = { datatype = 'monolingualtext', preset = 'name', }, P1753 = { rowArticle = true, }, P1809 = { preset = 'list', }, P1846 = { datatype = 'commonsMedia', fixdouble = true, }, P2031 = { preset = 'from-to', to = 'P2032', within = 'P570', }, P2043 = { datatype = 'quantity', preset = 'quantity (date)', }, P2044 = { datatype = 'quantity', }, P2046 = { datatype = 'quantity', preset = 'quantity (date)', siConversion = false, }, P2047 = { siConversion = false, }, P2048 = { conjunction = '&#32;ya da&#32;', }, P2060 = { siConversion = false, }, P2097 = { siConversion = false, }, P2120 = { siConversion = false, }, P2137 = { preset = 'quantity (date)', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator', countByThousands = true, }, P2139 = { preset = 'quantity (date)', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator', countByThousands = true, }, P2146 = { siConversion = false, }, P2214 = { siConversion = false }, P2226 = { preset = 'quantity (date)', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator', countByThousands = true, }, P2257 = { siConversion = false }, P2295 = { preset = 'quantity (date)', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator', countByThousands = true, }, P2324 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi' }, P2403 = { preset = 'quantity (date)', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator', countByThousands = true, }, P2425 = { alt = 'Изображение орденской планки', }, P2583 = { siConversion = false, }, P2597 = { preset = 'catonly', }, P2650 = { datatype = 'wikibase-item', }, P2789 = { preset = 'list', }, P2896 = { siConversion = false, }, P2910 = { size = '100x80px', }, P3083 = { formatter = 'http://simbad.u-strasbg.fr/simbad/sim-id?Ident=$1', }, P3086 = { siConversion = false, }, P3362 = { preset = 'quantity (date)', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator', countByThousands = true, }, P4614 = { category = 'P1200', }, P5348 = { siConversion = false, }, P6257 = { ['value-module'] = 'Wikidata/number', ['value-function'] = 'formatRA', }, P6258 = { ['value-module'] = 'Wikidata/number', ['value-function'] = 'formatDMS', }, P6259 = { ['references'] = false, }, P7584 = { siConversion = false, }, P8010 = { datatype = 'quantity', preset = 'quantity (date)', unit = 'kişi', ['property-module'] = 'Wikidata/number', ['property-function'] = 'formatPropertyWithMostRecentClaimAndIndicator' }, P8224 = { alt = 'Moledula modeli resmi', }, P11101 = { size = '200x200px', alt = 'Model resmi', }, }, categories = { ['links-to-entities-with-missing-label'] = 'Википедия:Статьи со ссылками на элементы Викиданных без подписи', ['links-to-entities-with-wikibase-error'] = 'Vikipediya:Vikimalümatnı qullanğan kodta hatalar olğan maqaleler', ['links-to-entities-with-missing-local-language-label'] = 'Википедия:Статьи со ссылками на элементы Викиданных без русской подписи', ['media-contains-local-caption'] = 'Википедия:Локальная подпись у изображения из Викиданных', ['media-contains-markup'] = 'Википедия:Статьи с вики-разметкой в изображении карточки', ['media-contains-local-double'] = 'Википедия:Изображение в статье дублирует изображение в карточке', ['value-contains-table'] = 'Википедия:Статьи с табличной вставкой в карточке', }, errors = { ['property-param-not-provided'] = 'Не дан параметр свойства', ['entity-not-found'] = 'Сущность не найдена.', ['unknown-claim-type'] = 'Неизвестный тип заявления.', ['unknown-snak-type'] = 'Неизвестный тип снэка.', ['unknown-datavalue-type'] = 'Неизвестный тип значения данных.', ['unknown-entity-type'] = 'Неизвестный тип сущности.', ['unknown-property-module'] = 'Вы должны установить и property-module, и property-function.', ['unknown-claim-module'] = 'Вы должны установить и claim-module, и claim-function.', ['unknown-value-module'] = 'Вы должны установить и value-module, и value-function.', ['property-module-not-found'] = 'Модуль для отображения свойства не найден', ['property-function-not-found'] = 'Функция для отображения свойства не найдена', ['claim-module-not-found'] = 'Модуль для отображения утверждения не найден.', ['claim-function-not-found'] = 'Функция для отображения утверждения не найдена.', ['value-module-not-found'] = 'Модуль для отображения значения не найден.', ['value-function-not-found'] = 'Функция для отображения значения не найдена.', }, i18n = { -- eger metinde "..." olsa, esas metin çoq noqtanıñ yerine qoymalı somevalue = "''bilinmez''", novalue = '', -- Обстоятельства источника Q5727902 = '... yaqın', Q18122778 = '<span style="border-bottom: 1px dotted; cursor: help;" title="imkânı bar, ki">imk.</span> ', Q30230067 = 'belki, ', Q52834024 = '<span style="border-bottom: 1px dotted; cursor: help;" title="bu sayıdan daa ufaq ">&lt;</span> ', Q54418095 = '<span style="border-bottom: 1px dotted; cursor: help;" title="bu sayıdan daa büyük ">&gt;</span> ', thousandPowers = {'', ' biñ', ' mln', ' mlrd', ' trln'}, }, deprecatedSources = { Q36578 = true, -- Gemeinsame Normdatei Q63056 = true, -- Find a Grave Q212256 = true, -- АиФ Q523660 = true, -- International Music Score Library Project by https://ru.wikipedia.org/?diff=107090748 Q1798125 = true, -- LIBRIS Q15222191 = true, -- BNF Q15241312 = true, -- Freebase Q25328680 = true, -- Prabook Q29861311 = true, -- SNAC Q86999151 = true, -- WeChangEd }, }; 9vo66etfslsmzzkb1lxqr57rznw7scs Modul:Wikidata/Places 828 19272 243751 243708 2026-05-04T09:19:03Z Хтосьці 13041 [[ ]] qavusları kategoriya ad sazlamarandan yoq etip aldım (yañı kod versiyası olarnı almay), [[III İslâm Geray]], [[Irğat Qadır]], [[Canike]] ve ilâhre maqalelerinda “Lua hatası 372 satırında Modul:Wikidata/Places: attempt to index local 'categoryTitle' (a nil value).” tüzetmek içün; kategoriya adları qırımtatarca tercime etip baqtım 243751 Scribunto text/plain local categorizeByPlace = true; local WDS = require( 'Module:WikidataSelectors' ); local Flags = require( 'Module:Wikidata/Flags' ); local p = { config = { hideSameLabels = false, hidePartOfLabels = false, hideUnitsForCapitals = true, reverseOrder = false, catAmbiguousGeoChains = 'Kategoriya:Vikipediya:Çoq variantlı coğrafik sıraslar olğan maqaleler', catLoopInGeoChains = 'Kategoriya:Vikipediya:Tsikl coğrafik sırasları olğan maqaleler', catWikibaseError = 'Vikipediya:Vikimalümatnı qullanğan kodta hatalar olğan maqaleler' } }; local function min( prev, next ) if prev == nil then return next; elseif prev > next then return next; else return prev; end end local function max( prev, next ) if prev == nil then return next; elseif prev < next then return next; else return prev; end end local function getTimeBoundariesFromProperty( context, propertyId ) local dateClaims = WDS.filter( context.entity.claims, propertyId ); if not dateClaims or #dateClaims == 0 then return nil; end -- only support exact date so far, but need improvment local left = nil; local right = nil; for _, claim in pairs( dateClaims ) do if not claim.mainsnak then return nil; end local boundaries = context.parseTimeBoundariesFromSnak( claim.mainsnak ); if not boundaries then return nil; end left = min( left, boundaries[ 1 ] ); right = max( right, boundaries[ 2 ] ); end if not left or not right then return nil; end return { left, right }; end local function getTimeBoundariesFromProperties( context, propertyIds ) for _, propertyId in ipairs( propertyIds ) do local result = getTimeBoundariesFromProperty( context, propertyId ); if result then return result; end end return nil; end local function getTimeBoundariesFromQualifiers( context, statement, qualifierId ) -- only support exact date so far, but need improvment local left = nil; local right = nil; if statement.qualifiers and statement.qualifiers[qualifierId] then for _, qualifier in pairs( statement.qualifiers[qualifierId] ) do local boundaries = context.parseTimeBoundariesFromSnak( qualifier ); if not boundaries then return nil; end left = min( left, boundaries[1] ); right = max( right, boundaries[2] ); end end if not left or not right then return nil; end return { left, right }; end local function getParentsInBoundariesSnakImpl( context, entityId, boundaries, propertyIds, selectors ) local results = {}; if not propertyIds or #propertyIds == 0 then return results; end for _, propertyId in ipairs( propertyIds ) do if (not string.match( propertyId, '^P%d+$' )) then error('Incorrect propertyId: ' + propertyId); end local selector; if (selectors ~= nil) then selector = selectors[propertyId] or propertyId; else selector = propertyId; end local entityClaims = {}; entityClaims[propertyId] = mw.wikibase.getAllStatements( entityId, propertyId ); local filteredClaims = WDS.filter( entityClaims, selector .. '[rank:preferred, rank:normal]' ); if filteredClaims then for _, claim in pairs( filteredClaims ) do if not boundaries or not propertyIds or #propertyIds == 0 then table.insert( results, claim.mainsnak ); else local startBoundaries = getTimeBoundariesFromQualifiers( context, claim, 'P580' ); local endBoundaries = getTimeBoundariesFromQualifiers( context, claim, 'P582' ); if ( startBoundaries == nil or startBoundaries[2] <= boundaries[1] ) and ( endBoundaries == nil or endBoundaries[1] >= boundaries[2] ) then table.insert( results, claim.mainsnak ); end end end end if #results > 0 then break; end end return results; end local function getParentsInBoundariesSnak( context, entityId, boundaries ) if not entityId then error('entityId must be specified'); end if type(entityId) ~= 'string' then error('entityId must be string'); end if not boundaries then error('boundaries must be specified'); end if type(boundaries) ~= 'table' then error('boundaries must be table'); end local results = getParentsInBoundariesSnakImpl( context, entityId, boundaries, {'P131'} ) -- located in if not results or #results == 0 then results = getParentsInBoundariesSnakImpl( context, entityId, boundaries, {'P17'} ) -- country end for r, result in pairs( results ) do if result.snaktype ~= 'value' then return nil; end local resultId = result.datavalue.value.id; if resultId == entityId then return nil; end end return results; end local unions = { Q1140229 = true, -- political union Q3623811 = true, -- Экономический союз Q4120211 = true -- региональная организация } local countries = { Q6256 = true, -- страна Q7275 = true, -- государство Q3024240 = true, -- историческое государство Q3624078 = true -- суверенное государство } local function isSkipTopLevel( entity ) local isCountry = false; local isUnion = false; if entity and entity.claims and entity.claims.P31 then for c, claim in pairs( entity.claims.P31 ) do if claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.id then local typeId = claim.mainsnak.datavalue.value.id; isCountry = isCountry or countries[ typeId ]; isUnion = isUnion or unions[ typeId ]; end end end return isUnion and not isCountry; end local function isPartOfNext( prevLabel, nextLabel ) return ( mw.ustring.len( prevLabel ) > mw.ustring.len( nextLabel ) ) and ( mw.ustring.sub( prevLabel, mw.ustring.len( prevLabel ) - mw.ustring.len( nextLabel ) + 1 ) == nextLabel ); end local function concatChain( context, options, chain ) if p.config.reverseOrder then table.sort( chain, function( a, b ) return a > b end ) end return table.concat( chain, ', ' ) end local function formatPlaceFromQualifiers( context, options, qualifiers, entriesToLookupCategory ) local allQualifiers = {} -- parent divisions if qualifiers.P131 then for i, qualifier in ipairs( qualifiers.P131 ) do if qualifier.datavalue then table.insert( allQualifiers, qualifier ) end end end -- country if qualifiers.P17 then for i, qualifier in ipairs( qualifiers.P17 ) do if qualifier.datavalue then table.insert( allQualifiers, qualifier ) end end end if #allQualifiers > 0 then local chain = {} if #allQualifiers then for i, qualifier in ipairs( allQualifiers ) do if qualifier.datavalue then local parentOptions = context.cloneOptions( options ) local qualifierEntityId = qualifier.datavalue.value.id parentOptions['text'] = getLabel( context, qualifierEntityId, boundaries ) local link = context.formatSnak( parentOptions, qualifier ) table.insert( chain, link ) insertFromSnak( qualifier, entriesToLookupCategory ) end end end local result = '' if #chain then result = concatChain( context, options, chain ) if p.config and p.config.catQualifierGeoChains then result = result .. '[[' .. p.config.catQualifierGeoChains .. ']]' end end return result end return '' end --Property:P19, Property:P20, Property:P119 function p.formatPlaceWithQualifiers( context, options, statement ) local property = mw.ustring.upper( options.property ); local actualDateBoundariesProperties = nil; if property == 'P19' then actualDateBoundariesProperties = {'P569','P570'} elseif property == 'P20' then actualDateBoundariesProperties = {'P570','P569'} elseif property == 'P119' then actualDateBoundariesProperties = {'P570','P569'} elseif property == 'P131' or property == 'P159' then actualDateBoundariesProperties = {'P576'} end local boundaries = nil; if actualDateBoundariesProperties ~= nil then boundaries = getTimeBoundariesFromProperties( context, actualDateBoundariesProperties ); if (boundaries == nil) and (property == 'P131' or property == 'P159') then boundaries = {os.time() * 1000, os.time() * 1000}; end end local entriesToLookupCategory = {}; local circumstances = context.getSourcingCircumstances( statement ) local result = '' local baseResult = context.formatSnak( options, statement.mainsnak, circumstances ) local categories = '' if not baseResult then return nil; end insertFromSnak( statement.mainsnak, entriesToLookupCategory ) local hasAdditionalQualifiers = false if statement.qualifiers then result = formatPlaceFromQualifiers( context, options, statement.qualifiers, entriesToLookupCategory ) if result ~= '' then hasAdditionalQualifiers = true end end if statement.mainsnak and statement.mainsnak.datavalue and statement.mainsnak.datavalue.value and statement.mainsnak.datavalue.value.id then local entityId = statement.mainsnak.datavalue.value.id; local parentSnaks = { statement.mainsnak }; local parentEntityIds = { entityId }; if actualDateBoundariesProperties ~= nil then local filterCapitalOf = { [ entityId ] = getParentsInBoundariesSnakImpl( context, entityId, boundaries, {'P1376'} ) }; if boundaries then local entityOptions = context.cloneOptions( options ); entityOptions['text'] = getLabel( context, entityId, boundaries ); baseResult = context.formatSnak( entityOptions, statement.mainsnak, circumstances ); local parentId = entityId local parentIsCountry = false local isAmbiguous = false while parentId ~= nil do -- get parent local propertyId = parentIsCountry and 'P17' or 'P131' -- country / located in local newParentSnaks = getParentsInBoundariesSnak( context, parentId, boundaries, propertyId ) if not newParentSnaks or #newParentSnaks == 0 then if not parentIsCountry then parentIsCountry = true else parentId = nil end elseif #newParentSnaks == 1 then local parentSnak = newParentSnaks[ 1 ] parentId = parentSnak.datavalue.value.id local hasLoop = false for _, parentEntityId in pairs(parentEntityIds) do if parentEntityId == parentId then hasLoop = true end end if hasLoop then if p.config and p.config.catLoopInGeoChains then categories = categories .. '[[' .. p.config.catLoopInGeoChains .. ']]'; end break -- while parentId ~= nil do end table.insert( parentSnaks, parentSnak ) table.insert( parentEntityIds, parentId ) filterCapitalOf[ parentId ] = getParentsInBoundariesSnakImpl( context, parentId, boundaries, { 'P1376' } ); parentIsCountry = false else isAmbiguous = true if not parentIsCountry then parentIsCountry = true else parentId = nil end end end if isAmbiguous and p.config and p.config.catAmbiguousGeoChains then local countryId = parentEntityIds[ #parentEntityIds ] local countryName = getLabel( context, countryId, boundaries ) or countryId local countryCategoryName = p.config.catAmbiguousGeoChains .. ' (' .. countryName .. ')' local categoryTitle = mw.title.new( countryCategoryName ) if categoryTitle.exists then categories = categories .. '[[' .. countryCategoryName .. ']]' else categories = categories .. '[[' .. p.config.catAmbiguousGeoChains .. ']]' end end if not hasAdditionalQualifiers then for i = 2, #parentSnaks, 1 do local parentSnak = parentSnaks[ i ]; insertFromSnak( parentSnak, entriesToLookupCategory ) end end -- do not output similar countries like "Denmark, the Kingdom of Denmark" local simularCountries = { ['Q41304'] = 'Q1206012', -- Weimar Republic / German Reich ['Q713750'] = 'Q183', -- West Germany / Germany ['Q7318'] = 'Q1206012', -- Weimar Republic / Nazi Germany ['Q35'] = 'Q756617', -- Denmark / Danish Realm ['Q55'] = 'Q29999', -- Netherlands / Kingdom of the Netherlands ['Q32081'] = 'Q865', -- Taiwan Province / Taiwan } if (#parentSnaks > 1) then for smallerCountryId, largerCountryId in pairs( simularCountries ) do if parentSnaks[ #parentSnaks ].datavalue.value.id == largerCountryId and parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == smallerCountryId then table.remove( parentSnaks, #parentSnaks ); table.remove( parentEntityIds, #parentEntityIds ); end end end -- optimization for capital regions if (#parentSnaks > 3) then if parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == 'Q23939248' --Greater London, Greater London and parentSnaks[ #parentSnaks - 3 ].datavalue.value.id == 'Q23306' then table.remove( parentSnaks, #parentSnaks - 2 ); table.remove( parentEntityIds, #parentEntityIds - 2 ); end end if (#parentSnaks > 2) then if parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == 'Q240' --Brussels-Capital, Brussels and parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == 'Q90870' then table.remove( parentSnaks, #parentSnaks - 2 ); table.remove( parentEntityIds, #parentEntityIds - 2 ); elseif parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == 'Q1490' --Tokyo, Tokyo and parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == 'Q7473516' then baseResult = ''; elseif parentSnaks[ #parentSnaks - 1 ].datavalue.value.id == 'Q633490' --Tadjik districts of Republican Subordination then table.remove( parentSnaks, #parentSnaks - 1 ); table.remove( parentEntityIds, #parentEntityIds - 1 ); elseif parentSnaks[ #parentSnaks - 2 ].datavalue.value.id == 'Q633490' --Tadjik SSR districts of Republican Subordination then table.remove( parentSnaks, #parentSnaks - 2 ); table.remove( parentEntityIds, #parentEntityIds - 2 ); end end -- do not output (maternity) hospitals, houses and streets but do it for manor and English country houses local unignoredTypes = { 'Q879050', -- manor house 'Q1343246', -- English country house } local ignoredTypes = { 'Q3947', -- house 'Q16917', -- hospital 'Q34442', -- road 'Q79007', -- street 'Q174782', -- square 'Q958822', -- maternity hospital 'Q1059324', -- university hospital 'Q2087181', -- historic house museum 'Q2845944', -- former arrondissement of Paris 'Q18629950', -- private clinic 'Q64578911', -- former hospital } if (#parentSnaks > 1) then local p31 = mw.wikibase.getAllStatements( parentEntityIds[ 1 ], 'P31' ); local doignore = true; for _, iOf in ipairs( p31 ) do for _, unignoredTypeId in ipairs( unignoredTypes ) do if ( iOf.mainsnak.datavalue and iOf.mainsnak.datavalue.value.id == unignoredTypeId ) then doignore = false; unignoredTypes = {}; ignoredTypes = {}; break; end end end if (doignore) then for _, iOf in ipairs( p31 ) do for _, ignoredTypeId in ipairs( ignoredTypes ) do if ( iOf.mainsnak.datavalue and iOf.mainsnak.datavalue.value.id == ignoredTypeId ) then baseResult = ''; unignoredTypes = {}; ignoredTypes = {}; break; end end end end end do local capofstate = false; local i = #parentSnaks; while i > 1 do local prevEntityId = parentEntityIds[ i - 1 ]; -- TODO: use English labels, if there is no current language labels local prevLabel = getLabel( context, prevEntityId, boundaries ) or ''; local nextEntityId = parentEntityIds[ i ]; local nextLabel = getLabel( context, nextEntityId, boundaries ) or ''; if p.config and p.config.hideSameLabels == true and prevLabel == nextLabel then -- do not output same label twice (NY, NY, USA) table.remove( parentSnaks, i ); table.remove( parentEntityIds, i ); elseif p.config and p.config.hidePartOfLabels == true and isPartOfNext( prevLabel, ' ' .. nextLabel ) then -- do not output same label if it's part of previos table.remove( parentSnaks, i - 1 ); table.remove( parentEntityIds, i - 1 ); elseif p.config and p.config.hideUnitsForCapitals == true then -- do not ouput items whose capital is the first item local capitalId = nil; for _capitalId, capitalSnaks in pairs( filterCapitalOf ) do if #capitalSnaks > 0 then for __, capitalSnak in pairs( capitalSnaks ) do if capitalSnak.datavalue and parentSnaks[ i ].datavalue.value.id == capitalSnak.datavalue.value.id then capitalId = _capitalId; if (i == #parentSnaks) then capofstate = true; end break; end end end end if capitalId ~= nil then if i == #parentSnaks then i = i - 1; end -- always ouput constituent countries like England or Russian SFSR if (i == (#parentSnaks-1)) and (capofstate == false) then local p31 = mw.wikibase.getAllStatements(parentEntityIds[ i ], 'P31'); for _, iOf in pairs (p31) do if (iOf.mainsnak.datavalue.value['numeric-id'] == 236036) or (iOf.mainsnak.datavalue.value['numeric-id'] == 3336843) or (iOf.mainsnak.datavalue.value['numeric-id'] == 12959600) or (iOf.mainsnak.datavalue.value['numeric-id'] == 56219758) or (iOf.mainsnak.datavalue.value['numeric-id'] == 15304003) or (iOf.mainsnak.datavalue.value['numeric-id'] == 66724388) then i = i - 1; end end end while i > 1 and parentEntityIds[ i ] ~= capitalId do table.remove( parentSnaks, i ); table.remove( parentEntityIds, i ); i = i - 1; end end end i = i - 1; end end if isSkipTopLevel( parentEntityIds[ #parentEntityIds ] ) then table.remove( parentSnaks, #parentEntityIds ); table.remove( parentEntityIds, #parentEntityIds ); end if not hasAdditionalQualifiers then for i = 2, #parentSnaks, 1 do local parentSnak = parentSnaks[ i ]; local parentOptions = context.cloneOptions( options ); parentOptions['text'] = getLabel( context, parentEntityIds[ i ], boundaries ); local comma = '' local subResult = context.formatSnak( parentOptions, parentSnak ) if subResult ~= '' and result ~= '' then comma = ', ' end if i == #parentSnaks and parentEntityIds[ i ] == 'Q183' then if string.sub(subResult,-34) == '[[Германия|ФРГ]]</span>' then subResult = '[[Федеративная Республика Германии (1949—1990)|ФРГ]]' else subResult = subResult end end if p.config.reverseOrder then result = subResult .. comma .. result else result = result .. comma .. subResult end end end end end end local comma = '' if baseResult ~= '' and result ~= '' then comma = ', ' end if options[ 'thisLocationOnly' ] then result = baseResult elseif p.config.reverseOrder then result = result .. comma .. baseResult else result = baseResult .. comma .. result end if options.references then result = result .. context.formatRefs( options, statement ) end if not options.nocat and options.nocat ~= '' then if categorizeByPlace then if property == 'P19' then categories = categories .. getCategory( 'P1464', entriesToLookupCategory ); end if property == 'P20' then categories = categories .. getCategory( 'P1465', entriesToLookupCategory ); end if property == 'P119' then categories = categories .. getCategory( 'P1791', entriesToLookupCategory ); end end result = result .. categories end return result end -- append entity id from snak to result function insertFromSnak( snak, result ) if not categorizeByPlace then return; end if snak and snak.datavalue and snak.datavalue.type == 'wikibase-entityid' and snak.datavalue.value and snak.datavalue.value[ 'entity-type' ] == 'item' then table.insert( result, snak.datavalue.value.id ); end end function getCategory( propertyId, entriesToLookupCategoryFor ) if mw.title.getCurrentTitle().namespace == 0 then for _, placeId in pairs( entriesToLookupCategoryFor ) do local claims = mw.wikibase.getBestStatements(placeId, propertyId); if claims then for _, claim in pairs( claims ) do if claim.mainsnak and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.type == 'wikibase-entityid' then local catEntityId = claim.mainsnak.datavalue.value.id; local catSitelink = mw.wikibase.getSitelink(catEntityId); if (catSitelink) then return '[[' .. catSitelink .. ']]'; end end end end end end return ''; end local historicNamesProperties = { 'P1813', 'P1448', 'P1705' }; local langCode = mw.language.getContentLanguage():getCode(); local historicNamesPropertySelectors = { P1813 = 'P1813[language:' .. langCode .. '][!P3831,P3831:Q105690470]', P1448 = 'P1448[language:' .. langCode .. '][!P3831,P3831:Q105690470]', P1705 = 'P1705[language:' .. langCode .. '][!P3831,P3831:Q105690470]' }; -- get current of historic name of place function getLabel( context, entityId, boundaries ) if not entityId then return nil; end if (type(entityId) ~= 'string') then error('incorrect type of entityId argument'); end; local label = nil; -- name from properties local results = getParentsInBoundariesSnakImpl( context, entityId, boundaries, historicNamesProperties, historicNamesPropertySelectors); for r, result in pairs( results ) do if result.datavalue and result.datavalue.value and result.datavalue.value.text then label = result.datavalue.value.text; break; end end -- name from label if label == nil then label = mw.wikibase.getLabel( entityId ); end return label; end p.getLabel = getLabel; local function calculateEndDateTimestamp( context, options, statement ) if not context then error( 'context not specified' ) end; if not options then error( 'options not specified' ) end; if not options.entity then error( 'options.entity missing' ) end; if not statement then error( 'statement not specified' ) end; if statement.qualifiers and statement.qualifiers.P582 then for i, qualifier in ipairs( statement.qualifiers.P582 ) do local parsedTime = context.parseTimeFromSnak( qualifier ); if parsedTime then return parsedTime; end end end -- check death day... do we have it at all? for h, propertyId in pairs( { "P570", "P577", "P576" } ) do local dateClaims = context.selectClaims( options, propertyId ); if dateClaims then for i, statement in ipairs( dateClaims ) do local parsedTime = context.parseTimeFromSnak( statement.mainsnak ); if parsedTime then return parsedTime; end end end end -- TODO: check other "end" properties -- no death day return os.time() * 1000; end local function deleteTwinAncestors( countryEntityId, propertyId ) --do not display countries which have twin ancestors local badTwins if ( countryEntityId == 'Q174193' ) then --Great Britain and Ireland badTwins = {'Q145'} --Great Brirani & NI elseif ( countryEntityId == 'Q161885' ) then --Great Britain badTwins = {'Q174193'} --Great Britain and Ireland elseif ( countryEntityId == 'Q43287' ) then --German Impire badTwins = {'Q41304', 'Q7318', 'Q2415901', 'Q183'} --Weimar Republic or Nazi Germany or Allied-occupied Germany or Germany elseif ( countryEntityId == 'Q41304' ) then --Weimar Republic badTwins = {'Q7318', 'Q2415901', 'Q183'} --Nazi Germany or Allied-occupied Germany or Germany elseif ( countryEntityId == 'Q7318' ) then --Nazi Germany badTwins = {'Q2415901', 'Q183'} --Allied-occupied Germany or Germany elseif ( countryEntityId == 'Q2415901' ) then --Allied-occupied Germany badTwins = {'Q183'} --Germany elseif ( countryEntityId == 'Q696908' ) then --Kingdom of Poland badTwins = {'Q207272', 'Q211274', 'Q36'} --Second Polish Republic or Polish People's Republic or Poland elseif ( countryEntityId == 'Q207272' ) then --Second Polish Republic badTwins = {'Q211274', 'Q36'} --Polish People's Republic or Poland elseif ( countryEntityId == 'Q211274' ) then --Polish People's Republic badTwins = {'Q36'} --Poland elseif ( countryEntityId == 'Q203493' ) then --Kingdom of Romania badTwins = {'Q842794', 'Q218'} --Socialist Republic of Romania or Romania elseif ( countryEntityId == 'Q842794' ) then --Socialist Republic of Romania badTwins = {'Q218'} --Romania elseif ( countryEntityId == 'Q838261' ) then --FR of Yugoslavia badTwins = {'Q37024'} --Serbia & Montenegro else return true; end local listforcheck if propertyId == 'P1532' then listforcheck = mw.wikibase.getAllStatements( mw.wikibase.getEntityIdForCurrentPage(), propertyId ); else listforcheck = mw.wikibase.getBestStatements( mw.wikibase.getEntityIdForCurrentPage(), propertyId ); end for _, claim in pairs( listforcheck ) do if ( claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value and claim.mainsnak.datavalue.value.id ) then local actualId = claim.mainsnak.datavalue.value.id; for index, value in ipairs(badTwins) do if ( value == actualId ) then return false; end end end end return true; end function p.formatCountryClaimWithFlag( context, options, statement ) if not context then error('context not specified') end; if not options then error('options not specified') end; if not options.entity then error('options.entity is missing') end; if not statement then error('statement not specified') end; if not statement.mainsnak or not statement.mainsnak.datavalue or not statement.mainsnak.datavalue.value or not statement.mainsnak.datavalue.value.id then local result = context.formatStatementDefault( context, options, statement ); if not result then return ''; end return '<span class="country-name">' .. result .. '</span>'; end local countryEntityId = statement.mainsnak.datavalue.value.id; local endDateTimestamp = calculateEndDateTimestamp( context, options, statement ); local boundaries = getTimeBoundariesFromProperties( context, {'P570', 'P577', 'P571'} ); if deleteTwinAncestors( countryEntityId, string.upper(options.property) ) then local countryOptions = context.cloneOptions( options ); if not countryOptions['text'] or countryOptions['text'] == '' then countryOptions['text'] = getLabel( context, countryEntityId, boundaries ); end local flag = Flags.getFlag( context, countryEntityId, endDateTimestamp ); if flag then return flag .. '&nbsp;<span class="country-name">' .. context.formatStatementDefault( context, countryOptions, statement ) .. '</span>'; end return '<span class="country-name">' .. context.formatStatementDefault( context, countryOptions, statement ) .. '</span>'; else return nil; end end return p; i883f5z5oni11p4xz3xzmxf667v91ag Şablon:Potd/2026-06-21 (crh) 10 60167 243746 2026-05-04T08:49:23Z Хтосьці 13041 [[commons:2026-06#21]] ingliz metnini tercime etip baqtım: «Bags of organic fertiliser adorn newly-planted fields against a backdrop of the Western Catchment in the Nilgiri mountains. Tamil Nadu, India» → «İndistannıñ Tamilnad ştatındaki Nilgiri dağlarında Ğarbiy Havza fonunda keçenlerde saçılğan tarlalarda üzviy kübre çuvalları» 243746 wikitext text/x-wiki [[İndistan]]nıñ -{crh-latn: Tamilnad; crh-cyrl: Тамилнад}- ştatındaki -{crh-latn: Nilgiri; crh-cyrl: Нилгири}- dağlarında Ğarbiy Havza fonunda keçenlerde saçılğan tarlalarda üzviy kübre çuvalları. 9ban2unwd2absmkfldtx4csdxicvfup Şablon:Potd/2026-06-21 10 60168 243747 2026-05-04T08:49:49Z Хтосьці 13041 [[commons:Template:Potd/2026-06#19]] ingliz saifesinden kopiyaladım 243747 wikitext text/x-wiki Fields TR Bazar NH-181 Nilgiris Aug25 A7CR 07388-HDR.jpg 4737u2tguj15sgi2zbv923uevo79nnk Şablon:Potd/2026-06-22 (crh) 10 60169 243748 2026-05-04T08:57:53Z Хтосьці 13041 [[commons:Template:Potd/2026-06#22]] ingliz metnini tercime etip baqtım: «Chrysomma sinense (Yellow-eyed Babbler) in Bhigwan, Maharashtra, India» → «İndistannıñ Maharaştra ştatında Bhigvan şeerinde altın közlü timeliya (Chrysomma sinense)». Chrysomma sinense: ingliz [[en:Yellow-eyed Babbler]] → «altın közlü...», [[uk:Тимелія золотиста]] (ve [[en:Timalia]]) → «timeliya» 243748 wikitext text/x-wiki İndistannıñ Maharaştra ştatında Bhigvan şeerinde altın közlü timeliya (-{''Chrysomma sinense''}-). 48bcs31tudoqcc8319ty3obmofiwfav 243750 243748 2026-05-04T08:59:34Z Хтосьці 13041 [[İndistan]]ğa bağlantını qoştım 243750 wikitext text/x-wiki [[İndistan]]nıñ Maharaştra ştatında Bhigvan şeerinde altın közlü timeliya (-{''Chrysomma sinense''}-). 6hq5jd123wr5thxjgv7pomps08ca887 Şablon:Potd/2026-06-22 10 60170 243749 2026-05-04T08:58:14Z Хтосьці 13041 [[commons:Template:Potd/2026-06#22]] ingliz saifesinden kopiya yaptım 243749 wikitext text/x-wiki Yellow-eyed Babbler in Bhigwan August 2025 by Tisha Mukherjee 09.jpg 8jdo1ulwr0eqbpi5xhf5edsxeq5cwsz