Вікімандри ukwikivoyage https://uk.wikivoyage.org/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0 MediaWiki 1.47.0-wmf.7 first-letter Медіа Спеціальна Обговорення Користувач Обговорення користувача Вікімандри Обговорення Вікімандрів Файл Обговорення файлу MediaWiki Обговорення MediaWiki Шаблон Обговорення шаблону Довідка Обговорення довідки Категорія Обговорення категорії Портал Обговорення порталу TimedText TimedText talk Модуль Обговорення модуля Подія Обговорення події Модуль:Quickbar 828 2792 42739 24845 2026-06-19T12:51:15Z Repakr 7013 переклад 42739 Scribunto text/plain local function starts_with(str, start) return str:sub(1, #start) == start end local function renderRow(heading, value) return '|-\n| class="info" | \'\'\'' .. heading .. '\'\'\'\n| style="padding-right:5px;" | ' .. value .. '\n' end local function renderLinkedClaim(id) local linkTarget = mw.wikibase.sitelink(id) local linkName = mw.wikibase.label(id) if linkTarget == nil then return linkName else return '[[' .. linkTarget .. '|' .. linkName .. ']]' end end local function rSimple(item, property) return item:formatPropertyValues( property ).value end local lang = mw.language.getContentLanguage() local thousands = {'', 'тис.', 'млн.', 'млрд.'} local function sigfigs(num) local digits = math.floor(math.log10(num) / 3) if digits <= 0 then return lang:formatNum(num) end num = math.floor(num / math.pow(10, 3 * digits -1)) / 10 local result = lang:formatNum(num) result = result .. ' ' .. thousands[digits+1] -- if num ~= 1 then -- result = result .. 's' -- end return result end local function rPopulation(item, property, frame) local s = item:getBestStatements( property )[1] local result = sigfigs( tonumber(s.mainsnak.datavalue.value.amount) ) if s.qualifiers ~= nil and s.qualifiers['P585'] ~= nil and #s.qualifiers['P585'] > 0 then result = result .. ' (' .. string.match(s.qualifiers['P585'][1].datavalue.value.time, '0*([1-9][0-9]+)\-', 1) .. ')' end return result end local function rElectricity(item, property) local claims = item:getBestStatements( property ) local voltage = {} for _,s in pairs(claims) do local v = mw.wikibase.renderSnak( s.mainsnak ) if s.qualifiers ~= nil and s.qualifiers['P2144'] ~= nil and #s.qualifiers['P2144'] > 0 then v = v .. ' / ' .. mw.wikibase.renderSnak(s.qualifiers['P2144'][1]) end table.insert(voltage, v) end local result = table.concat(voltage, ' and ') if #item:getBestStatements('P2853') > 0 then result = result .. ' (' .. item:formatPropertyValues( 'P2853' ).value .. ')' end return result end local function claimOrLabel(id, property) local item = mw.wikibase.getEntity( id ) if #item:getBestStatements( property ) > 0 and item:getBestStatements( property )[1].mainsnak.datavalue ~= nil then return mw.wikibase.renderSnak( item:getBestStatements( property )[1].mainsnak ) end return item:getLabel() end local function rCurrency(item, property) local claims = item:getBestStatements(property) local result = {} for _, claim in pairs(claims) do local id = 'Q' .. claim.mainsnak.datavalue.value['numeric-id'] local currency = mw.wikibase.getEntity( id ) local subresult = currency:getLabel() local symbol = claimOrLabel( id, 'P498' ) if symbol ~= currency:getLabel() then subresult = subresult .. ' (' .. symbol .. ')' end -- if #currency:getBestStatements('P2284') > 0 then -- for _, price in pairs(currency:getBestStatements('P2284')) do -- if tonumber(price.mainsnak.datavalue.value.amount) ~= 0 then -- subresult = subresult .. '<br/>1 '..symbol..' = '.. string.format('%.4f', price.mainsnak.datavalue.value.amount ) .. ' ' .. claimOrLabel(string.match(price.mainsnak.datavalue.value.unit , 'Q%d+$'), 'P498') -- end -- end -- end table.insert(result, subresult) end return table.concat(result, '<br/>') end local function rEmergency(item, property) local claims = item:getBestStatements( property ) local result = {} for _, claim in pairs(claims) do local id = 'Q' .. claim.mainsnak.datavalue.value['numeric-id'] local res = claimOrLabel(id, 'P1329') if claim.qualifiers ~= nil and claim.qualifiers['P366'] ~= nil and #claim.qualifiers['P366'] > 0 then local usage = {} for _, qual in pairs(claim.qualifiers['P366']) do table.insert( usage, mw.wikibase.renderSnak(qual) ) end res = res .. ' (' .. table.concat(usage, ', ') .. ')' end table.insert(result, res) end return table.concat(result, ', ') end local function rTimezones(item, property) local claims = item:getBestStatements( property ) if #claims > 3 then local minEntity = nil local maxEntity = nil local minOffset = 20 local maxOffset = -20 local unknownTZs = {} for _, claim in pairs(claims) do local e = mw.wikibase.getEntity('Q' .. claim.mainsnak.datavalue.value['numeric-id'] ) if #e:getBestStatements( 'P2907' ) == 1 then local val = tonumber( e:getBestStatements( 'P2907' )[1].mainsnak.datavalue.value.amount ) if val < minOffset then minOffset = val minEntity = e end if val > maxOffset then maxOffset = val maxEntity = e end else table.insert(unknownTZs, e:getLabel()) end end if minEntity ~= nil and maxEntity ~= nil and minOffset ~= maxOffset then local r = minEntity:getLabel() .. ' to ' .. maxEntity:getLabel() if #unknownTZs > 0 then r = r .. ' and ' .. table.concat(unknownTZs, ', ') end return r end end return rSimple(item, property) end local function rSingleLinked(item, property) if item:getBestStatements( property )[1].mainsnak.datavalue ~= nil then return renderLinkedClaim('Q'..item:getBestStatements( property )[1].mainsnak.datavalue.value['numeric-id']) else return nil end end local function rLinked(item, property) local claims = item.claims[property] local result = {} for _, claim in pairs(claims) do local id = 'Q' .. claim.mainsnak.datavalue.value['numeric-id'] table.insert(result, renderLinkedClaim(id)) end return table.concat(result, ', ') end local conf = { {'capital', 'Столиця', 36, rSingleLinked}, {'currency', 'Валюта', 38, rCurrency}, {'population', 'Населення', 1082, rPopulation}, {'electricity', 'Електрика', 2884, rElectricity}, {'callingcode', 'Телефонний код', 474, rSimple}, {'timezone', '[[Список часових поясів|Часовий пояс]]', 421, rTimezones}, {'emergencies', 'Екстренна служба', 2852, rEmergency}, {'driving side', 'Напрям дорожнього руху', 1622, rSimple} } local p = {} function p.quickbar( frame ) local parentArgs = frame:getParent().args local elements = {} local item = mw.wikibase.getEntity( ) local useWikidata = (item ~= nil and item.claims ~= nil) local missingInfo = false local locationMap = parentArgs['location'] if (locationMap and starts_with(locationMap, '#Q')) then item = mw.wikibase.getEntity(locationMap:gsub("#", "")) locationMap = nil end if (locationMap ~= nil and locationMap ~= '') or (useWikidata and item.claims['P242'] ~= nil and item.claims['P242'][1] ~= nil) then if useWikidata and (locationMap == nil or locationMap == '') then locationMap = mw.wikibase.renderSnak( item:getBestStatements('P242')[1].mainsnak ) end table.insert(elements, '| colspan="2" style="text-align:center; padding:0" | [[File:' .. locationMap .. '|250px]]\n' ) else missingInfo = true end item = mw.wikibase.getEntity( ) for _, params in pairs( conf ) do if params[3] ~= 0 then local val = parentArgs[params[1]] if (val and starts_with(val, '#Q')) then item = mw.wikibase.getEntity(val:gsub("#", "")) val = nil end if val == '' or val == nil then if useWikidata and #item:getBestStatements('P' .. params[3]) > 0 then val = params[4]( item, 'P' .. params[3], frame) if val ~= nil then table.insert( elements, renderRow(params[2], val) ) else missingInfo = true end else missingInfo = true end else table.insert(elements, renderRow(params[2], val) ) end end item = mw.wikibase.getEntity( ) end local editRow = '' if item ~= nil then editRow = '|-\n| colspan="2" class="info footer" |[[:d:'.. item.id .. '|редагувати у Вікіданих]]\n' end if #elements > 0 then if missingInfo == true and mw.title.getCurrentTitle().namespace == 0 then table.insert(elements, '[[Category:Quickbar with missing information]]\n') end return frame:extensionTag {name = 'templatestyles', args = {src = 'Quickbar/styles.css'}} .. '<div id="quickbar" class="wv-quickbar floatright">\n{| cellpadding="0" cellspacing="0"\n|-\n' .. table.concat(elements) .. '\n'.. editRow.. '|}</div>' else if mw.title.getCurrentTitle().namespace == 0 then return '[[Category:Quickbar with missing information]]\n' end return '' end end return p kuaeqw20c6kghcm1uuz7lbnvh7p0l0u Шаблон:Quickbar/styles.css 10 2793 42738 24802 2026-06-19T12:49:40Z Repakr 7013 Підтримка темного режиму 42738 sanitized-css text/css @media all and (max-width:640px) { .wv-quickbar { clear:none !important; float:none !important; margin:0 !important; width:100% !important; } } .wv-quickbar table { font-size:85%; background-color:var(--background-color-neutral-subtle, #f8f9fa); color: inherit; border:1px solid var(--border-color-subtle, #c8ccd1); width:250px; } .wv-quickbar .info { vertical-align:top; padding:0 5px; white-space:nowrap; } .wv-quickbar .footer { margin-top:5px; border-top:1px solid var(--border-color-subtle, #c8ccd1); text-align:right; } 9o0ba2qwflhom4yfmb6xyqpm2ishez0 Обговорення користувача:Assyrian Human 3 3895 42740 41731 2026-06-19T19:42:44Z Leaderbot 7156 /* Notice of expiration of your sysop right */ нова тема 42740 wikitext text/x-wiki {{welcome}}--[[Користувач:Сергій Липко|Сергій Липко]] ([[Обговорення користувача:Сергій Липко|обговорення]]) 00:51, 1 червня 2024 (EEST) == Банер до статті «Кримськотатарський розмовник» == Добрий день! Дякую Вам за додання банера до статті «Кримськотатарський розмовник». Але було б доцільніше, щоб його текст був кримськотатарською латинкою, як і сам розмовник. [[Користувач:MarianaSenkiv|MarianaSenkiv]] ([[Обговорення користувача:MarianaSenkiv|обговорення]]) 21:57, 1 вересня 2024 (EEST) == Важливо: проголосуйте на виборах Ради повірених Фонду Вікімедіа! == Доброго вечора! До 23:59 17 вересня 2024 (UTC) тривають вибори '''чотирьох''' представників спільноти Вікімедіа до [[:m:Wikimedia Foundation Board of Trustees/uk|Ради повірених Фонду Вікімедіа]]. Усього є 12 кандидатів. Саме через ці вибори спільноти Вікіпедії та сестринських проєктів можуть впливати на те, як приймає рішення Фонд Вікімедіа. Можливо, протягом минулого року ви бачили повідомлення про [[:m:Movement Charter/uk|Хартію руху]] або [[:m:Universal Code of Conduct/uk|Універсальний кодекс поведінки]] — це приклади документів, щодо яких голосує Рада повірених Фонду. Детальне пояснення, чому ці вибори потрібні, є тут: [[:w:Вікіпедія:Чому вибори до Фонду Вікімедіа важливі]]. Голосування рейтингове, вам слід розмістити кандидатів за пріоритетом від 1 (найвищий, найбільше хотілося б бачити у Раді) до 12 (найнижчий, найменше хотілося б бачити у Раді). Для зручності в українській Вікіпедії є '''[[:w:Вікіпедія:Вибори Вікімедіа-2024|коротка таблиця з оглядом українською програм кандидатів, їхнього досвіду та активності у вікіпроєктах та у русі Вікімедіа]]'''. Ви можете також ознайомитися з детальнішою інформацією про кандидатів: * Повні біографії та програми кандидатів (переважно перекладені українською): [[:m:Wikimedia Foundation elections/2024/uk]]. * Обговорення кандидатів у Кнайпі української Вікіпедії: [[:w:Вікіпедія:Кнайпа (різне)#Почалися (важливі) вибори до Ради повірених Фонду Вікімедіа]]. * [https://www.youtube.com/watch?v=QfbjhJiy41E&list=PLhV3K_DS5YfJdC5P86rsDsUtxEow0gDnR&t=6582s Відео презентацій кандидатів на Вікіманії] (англійською) <big>'''[[:m:Special:SecurePoll/vote/400|Натисніть тут, щоб проголосувати]]'''.</big> На попередніх виборах українська спільнота мала явку серед найвищих у світі ([[:m:Wikimedia Foundation elections 2015/Stats|25%]] в 2015, [[:m:Wikimedia Foundation elections/2017/Stats|27%]] у 2017, [[:m:Wikimedia Foundation elections/2021/Stats|22%]] у 2021), і лише російське повномасштабне вторгнення збило явку до [[:m:Wikimedia Foundation elections/2022/Stats|10%]] в 2022. Станом на вчора (коли минула половина терміну голосування) явка української спільноти була лише близько 3%. Дякую за активність та сподіваюся на вашу участь у голосуванні! — [[Користувач:NickK|NickK]] ([[Обговорення користувача:NickK|обговорення]]) 02:16, 13 вересня 2024 (EEST) == Share Your Feedback – Wiki Loves Ramadan 2025 == Dear Assyrian Human Thank you for being a part of '''[[m:Special:MyLanguage/Wiki Loves Ramadan 2025|Wiki Loves Ramadan 2025]]''' — whether as a contributor, jury member, or local organizer. Your efforts helped make this campaign a meaningful celebration of culture, heritage, and community on Wikimedia platforms. To help us improve and grow this initiative in future years, we kindly ask you to complete a short '''feedback form'''. Your responses are valuable in shaping how we support contributors like you. * '''Feedback Form:''' [https://docs.google.com/forms/d/e/1FAIpQLSdXEtaqszxcwmTJa8pGT60E7GDtpbssNadR9vZFVFbLicGFBg/viewform Submit your feedback here] * '''Deadline to submit:''' 31 May 2025 It will only take a few minutes to complete, and your input will directly impact how we plan, communicate, and collaborate in the future. Thank you again for your support. We look forward to having you with us in future campaigns! Warm regards,<br/> ''Wiki Loves Ramadan International Team'' 11:51, 19 травня 2025 (EEST) <!-- Повідомлення надіслано користувачем ZI Jony@metawiki з використанням списку розсилки на сторінці у https://meta.wikimedia.org/w/index.php?title=User:ZI_Jony/MassMessage/WLR/List/Participants&oldid=28751574 --> == Congratulations! You’re Among the Top 25 Contributors of Wiki Loves Ramadan 2025 🎉🌙 == Dear Assyrian Human, We’re excited to inform you that you have been selected as one of the '''Top 25 Contributors''' of the [[m:Wiki Loves Ramadan 2025|Wiki Loves Ramadan 2025]] international campaign! Your remarkable dedication and contributions truly stood out among hundreds of participants across the globe. To help us document your experience and improve future editions, we kindly request you to take a moment to fill out our short feedback form: 📋 Feedback Form: https://docs.google.com/forms/d/e/1FAIpQLSdXEtaqszxcwmTJa8pGT60E7GDtpbssNadR9vZFVFbLicGFBg/viewform After completing the feedback, please request your Top 25 Digital Certificate of Appreciation using this form: 📄 Top 25 Certificate Form: https://docs.google.com/forms/d/e/1FAIpQLSepqMajvCTl3XA1xbFbTsPDJO_yxCro4mdU9UzA5T1GfLWl2w/viewform Thank you once again for your contributions to this campaign. We are proud to have you as part of the Wiki Loves Ramadan community. Warm regards,<br/> Wiki Loves Ramadan International Team <!-- Повідомлення надіслано користувачем ZI Jony@metawiki з використанням списку розсилки на сторінці у https://meta.wikimedia.org/w/index.php?title=User:ZI_Jony/MassMessage/WLR/List/2025_TOP_25&oldid=28893400 --> == щодо вандалів == то одразу пінгуйте, щоб запобігти надалі їх діям. Я принаймні одразу побачу пінг як це відбулось вчора. [[Користувач:Jphwra|Jphwra]] ([[Обговорення користувача:Jphwra|обговорення]]) 08:28, 15 листопада 2025 (EET) == Порада == раджу вам податись на адміни Вікімандрів, так буде набагато краще і для тих хто більше задіяний у вікіпедії і для вас як активного редактора тут. Там нічого складного але функціоналу набагато більше. Тож подавайтесь в адміни. [[Користувач:Jphwra|Jphwra]] ([[Обговорення користувача:Jphwra|обговорення]]) 21:18, 16 березня 2026 (EET) <br/>подайтн заявку та й годі. Бо це безкінечено буде а я і без того вже виснажений. --[[Користувач:Jphwra|Jphwra]] ([[Обговорення користувача:Jphwra|обговорення]]) 21:57, 17 березня 2026 (EET) <br/>на сьомий день заявки подайте заявку стюардам, це розділом вище ніж я подавав на зняття (можна глянути в глобальному моєму внескку). Удачі. --[[Користувач:Jphwra|Jphwra]] ([[Обговорення користувача:Jphwra|обговорення]]) 12:46, 21 березня 2026 (EET) == Notice of expiration of your sysop right == <div dir="ltr">Hi, as part of [[:m:Special:MyLanguage/Global reminder bot|Global reminder bot]], this is an automated reminder to let you know that your permission "sysop" (Адміністратори) will expire on 2026-06-25 23:38:23. Please renew this right if you would like to continue using it. <i>In other languages: [[:m:Special:MyLanguage/Global reminder bot/Messages/default|click here]]</i> [[Користувач:Leaderbot|Leaderbot]] ([[Обговорення користувача:Leaderbot|обговорення]]) 22:42, 19 червня 2026 (EEST)</div> 0othl4398xgnyz85uj2bggdcznh1f20