Wikipedia csbwiki https://csb.wikipedia.org/wiki/Prz%C3%A9dn%C3%B4_starna MediaWiki 1.47.0-wmf.9 first-letter Media Specjalnô Diskùsëjô Brëkòwnik Diskùsëjô brëkòwnika Wiki Diskùsëjô Wiki Òbrôzk Diskùsëjô òbrôzków MediaWiki Diskùsëjô MediaWiki Szablóna Diskùsëjô Szablónë Pòmòc Diskùsëjô Pòmòcë Kategòrëjô Diskùsëjô Kategòrëji TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Wikipediô 0 1075 204408 202582 2026-07-04T04:17:36Z ~2026-38249-67 19796 204408 wikitext text/x-wiki [[Òbrôzk:Wikipedia-logo-v2.svg|mały|Logò Wikipediji]] Ùdba '''Wikipediji''' (http://www.wikipedia.org) òsta zrëszónô w [[stëcznik|stëcznikù]] [[2001]] rokù. Jé zgrôwã je ùsôdzenié [[wòlnô dokùmentacjô|wòlny]], [[Internet|internetowi]] [[encyklopediô|encyklopedii]]. [[Przédnô starna|Kaszëbskô Wikipedijô]] je partã ny ùdbë w [[kaszëbsczi jãzëk|kaszëbsczim jãzëkù]]. ==wikipedia== ===1 000 000+=== Deutsch • English • Español • Français • Italiano • Nederlands • Polski • Русский • Svenska ===100 000+=== العربية • Български • Català • Česky • Dansk • Eesti • Esperanto • Euskara • فارسی • Galego • 한국어 • Հայերեն • हिन्दी • Hrvatski • Bahasa Indonesia • עברית • Latina • Lietuvių • Magyar • Bahasa Melayu • Baso Minangkabau • 日本語 • Norsk (bokmål • nynorsk) • Oʻzbekcha • Português • Қазақша / Qazaqşa / قازاقشا • Română • Simple English • Sinugboanon • Slovenčina • Slovenščina • Српски / Srpski • Suomi • Türkçe • Українська • Tiếng Việt • Volapük • Winaray • 中文 ===10 000+=== Afrikaans • Alemannisch • አማርኛ • Aragonés • Asturianu • Kreyòl Ayisyen • Azərbaycanca • বাংলা • Bân-lâm-gú • Basa Banyumasan • Башҡортса • Беларуская (Акадэмічная • Тарашкевiца) • বিষ্ণুপ্রিয়া মণিপুরী • Bosanski • Brezhoneg • Чӑвашла • Cymraeg • Ελληνικά • Fiji Hindi • Frysk • Gaeilge • Gàidhlig • ગુજરાતી • Ido • Interlingua • Íslenska • Basa Jawa • ಕನ್ನಡ • ქართული • Kurdî / كوردی • Кыргызча • Latviešu • Lëtzebuergesch • Lumbaart • Македонски • Malagasy • മലയാളം • मराठी • مصرى • مازِرونی • Монгол • မြန်မာဘာသာ • नेपाल भाषा • नेपाली • Nnapulitano • Нохчийн • Occitan • Piemontèis • Plattdüütsch • Runa Simi • شاہ مکھی پنجابی • Scots • Shqip • Sicilianu • Srpskohrvatski / Српскохрватски • کوردی • Basa Sunda • Kiswahili • Tagalog • தமிழ் • Татарча / Tatarça • తెలుగు • Тоҷикӣ • ภาษาไทย • ᨅᨔ ᨕᨙᨁᨗ / Basa Ugi • اردو • Vèneto • Walon • ייִדיש • Yorùbá • 粵語 • Žemaitėška ===1 000+=== Bahsa Acèh • Адыгэбзэ • Arpitan • ܐܬܘܪܝܐ • Avañe’ẽ • Авар • Aymar • Ænglisc • Bahasa Banjar • भोजपुरी • Bikol Central • Boarisch • བོད་ཡིག • Chavacano de Zamboanga • Corsu • Deitsch • ދިވެހި • Diné Bizaad • Dolnoserbski • Emigliàn–Rumagnòl • Эрзянь • Estremeñu • Føroyskt • Furlan • Gaelg • Gagauz • گیلکی • 贛語 • Hak-kâ-fa / 客家話 • Хальмг • ʻŌlelo Hawaiʻi • Hornjoserbsce • Ilokano • Interlingue • Иронау • Kalaallisut • Kapampangan • Kaszëbsczi • Kernewek / Karnuack • ភាសាខ្មែរ • Kinyarwanda • Коми • Кырык Мары • Dzhudezmo / לאדינו • Лакку • ພາສາລາວ • Лезги • Líguru • Limburgs • Lingála • lojban • Malti • 文言 • Māori • მარგალური • Mirandés • Мокшень • Nāhuatl • Nedersaksisch • Nordfriisk • Nouormand / Normaund • Novial • Олык Марий • ଓଡି଼ଆ • অসমীযা় • पाऴि • Pangasinán • ਪੰਜਾਬੀ • Papiamentu • پښتو • Перем Коми • Pfälzisch • Picard • Къарачай–Малкъар • Qırımtatarca • Ripoarisch • Rumantsch • Русиньскый Язык • संस्कृतम् • Sámegiella • Sardu • Саха Тыла • Seeltersk • ChiShona • සිංහල • Ślůnski • Soomaaliga • Sranantongo • Taqbaylit • Tarandíne • Tok Pisin • faka Tonga • تركمن / Туркмен • Удмурт • Uyghur / ئۇيغۇرچه • Võro • Vepsän • West-Vlams • Wolof • 吳語 • Zazaki • Zeêuws ===100+=== Akan • Аҧсуа • Armãneashce • Bamanankan • Bislama • Буряад • Chamoru • Chi-Chewa • Cuengh • Eʋegbe • Fulfulde • Gĩkũyũ • 𐌲𐌿𐍄𐌹𐍃𐌺 • Hausa / هَوُسَا • Igbo • ᐃᓄᒃᑎᑐᑦ / Inuktitut • Iñupiak • كشميري • Kongo • Latgaļu • Luganda • Reo Mā`ohi • Mìng-dĕ̤ng-ngṳ̄ • Молдовеняскэ • Na Vosa Vakaviti • dorerin Naoero • Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ • Norfuk / Pitkern • Afaan Oromoo • Ποντιακά • Qaraqalpaqsha • རྫོང་ཁ • Romani • Kirundi • Gagana Sāmoa • Sängö • Sesotho • Sesotho sa Leboa • Setswana • سنڌي • Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ • SiSwati • Tetun • ትግርኛ • ᏣᎳᎩ • chiTumbuka • Xitsonga • Tsėhesenėstsestotse • Tshivenḓa • Twi • Тыва дыл • isiXhosa • isiZulu == Sosterné ùdbë == * [http://www.wiktionary.org '''Wikisłowôrz'''] - ''Wielejãzëkòwi słowôrz'' ''([http://pl.wiktionary.org/wiki/Kategoria:Język_kaszubski Kaszëbsczi jãzëk w pl.wiktionary.org])'' * '''[http://www.wikiquote.org Wikicëtaty]''' - ''Zbiérk cëtatów'' * '''[http://www.wikinews.org Wikinews]''' - ''Wiki-nowinë'' * [[commons:Main Page|'''Wikimedia Commons''']] - ''Repòzytorium mediów'' * [[wikisource:pl:Strona główna|'''Wikisources''']] - ''Zdrojowé dokùmentë'' * '''[http://www.wikibooks.org Wikibooks]''' - ''Darmòwé ùczbòwniczi'' * [[wikispecies:Main Page|'''Wikispecies''']] - ''Zortownik gatënków'' * [[m:Main Page|'''Meta-Wiki''']] - ''Kòòrdinacëjô projektów'' == Òbaczë téż == * [[Kiwix]] == Bùtnowé lënczi == {{Commons}} * [http://www.wikipedia.org/ Wikipedia w anielsczim jãzëkù] * [https://web.archive.org/web/20031203221040/http://en2.wikipedia.org/wiki/Wikipedia:Multilingual_coordination Zestôwk Wikipediji w jińszëch mòwach] * [http://meta.wikipedia.org/ Artikle ë diskùsëje ò wszelejaczich sprawach sparłãczonëch z ùdbama Wikipediji] [[Kategòrëjô:Encyklopedie]] [[Kategòrëjô:Wikimedia]] 89pisuuvmxrbkd95584laqfceup2uqk Chińskô Lëdowô Repùblika 0 4632 204401 204076 2026-07-03T17:15:25Z DawnyTest 14843 Przëpis 204401 wikitext text/x-wiki {{Infobox-państwò|gwôsné miono=中华人民共和国|miono=Chińskô Lëdowô Repùblika|fana=Flag of the People's Republic of China.svg|herb=中華人民共和國國徽.svg|miono-genitiw=Chin|na karce=China in its region (claimed hatched).svg|jãzëk=chińsczi|stolëca=Pekin|fòrma państwa=repùblika|wiéchrzëzna=9.596.960|procent-wòdë=2,82|rok=2026|swiãto=1 rujana|czasowô cona=+8|kòd dëtka=CNY, ¥|dëtk=yuan|lëdztwò=1,412,914,089|himn=义勇军进行曲<br> (Marsz chãtnych) <center>[[File:March of the Volunteers instrumental.ogg]]</center>|kòd=CN|Internet=.cn|telefón=+86|Prezydeńt=Xi Jinping|Premiéra=Li Qiang|data ùsôdzenia=1 rujana 1949|aùtowi kòd=CHN|kònstitucjô=Kònstitucjô Chińsczi Lëdowi Repùbliczi z 4 gòdnika 1982}} '''Chińskô Lëdowô Repùblika, ChLR''' (chiń. ùpr. 中华人民共和国; chiń. trad. 中華人民共和國; pinyin ''Zhōnghuá Rénmín Gònghéguó''), '''Chinë''' (chiń. ùpr. 中国; chiń. trad. 中國; pinyin ''Zhōngguó'') – państwò w pòrénkòwi [[Azëjô|Azje]]. Drëdżé pòd wzglãdã lëdztwa<ref>[https://www.worldometers.info/world-population/ Current World Population (2026)], worldometers.info</ref> (pò [[Indie|Indiach]]) państwò na swiece, z pòpùlacją pònad 1,4 miliarda lëdzy; dôwô to 17,02% pòpùlacje swiata<ref>[https://www.worldometers.info/world-population/china-population/ China Population (2026)], worldometers.info</ref>. Stolecznym gardã je [[Pekin]]. Pòdług Kònstitucje Chińsczi Lëdowi Repùbliczi, je to socjalisticznô repùblika<ref name=":4">[https://www.gov.cn/guoqing/2018-03/22/content_5276318.htm 中华人民共和国宪法 (Kònstitucjô Chińsczi Lëdowi Repùbliczi)], gov.cn</ref>. == Historiô == [[Òbrôzk:The Great Wall of China at Jinshanling.jpg|lewo|mały|189x189px|Chińskô Wiôlgô Scana]] Chinë to jedna z nôstarszich cywilizacji na swiece. Naczãło sã òk. III tësąclata p.n.e., jak henë bëło zacht państwów ë dinastiów. W III stolace przed Christusã césôrz [[Qin Shi Huang]] stwòrzëł jedno państwò chińsczé ë zaczął bùdowac [[Chińskô Wiôlgô Scanã|wiôlgô scanã]]<ref>[https://www.national-geographic.pl/historia/qin-shi-huang-kim-byl-i-z-czego-zaslynal-pierwszy-cesarz-chin/ Qin Shi Huang – kim był pierwszy cesarz Chin?] National Geographic</ref>. W V stolace pòwstaje Kònfucjónizm, chińsczi religijno-filozoficzny systema, chtërnégò zôczątkowôł Kònfucjusz a chtërën skłôdô sã z piãcù nôpierszëch bëlnot: bëlnotë (仁, ''Ren''), prawòscë (義, ''Yi''), przëzwoitòscë abò zwëkù (禮, ''Li''), mądroscë (智, ''Zhi'') ë wiérnoscë (信, ''Xin'')<ref>[https://www.ebsco.com/research-starters/history/confucianism-ancient-world Confucianism in the Ancient World] EBSCO</ref>. Pòtemù Chinë przëchôdzëlë wszelejaczé dinastie, midzë jinyma: Hón (206 p.n.e. – 220 n.e.<ref>[https://www.metmuseum.org/essays/han-dynasty-206-b-c-220-a-d Han Dynasty (206 B.C.–220 A.D.)] Met Museum</ref>), Tóng (618–907<ref>[https://asia-archive.si.edu/learn/for-educators/teaching-china-with-the-smithsonian/explore-by-dynasty/tang-dynasty/ Tang dynasty, 618–907] National Museum of Asian Art</ref>), Song (960–1279<ref>[https://asia-archive.si.edu/learn/for-educators/teaching-china-with-the-smithsonian/explore-by-dynasty/song-dynasty/#:~:text=The%20Song%20dynasty%20(960%E2%80%931279)%20was%20a%20time,*%20**Ceramics%20made%20in%20the%20Song%20dynasty** Song dynasty, 960–1279] National Museum of Asian Art</ref>), [[mòngolskô]] dinastiô Yuón (1279–1368)<ref>[http://www.chinaknowledge.de/History/Yuan/yuan.html Yuan Dynasty 元 (1279-1368)] ChinaKnowledge.de</ref>, Ming (1368–1644)<ref>[https://asia-archive.si.edu/learn/for-educators/teaching-china-with-the-smithsonian/explore-by-dynasty/ming-dynasty/ Ming dynasty, 1368–1644] National Museum of Asian Art</ref> ë Qing (1644–1912), w jich czasach bëł rozwij, wëmëslënczi, np. drëk (VII-VIII stolôt<ref>Chia L. [https://oxfordre.com/asianhistory/display/10.1093/acrefore/9780190277727.001.0001/acrefore-9780190277727-e-205?d=%2F10.1093%2Facrefore%2F9780190277727.001.0001%2Facrefore-9780190277727-e-205&p=emailAEYCIh1juezh.#:~:text=The%20earliest%20known%20texts%20written,to%20early%208th%20century%20ce. Print Culture and the Circulation of Knowledge in Imperial China, 8th–17th Centuriesce.] [2020-03-31] Oxford Research Encyclopedias - Asian History [2025-09-07]</ref>), pich (IX stolôt<ref>Paradowski R.J. [https://www.ebsco.com/research-starters/history/invention-gunpowder-and-guns Invention of Gunpowder and Guns] EBSCO Knowledge Advantage [2025-09-07]</ref>) czë kómpas (IV stolôt p.n.e.<ref>[https://nationalmaglab.org/magnet-academy/history-of-electricity-magnetism/museum/early-chinese-compass-400-bc/ Early Chinese Compass – 400 BC] National Maglab</ref>) a téż rozszérzenié grańc państwa. W XIX wiekù Chinë bëłë mgławe, zmùdzëłë dichtich teritoriów ë miôłë dôwac prawa cëzym państwom. W 1911 z przëczënë rewolucji òstała òbôlonô slédnô dinastiô, dinastiô Qing ë pòwstałô Chińskô Repùblika<ref>Wood M. Chiny. Portret Cywilizacji. Wydawnictwo W.A.B. 2022, s. 560-562 ISBN 978-83-831-8197-4</ref>. 7 lëpińca 1937 [[Japòńskô]] zaatakòwałô Chinë czim pòczãłô [[II swiatowô wòjna|II swiatowô wòjnã]] w Azji (wëpôdk na mòsce Marco Polo)<ref>[https://www.thoughtco.com/world-war-ii-in-asia-195787 World War II in Asia] ThoughtCo</ref>. Z przëczënë domôcy wòjnë naczãtô bez [[Mao Zedong|Mao Zedonga]], rząd Chińsczi Repùbliki wiornął na òstrów [[Tajwan (òstrów)|Tajwan]] gdze do dzys ma [[Tajwan|swòje państwò]]<ref>[https://history.state.gov/milestones/1945-1952/chinese-rev The Chinese Revolution of 1949] Office of the Historian</ref>, a 1 pazdzérznika 1949 pòwstałô Chińskô Lëdowô Repùblika<ref>[https://www.ebsco.com/research-starters/politics-and-government/mao-zedong-proclaims-communist-peoples-republic-china Mao Zedong Proclaims a Communist People's Republic in China] EBSCO</ref>. == Wëszëzna == Chińskô Lëdowô Repùblika je mònopartijny państwã, jedurną partią je Kòmùnisticznô Partiô Chin<ref name=":0">[https://www.bbc.co.uk/bitesize/guides/z9yfrdm/revision/2 What type of government does China have?] BBC [2025-09-06]</ref>. Parlameńt, Nôrodny Lëdowi Kòngres mô 2977 nôleżników<ref>[https://english.www.gov.cn/news/topnews/202302/25/content_WS63f9670ac6d0a757729e736b.html Deputies to 14th NPC broadly representative] [2023-02-25] The State Council of People's Republic of China [2025-09-06]</ref>. Przédnikã kraju je prowôdnik, dôwny wëbiéróny na 5 lat ë mògł bëc wëbróny znowa le òd 2018 mòże pôłnic ùrząd dosmiertnie<ref name=":0" />. Wedle kònstitucji ChLR je socjalisticznô repùblikã<ref name=":4" />. * prowôdnik: Xi Jinping * wiceprowôdnik: Wang Qishan<ref>[https://www.globaltimes.cn/page/202512/1350024.shtml Chinese vice president meets German FM] Global Times</ref><ref>[https://english.www.gov.cn/news/202501/21/content_WS678f017dc6d0868f4e8ef05e.html Chinese VP attends Trump's inauguration ceremony] State Council</ref> * premiéra: Li Qiang<ref name=":1">[https://english.www.gov.cn/institutions Institutions] State Council</ref> * wicepremierzë: Ding Xuexiang, He Lifeng, Zhang Guoqing, Liu Guozhong<ref name=":1" /> <gallery> File:Xi Jinping in Beijing on May 13, 2025 (cropped).jpg|Xi Jinping, prowôdnik ChLR òd 15 lëstopadnika 2012 File:Li Qiang (2024) (cropped).jpg|Li Qiang, premiér ChLR òd 11 strëmiannika 2023 </gallery> == Demografiô == Lëdztwò w 2024 bëło 1,416,043,270. Chinë sã drëdżim nôbarżi zalëdnionym państwã swiata<ref>[https://worldpopulationreview.com/countries Total Population by Country 2025] World Population Review</ref>. Strzédnô długòsc żëcô w 2021 dlô chłopów bëłô 75, dlô białków 80.5<ref>[https://data.who.int/countries/156 Health data overview for the People’s Republic of China] World Health Organization</ref>. Nôwikszã grëpą w 2021 bëlë Chińczicë Hón (91.1%)<ref name=":2">[https://web.archive.org/web/20211220073104/https://www.cia.gov/the-world-factbook/countries/china/#people-and-society China] The World Factbook</ref>. Nôwikszã religiją bëłë chińsczé lëdowë religije (21.9%), na drëdzim môlëznë bùddizm (18.2%), zaòstałë [[chrzescëjanizna]] (5.1%), [[islam]] (1.8%), [[hinduizm]] (< 0.1%), [[judajizm]] (< 0.1%), jiné, w tim [[Taoizm|taoiscë]] - 0.7%, swiécczi 52.1%<ref name=":2" />. Panëje państwòwi bezbòżnictwò<ref name=":2" />. == Geografiô == === Wiéchrzëzna === * całownô: 9,596,960 km² * wiéchrzëzna lądu: 9,326,410 km² * wiéchrzëzna wòdów: 270,550 km² * môl na swiece wedle wiéchrzëznë: 5. === Długòsc grańc === {| class="wikitable" |+Długòsc<ref>[https://encyklopedia.pwn.pl/haslo/Chiny;4169020.html Chiny] Encyklopedia PWN</ref> !Sąsôd !Długòsc (km) |- |[[Ruskô]] |3645 |- |[[Mòngolskô]] |4677 |- |[[Kòrejańskô Lëdowò-Demokratnô Repùblika|Nordowô Koreja]] |1416 |- |[[Wietnam]] |1281 |- |[[Laòs]] |423 |- |[[Myanmar|Mjanma]] |2185 |- |[[Indie]] |3380 |- |[[Bhutan]] |470 |- |[[Nepal]] |1236 |- |[[Pakistan]] |523 |- |[[Afganistón]] |76 |- |[[Tadżikistan]] |414 |- |[[Kirgistan]] |858 |- |[[Kazachstan]] |1533 |} === Sztrądowiô liniô === 18,000 km<ref name=":3">[https://in.china-embassy.gov.cn/eng/zggk/201010/t20101023_2234758.htm Geography] Embassy of the People's Republic of China in India</ref> === Klimat === Klimat wszelejaczi: ùmiarkòwóny, tropikôlny, górsczi ë pustinny<ref>[https://bluegreenatlas.com/climate/china_climate.html The climate of China] Blue Green Atlas [2026-02-14]</ref> === Ùsztôłcenié terenu === W wikszoscë górzësti, wësoczé plaskòwëżë, piôszczëzna na zôpodze, deltë, ë górë na pòrénkù. === Wësokòsc terenu === [[Òbrôzk:Mount Everest as seen from Drukair2 PLW edit.jpg|mały|[[Mount Everest]]]] * strzédnô wësokòsc: 1,840 m. n.r.m. * nôniższô wësokòsc: -154 m. n.r.m. (Turpan Pendi) * nôwëższi czëp: 8,849 m. n.r.m. (Mount Everest) === Gruńtë wedle ùżiwaniô === * rolné gruńtë 55.3% (w tim 11.6% òrnëch gruńtów) * lasë 23.8% (wôrtoscë szacowóné na 2023) === Òstrówë === Na teritorialnych wòdach je 5400 òstrowów. Nôwikszã z nich je Tajwan (chtërnã Chinë uznélą za swojã dzél) o wiéchrzëznie 36 000 km², pòtemù je òstrów Hajnan, chtëren mô 34 000 km² wiéchrzëzni<ref name=":3" />. === Mòrza === Kòntinentalny Chinë sã òtoczone òd wschodu i pôłnia mòrzami Bohai, Żôłtim Mòrzem, Wschòdnochińsczim i Pôłniowochińsczim o łączny wiéchrzëzni 4,73 miliónów km². Mòrze Bohai je morzem kòntinentalnym a zaòstałe sã marginalnëmi mòrzami [[Spòkójny Òcean|Spòkójnégò Òceanu]]<ref name=":3" />. == Przëpisë == {{Przëpisë}} == Bibliografiô == * [https://web.archive.org/web/20260203002620/https://www.cia.gov/the-world-factbook/countries/china/ Chinë w „The World Factbook”] == Bùtnowé lënczi == {{Commons}} {{Azëjô}} [[Kategòrëjô:Azjatëcczé państwa]] [[Kategòrëjô:Chinë]] coz1fp8ssm75mujkcfd25y903b0gawt Jindonezjô 0 4638 204398 198816 2026-07-03T16:38:52Z DawnyTest 14843 Dofùlowanié 204398 wikitext text/x-wiki {{Infobox-państwò|gwôsné miono=Republik Indonesia|miono=Repùblika Jindonezji|fòrma państwa=repùblika|himn=Indonesia Raya<br>Wiôlgô Jindonezjô <center>[[Òbrôzk:Indonesia Raya instrumental.ogg]]</center>|lëdztwò=283,487,931|rok=2024|dëtk=jindonezëjskô rupia|kòd dëtka=IDR|kòd=ID|telefón=+62|Internet=.id|wiéchrzëzna=1 904 569|swiãto=17 zélnika|procent-wòdë=|stolëca=Dżakarta|jãzëk=jindonezijsczi|na karce=LocationIndonesia.svg|mòtto=Bhinneka Tunggal Ika<br>(Jednosc w różnosci)|herb=National emblem of Indonesia Garuda Pancasila.svg|fana=Flag of Indonesia.svg|miono-genitiw=Jindonezji|czasowô cona=7 do +9|Prezydeńt=Prabowo Subianto|aùtowi kòd=RI}} '''Jindonezjô''' je państwã na òstrowach w pôłniowo-pòrénkowy [[Azëjô|Azëji]] a też [[Òceaniô|Oceanije]]. Stolëcznym gardã je Dżakarta (dôwni Batavia<ref>Centre&nbsp;U.W.H., ''[https://whc.unesco.org/en/tentativelists/6010/ The Old Town of Jakarta (Formerly old Batavia) and 4 Outlying Islands (Onrust, Kelor, Cipir dan Bidadari)]'' [online], UNESCO World Heritage Centre [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>). Greńczë z [[Malezjô|Malezją]] (długosc grańcy 1782 km), [[Papùa-Nowô Gwinejô|Papùa-Nowô Gwineją]] (820 km) ë [[Pòrënkòwi Timor|Pòrënkòwim Timorã]] (228 km)<ref>''[https://statbase.org/data/idn-length-of-border/ Length of border | Indonesia (2024−2024) − Data, Charts & Analysis]'' [online], statbase.org [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>. == Historiô == Przez stalata krôj ten bëł wôżnym placã szlachów handlowëch, spòtëkałë sã tam kùlturë indijskô, arabskô, chińskô ë eùropejskô. Sami Eùropejczicë przëbëli na òstrówë w XVI stalata<ref name=":0">[https://wydarzenia.interia.pl/tematy-indonezja,gsbi,6674 Indonezja - wiadomości, zdjęcia ] [online], wydarzenia.interia.pl [dostęp 2026-07-03].</ref>. Jindonezjô zwëskała samòstójnotã [[17 zélnika]] 1945 òd [[Néderlandzkô|Néderlandsczi]]<ref>[https://www.census.gov/newsroom/stories/indonesia-independence-day.html 78th Indonesian Independence Day (1945): August 17, 2023] United States Census Bureau [2025-08-29]</ref><ref>[https://www.naa.gov.au/help-your-research/fact-sheets/indonesian-independence Indonesian independence] National Archives of Australia [2025-08-29]</ref>, a po biotkach z Òlendrama òstała ùznanô w 1949<ref name=":0" />. Òd lat 60. do lat 90. XX stalata bëła tu diktatura prezydenta Suharto<ref>[https://www.bbc.com/news/articles/cn40p2vwyn7o Indonesia names former dictator Suharto a 'national hero'] [online], www.bbc.com, 10 lëstopadnika 2025 [dost. 2026-07-03] (an.).</ref>, le òd pòczątków XXI stalata krôj rozwija sã jako demòkraticznô repùblika<ref name=":0" />. == Demografiô == Lëdztwò w 2024 bëło 283,487,931 mieszkańców<ref>[https://data.worldbank.org/country/indonesia Indonesia] World Bank Group data [2025-08-29]</ref>. Nôwikszą religią w Jindonezje je islam. {| class="wikitable" |+Religijne karna w 2010<ref>''[https://www.indonesia-investments.com/culture/religion/item69 Religion in Indonesia - Religious Pluralism in Society | Indonesia Investments]'' [online], www.indonesia-investments.com [dost. 2026-07-03].</ref> !Religijô !Procent lëdztwa !Lëczba wëznawców (w milionach) |- |[[Islam]] |87.2% |207.2 |- |[[Protestancëzna]] |6.9% |16.5 |- |[[Katolëcczi Kòscół|Katolëcyzm]] |2.9% |6.9 |- |[[Hinduizm]] |1.7% |4.0 |- |[[Bùddiizm|Bùddizm]] |0.7% |4.0 |- |[[Kònfucjónizm]] |0.05% |0.1 |} == Galeriô == <gallery mode="packed"> Òbrôzk:Museum Nasional Indonesia.jpg|Nôrodné Mùzeùm Jindonezji w westrzédni Dżakarcé Òbrôzk:Jakarta Skyline Part 2.jpg|[[Wisma 46]], Nôwëjszé biuro w Jindoneziji, òstójé w pòłowie wieżowców Dżakarty. Òbrôzk:Central Jakarta.JPG|Jalan Thamrin, the przédnô aléj w westrzédni Dżakarcé Òbrôzk:Gambir Station Platform.jpg|Bana na stacji [[Gambir]] w westrzódnëj Dżakarcie Òbrôzk:BungKarno-indonoob.JPG|Sztadion [[Bung Karno]], mòże miec 100,000 widzów Òbrôzk:Indonesia 2002 CIA map.png|Mapa Jindonezji Òbrôzk:Indonesia provinces english.png|Prowincëje Jindonezji Òbrôzk:Jalan malioboro - Jogjakarta.JPG|Malioboro, nôjpòpùlarniejsza sztrasa w Jogjakarcie Òbrôzk:transjogja.jpg|Aùtobùs Trans Jogja. System chùtczego transportu aùtobùsowego w Jogjakarcie Òbrôzk:SOTO FOOD.jpg|Wëbróné dania jindonezijsczi kùchnii, m.jin. ''Soto Ayam'' (zupa z kúrka), ''sate kerang'', ''telor pindang'' (stolatne jôjka), ''perkedel'' (plińc), and ''es teh manis'' (słodkô zëmna arbata) Òbrôzk:Indonesian Army infantryman participating in the GPOI.jpg|Żôłniérz wòjska jindonezyjskego òbczas Pòdjimizna Swiatowi Mirowi Operacëji Òbrôzk:Panser side left.JPG|Pindad Panser "Anoa" òbczas ''Indo Defense and Aerospace Expo'' w 2008 Òbrôzk:AURI B-25.jpg|B-25 Mitchell bómbówce wòjskòwégò lopka z lat 50-tnëch. Òbrôzk:Jmnei.jpg|Jawajsczi inżiniéra zamëkô jedne z dwérzi do luku strzelniczego néderlandczim [[Brewster Buffalo|Buffalo]], stëcznik, 1942. Òbrôzk:ID_diesel_loco_CC_201-05_060327_4217_kta.jpg|GE U20C w Jindonezji , #CC201-05 Òbrôzk:Diesel locomotive CC 203 22 at Gambir Station.jpg|GE U20C "Full-Width Cabin" w Jindonezji, #CC203-22 Òbrôzk:ID_diesel_loco_CC_204-06_060403_2512_mri.jpg|GE U20C, lokòmòtiwa kòntrolowana w całosci przez kòmpùter, #CC204-0 </gallery> == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Azëjô}} {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Jindonezjô| ]] [[Kategòrëjô:Azjatëcczé państwa]] groc3in6hta6exdxvatruu5j007g0fn 204399 204398 2026-07-03T16:39:15Z DawnyTest 14843 nie taczi krótczi ten artikel 204399 wikitext text/x-wiki {{Infobox-państwò|gwôsné miono=Republik Indonesia|miono=Repùblika Jindonezji|fòrma państwa=repùblika|himn=Indonesia Raya<br>Wiôlgô Jindonezjô <center>[[Òbrôzk:Indonesia Raya instrumental.ogg]]</center>|lëdztwò=283,487,931|rok=2024|dëtk=jindonezëjskô rupia|kòd dëtka=IDR|kòd=ID|telefón=+62|Internet=.id|wiéchrzëzna=1 904 569|swiãto=17 zélnika|procent-wòdë=|stolëca=Dżakarta|jãzëk=jindonezijsczi|na karce=LocationIndonesia.svg|mòtto=Bhinneka Tunggal Ika<br>(Jednosc w różnosci)|herb=National emblem of Indonesia Garuda Pancasila.svg|fana=Flag of Indonesia.svg|miono-genitiw=Jindonezji|czasowô cona=7 do +9|Prezydeńt=Prabowo Subianto|aùtowi kòd=RI}} '''Jindonezjô''' je państwã na òstrowach w pôłniowo-pòrénkowy [[Azëjô|Azëji]] a też [[Òceaniô|Oceanije]]. Stolëcznym gardã je Dżakarta (dôwni Batavia<ref>Centre&nbsp;U.W.H., ''[https://whc.unesco.org/en/tentativelists/6010/ The Old Town of Jakarta (Formerly old Batavia) and 4 Outlying Islands (Onrust, Kelor, Cipir dan Bidadari)]'' [online], UNESCO World Heritage Centre [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>). Greńczë z [[Malezjô|Malezją]] (długosc grańcy 1782 km), [[Papùa-Nowô Gwinejô|Papùa-Nowô Gwineją]] (820 km) ë [[Pòrënkòwi Timor|Pòrënkòwim Timorã]] (228 km)<ref>''[https://statbase.org/data/idn-length-of-border/ Length of border | Indonesia (2024−2024) − Data, Charts & Analysis]'' [online], statbase.org [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>. == Historiô == Przez stalata krôj ten bëł wôżnym placã szlachów handlowëch, spòtëkałë sã tam kùlturë indijskô, arabskô, chińskô ë eùropejskô. Sami Eùropejczicë przëbëli na òstrówë w XVI stalata<ref name=":0">[https://wydarzenia.interia.pl/tematy-indonezja,gsbi,6674 Indonezja - wiadomości, zdjęcia ] [online], wydarzenia.interia.pl [dostęp 2026-07-03].</ref>. Jindonezjô zwëskała samòstójnotã [[17 zélnika]] 1945 òd [[Néderlandzkô|Néderlandsczi]]<ref>[https://www.census.gov/newsroom/stories/indonesia-independence-day.html 78th Indonesian Independence Day (1945): August 17, 2023] United States Census Bureau [2025-08-29]</ref><ref>[https://www.naa.gov.au/help-your-research/fact-sheets/indonesian-independence Indonesian independence] National Archives of Australia [2025-08-29]</ref>, a po biotkach z Òlendrama òstała ùznanô w 1949<ref name=":0" />. Òd lat 60. do lat 90. XX stalata bëła tu diktatura prezydenta Suharto<ref>[https://www.bbc.com/news/articles/cn40p2vwyn7o Indonesia names former dictator Suharto a 'national hero'] [online], www.bbc.com, 10 lëstopadnika 2025 [dost. 2026-07-03] (an.).</ref>, le òd pòczątków XXI stalata krôj rozwija sã jako demòkraticznô repùblika<ref name=":0" />. == Demografiô == Lëdztwò w 2024 bëło 283,487,931 mieszkańców<ref>[https://data.worldbank.org/country/indonesia Indonesia] World Bank Group data [2025-08-29]</ref>. Nôwikszą religią w Jindonezje je islam. {| class="wikitable" |+Religijne karna w 2010<ref>''[https://www.indonesia-investments.com/culture/religion/item69 Religion in Indonesia - Religious Pluralism in Society | Indonesia Investments]'' [online], www.indonesia-investments.com [dost. 2026-07-03].</ref> !Religijô !Procent lëdztwa !Lëczba wëznawców (w milionach) |- |[[Islam]] |87.2% |207.2 |- |[[Protestancëzna]] |6.9% |16.5 |- |[[Katolëcczi Kòscół|Katolëcyzm]] |2.9% |6.9 |- |[[Hinduizm]] |1.7% |4.0 |- |[[Bùddiizm|Bùddizm]] |0.7% |4.0 |- |[[Kònfucjónizm]] |0.05% |0.1 |} == Galeriô == <gallery mode="packed"> Òbrôzk:Museum Nasional Indonesia.jpg|Nôrodné Mùzeùm Jindonezji w westrzédni Dżakarcé Òbrôzk:Jakarta Skyline Part 2.jpg|[[Wisma 46]], Nôwëjszé biuro w Jindoneziji, òstójé w pòłowie wieżowców Dżakarty. Òbrôzk:Central Jakarta.JPG|Jalan Thamrin, the przédnô aléj w westrzédni Dżakarcé Òbrôzk:Gambir Station Platform.jpg|Bana na stacji [[Gambir]] w westrzódnëj Dżakarcie Òbrôzk:BungKarno-indonoob.JPG|Sztadion [[Bung Karno]], mòże miec 100,000 widzów Òbrôzk:Indonesia 2002 CIA map.png|Mapa Jindonezji Òbrôzk:Indonesia provinces english.png|Prowincëje Jindonezji Òbrôzk:Jalan malioboro - Jogjakarta.JPG|Malioboro, nôjpòpùlarniejsza sztrasa w Jogjakarcie Òbrôzk:transjogja.jpg|Aùtobùs Trans Jogja. System chùtczego transportu aùtobùsowego w Jogjakarcie Òbrôzk:SOTO FOOD.jpg|Wëbróné dania jindonezijsczi kùchnii, m.jin. ''Soto Ayam'' (zupa z kúrka), ''sate kerang'', ''telor pindang'' (stolatne jôjka), ''perkedel'' (plińc), and ''es teh manis'' (słodkô zëmna arbata) Òbrôzk:Indonesian Army infantryman participating in the GPOI.jpg|Żôłniérz wòjska jindonezyjskego òbczas Pòdjimizna Swiatowi Mirowi Operacëji Òbrôzk:Panser side left.JPG|Pindad Panser "Anoa" òbczas ''Indo Defense and Aerospace Expo'' w 2008 Òbrôzk:AURI B-25.jpg|B-25 Mitchell bómbówce wòjskòwégò lopka z lat 50-tnëch. Òbrôzk:Jmnei.jpg|Jawajsczi inżiniéra zamëkô jedne z dwérzi do luku strzelniczego néderlandczim [[Brewster Buffalo|Buffalo]], stëcznik, 1942. Òbrôzk:ID_diesel_loco_CC_201-05_060327_4217_kta.jpg|GE U20C w Jindonezji , #CC201-05 Òbrôzk:Diesel locomotive CC 203 22 at Gambir Station.jpg|GE U20C "Full-Width Cabin" w Jindonezji, #CC203-22 Òbrôzk:ID_diesel_loco_CC_204-06_060403_2512_mri.jpg|GE U20C, lokòmòtiwa kòntrolowana w całosci przez kòmpùter, #CC204-0 </gallery> == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Azëjô}}{{Kòntrola}} [[Kategòrëjô:Jindonezjô| ]] [[Kategòrëjô:Azjatëcczé państwa]] 69azvzjldx8zmup1xd1g9cki9akz86l 204402 204399 2026-07-03T17:27:59Z Terrus38 14026 kórekta 204402 wikitext text/x-wiki {{Infobox-państwò|gwôsné miono=Republik Indonesia|miono=Repùblika Jindonezji|fòrma państwa=repùblika|himn=Indonesia Raya<br>Wiôlgô Jindonezjô <center>[[Òbrôzk:Indonesia Raya instrumental.ogg]]</center>|lëdztwò=283,487,931|rok=2024|dëtk=jindonezëjskô rupia|kòd dëtka=IDR|kòd=ID|telefón=+62|Internet=.id|wiéchrzëzna=1 904 569|swiãto=17 zélnika|procent-wòdë=|stolëca=Dżakarta|jãzëk=jindonezijsczi|na karce=LocationIndonesia.svg|mòtto=Bhinneka Tunggal Ika<br>(Jednosc w różnosci)|herb=National emblem of Indonesia Garuda Pancasila.svg|fana=Flag of Indonesia.svg|miono-genitiw=Jindonezji|czasowô cona=7 do +9|Prezydeńt=Prabowo Subianto|aùtowi kòd=RI}} '''Indonezjô''' je państwã na òstrowach w pôłniowo-pòrénczny [[Azëjô|Azje]] a téż [[Òceaniô|Òceanie]]. Stolëcznym gardã je Dżakarta (dôwni Batavia<ref>Centre&nbsp;U.W.H., ''[https://whc.unesco.org/en/tentativelists/6010/ The Old Town of Jakarta (Formerly old Batavia) and 4 Outlying Islands (Onrust, Kelor, Cipir dan Bidadari)]'' [online], UNESCO World Heritage Centre [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>). Grańczi z [[Malezjô|Malezją]], [[Papùa-Nowô Gwinejô|Papùą-Nową Gwineją]] ë [[Pòrënkòwi Timor|Pòréncznym Timòrã]]<ref>''[https://statbase.org/data/idn-length-of-border/ Length of border | Indonesia (2024−2024) − Data, Charts & Analysis]'' [online], statbase.org [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>. == Historiô == Òb stalata nen krôj béł wôżnym placã hańdlowëch szlachów, spòtikałë sã tam kùlturë: indijskô, arabskô, chińskô ë eùropejskô. Sami Eùropejczicë doprzëszlë na òstrowë w XVI stalatim<ref name=":0">[https://wydarzenia.interia.pl/tematy-indonezja,gsbi,6674 Indonezja - wiadomości, zdjęcia ] [online], wydarzenia.interia.pl [dostęp 2026-07-03].</ref>. Indonezjô zwëska samòstójnotã [[17 zélnika]] 1945 òd [[Néderlandzkô|Holandie]]<ref>[https://www.census.gov/newsroom/stories/indonesia-independence-day.html 78th Indonesian Independence Day (1945): August 17, 2023] United States Census Bureau [2025-08-29]</ref><ref>[https://www.naa.gov.au/help-your-research/fact-sheets/indonesian-independence Indonesian independence] National Archives of Australia [2025-08-29]</ref>, a pò biotkach z Holendrama òstała szerzi ùznónô w 1949<ref name=":0" />. Òd lat 60. do lat 90. XX st. bëła tu diktatura prezydenta Suharto<ref>[https://www.bbc.com/news/articles/cn40p2vwyn7o Indonesia names former dictator Suharto a 'national hero'] [online], www.bbc.com, 10 lëstopadnika 2025 [dost. 2026-07-03] (an.).</ref>, le òd zôczątkù XXI st. krôj rozwijô sã jakno demòkraticznô repùblika<ref name=":0" />. == Demografiô == Lëdztwò w 2024 wënosëło 283 487 931 mieszkańców<ref>[https://data.worldbank.org/country/indonesia Indonesia] World Bank Group data [2025-08-29]</ref>. Nôwikszą religią w Indonezje je [[islam]]. {| class="wikitable" |+Religijnô identifikacjô w 2010<ref>''[https://www.indonesia-investments.com/culture/religion/item69 Religion in Indonesia - Religious Pluralism in Society | Indonesia Investments]'' [online], www.indonesia-investments.com [dost. 2026-07-03].</ref> !Religiô !Procent lëdztwa !Lëczba wëznôwców (w milionach) |- |[[Islam]] |87.2% |207.2 |- |[[Protestantizm]] |6.9% |16.5 |- |[[Katolëcczi Kòscół|Katolëcyzm]] |2.9% |6.9 |- |[[Hindujizm]] |1.7% |4.0 |- |[[Bùddiizm|Bùddizm]] |0.7% |4.0 |- |[[Kònfucjonizm]] |0.05% |0.1 |} == Galeriô == <gallery mode="packed"> Òbrôzk:Museum Nasional Indonesia.jpg|Nôrodné Mùzeùm Indonezje w centrum Dżakartë Òbrôzk:Jakarta Skyline Part 2.jpg|[[Wisma 46]], nôwëższi biórówc w Indonezje. Òbrôzk:Central Jakarta.JPG|Jalan Thamrin, główné szasé centralny Dżakartë Òbrôzk:Gambir Station Platform.jpg|Bana na stacji [[Gambir]] w centrum Dżakartë Òbrôzk:BungKarno-indonoob.JPG|Sztadión [[Bung Karno]], mòże gòscëc 100 000 lëdzy Òbrôzk:Jalan malioboro - Jogjakarta.JPG|Malioboro, nôpòpùlarniészô sztrasa w Jogjakarce Òbrôzk:Transjogja.jpg|Aùtobùs Trans Jogja w Jogjakarcie Òbrôzk:SOTO FOOD.jpg|Indonezyjskô kùchniô Òbrôzk:Indonesian Army infantryman participating in the GPOI.jpg|Żôłnérz indonezyjsczi armie Òbrôzk:ID diesel loco CC 201-05 060327 4217 kta.jpg|GE U20C w Indonezje, #CC201-05 Òbrôzk:Diesel locomotive CC 203 22 at Gambir Station.jpg|GE U20C "Full-Width Cabin" w Indonezje, #CC203-22 Òbrôzk:ID diesel loco CC 204-06 060403 2512 mri.jpg|GE U20C, lokòmòtiwa kòntrolowónô całowno przez kómpùter, #CC204-0 </gallery> == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Azëjô}}{{Kòntrola}} [[Kategòrëjô:Jindonezjô| ]] [[Kategòrëjô:Azjatëcczé państwa]] r5ujxug5ybocz3vx1uhjcuydmc7asq5 204403 204402 2026-07-03T17:29:37Z Terrus38 14026 kòrekta 204403 wikitext text/x-wiki {{Infobox-państwò|gwôsné miono=Republik Indonesia|miono=Repùblika Indonezje|fòrma państwa=repùblika|himn=Indonesia Raya<br>Wiôlgô Indonezjô <center>[[Òbrôzk:Indonesia Raya instrumental.ogg]]</center>|lëdztwò=283 487 931|rok=2024|dëtk=indonezyjskô rupiô|kòd dëtka=IDR|kòd=ID|telefón=+62|Internet=.id|wiéchrzëzna=1 904 569|swiãto=17 zélnika|procent-wòdë=|stolëca=Dżakarta|jãzëk=indonezyjsczi|na karce=LocationIndonesia.svg|mòtto=Bhinneka Tunggal Ika<br>(Jednota w różnoscë)|herb=National emblem of Indonesia Garuda Pancasila.svg|fana=Flag of Indonesia.svg|miono-genitiw=Indonezje|czasowô cona=7 do +9|Prezydeńt=Prabowo Subianto|aùtowi kòd=RI}} '''Indonezjô''' je państwã na òstrowach w pôłniowo-pòrénczny [[Azëjô|Azje]] a téż [[Òceaniô|Òceanie]]. Stolëcznym gardã je Dżakarta (dôwni Batavia<ref>Centre&nbsp;U.W.H., ''[https://whc.unesco.org/en/tentativelists/6010/ The Old Town of Jakarta (Formerly old Batavia) and 4 Outlying Islands (Onrust, Kelor, Cipir dan Bidadari)]'' [online], UNESCO World Heritage Centre [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>). Grańczi z [[Malezjô|Malezją]], [[Papùa-Nowô Gwinejô|Papùą-Nową Gwineją]] ë [[Pòrënkòwi Timor|Pòréncznym Timòrã]]<ref>''[https://statbase.org/data/idn-length-of-border/ Length of border | Indonesia (2024−2024) − Data, Charts & Analysis]'' [online], statbase.org [dost. 2026-07-03] (<abbr>an.</abbr>).</ref>. == Historiô == Òb stalata nen krôj béł wôżnym placã hańdlowëch szlachów, spòtikałë sã tam kùlturë: indijskô, arabskô, chińskô ë eùropejskô. Sami Eùropejczicë doprzëszlë na òstrowë w XVI stalatim<ref name=":0">[https://wydarzenia.interia.pl/tematy-indonezja,gsbi,6674 Indonezja - wiadomości, zdjęcia ] [online], wydarzenia.interia.pl [dostęp 2026-07-03].</ref>. Indonezjô zwëska samòstójnotã [[17 zélnika]] 1945 òd [[Néderlandzkô|Holandie]]<ref>[https://www.census.gov/newsroom/stories/indonesia-independence-day.html 78th Indonesian Independence Day (1945): August 17, 2023] United States Census Bureau [2025-08-29]</ref><ref>[https://www.naa.gov.au/help-your-research/fact-sheets/indonesian-independence Indonesian independence] National Archives of Australia [2025-08-29]</ref>, a pò biotkach z Holendrama òstała szerzi ùznónô w 1949<ref name=":0" />. Òd lat 60. do lat 90. XX st. bëła tu diktatura prezydenta Suharto<ref>[https://www.bbc.com/news/articles/cn40p2vwyn7o Indonesia names former dictator Suharto a 'national hero'] [online], www.bbc.com, 10 lëstopadnika 2025 [dost. 2026-07-03] (an.).</ref>, le òd zôczątkù XXI st. krôj rozwijô sã jakno demòkraticznô repùblika<ref name=":0" />. == Demografiô == Lëdztwò w 2024 wënosëło 283 487 931 mieszkańców<ref>[https://data.worldbank.org/country/indonesia Indonesia] World Bank Group data [2025-08-29]</ref>. Nôwikszą religią w Indonezje je [[islam]]. {| class="wikitable" |+Religijnô identifikacjô w 2010<ref>''[https://www.indonesia-investments.com/culture/religion/item69 Religion in Indonesia - Religious Pluralism in Society | Indonesia Investments]'' [online], www.indonesia-investments.com [dost. 2026-07-03].</ref> !Religiô !Procent lëdztwa !Lëczba wëznôwców (w milionach) |- |[[Islam]] |87.2% |207.2 |- |[[Protestantizm]] |6.9% |16.5 |- |[[Katolëcczi Kòscół|Katolëcyzm]] |2.9% |6.9 |- |[[Hindujizm]] |1.7% |4.0 |- |[[Bùddiizm|Bùddizm]] |0.7% |4.0 |- |[[Kònfucjonizm]] |0.05% |0.1 |} == Galeriô == <gallery mode="packed"> Òbrôzk:Museum Nasional Indonesia.jpg|Nôrodné Mùzeùm Indonezje w centrum Dżakartë Òbrôzk:Jakarta Skyline Part 2.jpg|[[Wisma 46]], nôwëższi biórówc w Indonezje. Òbrôzk:Central Jakarta.JPG|Jalan Thamrin, główné szasé centralny Dżakartë Òbrôzk:Gambir Station Platform.jpg|Bana na stacji [[Gambir]] w centrum Dżakartë Òbrôzk:BungKarno-indonoob.JPG|Sztadión [[Bung Karno]], mòże gòscëc 100 000 lëdzy Òbrôzk:Jalan malioboro - Jogjakarta.JPG|Malioboro, nôpòpùlarniészô sztrasa w Jogjakarce Òbrôzk:Transjogja.jpg|Aùtobùs Trans Jogja w Jogjakarcie Òbrôzk:SOTO FOOD.jpg|Indonezyjskô kùchniô Òbrôzk:Indonesian Army infantryman participating in the GPOI.jpg|Żôłnérz indonezyjsczi armie Òbrôzk:ID diesel loco CC 201-05 060327 4217 kta.jpg|GE U20C w Indonezje, #CC201-05 Òbrôzk:Diesel locomotive CC 203 22 at Gambir Station.jpg|GE U20C "Full-Width Cabin" w Indonezje, #CC203-22 Òbrôzk:ID diesel loco CC 204-06 060403 2512 mri.jpg|GE U20C, lokòmòtiwa kòntrolowónô całowno przez kómpùter, #CC204-0 </gallery> == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Azëjô}}{{Kòntrola}} [[Kategòrëjô:Jindonezjô| ]] [[Kategòrëjô:Azjatëcczé państwa]] fhlxesnewbjfwstso9lw8jk2p0sl1uj Dawid Szulëst 0 7612 204400 203808 2026-07-03T16:39:26Z Iketsi 3254 /* Bùtnowé lënczi */ + 204400 wikitext text/x-wiki {{Bez òdjimka|1= [https://web.archive.org/web/20250807025718/https://www.countyofrenfrew.on.ca/en/resources/Councilors-2023/Mayor-David-Shulist-Madawaska-Valley.jpg] }} '''Dawid Szulëst''' ({{Jãz.|en}} ''David Martin Shulist''; ùr. [[14 rujana]] [[1951]] w [[Wilno (Ontario)|Wilnie]]) – kaszëbsczi dzejôrz i kanadnym pòlitikôrz. Òn je zasedzałim [[Kaszëbi|Kaszëbą]] w [[Kanada|Kanadze]], we wnożënie [[Wilno (Ontario)]] ùrodzonym. Jegò òjcã béł [[Môrcën Szulëst]]. D. Szulëst ùcził sã m.jin. w Òttawie, a je òd lat aktiwny w stowôrze [[Wilno Heritage Society]]. Dłudżi lata to béł ji szef<ref>http://www.wilno.org/directors.html</ref>. [[Wilno (Ontario)]] – jakno w mało jaczim jinszim môlu bùten Kaszëb, ùchòwôł sã przez kòle półtorasta lat [[kaszëbsczi jãzëk]] i zwëczi – wiele mù w òstatnëch latach zawdzãcziwô. Stowôrã ''Wilno Heritage Society'' wiele zrobia dlô ùchòwaniô i rozwiju kaszëbsczi kùlturë w Kanadze, a w tim jego aktiwné spòleznowé dzejanié mô znaczënk. Jesz jinszim gónã, na jaczim dzejô je mùzeum we wnożënie [[Wilno (Ontario)]]. To je bëlny ôrt rozkòscérzaniô kaszëbiznë midzë lëdzama w Americe. Òn biwô na [[Kaszëbë|Kaszëbach]] i òb czas swòjégò przebiwaniô tuwò pòznôł wiele aktiwnëch Kaszëbów. D. Szulëst mô wiôldżi cësk na przińdny rozwij i spopularizowanié kaszëbsczi materialny i dëchòwi kùlturë. Òn ùznôwô cësk pismionów, chtërne napisôł [[Günter Grass]] – noblista, np. „Kaszëbi są za mało niemiecczi dlô Niemców i za mało pòlsczi dlô Pòlôków” – dlô nich Kaszëbi są Kaszëbama. D. Szulëst achtnie téż pismiona, chtërne napisôł [[Alojzy Rekowski]]. Òn w [[Żukòwò|Żukòwie]] (kòlébce kaszëbsczégò wësziwù) pòdpisôł umòwã i przez wiele lat w tim gardze béł wëstôwk kaszëbsczich wësziwków ze szkòłów z Kanadë. Przë tim D. Szulëst i Theresa Chapeskie wiele zrobilë, a to je pótrzébnô dlô kaszëbiznë robòta<ref>http://www.wilno.org/culture/m-jelinsczi/m-jelinsczi.html</ref><ref>http://www.zukowo.pl/aktualnosci/news/id/357.html</ref>. Òd 2008 rokù [[kaszëbsczi jãzëk]] bëło czasã czëc w “[[Radio Kaszëbë]]” w Kanadze, a D. Szulëst i Ray Chapeskie wiele przë tim zrobilë<ref>http://www.wilno.org/culture/music/Radio_Kaszebe/radio_kaszebe.html</ref>. W 2012 rokù D. Szulëst przërôcził pòlsczégò premiérã [[Donald Tusk|D.Tuska]] do zazëcégò tobaczi<ref>https://web.archive.org/web/20120323201328/http://www.kashub.com/canada/leaders.html</ref>. M. jin. D. Szulëst zrobił dosc wiele, żebë Matka Bòskô Swiónowskô - Kaszëbskô Królewô, chtërna w kòscele w [[Sjónowò|Swiónowie]] mô swój trón bëła znónô téż w Kanadze<ref>http://www.wilno.org/events150/St__Cas_Mass/st__cas_mass.html</ref><ref>http://radioglos.pl/wiadomosci/z-zycia-kosciola/1036-figura-dla-kaszubow-z-kanady</ref>. M. jin. òn zrobił wiele, żebë w Kanadze zebrac karna ledzy rozmajitëch kùlturów, a òni grelë ze sobą w hokeja<ref>http://www.wilno.org/events150/Griffins_TO/griffins_to.html</ref>. D. Szulëst lubi rzeczónkã: “Wiedno Kaszëbë. Na wiedno Kaszëbi”. Òn w latach 2010 - 2014 béł wójtã gminë ''Madawaska Valley''. Jak napisôł japońsczi ùczałi [[lingwista]] òn gôdô téż ò Kaszëbach: më bëlë, më jesmë, më wiedno bãdzemë. Òn przënôlégô do karenka lëdzy w [[Nordowô Amerika|Nordowi Americe]], co jakno pierszi są wëprzédniony za swòją robòtã dlô kaszëbsczi kùlturë<ref> http://www.kaszubi.pl/wydarzenia/wydarzenie/id/240</ref><ref>https://web.archive.org/web/20210615010143/https://www.gazetakaszubska.pl/35388/medale-stolema-kaszubskie-oskary</ref> np. medalią "Zasłużony Kùlturze ''Gloria Artis''". W Kanadze, państwòwô nôdgrodã bëła mù przëznónô za czasów [[Michaelle Jean]]. W 2010 rokù D. Szulëst dostôł za swòje dzejanié Kawalérsczi Krziż z Pòlsczi. W 2016 rokù w Kanadze medalia bëła mù przëznónô za czasów David'a Johnston'a<ref>http://www.thedailyobserver.ca/2016/11/18/david-shulist-honoured-with-governor-generals-medal</ref>. Òn je wëprzédniony przëznôwónym przez [[Karno Sztudérów "Pomorania"|Karno Sztudérów Pòmòraniô]] [[Medal Stolema|Medalã Stolema]]. == Ùsôdztwò (wëjimk) == * Pòlskò-anielskò-kaszëbsczi słowôrz (Polish-English-Kashubian Dictionary, 2010 ISBN 9788392856900) (wespółautor [[Marión Jelińsczi]])<ref>http://www.theeuropeanlibrary.org/tel4/search?query=david%20shulist</ref> * Kaszëbskò-anielskò-pòlsczi słowôrz (Kashubian-English-Polish Dictionary, 2011 ISBN 9788392856917) (wespółautor [[Marión Jelińsczi]])<ref>http://www.worldcat.org/identities/lccn-n2014002642/</ref> * Òdkrëwającë Eùropejsczé Kaszëbë : tatczëzna mòjich kaszëbsczich prastarków (Discovering Kashubia Europe: The Fatherland of My Kashubian Ancestors, 2018 ISBN 9781771366441) == Przëpisë == {{Przëpisë}} == Lëteratura == * M. Nomachi: U Kaszubów w Kanadzie. Pomerania nr 2(462) luty 2013, s. 43. * [[Eùgeniusz Prëczkòwsczi|E. Prëczkòwsczi]]: Wszëtcë jesmë krewny. Pomerania nr 6 (455)czerwiec 2012, s. 17 * Na wiedno Kaszëbi. Z Dawidã Szulëstã (ang. David Shulist), prowadnikã Kaszëbów w kanadijsczim Wilnie, gôdô Stanisłôw Janka. Pomerania nr 4(486) kwiecień 2015, ss. 56-57. == Bùtnowé lënczi == {{Commons}} * {{YouTube|Qwm37EJmRC0|"Nie jesteśmy Polakami, jesteśmy Kaszubami!" — Planeta Abstrakcja}} * https://web.archive.org/web/20120323201328/http://www.kashub.com/canada/leaders.html * https://web.archive.org/web/20130416020510/http://www.gazetakaszubska.pl/36668/gala-wreczenia-medali-stolema-juz-w-sobote * https://web.archive.org/web/20150529174257/http://www.thedailyobserver.ca/2009/04/28/wilno-resident-david-shulist-to-receive-caring-canadian-award * https://web.archive.org/web/20210214112714/http://www.miesiecznikpomerania.pl/artykuly?limitstart=0 * https://web.archive.org/web/20150529174257/http://www.thedailyobserver.ca/2009/04/28/wilno-resident-david-shulist-to-receive-caring-canadian-award * https://web.archive.org/web/20260626142420/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/ar/706387 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387/2 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387/3 {{Kòntrola}} {{DEFAULTSORT:Szulëst Dawid}} [[Kategòrëjô:Kaszëbi]] [[Kategòrëjô:Kanadijczicë]] [[Kategòrëjô:Kaszëbskô kùltura]] [[Kategòrëjô:Laùreacë Medalu Stolema]] skd83dg8d2vhqbfwhw0r2q3y75xnl5k 204404 204400 2026-07-03T17:39:45Z Terrus38 14026 òdjimk 204404 wikitext text/x-wiki [[Òbrôzk:David Shulist 2024.jpg|mały|Dawid Szulëst na Swiatowim Zjezdze Kaszëbów w Kòscérznie, 2024]] '''Dawid Szulëst''' ({{Jãz.|en}} ''David Martin Shulist''; ùr. [[14 rujana]] [[1951]] w [[Wilno (Ontario)|Wilnie]]) – kaszëbsczi dzejôrz i kanadnym pòlitikôrz. Òn je zasedzałim [[Kaszëbi|Kaszëbą]] w [[Kanada|Kanadze]], we wnożënie [[Wilno (Ontario)]] ùrodzonym. Jegò òjcã béł [[Môrcën Szulëst]]. D. Szulëst ùcził sã m.jin. w Òttawie, a je òd lat aktiwny w stowôrze [[Wilno Heritage Society]]. Dłudżi lata to béł ji szef<ref>http://www.wilno.org/directors.html</ref>. [[Wilno (Ontario)]] – jakno w mało jaczim jinszim môlu bùten Kaszëb, ùchòwôł sã przez kòle półtorasta lat [[kaszëbsczi jãzëk]] i zwëczi – wiele mù w òstatnëch latach zawdzãcziwô. Stowôrã ''Wilno Heritage Society'' wiele zrobia dlô ùchòwaniô i rozwiju kaszëbsczi kùlturë w Kanadze, a w tim jego aktiwné spòleznowé dzejanié mô znaczënk. Jesz jinszim gónã, na jaczim dzejô je mùzeum we wnożënie [[Wilno (Ontario)]]. To je bëlny ôrt rozkòscérzaniô kaszëbiznë midzë lëdzama w Americe. Òn biwô na [[Kaszëbë|Kaszëbach]] i òb czas swòjégò przebiwaniô tuwò pòznôł wiele aktiwnëch Kaszëbów. D. Szulëst mô wiôldżi cësk na przińdny rozwij i spopularizowanié kaszëbsczi materialny i dëchòwi kùlturë. Òn ùznôwô cësk pismionów, chtërne napisôł [[Günter Grass]] – noblista, np. „Kaszëbi są za mało niemiecczi dlô Niemców i za mało pòlsczi dlô Pòlôków” – dlô nich Kaszëbi są Kaszëbama. D. Szulëst achtnie téż pismiona, chtërne napisôł [[Alojzy Rekowski]]. Òn w [[Żukòwò|Żukòwie]] (kòlébce kaszëbsczégò wësziwù) pòdpisôł umòwã i przez wiele lat w tim gardze béł wëstôwk kaszëbsczich wësziwków ze szkòłów z Kanadë. Przë tim D. Szulëst i Theresa Chapeskie wiele zrobilë, a to je pótrzébnô dlô kaszëbiznë robòta<ref>http://www.wilno.org/culture/m-jelinsczi/m-jelinsczi.html</ref><ref>http://www.zukowo.pl/aktualnosci/news/id/357.html</ref>. Òd 2008 rokù [[kaszëbsczi jãzëk]] bëło czasã czëc w “[[Radio Kaszëbë]]” w Kanadze, a D. Szulëst i Ray Chapeskie wiele przë tim zrobilë<ref>http://www.wilno.org/culture/music/Radio_Kaszebe/radio_kaszebe.html</ref>. W 2012 rokù D. Szulëst przërôcził pòlsczégò premiérã [[Donald Tusk|D.Tuska]] do zazëcégò tobaczi<ref>https://web.archive.org/web/20120323201328/http://www.kashub.com/canada/leaders.html</ref>. M. jin. D. Szulëst zrobił dosc wiele, żebë Matka Bòskô Swiónowskô - Kaszëbskô Królewô, chtërna w kòscele w [[Sjónowò|Swiónowie]] mô swój trón bëła znónô téż w Kanadze<ref>http://www.wilno.org/events150/St__Cas_Mass/st__cas_mass.html</ref><ref>http://radioglos.pl/wiadomosci/z-zycia-kosciola/1036-figura-dla-kaszubow-z-kanady</ref>. M. jin. òn zrobił wiele, żebë w Kanadze zebrac karna ledzy rozmajitëch kùlturów, a òni grelë ze sobą w hokeja<ref>http://www.wilno.org/events150/Griffins_TO/griffins_to.html</ref>. D. Szulëst lubi rzeczónkã: “Wiedno Kaszëbë. Na wiedno Kaszëbi”. Òn w latach 2010 - 2014 béł wójtã gminë ''Madawaska Valley''. Jak napisôł japońsczi ùczałi [[lingwista]] òn gôdô téż ò Kaszëbach: më bëlë, më jesmë, më wiedno bãdzemë. Òn przënôlégô do karenka lëdzy w [[Nordowô Amerika|Nordowi Americe]], co jakno pierszi są wëprzédniony za swòją robòtã dlô kaszëbsczi kùlturë<ref> http://www.kaszubi.pl/wydarzenia/wydarzenie/id/240</ref><ref>https://web.archive.org/web/20210615010143/https://www.gazetakaszubska.pl/35388/medale-stolema-kaszubskie-oskary</ref> np. medalią "Zasłużony Kùlturze ''Gloria Artis''". W Kanadze, państwòwô nôdgrodã bëła mù przëznónô za czasów [[Michaelle Jean]]. W 2010 rokù D. Szulëst dostôł za swòje dzejanié Kawalérsczi Krziż z Pòlsczi. W 2016 rokù w Kanadze medalia bëła mù przëznónô za czasów David'a Johnston'a<ref>http://www.thedailyobserver.ca/2016/11/18/david-shulist-honoured-with-governor-generals-medal</ref>. Òn je wëprzédniony przëznôwónym przez [[Karno Sztudérów "Pomorania"|Karno Sztudérów Pòmòraniô]] [[Medal Stolema|Medalã Stolema]]. == Ùsôdztwò (wëjimk) == * Pòlskò-anielskò-kaszëbsczi słowôrz (Polish-English-Kashubian Dictionary, 2010 ISBN 9788392856900) (wespółautor [[Marión Jelińsczi]])<ref>http://www.theeuropeanlibrary.org/tel4/search?query=david%20shulist</ref> * Kaszëbskò-anielskò-pòlsczi słowôrz (Kashubian-English-Polish Dictionary, 2011 ISBN 9788392856917) (wespółautor [[Marión Jelińsczi]])<ref>http://www.worldcat.org/identities/lccn-n2014002642/</ref> * Òdkrëwającë Eùropejsczé Kaszëbë : tatczëzna mòjich kaszëbsczich prastarków (Discovering Kashubia Europe: The Fatherland of My Kashubian Ancestors, 2018 ISBN 9781771366441) == Przëpisë == {{Przëpisë}} == Lëteratura == * M. Nomachi: U Kaszubów w Kanadzie. Pomerania nr 2(462) luty 2013, s. 43. * [[Eùgeniusz Prëczkòwsczi|E. Prëczkòwsczi]]: Wszëtcë jesmë krewny. Pomerania nr 6 (455)czerwiec 2012, s. 17 * Na wiedno Kaszëbi. Z Dawidã Szulëstã (ang. David Shulist), prowadnikã Kaszëbów w kanadijsczim Wilnie, gôdô Stanisłôw Janka. Pomerania nr 4(486) kwiecień 2015, ss. 56-57. == Bùtnowé lënczi == {{Commons}} * {{YouTube|Qwm37EJmRC0|"Nie jesteśmy Polakami, jesteśmy Kaszubami!" — Planeta Abstrakcja}} * https://web.archive.org/web/20120323201328/http://www.kashub.com/canada/leaders.html * https://web.archive.org/web/20130416020510/http://www.gazetakaszubska.pl/36668/gala-wreczenia-medali-stolema-juz-w-sobote * https://web.archive.org/web/20150529174257/http://www.thedailyobserver.ca/2009/04/28/wilno-resident-david-shulist-to-receive-caring-canadian-award * https://web.archive.org/web/20210214112714/http://www.miesiecznikpomerania.pl/artykuly?limitstart=0 * https://web.archive.org/web/20150529174257/http://www.thedailyobserver.ca/2009/04/28/wilno-resident-david-shulist-to-receive-caring-canadian-award * https://web.archive.org/web/20260626142420/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/ar/706387 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387/2 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387/3 {{Kòntrola}} {{DEFAULTSORT:Szulëst Dawid}} [[Kategòrëjô:Kaszëbi]] [[Kategòrëjô:Kanadijczicë]] [[Kategòrëjô:Kaszëbskô kùltura]] [[Kategòrëjô:Laùreacë Medalu Stolema]] 3ynu00jmyamh8nvpp19av7u6utewu60 204407 204404 2026-07-03T21:50:44Z Iketsi 3254 [[]] 204407 wikitext text/x-wiki [[Òbrôzk:David Shulist 2024.jpg|mały|Dawid Szulëst na [[Swiatowi Zjôzd Kaszëbów|Swiatowim Zjezdze Kaszëbów]] w Kòscérznie, 2024]] '''Dawid Szulëst''' ({{Jãz.|en}} ''David Martin Shulist''; ùr. [[14 rujana]] [[1951]] w [[Wilno (Ontario)|Wilnie]]) – kaszëbsczi dzejôrz i kanadnym pòlitikôrz. Òn je zasedzałim [[Kaszëbi|Kaszëbą]] w [[Kanada|Kanadze]], we wnożënie [[Wilno (Ontario)]] ùrodzonym. Jegò òjcã béł [[Môrcën Szulëst]]. D. Szulëst ùcził sã m.jin. w Òttawie, a je òd lat aktiwny w stowôrze [[Wilno Heritage Society]]. Dłudżi lata to béł ji szef<ref>http://www.wilno.org/directors.html</ref>. [[Wilno (Ontario)]] – jakno w mało jaczim jinszim môlu bùten Kaszëb, ùchòwôł sã przez kòle półtorasta lat [[kaszëbsczi jãzëk]] i zwëczi – wiele mù w òstatnëch latach zawdzãcziwô. Stowôrã ''Wilno Heritage Society'' wiele zrobia dlô ùchòwaniô i rozwiju kaszëbsczi kùlturë w Kanadze, a w tim jego aktiwné spòleznowé dzejanié mô znaczënk. Jesz jinszim gónã, na jaczim dzejô je mùzeum we wnożënie [[Wilno (Ontario)]]. To je bëlny ôrt rozkòscérzaniô kaszëbiznë midzë lëdzama w Americe. Òn biwô na [[Kaszëbë|Kaszëbach]] i òb czas swòjégò przebiwaniô tuwò pòznôł wiele aktiwnëch Kaszëbów. D. Szulëst mô wiôldżi cësk na przińdny rozwij i spopularizowanié kaszëbsczi materialny i dëchòwi kùlturë. Òn ùznôwô cësk pismionów, chtërne napisôł [[Günter Grass]] – noblista, np. „Kaszëbi są za mało niemiecczi dlô Niemców i za mało pòlsczi dlô Pòlôków” – dlô nich Kaszëbi są Kaszëbama. D. Szulëst achtnie téż pismiona, chtërne napisôł [[Alojzy Rekowski]]. Òn w [[Żukòwò|Żukòwie]] (kòlébce kaszëbsczégò wësziwù) pòdpisôł umòwã i przez wiele lat w tim gardze béł wëstôwk kaszëbsczich wësziwków ze szkòłów z Kanadë. Przë tim D. Szulëst i Theresa Chapeskie wiele zrobilë, a to je pótrzébnô dlô kaszëbiznë robòta<ref>http://www.wilno.org/culture/m-jelinsczi/m-jelinsczi.html</ref><ref>http://www.zukowo.pl/aktualnosci/news/id/357.html</ref>. Òd 2008 rokù [[kaszëbsczi jãzëk]] bëło czasã czëc w “[[Radio Kaszëbë]]” w Kanadze, a D. Szulëst i Ray Chapeskie wiele przë tim zrobilë<ref>http://www.wilno.org/culture/music/Radio_Kaszebe/radio_kaszebe.html</ref>. W 2012 rokù D. Szulëst przërôcził pòlsczégò premiérã [[Donald Tusk|D.Tuska]] do zazëcégò tobaczi<ref>https://web.archive.org/web/20120323201328/http://www.kashub.com/canada/leaders.html</ref>. M. jin. D. Szulëst zrobił dosc wiele, żebë Matka Bòskô Swiónowskô - Kaszëbskô Królewô, chtërna w kòscele w [[Sjónowò|Swiónowie]] mô swój trón bëła znónô téż w Kanadze<ref>http://www.wilno.org/events150/St__Cas_Mass/st__cas_mass.html</ref><ref>http://radioglos.pl/wiadomosci/z-zycia-kosciola/1036-figura-dla-kaszubow-z-kanady</ref>. M. jin. òn zrobił wiele, żebë w Kanadze zebrac karna ledzy rozmajitëch kùlturów, a òni grelë ze sobą w hokeja<ref>http://www.wilno.org/events150/Griffins_TO/griffins_to.html</ref>. D. Szulëst lubi rzeczónkã: “Wiedno Kaszëbë. Na wiedno Kaszëbi”. Òn w latach 2010–2014 béł wójtã gminë ''Madawaska Valley''. Jak napisôł japońsczi ùczałi [[lingwista]] òn gôdô téż ò Kaszëbach: më bëlë, më jesmë, më wiedno bãdzemë. Òn przënôlégô do karenka lëdzy w [[Nordowô Amerika|Nordowi Americe]], co jakno pierszi są wëprzédniony za swòją robòtã dlô kaszëbsczi kùlturë<ref> http://www.kaszubi.pl/wydarzenia/wydarzenie/id/240</ref><ref>https://web.archive.org/web/20210615010143/https://www.gazetakaszubska.pl/35388/medale-stolema-kaszubskie-oskary</ref> np. medalią "Zasłużony Kùlturze ''Gloria Artis''". W Kanadze, państwòwô nôdgrodã bëła mù przëznónô za czasów [[Michaelle Jean]]. W 2010 rokù D. Szulëst dostôł za swòje dzejanié Kawalérsczi Krziż z Pòlsczi. W 2016 rokù w Kanadze medalia bëła mù przëznónô za czasów David'a Johnston'a<ref>http://www.thedailyobserver.ca/2016/11/18/david-shulist-honoured-with-governor-generals-medal</ref>. Òn je wëprzédniony przëznôwónym przez [[Karno Sztudérów "Pomorania"|Karno Sztudérów Pòmòraniô]] [[Medal Stolema|Medalã Stolema]]. == Ùsôdztwò (wëjimk) == * Pòlskò-anielskò-kaszëbsczi słowôrz (Polish-English-Kashubian Dictionary, 2010 ISBN 9788392856900) (wespółautor [[Marión Jelińsczi]])<ref>http://www.theeuropeanlibrary.org/tel4/search?query=david%20shulist</ref> * Kaszëbskò-anielskò-pòlsczi słowôrz (Kashubian-English-Polish Dictionary, 2011 ISBN 9788392856917) (wespółautor [[Marión Jelińsczi]])<ref>http://www.worldcat.org/identities/lccn-n2014002642/</ref> * Òdkrëwającë Eùropejsczé Kaszëbë : tatczëzna mòjich kaszëbsczich prastarków (Discovering Kashubia Europe: The Fatherland of My Kashubian Ancestors, 2018 ISBN 9781771366441) == Przëpisë == {{Przëpisë}} == Lëteratura == * M. Nomachi: U Kaszubów w Kanadzie. Pomerania nr 2(462) luty 2013, s. 43. * [[Eùgeniusz Prëczkòwsczi|E. Prëczkòwsczi]]: Wszëtcë jesmë krewny. Pomerania nr 6 (455)czerwiec 2012, s. 17 * Na wiedno Kaszëbi. Z Dawidã Szulëstã (ang. David Shulist), prowadnikã Kaszëbów w kanadijsczim Wilnie, gôdô Stanisłôw Janka. Pomerania nr 4(486) kwiecień 2015, ss. 56-57. == Bùtnowé lënczi == {{Commons}} * {{YouTube|Qwm37EJmRC0|"Nie jesteśmy Polakami, jesteśmy Kaszubami!" — Planeta Abstrakcja}} * https://web.archive.org/web/20120323201328/http://www.kashub.com/canada/leaders.html * https://web.archive.org/web/20130416020510/http://www.gazetakaszubska.pl/36668/gala-wreczenia-medali-stolema-juz-w-sobote * https://web.archive.org/web/20150529174257/http://www.thedailyobserver.ca/2009/04/28/wilno-resident-david-shulist-to-receive-caring-canadian-award * https://web.archive.org/web/20210214112714/http://www.miesiecznikpomerania.pl/artykuly?limitstart=0 * https://web.archive.org/web/20150529174257/http://www.thedailyobserver.ca/2009/04/28/wilno-resident-david-shulist-to-receive-caring-canadian-award * https://web.archive.org/web/20260626142420/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/ar/706387 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387/2 ** https://web.archive.org/web/20260626142509/https://dziennikbaltycki.pl/klub-studencki-pomorania-wreczyl-medale-stolema-zdjecia/gh/706387/3 {{Kòntrola}} {{DEFAULTSORT:Szulëst Dawid}} [[Kategòrëjô:Kaszëbi]] [[Kategòrëjô:Kanadijczicë]] [[Kategòrëjô:Kaszëbskô kùltura]] [[Kategòrëjô:Laùreacë Medalu Stolema]] 0nxv20vpzbsc5mvrr1lnzsavyd71off Brëkòwnik:Orbitminis 2 12315 204405 204072 2026-07-03T18:13:57Z Orbitminis 18250 wiecie co? Zmieniłem plan. Dzisiaj nie będę edytował kaszubską Wikipedię na zawsze, bo po co edytować kaszubską Wikipedię, gdy użytkownik Terrus38 zaczyna wszystkim skorektować ortograficznie i utrudnić życie edytowania w stylu autorytarnym. Dzięki niego, postanowiłem zawiesić moją działalność już po roku i pół mojej kariery. Dziękujemy, że jesteście z Tobą! Zegnôjce wszëtczich Kaszëbów na wiedno i dzãkùjemë, że jesmë le z Nobą! 204405 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 Brëkòwnik:Orbitminis/Zapisownik 2 12317 204406 200114 2026-07-03T18:14:40Z Orbitminis 18250 pa pa! 204406 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 Mésterstwò Swiata w Fùsbalë 2026 0 13158 204397 204382 2026-07-03T16:08:44Z HaxelKaszëba 17492 204397 wikitext text/x-wiki {{Spòrtowi Turniér infobox|gòspòdôrzë=[[Òbrôzk:Flag of Canada.svg|tło|22x22px]] [[Kanada]] [[Òbrôzk:Flag of Mexico.svg|tło|22x22px]] [[Meksyk]] [[Òbrôzk:Flag of the United States.svg|tło|22x22px]] [[Zjednóné Kraje Americzi]]|data=11 czerwińca 2026|pòzwa=Mésterstwò Swiata w fùsbalë 2026<br>FIFA World Cup 2026<br>Coupe du monde de football de 2026<br>Copa Mundial de Fútbol 2026|òbrôzk=2026 FIFA World Cup emblem (with wordmark).svg|reprezentacje=48|stadiónë=16|mecze=85|gòle= 249|ùszłô=[[Mésterstwò Swiata w fùsbalë 2022|2022]]|aktualné=2026]}} '''XXIII Mésterstwò Swiata w fùsbalë 2026''' – 23. edicjô mésterstwô swiata twòrzoné przez [[FIFA]]. Turniér òdbëwô sã òd [[11 czerwińca]] do [[19 lëpińca]] 2026 rokù na stadionach w [[Kanada|Kanadze]], [[Meksyk|Meksykù]] a [[Zjednóné Kraje Americzi|Zjednónëch Krôjach]]<ref>FIFA: ''[https://www.fifa.com/en/tournaments/mens/worldcup/canadamexicousa2026 FIFA World Cup 2026 Official Website]''. [przistãp 2026-06-29].</ref>. Je to pierszi mùndial twòrzony wespólnie przez trzë krôje òrôz pierszi w historie z dzélã 48 nôrodnëch reprezentacjów. Nowi fòrmat turniéru òbjimùje 12 grëp pò szterëch karnów, z jaczich do pùcharowi fazë awansëje dwie nôlepszé reprezentacje z kòżdi grëpë òrôz òsmë nôlepszich karnów z trzecych placów. Òznôczô to rozegranié rekordowi lëczbë 104 zeńdzeniów<ref>FIFA: ''[https://www.fifa.com/en/tournaments/mens/worldcup/canadamexicousa2026/articles/fifa-council-approves-international-match-calendar-new-format FIFA Council approves international match calendar and 104-match World Cup format]''. [przistãp 2026-06-29].</ref>. == Welënk gòspòdôrzów == [[Òbrôzk:2026 world cup.svg|mały|Wëniczi w òsoblëwëch krôjach]] 13 czerwińca 2018 rokù òb czas Kòngresu FIFA w Mòskwie dobéła wespólna kandidatura Kanadë, Meksykù a Zjednónëch Krôjów, przedobiwôjącë bédënk [[Marokò|Maroka]]<ref>FIFA: ''[https://www.fifa.com/en/tournaments/mens/worldcup/canadamexicousa2026/articles/united-2026-bid-wins-hosts-fifa-world-cup United 2026 bid voted hosts of the 2026 FIFA World Cup]''. [przistãp 2026-06-29].</ref>. Turniér je historiczny z czilu pòwodów: * pierszi mundial twòrzony przez trzë krôje; * Meksyk òstôł pierszim krôjã, jaczi gòscy mésterstwò swiata pò rôz trzecy; * Kanada pò rôz pierszi twòrzy chłopsczi mésterstwò swiata; * Zjednóné Krôje twòrzą mundial pò rôz drëdżi (pò 1994 rokù). Hewò wëniczi welowaniô: {| class="wikitable" style="text-align: center;" !Państwò !Głosë |- | align="left" |[[Òbrôzk:Flag of Canada.svg|tło|22x22px]] [[Kanada]] [[Òbrôzk:Flag of Mexico.svg|tło|22x22px]] [[Meksyk]] [[Òbrôzk:Flag of the United States.svg|tło|22x22px]] [[Zjednóné Kraje Americzi]] |'''134''' |- | align="left" | [[Òbrôzk:Flag of Morocco.svg|tło|22x22px]] [[Marokò]] |65 |} == Fòrmat rozgriwków == Pò rôz pierszi w historie w finałach wëstãpùje 48 reprezentacjów. [[Òbrôzk:FIFA World Cup 2026 Draw Reception (54972845582).jpg|mały|Òficjalnô bala na mésterstwô, Trionda]] Fòrmat òbjimùje: * 12 grëp pò 4 karnów, * Kòżdé karno rozgriwô 3 grëpowé mecze, * awans zwëskiwają: ** dobiwcë grëp, ** karnë z drëdżich placów, ** òsmë nôlepszich reprezentacjów z trzecych placów, * òd pùcharowi fazë òbrzeszëwùje pùcharowi system rozpòczinôjącë sã òd 1/16 finału (Round of 32). == Gardë gòspòdôrzów == Turniér òdbëwô sã na 16 stadionach<ref>FIFA: ''[https://www.fifa.com/en/tournaments/mens/worldcup/canadamexicousa2026/articles/fifa-unveils-stellar-line-up-of-host-cities-for-2026-world-cup FIFA unveils stellar line-up of host cities for 2026 FIFA World Cup]''. [przistãp 2026-06-29].</ref>. === [[Kanada]] === * Toronto * Vancouver === [[Meksyk]] === * Meksyk * Guadalajara * Monterrey === [[Zjednóné Kraje Americzi|Zjednóné Krôje]] === * Atlanta * Boston * Dallas * Houston * Kansas City * Los Angeles * Miami * [[Nowi Jork]] / East Rutherford * Filadelfia * San Francisco Bay Area (Santa Clara) * Seattle == Grëpòwa faza == Reprezentacje òstôłë pòdzelóné na 12 grëp òznôczonëch lëterama òd A do L. Kòżdé karno rozgriwô trzë zeńdzeniô. === Grëpa A === {{#invoke:Grëpa MS|render |group=Grëpa A |1=[[File:Flag of Mexico.svg|20px]] Meksyk |1pkt=9 |1m=3 |1w=3 |1r=0 |1p=0 |1g+=6 |1g-=0 |1rg=+6 |2=[[File:Flag of South Africa.svg|20px]] Połniowô Afrika |2pkt=4 |2m=3 |2w=1 |2r=1 |2p=1 |2g+=2 |2g-=3 |2rg=-1 |3=[[File:Flag of South Korea.svg|20px]] Pôłniowô Korea |3pkt=3 |3m=3 |3w=1 |3r=0 |3p=2 |3g+=2 |3g-=3 |3rg=-1 |4=[[File:Flag of Czech Republic.svg|20px]] Czeskô |4pkt=1 |4m=3 |4w=0 |4r=1 |4p=2 |4g+=2 |4g-=4 |4rg=-2 }} === Grëpa B === {{#invoke:Grëpa MS|render |group=Grëpa B |advance=3 |1=[[File:Flag of Switzerland.svg|20px]] Szwajcarskô |1pkt=7 |1m=3 |1w=2 |1r=1 |1p=0 |1g+=6 |1g-=3 |1rg=+3 |2=[[File:Flag of Canada.svg|20px]] Kanada |2pkt=4 |2m=3 |2w=1 |2r=1 |2p=1 |2g+=5 |2g-=4 |2rg=+1 |3=[[File:Flag of Bosnia and Herzegovina.svg|20px]] Bòsniô a Hercegòwina |3pkt=4 |3m=3 |3w=1 |3r=1 |3p=1 |3g+=4 |3g-=5 |3rg=-1 |4=[[File:Flag of Qatar.svg|20px]] Katar |4pkt=1 |4m=3 |4w=0 |4r=1 |4p=2 |4g+=2 |4g-=9 |4rg=-7 }} === Grëpa C === {{#invoke:Grëpa MS|render |group=Grëpa C |1=[[File:Flag of Brazil.svg|20px]] Brazylskô |1pkt=7 |1m=3 |1w=2 |1r=1 |1p=0 |1g+=7 |1g-=1 |1rg=+6 |2=[[File:Flag of Morocco.svg|20px]] Marokò |2pkt=7 |2m=3 |2w=2 |2r=1 |2p=0 |2g+=6 |2g-=3 |2rg=+3 |3=[[File:Flag of Scotland.svg|20px]] Szkòckô |3pkt=3 |3m=3 |3w=1 |3r=0 |3p=2 |3g+=2 |3g-=5 |3rg=-3 |4=[[File:Flag of Haiti.svg|20px]] Haiti |4pkt=0 |4m=3 |4w=0 |4r=0 |4p=3 |4g+=2 |4g-=8 |4rg=-6 }} === Grëpa D === {{#invoke:Grëpa MS|render |group=Grëpa D |advance=3 |1=[[File:Flag of United States.svg|20px]] USA |1pkt=6 |1m=3 |1w=2 |1r=0 |1p=1 |1g+=8 |1g-=4 |1rg=+4 |2=[[File:Flag of Australia.svg|20px]] Aùstraliô |2pkt=4 |2m=3 |2w=1 |2r=1 |2p=1 |2g+=2 |2g-=2 |2rg=0 |3=[[File:Flag of Paraguay.svg|20px]] Paragwaj |3pkt=4 |3m=3 |3w=1 |3r=1 |3p=1 |3g+=3 |3g-=4 |3rg=-1 |4=[[File:Flag of Turkey.svg|20px]] Tëreckô |4pkt=3 |4m=3 |4w=1 |4r=0 |4p=2 |4g+=3 |4g-=5 |4rg=-2 }} === Grëpa E === {{#invoke:Grëpa MS|render |group=Grëpa E |advance=3 |1=[[File:Flag of Germany.svg|20px]] Niemieckô |1pkt=6 |1m=3 |1w=2 |1r=0 |1p=1 |1g+=10 |1g-=4 |1rg=+6 |2=[[File:Flag of Ivory Coast.svg|20px]] Ùbrzég Słoniowëch Kłów |2pkt=6 |2m=3 |2w=2 |2r=0 |2p=1 |2g+=4 |2g-=2 |2rg=+2 |3=[[File:Flag of Ecuador.svg|20px]] Ekwador |3pkt=4 |3m=3 |3w=1 |3r=1 |3p=1 |3g+=2 |3g-=2 |3rg=0 |4=[[File:Flag of Curaçao.svg|20px]] Curaçao |4pkt=1 |4m=3 |4w=0 |4r=1 |4p=2 |4g+=1 |4g-=9 |4rg=-8 }} === Grëpa F === {{#invoke:Grëpa MS|render |group=Grëpa F |advance=3 |1=[[File:Flag of Netherlands.svg|20px]] Niderlandzkô |1pkt=7 |1m=3 |1w=2 |1r=1 |1p=0 |1g+=10 |1g-=4 |1rg=+6 |2=[[File:Flag of Japan.svg|20px]] Japòńskô |2pkt=5 |2m=3 |2w=1 |2r=2 |2p=0 |2g+=7 |2g-=3 |2rg=+4 |3=[[File:Flag of Sweden.svg|20px]] Szwedzkô |3pkt=4 |3m=3 |3w=1 |3r=1 |3p=1 |3g+=7 |3g-=7 |3rg=0 |4=[[File:Flag of Tunisia.svg|20px]] Tunezjô |4pkt=0 |4m=3 |4w=0 |4r=0 |4p=3 |4g+=2 |4g-=12 |4rg=-10 }} === Grëpa G === {{#invoke:Grëpa MS|render |group=Grëpa G |1=[[File:Flag of Belgium.svg|20px]] Belgiô |1pkt=5 |1m=3 |1w=1 |1r=2 |1p=0 |1g+=6 |1g-=2 |1rg=+4 |2=[[File:Flag of Egypt.svg|20px]] Egipt |2pkt=5 |2m=3 |2w=1 |2r=2 |2p=0 |2g+=5 |2g-=3 |2rg=+2 |3=[[File:Flag of Iran.svg|20px]] Iran |3pkt=3 |3m=3 |3w=0 |3r=3 |3p=0 |3g+=3 |3g-=3 |3rg=0 |4=[[File:Flag of New Zealand.svg|20px]] Nowô Zelandzkô |4pkt=1 |4m=3 |4w=0 |4r=1 |4p=2 |4g+=4 |4g-=10 |4rg=-6 }} === Grëpa H === {{#invoke:Grëpa MS|render |group=Grëpa H |1=[[File:Flag of Spain.svg|20px]] Szpańskô |1pkt=7 |1m=3 |1w=2 |1r=1 |1p=0 |1g+=5 |1g-=0 |1rg=+5 |2=[[File:Flag of Cape Verde.svg|20px]] Cabo Verde |2pkt=3 |2m=3 |2w=0 |2r=3 |2p=0 |2g+=2 |2g-=2 |2rg=0 |3=[[File:Flag of Uruguay.svg|20px]] Ùrugwaj |3pkt=2 |3m=3 |3w=0 |3r=2 |3p=1 |3g+=3 |3g-=4 |3rg=-1 |4=[[File:Flag of Saudi Arabia.svg|20px]] Saùdijskô Arabiô |4pkt=2 |4m=3 |4w=0 |4r=2 |4p=1 |4g+=1 |4g-=5 |4rg=-4 }} === Grëpa I === {{#invoke:Grëpa MS|render |group=Grëpa I |advance=3 |1=[[File:Flag of France.svg|20px]] Francëskô |1pkt=9 |1m=3 |1w=3 |1r=0 |1p=0 |1g+=10 |1g-=2 |1rg=+8 |2=[[File:Flag of Norway.svg|20px]] Norweskô |2pkt=6 |2m=3 |2w=2 |2r=0 |2p=1 |2g+=8 |2g-=7 |2rg=+1 |3=[[File:Flag of Senegal.svg|20px]] Senegal |3pkt=3 |3m=3 |3w=1 |3r=0 |3p=2 |3g+=8 |3g-=6 |3rg=+2 |4=[[File:Flag of Iraq.svg|20px]] Irak |4pkt=0 |4m=3 |4w=0 |4r=0 |4p=3 |4g+=1 |4g-=12 |4rg=-11 }} === Grëpa J === {{#invoke:Grëpa MS|render |group=Grëpa J |advance=3 |1=[[File:Flag of Argentina.svg|20px]] Argentińskô |1pkt=9 |1m=3 |1w=3 |1r=0 |1p=0 |1g+=8 |1g-=1 |1rg=+7 |2=[[File:Flag of Austria.svg|20px]] Aùstriackô |2pkt=4 |2m=3 |2w=1 |2r=1 |2p=1 |2g+=7 |2g-=7 |2rg=0 |3=[[File:Flag of Algeria.svg|20px]] Algierskô |3pkt=4 |3m=3 |3w=1 |3r=1 |3p=1 |3g+=5 |3g-=7 |3rg=-2 |4=[[File:Flag of Jordan.svg|20px]] Jordańskô |4pkt=0 |4m=3 |4w=0 |4r=0 |4p=3 |4g+=3 |4g-=8 |4rg=-5 }} === Grëpa K === {{#invoke:Grëpa MS|render |group=Grëpa K |advance=3 |1=[[File:Flag of Colombia.svg|20px]] Kòlumbiô |1pkt=7 |1m=3 |1w=2 |1r=1 |1p=0 |1g+=4 |1g-=1 |1rg=+3 |2=[[File:Flag of Portugal.svg|20px]] Pòrtugalskô |2pkt=5 |2m=3 |2w=1 |2r=2 |2p=0 |2g+=6 |2g-=1 |2rg=+5 |3=[[File:Flag of Democratic Republic of the Congo.svg|20px]] DRK |3pkt=4 |3m=3 |3w=1 |3r=1 |3p=1 |3g+=4 |3g-=3 |3rg=+1 |4=[[File:Flag of Uzbekistan.svg|20px]] Ùzbekistan |4pkt=0 |4m=3 |4w=0 |4r=0 |4p=3 |4g+=2 |4g-=11 |4rg=-9 }} === Grëpa L === {{#invoke:Grëpa MS|render |group=Grëpa L |advance=3 |1=[[File:Flag of England.svg|20px]] Anielskô |1pkt=7 |1m=3 |1w=2 |1r=1 |1p=0 |1g+=6 |1g-=2 |1rg=+4 |2=[[File:Flag of Croatia.svg|20px]] Chòrwackô |2pkt=6 |2m=3 |2w=2 |2r=0 |2p=1 |2g+=5 |2g-=5 |2rg=0 |3=[[File:Flag of Ghana.svg|20px]] Ghana |3pkt=4 |3m=3 |3w=1 |3r=1 |3p=1 |3g+=2 |3g-=2 |3rg=0 |4=[[File:Flag of Panama.svg|20px]] Panama |4pkt=0 |4m=3 |4w=0 |4r=0 |4p=3 |4g+=0 |4g-=4 |4rg=-4 }} == Pùcharowô faza == === Drôbka === {{Turniérowô drôbka | boldwinner=y | RD1= 1/16 finału | RD2= 1/8 finału | RD1-text01=29 czerwińca – [[Gillette Stadium|Foxborough]] | RD1-team01=[[File:Flag of Germany.svg|20px]] Niemieckô | RD1-score01=1 (3) | RD1-team02=[[File:Flag of Paraguay.svg|20px]] Paragwaj | RD1-score02=1 (4) | RD1-text03=28 czerwińca – [[SoFi Stadium|Inglewood]] | RD1-team03=[[File:Flag of France.svg|20px]] Francëskô | RD1-score03=3 | RD1-team04=[[File:Flag of Sweden.svg|20px]] Szwedzkô | RD1-score04=0 | RD1-text05=3 lëpińca – [[BMO Field|Toronto]] | RD1-team05=[[File:Flag of South Africa.svg|20px]] Pôłniowô Afrika | RD1-team06=[[File:Flag of Canada.svg|20px]] Kanada | RD1-score05=0 | RD1-score06=1 | RD1-text07=2 lëpińca – [[Levi’s Stadium|Santa Clara]] | RD1-team07=[[File:Flag of Netherlands.svg|20px]] Niderlandzkô | RD1-team08=[[File:Flag of Morocco.svg|20px]] Marokò | RD1-score07=1 (2) | RD1-score08=1 (3) | RD1-text09=29 czerwińca – [[NRG Stadium|Houston]] | RD1-team09=[[File:Flag of Portugal.svg|20px]] Pòrtugalskô | RD1-team10=[[File:Flag of Croatia.svg|20px]] Chòrwackô | RD1-score09= | RD1-score10= | RD1-text11=1 lëpińca – [[Estadio Azteca|Meksyk]] | RD1-team11=[[File:Flag of Spain.svg|20px]] Szpańskô | RD1-team12=[[File:Flag of Austria.svg|20px]] Aùstriackô | RD1-score11= | RD1-score12= | RD1-text13=4 lëpińca – [[Hard Rock Stadium|Miami Gardens]] | RD1-team13=[[File:Flag of United States.svg|20px]] USA | RD1-team14=[[File:Flag of Bosnia and Herzegovina.svg|20px]] Bòsniô a Hercegòwina | RD1-score13=2 | RD1-score14=0 | RD1-text15=3 lëpińca – [[BC Place Stadium|Vancouver]] | RD1-team15=[[File:Flag of Belgium.svg|20px]] Belgiô | RD1-team16=[[File:Flag of Senegal.svg|20px]] Senegal | RD1-score15=3 | RD1-score16=2 | RD1-text17= | RD1-team17=[[File:Flag of Brazil.svg|20px]] Brazylskô | RD1-team18=[[File:Flag of Japan.svg|20px]] Japòńskô | RD1-score17=2 | RD1-score18=1 | RD1-text19= | RD1-team19=[[File:Flag of Ivory Coast.svg|20px]] Ùbrzég Słoniowëch Kłów | RD1-team20=[[File:Flag of Norway.svg|20px]] Norweskô | RD1-score19=1 | RD1-score20=2 | RD1-text21= | RD1-team21=[[File:Flag of Mexico.svg|20px]] Meksyk | RD1-team22=[[File:Flag of Ecuador.svg|20px]] Ekwador | RD1-score21=2 | RD1-score22=0 | RD1-text23= | RD1-team23=[[File:Flag of England.svg|20px]] Anielskô | RD1-team24=[[File:Flag of the Democratic Republic of the Congo.svg|20px]] DRK | RD1-score23=2 | RD1-score24=1 | RD1-text25= | RD1-team25=[[File:Flag of Argentina.svg|20px]] Argentińskô | RD1-team26=[[File:Flag of Cape Verde.svg|20px]] Cabo Verde | RD1-score25= | RD1-score26= | RD1-text27= | RD1-team27=[[File:Flag of Australia.svg|20px]] Aùstraliô | RD1-team28=[[File:Flag of Egypt.svg|20px]] Egipt | RD1-score27= | RD1-score28= | RD1-text29= | RD1-team29=[[File:Flag of Switzerland.svg|20px]] Szwajcarskô | RD1-team30=[[File:Flag of Algeria.svg|20px]] Algierskô | RD1-score29= | RD1-score30= | RD1-text31= | RD1-team31=[[File:Flag of Colombia.svg|20px]] Kòlumbiô | RD1-team32=[[File:Flag of Ghana.svg|20px]] Ghana | RD1-score31= | RD1-score32= | RD2-text01=4 lëpińca – [[Lincoln Financial Field|Filadelfia]] | RD2-team01=[[File:Flag of Paraguay.svg|20px]] Paragwaj | RD2-team02=[[File:Flag of France.svg|20px]] Francëskô | RD2-score01= | RD2-score02= | RD2-text02=4 lëpińca – [[NRG Stadium|Houston]] | RD2-team03=[[File:Flag of Canada.svg|20px]] Kanada | RD2-team04=[[File:Flag of Morocco.svg|20px]] Marokò | RD2-score03= | RD2-score04= | RD2-text03=6 lëpińca – [[AT&T Stadium|Arlington]] | RD2-team05=[[File:Flag of Portugal.svg|20px]] Pòrtugalskô | RD2-team06=[[File:Flag of Spain.svg|20px]] Szpańskô | RD2-score05= | RD2-score06= | RD2-text04=7 lëpińca – [[CenturyLink Field|Seattle]] | RD2-team07=[[File:Flag of USA.svg|20px]] USA | RD2-team08=[[File:Flag of Belgium.svg|20px]] Belgiô | RD2-score07= | RD2-score08= | RD2-text05=5 lëpińca – [[MetLife Stadium|East Rutherford]] | RD2-team09=[[File:Flag of Brazil.svg|20px]] Brazylskô | RD2-team10=[[File:Flag of Norway.svg|20px]] Norweskô | RD2-score09= | RD2-score10= | RD2-text06=6 lëpińca – [[Estadio Azteca|Meksyk]] | RD2-team11=[[File:Flag of Mexico.svg|20px]] Meksyk | RD2-team12=[[File:Flag of England.svg|20px]] Anielskô | RD2-score11= | RD2-score12= | RD2-text07=7 lëpińca – [[Mercedes-Benz Stadium|Atlanta]] | RD2-team13=Dobiwca meczu 86 | RD2-team14=Dobiwca meczu 88 | RD2-score13= | RD2-score14= | RD2-text08=7 lëpińca – [[BC Place Stadium|Vancouver]] | RD2-team15=[[File:Flag of Switzerland.svg|20px]] Szwajcarskô | RD2-team16=Dobiwca meczu 87 | RD2-score15= | RD2-score16= | RD3-text01=9 lëpińca – [[Gillette Stadium|Foxborough]] | RD3-team01=Dobiwca meczu 89 | RD3-team02=Dobiwca meczu 90 | RD3-score01= | RD3-score02= | RD3-text02=10 lëpińca – [[SoFi Stadium|Inglewood]] | RD3-team03=Dobiwca meczu 93 | RD3-team04=Dobiwca meczu 94 | RD3-score03= | RD3-score04= | RD3-text03=11 lëpińca – [[Hard Rock Stadium|Miami Gardens]] | RD3-team05=Dobiwca meczu 91 | RD3-team06=Dobiwca meczu 92 | RD3-score05= | RD3-score06= | RD3-text04=12 lëpińca – [[Arrowhead Stadium|Kansas City]] | RD3-team07=Dobiwca meczu 95 | RD3-team08=Dobiwca meczu 96 | RD3-score07= | RD3-score08= | RD4-text01=14 lëpińca – [[AT&T Stadium|Arlington]] | RD4-team01=Dobiwca meczu 97 | RD4-team02=Dobiwca meczu 98 | RD4-score01= | RD4-score02= | RD4-text02=15 lëpińca – [[Mercedes-Benz Stadium|Atlanta]] | RD4-team03=Dobiwca meczu 99 | RD4-team04=Dobiwca meczu 100 | RD4-score03= | RD4-score04= | RD5-text01=19 lëpińca – [[MetLife Stadium|East Rutherford]] | RD5-team01=Dobiwca meczu 101 | RD5-team02=Dobiwca meczu 102 | RD5-score01= | RD5-score02= | RD5b-text01=18 lëpińca – [[Hard Rock Stadium|Miami Gardens]] | RD5b-team01=Przerżnóny meczu 101 | RD5b-team02=Przerżnóny meczu 102 | RD5b-score01= | RD5b-score02= }} === 1/16 finału === {{fùsbalowi mecz | etap = Mecz 73 | data = 28 czerwińca 2026, 21:00 | stadión = SoFi Stadium, Los Angeles | druzyna1 = Pôłniowô Afrika | fana1 = RSA | wënik1 = 0 | druzyna2 = Kanada | fana2 = Canada | wënik2 = 1 | gòle2 = Eustáquio 90+2 | òbzérôczë = 69 237 | sãdza = João Pinheiro }} <br> ---- {{fùsbalowi mecz | etap = Mecz 74 | data = 29 czerwińca 2026, 22:30 | stadión = Gillette Stadium, Boston | druzyna1 = Niemieckô | fana1 = Germany | wënik1 = 1 | druzyna2 = Paragwaj | fana2 = Paraguay | wënik2 = 1 | karné = 3-4 | gòle1 = Havertz 54’ | gòle2 = Enciso 42’ | òbzérôczë = 63 945 | sãdza = Jalal Jayed }} <br> ---- {{fùsbalowi mecz | etap = Mecz 75 | data = 30 czerwińca 2026, 03:00 | stadión = Estadio BBVA, Monterrey | druzyna1 = Niderlandzkô | fana1 = Netherlands | wënik1 = 1 | gòle1 = Gakpo 72’ | druzyna2 = Marokò | fana2 = Morocco | wënik2 = 1 | karné = 2-3 | gòle2 = Diop 90+1 | òbzérôczë = 68 777 | sãdza = Wilton Sampaio }} <br> ---- {{fùsbalowi mecz | etap = Mecz 76 | data = 29 czerwińca 2026, 19:00 | stadión = NRG Stadium, Houston | druzyna1 = Brazylskô | fana1 = Brazil | wënik1 = 2 | druzyna2 = Japòńskô | fana2 = Japan | wënik2 = 1 | gòle1 = Casemiro 56’, Martinelli 90+6 | gòle2 = Sano 29’ | òbzérôczë = 68 777 | sãdza = Maurizio Mariani }} <br> ---- {{fùsbalowi mecz | etap = Mecz 77 | data = 30 czerwińca 2026, 23:00 | stadión = MetLife Stadium, East Rutherford | druzyna1 = Francëskô | fana1 = France | wënik1 = 3 | druzyna2 = Szwedzkô | fana2 = Sweden | wënik2 = 0 | gòle1 = Mbappé 45’, 74’; Barcola 53’ | òbzérôczë = 80 663 | sãdza = Danny Makkelie }} <br> ---- {{fùsbalowi mecz | etap = Mecz 78 | data = 30 czerwińca 2026, 19:00 | stadión = AT&T Stadium, Arlington | druzyna1 = Ùbrzég Słoniowëch Kłów | fana1 = Ivory Coast | wënik1 = 1 | gòle1 = Diallo 74’ | druzyna2 = Norweskô | fana2 = Norway | wënik2 = 2 | gòle2 = Nusa 39’, Haaland 86’ | òbzérôczë = 69 665 | sãdza = Jesús Valenzuela }} <br> ---- {{fùsbalowi mecz | etap = Mecz 79 | data = 1 lëpińca 2026, 03:00 | stadión = Estadio Azteca, Meksyk | druzyna1 = Meksyk | fana1 = Mexico | wënik1 = 2 | druzyna2 = Ekwador | fana2 = Ecuador | wënik2 = 0 | gòle1 = Quiñones 22’, Jiménez 31’ | òbzérôczë = 80 824 | sãdza = Slavko Vinčić }} <br> ---- {{fùsbalowi mecz | etap = Mecz 80 | data = 1 lëpińca 2026, 18:00 | stadión = Mercedes-Benz Stadium, Atlanta | druzyna1 = Anielskô | fana1 = England | wënik1 = 2 | druzyna2 = Demòkraticznô Repùblika Kònga | fana2 = Democratic Republic of the Congo | wënik2 = 1 | gòle1 = Kane 75’, 86’ | gòle2 = Cipenga 7’ | òbzérôczë = 68 239 | sãdza = Adham Makhadmeh }} <br> ---- {{fùsbalowi mecz | etap = Mecz 82 | data = 1 lëpińca 2026, 22:00 | stadión = Lumen Field, Seattle | druzyna1 = Belgiô | fana1 = Belgium | wënik1 = 3 | gòle1 = Lukaku 86’, 90+1’; Tielemans 89’ | druzyna2 = Senegal | fana2 = Senegal | wënik2 = 2 | gòle2 = Diarra 24’, Sarr 51’ | òbzérôczë = 66 925 | sãdza = Said Martínez }} <br> ---- {{fùsbalowi mecz | etap = Mecz 81 | data = 2 lëpińca 2026, 02:00 | stadión = Levi’s Stadium, Santa Clara | druzyna1 = USA | fana1 = USA | wënik1 = 2 | gòle1 = Pulisic 34’, Balogun 78’ | druzyna2 = Bòsniô a Hercegòwina | fana2 = Bosnia and Herzegovina | wënik2 = 0 | òbzérôczë = 68 827 | sãdza = Raphael Claus }} <br> ---- {{fùsbalowi mecz | etap = Mecz 84 | data = 2 lëpińca 2026, 22:00 | stadión = SoFi Stadium, Los Angeles | druzyna1 = Szpańskô | fana1 = Spain | wënik1 = 3 | gòle1 = Oyarzabal 17', 65'; Porro 39' | druzyna2 = Aùstriackô | fana2 = Austria | wënik2 = 0 | òbzérôczë = 70 492 | sãdza = Glenn Nyberg }} <br> ---- {{fùsbalowi mecz | etap = Mecz 83 | data = 2 lëpińca 2026, 18:00 | stadión = GEHA Field at Arrowhead Stadium, Kansas City | druzyna1 = Pòrtugalskô | fana1 = Portugal | wënik1 = 2 | gòle1 = Cristiano Ronaldo 53' (k.), Gonçalo Ramos 90+4' | druzyna2 = Chòrwackô | fana2 = Croatia | wënik2 = 1 | gòle2 = Perišić 41' | òbzérôczë = 43 036 | sãdza = Espen Eskas }} <br> ---- {{fùsbalowi mecz | etap = Mecz 85 | data = 3 lëpińca 2026, 02:00 | stadión = BC Place, Vancouver | druzyna1 = Szwajcarskô | fana1 = Switzerland | wënik1 = 2 | gòle1 = Embolo 23'; Ndoye 78' | druzyna2 = Algerskô | fana2 = Algeria | wënik2 = 0 | òbzérôczë = 52 497 | sãdza = Yael Falcon Perez }} <br> '''Bôczënk:''' jinfòrmacje zrzeszoné z pòstãpnyma zeńdzeniama mdą aktualizowóné przez całi czas. == Finał == Finał òdbëwa sã [[19 lëpińca]] 2026 rokù na stadionie ''MetLife Stadium'' w East Rutherford (aglomeracjô [[Nowi Jork|Nowégò Jorkù]]). == Òbaczë téż == {{#categorytree:Nożnô bala|hideroot=on|mode=pages}} == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Kòntrola}} [[Kategòrëjô:Nożnô bala]] k671zg2dfoo9afvwfhxj3g4pm8ph9ic Moduł:Kôrta pùnkt 828 13241 204383 2026-07-03T12:22:12Z HaxelKaszëba 17492 Ùsôdzonô nowô starna "local p = {} local function get(args, key, default) return args[key] or default or "" end function p.punkt(frame) local a = frame.args local coords = a[1] or "" local pos = get(a, "pos", "right") local icon = get(a, "céch", "Blue pog.svg") local opis = get(a, "òpisënk", "") local file = "[[File:" .. icon .. "|25px]]" return string.format( '<div style="float:%s; margin:8px; text-align:center;">' .. '%s' .. '<div style="font-size:90%%; margin-t…" 204383 Scribunto text/plain local p = {} local function get(args, key, default) return args[key] or default or "" end function p.punkt(frame) local a = frame.args local coords = a[1] or "" local pos = get(a, "pos", "right") local icon = get(a, "céch", "Blue pog.svg") local opis = get(a, "òpisënk", "") local file = "[[File:" .. icon .. "|25px]]" return string.format( '<div style="float:%s; margin:8px; text-align:center;">' .. '%s' .. '<div style="font-size:90%%; margin-top:4px;">%s</div>' .. '<div style="font-size:80%%; color:#555;">%s</div>' .. '<div style="font-size:70%%; color:#777;">%s</div>' .. '</div>', pos, file, opis, coords, "" ) end return p 6ikd21fa86uhxylnp1tjkjybxn7qfhl 204384 204383 2026-07-03T12:24:25Z HaxelKaszëba 17492 204384 Scribunto text/plain local p = {} function p.punkt(frame) local a = frame.args local coords = a[1] or "" local pos = a.pos or "right" local icon = a.icon or "Blue pog.svg" local opis = a.opis or "" local file = "[[File:" .. icon .. "|25px]]" return string.format( '<div style="float:%s; margin:6px; text-align:center;">%s<br><b>%s</b><br><small>%s</small></div>', pos, file, opis, coords ) end return p 2imx656ai9ezg7y953ofp4m7jx6ci7e 204385 204384 2026-07-03T12:30:10Z HaxelKaszëba 17492 204385 Scribunto text/plain local p = {} function p.mapa(frame) local a = frame.args or {} local punkte = a.punkte or "" return string.format([[ <div style="position:relative; width:100%%; text-align:center;"> <div style="display:inline-block; padding:8px; border:1px solid #ccc; border-radius:8px;"> %s </div> </div> ]], punkty ) end return p pgnd6bik4kgag2x054biw9gkoefidh7 204386 204385 2026-07-03T12:30:53Z HaxelKaszëba 17492 204386 Scribunto text/plain local p = {} function p.mapa(frame) local a = frame.args or {} local punkte = a.punkte or "" return string.format([[ <div style="position:relative; width:100%%; text-align:center;"> <div style="display:inline-block; padding:8px; border:1px solid #ccc; border-radius:8px;"> %s </div> </div> ]], punkte ) end return p 3j2z29tsq2tda5s1jxlq02rn575q0cz 204387 204386 2026-07-03T12:37:06Z HaxelKaszëba 17492 204387 Scribunto text/plain local p = {} function p.punkt(frame) local a = frame.args local coords = a[1] or "" local opis = a.opis or "" local kolor = a.kolor or "🔵" return string.format( '<div style="margin:4px; font-size:90%%;">%s <b>%s</b><br><small>%s</small></div>', kolor, opis, coords ) end return p 8nb0dltmbimoumfyiplp4zl9kgp3gnz 204389 204387 2026-07-03T13:08:37Z HaxelKaszëba 17492 UWAGA! Zastąpienie treści hasła bardzo krótkim tekstem: „print("do usuniecia")” 204389 Scribunto text/plain print("do usuniecia") 9a9qyw10psdbb6gzz3wn8ld6y88dq7z Moduł:Kôrta 828 13242 204388 2026-07-03T12:41:53Z HaxelKaszëba 17492 Ùsôdzonô nowô starna "local p = {} function p.mapa(frame) local a = frame.args or {} local content = a.punkty or "" return string.format([[ <div style=" border:1px solid #bfc8d4; border-radius:10px; padding:10px; background:#fff; text-align:center; "> %s </div> ]], content) end return p" 204388 Scribunto text/plain local p = {} function p.mapa(frame) local a = frame.args or {} local content = a.punkty or "" return string.format([[ <div style=" border:1px solid #bfc8d4; border-radius:10px; padding:10px; background:#fff; text-align:center; "> %s </div> ]], content) end return p k88k8sqeob4b2ug42lyzo7ddbdyw6u0 204390 204388 2026-07-03T13:14:40Z HaxelKaszëba 17492 204390 Scribunto text/plain local p = {} local function get(a, k, d) return a[k] or d or "" end function p.wsp(frame) local a = frame.args or {} local lat = a[1] or "" local lon = a[2] or "" local label = get(a, "opis", "") local coordText = lat .. " " .. lon local mapLink = "https://www.openstreetmap.org/?mlat=" .. lat .. "&mlon=" .. lon .. "#map=10/" .. lat .. "/" .. lon return string.format([[ <div style="font-size:90%%; line-height:1.4;"> <b>%s</b><br> %s<br> <a href="%s" target="_blank">🗺️ kôrta</a> </div> ]], label, coordText, mapLink ) end return p nlf2rfpjwwlq06pxu8ps53cpv76wms8 204391 204390 2026-07-03T13:17:34Z HaxelKaszëba 17492 204391 Scribunto text/plain local p = {} function p.punkt(frame) local a = frame.args local lat = a[1] local lon = a[2] local name = a[3] or "punkt" if not lat or not lon then return "brak danych" end local url = "https://www.openstreetmap.org/?mlat=" .. lat .. "&mlon=" .. lon .. "#map=10/" .. lat .. "/" .. lon return string.format( '<div style="text-align:center">' .. '<div><b>%s</b></div>' .. '<a href="%s" target="_blank">🗺️ mapa</a>' .. '</div>', name, url ) end return p buonh3a94cqobi0fifycudmtn2yhcuw 204392 204391 2026-07-03T13:24:06Z HaxelKaszëba 17492 204392 Scribunto text/plain -- czedës wstawiã nowi kòd tej droga administracjo proszã jesz tegò nie rëmniwac 4uu951mnim6d5i7xibup4hvgxr26e8g 204394 204392 2026-07-03T14:18:26Z HaxelKaszëba 17492 TODO: zrobic kaszëbsczi dolmaczënk 204394 Scribunto text/plain local function getMapParams(map, frame) mw.logObject(map, "map") if not map or (#map == 0) then mw.log("Brak nazwy mapy lokalizacyjnej") end local moduleprefix = "Module:Mapa/dane/" if map then local moduletitle = mw.title.new(map) if not moduletitle or (moduletitle.namespace ~= 828) then moduletitle = mw.title.new(moduleprefix..map) end if not moduletitle then mw.log("„"..map.."” nie jest prawidłową nazwą definicji mapy lokalizacyjnej") elseif moduletitle.exists then local status, mapData = pcall(mw.loadData, moduletitle.fullText) if status then return function(name, variant) if name == nil then --mw.logObject(moduletitle.fullText, "GET module title") return moduletitle.fullText end local variants = variant and mw.text.split(variant, "%s*#%s*") or {} --mw.logObject(variants, "GET map variants") if name == true then for _, v in ipairs(variants) do --mw.logObject(mapData[v], "GET map variant") if type(mapData[v]) == "table" then return v end end return 1 end for _, v in ipairs(variants) do if mapData[v] and mapData[v][name] ~= nil then --mw.logObject({variant=v, name=name, result=mapData[v][name] }, "GET") return mapData[v][name] end end if mapData[1][name] ~= nil then --mw.logObject({name=name, result=mapData[1][name] }, "GET") return mapData[1][name] end --mw.logObject({name=name}, "GET") return "" end end else mw.log("Nie mogę znaleźć definicji podanej mapy lokalizacyjnej. Nie istnieje „"..moduleprefix..map.."”.") end end -- default fallback local mapData = mw.loadData(moduleprefix.."brak") return function(name, variant) if name == nil then return false elseif name == false then return (map and (#map > 0)) and map or false elseif name == true then return 1 elseif mapData[1][name] == nil then return "" elseif variant and mapData[variant] then return mapData[variant][name] or mapData[1][name] else return mapData[1][name] end end end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end local function formatCoordinates(parameters) if not parameters.coordinates then return false end local placement = parameters.placement if not placement then placement = ((parameters.linkFlag == false) or (mw.title.getCurrentTitle().namespace ~= 0)) and "w tekście" or "w tekście i na górze" end return require("Moduł:Współrzędne")["współrzędne"]({ parameters.coordinates, parameters.geohack, ["umieść"] = placement, ["dokładność"] = parameters.precision, ["linkuj"] = parameters.linkFlag == false and "nie" or "tak", symbol = parameters.symbol, }) end local function splitCoordinatesAndReferences(input) return require("Moduł:String/UNIQ").podziel(input, "ref", false) end local function loadMap(frame, map, variant) local getMapParam = getMapParams(map, frame) return function(param) return getMapParam(param, variant) end end local function decodePoints(pointsData) if pointsData and (#pointsData > 0) then local data = mw.text.jsonDecode("["..pointsData.."{\"dummy\":false}]") table.remove(data) -- remove last dummy return data end end local function estimateTextWidth(wikicode, fontSize) local text = mw.ustring.gsub(wikicode, "%[%[[^\n|%]%[]+|([^\n|%]%[]+)%]%]", "%1") text = mw.ustring.gsub(text, "%[%[([^\n|%]%[]+)%]%]", "%1") text = mw.ustring.gsub(text, "<[^>]*>", "") return mw.ustring.len(text) * fontSize end local function positionDescriptionCode(r) local d = math.abs(r - 50) local c = false if d > 40 then c = '3' elseif d > 20 then c = '2' elseif d > 10 then c = '1' else c = '0' end return r > 50 and c..'0' or '0'..c end local function relativePositionDescriptionCode(center, neighbour) local dx = neighbour.x - center.x local dy = neighbour.y - center.y local r = '0' if dx > 0 then r = '1' end local l = '0' if dx < 0 then l = '1' end local t = '0' if dy < 0 then t = '1' end local b = '0' if dy > 0 then b = '1' end local adx = math.abs(dx) local ady = math.abs(dy) if adx > (10 * ady) then t = '0' b = '0' elseif ady > (10 * adx) then r = '0' l = '0' end return r..l..t..b end function plainText(content) if content then local c content, c = mw.ustring.gsub(content, "%[%[%s*[Pp]lik%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[%s*[Ff]ile%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[%s*[Gg]rafika%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[%s*[Ii]mage%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[[^|%]]+|(.-)%]%]", "%1") content, c = mw.ustring.gsub(content, "%[%[(.-)%]%]", "%1") content, c = mw.ustring.gsub(content, "%[.- (.-)%]", "%1") content, c = string.gsub(content, "</?[Ss][Pp][Aa][Nn][^>]*>", "") content, c = string.gsub(content, "</?[Bb][Rr][^>]*>", "") content, c = string.gsub(content, "</?[AaBbIiPpQqSsUu][^>]*>", "") content, c = string.gsub(content, "[ \n\r\t]+", " ") content = mw.text.unstrip(content) content = mw.text.nowiki(content) return mw.text.trim(content) end end local function drawMap(builder, get, width, fontSize, data, infoboxCoordinates, customAlt) local reliefImage = mw.text.trim(get("mapa")) local reliefTitle = mw.title.new("Plik:"..reliefImage) if not reliefTitle.file.exists then reliefTitle = mw.title.new("Plik:Image of nothing.svg") end local file = reliefTitle.file local height = file.height * width / file.width -- przeliczanie punktów na mapie local inside = {} local outside = {} local errors = {} local hoverPoints = false local alt = mw.loadData("Moduł:Mapa/alt") if data and (#data > 0) then local x_func = mw.text.trim(get("x")) local y_func = mw.text.trim(get("y")) local top = get("top") local left = get("left") local bottom = get("bottom") local right = get("right") if #x_func == 0 then x_func = false end if #y_func == 0 then y_func = false end for i, v in ipairs(data) do if v.latitude and v.longitude and v.mark and v.size then -- przeliczanie współrzędnych na pozycje rysowania if x_func then local expx = mw.ustring.gsub(mw.ustring.gsub(x_func, "{{{szerokość}}}", v.latitude), "{{{długość}}}", v.longitude) v.x = tonumber(mw.ext.ParserFunctions.expr(expx)) else v.x = getX(v.longitude, left, right) end if y_func then local expy = mw.ustring.gsub(mw.ustring.gsub(y_func, "{{{szerokość}}}", v.latitude), "{{{długość}}}", v.longitude) v.y = tonumber(mw.ext.ParserFunctions.expr(expy)) else v.y = getY(v.latitude, top, bottom) end v.rx = width * v.x / 100 v.ry = height * v.y / 100 v.posDesc = alt.relativeDescription[positionDescriptionCode(v.x)..positionDescriptionCode(100-v.y)] if not v.alt then v.autoAlt = alt.pointDescription[v.mark] or alt.pointDescription[false] local desc = plainText(v.description) if desc and #desc > 0 then v.autoAlt = v.autoAlt..mw.ustring.format(alt.describedAs, desc) end end mw.logObject(v) if (v.x < 0) or (v.x > 100) or (v.y < 0) or (v.y > 100) then table.insert(outside, v) else table.insert(inside, v) if not hoverPoints and (v.position == "hover") and v.description then hoverPoints = true end end elseif v.error then table.insert(errors, v) else -- TODO illegal data or "dummy: false" mw.logObject(v, "illegal at "..tostring(i)) end end end -- automatyczne pozycjonowanie dwóch punktów if (#inside == 2) and inside[1].description and inside[2].description and not inside[1].position and not inside[2].position then local y1 = inside[1].ry local y2 = inside[2].ry if (math.abs(y1 - y2) < 16) and (y1 > 8) and (y2 > 8) and ((height - y1) > 8) and ((height - y2) > 8) and (math.abs(inside[1].rx - inside[2].rx) < 80) then inside[1].position = y2 > y1 and "top" or "bottom" inside[2].position = y1 > y2 and "top" or "bottom" end end local altInfo = customAlt if not altInfo then altInfo = get("alt") or "" if #altInfo == 0 then local g = get("dopełniacz") if g then altInfo = "Mapa konturowa "..g end end if (#altInfo > 0) and (#inside > 0) then local extAlt = inside[1].posDesc..alt.thereIs..(inside[1].alt or inside[1].autoAlt) if #inside == 1 then altInfo = altInfo..", "..extAlt elseif #inside == 2 then local extAlt2 = alt.combine2..inside[2].posDesc..alt.thereIs..(inside[2].alt or inside[2].autoAlt) if inside[1].posDesc == inside[2].posDesc then local code = relativePositionDescriptionCode(inside[1], inside[2]) extAlt2 = (alt.relativeDescription2[code] or alt.relativeDescription2[false])..alt.thereIs2..(inside[2].alt or inside[2].autoAlt) end altInfo = altInfo..", "..extAlt..", "..extAlt2 elseif (#inside > 1) and infoboxCoordinates then altInfo = altInfo..", "..extAlt end end end -- tło mapy local relief = builder:tag("div") relief:css({ position = "relative", border = "0 solid #aaa", padding = "0", width = tostring(width).."px" }) relief:wikitext("[[Plik:", reliefImage, "|", width, "px|class=notpageimage|link=") if #altInfo > 0 then relief:wikitext("|alt=", altInfo) end if not hoverPoints then local reliefInfo = get("dopełniacz") if reliefInfo then relief:wikitext("|Mapa lokalizacyjna ", reliefInfo) end end relief:wikitext("]]") function showError(category, ...) local catLink = "" local known = { ["brak mapy"] = { "'''Brak mapy:''' ''%s''", "[[Kategoria:Szablony lokalizacyjne - brak mapy]]", }, ["brak kodu mapy"] = { "'''Brak kodu mapy'''", "[[Kategoria:Szablony lokalizacyjne - brak kodu mapy]]", }, ["współrzędne spoza mapy"] = { "'''Współrzędne spoza mapy:''' ''%f %f''", "[[Kategoria:Szablony lokalizacyjne - współrzędne spoza mapy]]", }, ["brak współrzędnych"] = { "'''Brak współrzędnych'''", "[[Kategoria:Szablony lokalizacyjne – brak współrzędnych]]", }, [true] = { "%s", false }, [false] = { "'''''Inny błąd'''''", false, }, } local k = known[category] or known[false] local message = mw.ustring.format(k[1], ...) if k[2] and (mw.title.getCurrentTitle().namespace == 0) then message = message..k[2] end local absolute = relief:tag("div") :css( { position = "absolute", ["z-index"] = 200, top = "50%", left = "50%", height = 0, width = 0, margin = 0, padding = 0, } ) local msg = absolute:tag("div") :css( { ["font-size"] = "90%", ["line-height"] = "110%", position = "relative", width = "16em", ["z-index"] = 202, top = "-0.5em", left = "-8em", float = "center", ["text-align"] = "center", background = "white", color = "red", } ) :wikitext(message) end -- brak mapy if not get() then local map = get(false) showError(map and "brak mapy" or "brak kodu mapy", map) if (#inside == 1) and (#outside == 0) then local v = inside[1] if (v.longitude == 0) and (v.latitude == 0) then --mw.log("dummy (0 0) bez mapy nie jest rysowany") return end end end -- błędy if (#inside == 0) and (#outside == 0) then showError("brak współrzędnych") end for i, v in ipairs(outside) do showError("współrzędne spoza mapy", v.latitude, v.longitude) end for i, v in ipairs(errors) do showError(true, v.error or "?") end -- punkty na mapie for i, v in ipairs(inside) do local hsize = tostring(v.size/2).."px" local size = tostring(v.size).."px" local absolute = relief:tag("div") :attr("aria-hidden", "true") :css( { position = "absolute", ["z-index"] = 2, top = tostring(v.y).."%", left = tostring(v.x).."%", height = 0, width = 0, margin = 0, padding = 0, } ) local file = absolute:tag("div") :css( { position = "relative", ["text-align"] = "center", left = "-"..hsize, top = "-"..hsize, width = size, ["font-size"] = size, ["line-height"] = size, } ) file:wikitext("[[Plik:", v.mark, "|", v.size, "x", size, "|link=", v.link) if v.description then file:wikitext("|", v.description) end file:wikitext("]]") -- TODO description if v.description and (v.position ~= "hover") then local textWidthLimit = 120 function descriptionWidth(availableWidth) return availableWidth <= 0 and "auto" or (math.min(availableWidth, textWidthLimit).."px") end local descw = "auto" local css = {} if v.position == "right" then descw = descriptionWidth(math.floor(width - v.rx - (v.size / 2) - 5)) css = { top = "-0.5em", left = tostring((v.size / 2) + 2).."px", ["text-align"] = "left", float = "left" } elseif v.position == "left" then descw = descriptionWidth(math.floor(v.rx - (v.size / 2) - 5)) css = { top = "-0.5em", right = tostring((v.size / 2) + 2).."px", ["text-align"] = "right", float = "right" } elseif v.position == "top" then descw = "10em" css = { bottom = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } elseif v.position == "bottom" then descw = "10em" css = { top = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } else -- auto local textWidth = estimateTextWidth(v.description, fontSize) * 0.6 local twoLines = textWidth > textWidthLimit local minY = fontSize * (twoLines and 1 or 0.5) local maxY = height - minY local goodY = (v.ry >= minY) and (v.ry <= maxY) if goodY and ((v.x < 50) or ((v.rx + textWidth + (v.size / 2) + 2) < width)) then -- right descw = descriptionWidth(math.floor(width - v.rx - (v.size / 2) - 5)) css = { top = twoLines and "-1em" or "-0.5em", left = tostring((v.size / 2) + 2).."px", ["text-align"] = "left", float = "left" } elseif goodY and (((v.rx - (v.size / 2) - 2) > textWidth) or (v.x > 70)) then -- left descw = descriptionWidth(math.floor(v.rx - (v.size / 2) - 5)) css = { top = twoLines and "-1em" or "-0.5em", right = tostring((v.size / 2) + 2).."px", ["text-align"] = "right", float = "right" } elseif (v.y > 50) then -- top descw = "10em" css = { bottom = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } else -- bottom descw = "10em" css = { top = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } end end local desc = absolute:tag("div") :css( { ["font-size"] = tostring(fontSize).."px", ["line-height"] = tostring(1.2*fontSize).."px", ["z-index"] = "90", ["position"] = "absolute", ["width"] = descw, } ) desc:css(css) desc:tag("span") :css({ padding = "1px", ["text-shadow"] = "0 0 5px white;" }) :wikitext(v.description) end end end local function makeTrackingLinks(get, group) local linkAlias = get("link alias") local mapVariant = get(true) if not linkAlias or (#linkAlias == 0) then return end local trackingLink = "Moduł:Mapa/linkujące/"..linkAlias.."/"..group -- (kosztowne!) _ = mw.title.new(trackingLink).id -- (kosztowne!) _ = mw.title.new(trackingLink.."/"..mapVariant).id end local function adjustPointParams(points, mapgeohack) for i, p in ipairs(points) do local link = p.link if link then if mapgeohack==false then p.link = "" elseif mapgeohack then p.link = link.."_"..mapgeohack elseif p.geohack then p.link = link.."_"..p.geohack end end end end local function tryGetMapFor(property) local pid, qid, props = require("Module:Wikidane/select").selectProperty(property, mw.loadData("Moduł:Mapa/filters"), nil, nil, "najlepsza") if not qid then return end local maps = {} for i, v in ipairs(props) do if v.mainsnak and (v.mainsnak.snaktype == "value") and (v.mainsnak.datatype == "wikibase-item") then local name = mw.wikibase.getLabelByLang(v.mainsnak.datavalue.value.id, "pl") if name then table.insert(maps, name) end end end if #maps <= 0 then return end local result = table.concat(maps,'#') mw.logObject(result,"tryGetMapFor("..property..")") return result end local function isKartographerZoom(map, size) if not map then return false end if string.match(map,"^[1-9]$") or string.match(map, "^1[0-9]$") then return map end local w = tonumber(size) if w and (w > 0) then local d, k = string.match(map, "^([0-9]+) ?(k?)m$") local d = tonumber(d) if d and (d > 0) then if k == "k" then d = d * 1000 end local z = (math.log(96000) + math.log(w) - math.log(d)) / math.log(2) local zoom = math.min(math.max(math.floor(z), 1),19) mw.logObject({w = w, d = d, z=z, zoom=zoom}, "zoom calc") return zoom end end return false end return { ["Wartość"] = function(frame) local f = frame.args[1] and frame or frame:getParent() return getMapParams(f.args[1], frame)(f.args[2], f.args[3]) end, ["Infobox"] = function(frame) -- log wskazujący na początek wywołania funkcji mw.log("{{#invoke:Moduł:Mapa|Infobox}}") local args = require('Module:Arguments').getArgs(frame, { trim = true, removeBlanks = true, wrappers = "Szablon:Infobox mapa lokalizacyjna", }) local defaultIcon = "[[Plik:Geographylogo.svg|20px|alt=Ziemia|link=Ziemia]]" local map = args["mapa"] or tryGetMapFor("P17") -- państwo or tryGetMapFor("P706") -- region geograficzny or tryGetMapFor("P30") -- kontynent or "brak" -- poddaję się local variant = args["wariant"] local description = args["opis"] local mark = args["znak na mapie"] or "Red pog.svg" local markSize = tonumber(args["wielkość znaku"]) or 6 local coordinates = args["współrzędne"] local coordsRefs = false local markalt = args["alt znaku na mapie"] if not coordinates then mw.log("infobox może wyszukać współrzędne w wikidanych") else coordinates, coordsRefs = splitCoordinatesAndReferences(coordinates) mw.logObject(coordinates, "współrzędne") if coordsRefs then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/przypisy").id mw.logObject(coordsRefs, "przypisy") end end local precision = args["dokładność"] local twoMaps = args["dwie mapy"] local category = args["kategoria"] local geohack = args["opcje geohack"] local position = args["pozycja opisu"] local points = args["punkty mapy"] mw.logObject({precision = precision, twoMaps = twoMaps, category = category, geohack = geohack, position = position, points = points}, "argumenty") if points and not string.match(points, "%s*{") then mw.log("załączone punkty do mapy są w nieodpowiednim formacie") return end if not points and not coordinates then if args["wikidane"] == "nie" then mw.log("brak punktów na mapę, a nie ma pozwolenia na Wikidane") elseif map ~= "pusta" then mw.log("brak punktów na mapę i współrzędnych, nadszedł czas na Wikidane") local display = true if (map ~= "osobna") and (map ~= "niedostępna") then display = "#coordinates" end local p = require("Moduł:Współrzędne").punkt({ ["opcje geohack"] = geohack, ["znak"] = mark, ["rozmiar znaku"] = markSize, ["opis"] = description, ["pozycja"] = position, ["dokładność"] = precision, ["alt"] = markalt, display = display, symbol = false, }) if not p then mw.log("brak punktów na mapę nawet w Wikidanych") end points = p end end if not points and not coordinates and (mw.title.getCurrentTitle().fullText == frame:getParent():getTitle()) and (type(frame.getParent) == "function") then --TEST ANY ARG local any = false for k, v in pairs(frame:getParent().args) do any = true break end if not any then -- brak jakichkolwiek argumentów w szablonie to tryb demo points = require("Moduł:Współrzędne").punkt({ "0 0", display = true, symbol = false, }) map = "brak" end end if not points and not coordinates then if not category or (mw.title.getCurrentTitle().namespace ~= 0) or (map == "żadna") or (map == "osobna") or (map == "pusta") or (map == "niedostępna") then return end return '|- style="display:none;"\n!colspan="2"|brak współrzędnych[[Kategoria:Szablony lokalizacyjne – brak współrzędnych – '..category..']]\n|-' end local result = {} local coords = false if (map == "żadna") or (map == "none") then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/żadna").id -- TODO współrzędne, geohack, linkuj=tak, dokładność=kątowo, umieść=w tekście (i na górze) coords = formatCoordinates({ coordinates = coordinates, geohack = geohack, linkFlag = true, }) elseif map == "osobna" then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/osobna").id -- TODO współrzędne, geohack, linkuj=tak, dokładność=kątowo, umieść=w tekście coords = formatCoordinates({ coordinates = coordinates, geohack = geohack, linkFlag = true, placement = "w tekście", }) elseif map == "pusta" then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/pusta").id -- no map nor coordinates elseif map == "niedostępna" then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/niedostępna").id -- TODO współrzędne, globe:none, linkuj=nie, dokładność=dziesiętnie, normalizacja=auto, ikona= coords = formatCoordinates({ coordinates = coordinates, linkFlag = false, precision = precision or "dziesiętnie", }) elseif (map == "dynamiczna") or isKartographerZoom(map, 240) then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/kartographer").id -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/kartographer/"..map).id coords = formatCoordinates({ coordinates = coordinates, geohack = geohack or "", linkFlag = true, precision = precision or "kątowo", symbol = icon, }) local primaryPoint = false if coordinates then local p = require("Moduł:Współrzędne").punkt({ coordinates, ["znak"] = mark, ["rozmiar znaku"] = markSize, ["opis"] = description, symbol = false, }) primaryPoint = true points = points and (p..points) or p end local pointsData = decodePoints(points) mw.logObject(pointsData, "pointsData") if not coords and pointsData and (#pointsData > 0) then icon = false coords = pointsData[1].display end longitude = 0 latitude = 0 for i, v in ipairs(pointsData) do longitude = longitude + v.longitude latitude = latitude + v.latitude end longitude = longitude / #pointsData latitude = latitude / #pointsData local mapWidth = 238 local map1 = mw.html.create("div") :css( { margin="0 auto", ["text-align"]="center", width=tostring(mapWidth+4).."px" } ) map1:tag("div") :css( { ["font-weight"]= "bold", color="var(--color-subtle, #54595d);" } ) :wikitext("Położenie na mapie") local content = {} if #pointsData == 1 then content.type = "Feature" content.properties = {} content.properties["marker-color"] = "f00" content.properties["marker-size"] = "medium" content.properties.description = description content.geometry = { type = "Point", coordinates = {longitude, latitude}, } else content.type = "FeatureCollection" content.features = {} for i, v in ipairs(pointsData) do p = {} p.type = "Feature" p.properties = {} p.properties["marker-size"] = (primaryPoint and (i == 1)) and "medium" or "small" p.properties["marker-color"] = (primaryPoint and (i == 1)) and "f00" or "00f" p.geometry = { type = "Point", coordinates = {v.longitude, v.latitude}, } table.insert(content.features, p) end end mw.logObject(content, "content") local contentJson = mw.text.jsonEncode(content, mw.text.JSON_PRETTY) mw.logObject(contentJson, "contentJson") local zoom = isKartographerZoom(map, 240) if not zoom then zoom = (#pointsData > 1) and nil -- zoom się sam ustali (TODO sprawdź czy punkty są różne) or 12 -- jeden punkt wymaga konkretnej skali end local kartographer = frame:extensionTag('mapframe', contentJson, { width = mapWidth, height = mapWidth, zoom = zoom, longitude = longitude, latitude = latitude, align = "center", lang = "local", frameless = 1 }) map1:wikitext(kartographer) table.insert(result, '|- class="infobox-locationmap" style="background-color:var(--background-color-base, #fff); color:black; text-align:center; border-top:1px solid var(--border-color-base, #a2a9b1);"\n|colspan="2"|') table.insert(result, tostring(map1:allDone())) table.insert(result, "\n") else local maps = {} local list = string.match(map, "#") for v in mw.ustring.gmatch(map, "[^#]+") do table.insert(maps, mw.text.trim(v)) end if #maps == 0 then table.insert(maps, map) end if not list and (twoMaps ~= "nie") then while #map > 0 do local get = loadMap(frame, map, variant) map = mw.text.trim(get("nadrzędna") or "") if #map > 0 then table.insert(maps, 2, map) end end end local mapIndex = 1 local map = maps[mapIndex] local get = loadMap(frame, map, variant) -- prepare coordinates under the map local icon = mw.text.trim(get("ikona") or "") if #icon == 0 then icon = defaultIcon end local mapPrecision = get("dokładność") if mapPrecision and (#mapPrecision <= 0) then mapPrecision = nil end coords = formatCoordinates({ coordinates = coordinates, geohack = geohack or get("globe") or "", linkFlag = get("globe") ~= false, precision = precision or mapPrecision or "kątowo", symbol = icon, }) if coordinates then local p = require("Moduł:Współrzędne").punkt({ coordinates, ["opcje geohack"] = geohack, ["znak"] = mark, ["rozmiar znaku"] = markSize, ["opis"] = description, ["pozycja"] = position, alt = markalt, symbol = false, }) --primaryPoint = true points = points and (p..points) or p end local pointsData = decodePoints(points) if pointsData then adjustPointParams(pointsData, get("globe")) end if not coords and pointsData and (#pointsData > 0) then icon = false coords = pointsData[1].display end -- tracking link, pseudo reference to primary map makeTrackingLinks(get, "primary") -- draw maps while map do map = nil -- draw map local mapWidth = tonumber(get("rozmiar")) or 238 if mapWidth > 238 then mapWidth = 238 elseif mapWidth < 100 then mapWidth = 100 end local map1 = mw.html.create("div") :css( { margin="0 auto", ["text-align"]="center", width=tostring(mapWidth+4).."px" } ) map1:tag("div") :css( { ["font-weight"]= "bold", color="var(--color-subtle, #54595d);" } ) :wikitext("Położenie na mapie ", get("dopełniacz")) drawMap(map1:tag("div"):addClass("mapa-lokalizacyjna"), get, mapWidth, 12.6, pointsData, coordinates, false) table.insert(result, '|- class="infobox-locationmap" style="background-color:var(--background-color-base, #fff); color:black; text-align:center; border-top:1px solid var(--border-color-base, #a2a9b1);"\n|colspan="2"|') table.insert(result, tostring(map1:allDone())) table.insert(result, "\n") -- next parent if mapIndex < #maps then mapIndex = mapIndex + 1 map = maps[mapIndex] get = loadMap(frame, map, variant) end end end -- Fix for T420051 for Parsoid -- For legacy parser, the processing of indicator tag in -- Moduł:Współrzędne puts it in ParserOutput but Parsoid requires -- explicit wikitext to be passed back to it. This code extracts the -- indicator wikitext and inserts it into the return value of this -- module for Parsoid. if not coords and points then local pointsData = decodePoints(points) if pointsData and (#pointsData > 0) then coords = pointsData[1].display end end if coords then table.insert(result, '|-\n|colspan="2" style="background-color:var(--background-color-base, #fff); color:black; text-align:center; border-bottom:1px solid var(--border-color-base, #a2a9b1);"|') table.insert(result, coords) if coordsRefs then table.insert(result, coordsRefs) end table.insert(result, "\n") end if #result > 0 then table.insert(result, "|-") end return table.concat(result) end, ["Thumb"] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = true, removeBlanks = false, wrappers = "Szablon:Mapa lokalizacyjna", }) local map = args["mapa"] or args[1] or "{{{1}}}" if #map == 0 then map = nil end local variant = args["wariant"] local width = tonumber(args["rozmiar"]) or 238 local fontSize = tonumber(args["font-size"]) or 12.6 local align = args["wyrównanie"] or "right" local footer = args["podpis"] local alt = args["alt"] local pointsData = decodePoints(args["punkty mapy"]) local get = loadMap(frame, map, variant) if pointsData then adjustPointParams(pointsData, get("globe")) end -- tracking link, pseudo reference to this map makeTrackingLinks(get, "standalone") local positionClass = { ["center"] = "center", ["right"] = "tright", ["left"] = "tleft", [""] = "tnone", } local thumb = mw.html.create("div") :addClass("thumb") :addClass(positionClass[align] or align) :addClass("panel-with-scroll") :wikitext('\n') local thumbinner = thumb:tag("div") :addClass("thumbinner") :css({ width = tostring(width + 2).."px" }) :wikitext('\n') local border = thumbinner:tag("div") :css({ border = "1px solid #ccc", width = tostring(width).."px !important" }) local builder = border:tag("div") --:addClass("mapa-lokalizacyjna") :css({ margin = "0 auto", width = tostring(width).."px" }) drawMap(builder, get, width, fontSize, pointsData, false, alt) if pointsData and (#pointsData == 1) and (mw.title.getCurrentTitle().namespace == 0) then builder:wikitext("[[Kategoria:Mapa lokalizacyjna z jednym punktem]]") end thumbinner :wikitext('\n') local thumbcaption = thumbinner:tag("div") :addClass("thumbcaption") thumbcaption:tag("div") :addClass("magnify") :wikitext("[[Plik:Geographylogo.svg|16x16px|link=Wikiprojekt:Szablony lokalizacyjne]]") if footer and (#footer > 0) then thumbcaption:wikitext(footer) else thumbcaption:wikitext("Położenie na mapie ", mw.text.nowiki(get("dopełniacz") or "")) end thumbinner :wikitext('\n') thumb :wikitext('\n') return thumb:allDone() end, ["Inline"] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = true, removeBlanks = false, wrappers = "Szablon:Mapa lokalizacyjna", }) local map = args["mapa"] or args[1] or "{{{1}}}" if #map == 0 then map = nil end local variant = args["wariant"] local width = tonumber(args["rozmiar"]) or 238 local fontSize = tonumber(args["font-size"]) or 12.6 local alt = args["alt"] local pointsData = decodePoints(args["punkty mapy"]) local get = loadMap(frame, map, variant) if pointsData then adjustPointParams(pointsData, get("globe")) end -- tracking link, pseudo reference to this map makeTrackingLinks(get, "standalone") local builder = mw.html.create("div") :addClass("mapa-lokalizacyjna") :css({ margin ="0 auto", width = tostring(width + 2).."px", padding = "3px", margin = "3px" }) drawMap(builder, get, width, fontSize, pointsData, false, alt) if pointsData and (#pointsData == 1) and (mw.title.getCurrentTitle().namespace == 0) then builder:wikitext("[[Kategoria:Mapa lokalizacyjna z jednym punktem]]") end return builder:allDone() end, } mymjo1b8znhin7ip06qsaf22yex37vn 204395 204394 2026-07-03T14:28:22Z HaxelKaszëba 17492 204395 Scribunto text/plain local function getMapParams(map, frame) mw.logObject(map, "map") if not map or (#map == 0) then mw.log("Brak nazwy mapy lokalizacyjnej") end local moduleprefix = "Module:Kôrta/dane/" if map then local moduletitle = mw.title.new(map) if not moduletitle or (moduletitle.namespace ~= 828) then moduletitle = mw.title.new(moduleprefix..map) end if not moduletitle then mw.log("„"..map.."” nie jest prawidłową nazwą definicji mapy lokalizacyjnej") elseif moduletitle.exists then local status, mapData = pcall(mw.loadData, moduletitle.fullText) if status then return function(name, variant) if name == nil then --mw.logObject(moduletitle.fullText, "GET module title") return moduletitle.fullText end local variants = variant and mw.text.split(variant, "%s*#%s*") or {} --mw.logObject(variants, "GET map variants") if name == true then for _, v in ipairs(variants) do --mw.logObject(mapData[v], "GET map variant") if type(mapData[v]) == "table" then return v end end return 1 end for _, v in ipairs(variants) do if mapData[v] and mapData[v][name] ~= nil then --mw.logObject({variant=v, name=name, result=mapData[v][name] }, "GET") return mapData[v][name] end end if mapData[1][name] ~= nil then --mw.logObject({name=name, result=mapData[1][name] }, "GET") return mapData[1][name] end --mw.logObject({name=name}, "GET") return "" end end else mw.log("Nie mogę znaleźć definicji podanej mapy lokalizacyjnej. Nie istnieje „"..moduleprefix..map.."”.") end end -- default fallback local mapData = mw.loadData(moduleprefix.."brak") return function(name, variant) if name == nil then return false elseif name == false then return (map and (#map > 0)) and map or false elseif name == true then return 1 elseif mapData[1][name] == nil then return "" elseif variant and mapData[variant] then return mapData[variant][name] or mapData[1][name] else return mapData[1][name] end end end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end local function formatCoordinates(parameters) if not parameters.coordinates then return false end local placement = parameters.placement if not placement then placement = ((parameters.linkFlag == false) or (mw.title.getCurrentTitle().namespace ~= 0)) and "w tekście" or "w tekście i na górze" end return require("Moduł:Współrzędne")["współrzędne"]({ parameters.coordinates, parameters.geohack, ["umieść"] = placement, ["dokładność"] = parameters.precision, ["linkuj"] = parameters.linkFlag == false and "nie" or "tak", symbol = parameters.symbol, }) end local function splitCoordinatesAndReferences(input) return require("Moduł:String/UNIQ").podziel(input, "ref", false) end local function loadMap(frame, map, variant) local getMapParam = getMapParams(map, frame) return function(param) return getMapParam(param, variant) end end local function decodePoints(pointsData) if pointsData and (#pointsData > 0) then local data = mw.text.jsonDecode("["..pointsData.."{\"dummy\":false}]") table.remove(data) -- remove last dummy return data end end local function estimateTextWidth(wikicode, fontSize) local text = mw.ustring.gsub(wikicode, "%[%[[^\n|%]%[]+|([^\n|%]%[]+)%]%]", "%1") text = mw.ustring.gsub(text, "%[%[([^\n|%]%[]+)%]%]", "%1") text = mw.ustring.gsub(text, "<[^>]*>", "") return mw.ustring.len(text) * fontSize end local function positionDescriptionCode(r) local d = math.abs(r - 50) local c = false if d > 40 then c = '3' elseif d > 20 then c = '2' elseif d > 10 then c = '1' else c = '0' end return r > 50 and c..'0' or '0'..c end local function relativePositionDescriptionCode(center, neighbour) local dx = neighbour.x - center.x local dy = neighbour.y - center.y local r = '0' if dx > 0 then r = '1' end local l = '0' if dx < 0 then l = '1' end local t = '0' if dy < 0 then t = '1' end local b = '0' if dy > 0 then b = '1' end local adx = math.abs(dx) local ady = math.abs(dy) if adx > (10 * ady) then t = '0' b = '0' elseif ady > (10 * adx) then r = '0' l = '0' end return r..l..t..b end function plainText(content) if content then local c content, c = mw.ustring.gsub(content, "%[%[%s*[Pp]lik%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[%s*[Ff]ile%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[%s*[Gg]rafika%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[%s*[Ii]mage%s*:.-%]%]", "") content, c = mw.ustring.gsub(content, "%[%[[^|%]]+|(.-)%]%]", "%1") content, c = mw.ustring.gsub(content, "%[%[(.-)%]%]", "%1") content, c = mw.ustring.gsub(content, "%[.- (.-)%]", "%1") content, c = string.gsub(content, "</?[Ss][Pp][Aa][Nn][^>]*>", "") content, c = string.gsub(content, "</?[Bb][Rr][^>]*>", "") content, c = string.gsub(content, "</?[AaBbIiPpQqSsUu][^>]*>", "") content, c = string.gsub(content, "[ \n\r\t]+", " ") content = mw.text.unstrip(content) content = mw.text.nowiki(content) return mw.text.trim(content) end end local function drawMap(builder, get, width, fontSize, data, infoboxCoordinates, customAlt) local reliefImage = mw.text.trim(get("mapa")) local reliefTitle = mw.title.new("Plik:"..reliefImage) if not reliefTitle.file.exists then reliefTitle = mw.title.new("Plik:Image of nothing.svg") end local file = reliefTitle.file local height = file.height * width / file.width -- przeliczanie punktów na mapie local inside = {} local outside = {} local errors = {} local hoverPoints = false local alt = mw.loadData("Moduł:Mapa/alt") if data and (#data > 0) then local x_func = mw.text.trim(get("x")) local y_func = mw.text.trim(get("y")) local top = get("top") local left = get("left") local bottom = get("bottom") local right = get("right") if #x_func == 0 then x_func = false end if #y_func == 0 then y_func = false end for i, v in ipairs(data) do if v.latitude and v.longitude and v.mark and v.size then -- przeliczanie współrzędnych na pozycje rysowania if x_func then local expx = mw.ustring.gsub(mw.ustring.gsub(x_func, "{{{szerokość}}}", v.latitude), "{{{długość}}}", v.longitude) v.x = tonumber(mw.ext.ParserFunctions.expr(expx)) else v.x = getX(v.longitude, left, right) end if y_func then local expy = mw.ustring.gsub(mw.ustring.gsub(y_func, "{{{szerokość}}}", v.latitude), "{{{długość}}}", v.longitude) v.y = tonumber(mw.ext.ParserFunctions.expr(expy)) else v.y = getY(v.latitude, top, bottom) end v.rx = width * v.x / 100 v.ry = height * v.y / 100 v.posDesc = alt.relativeDescription[positionDescriptionCode(v.x)..positionDescriptionCode(100-v.y)] if not v.alt then v.autoAlt = alt.pointDescription[v.mark] or alt.pointDescription[false] local desc = plainText(v.description) if desc and #desc > 0 then v.autoAlt = v.autoAlt..mw.ustring.format(alt.describedAs, desc) end end mw.logObject(v) if (v.x < 0) or (v.x > 100) or (v.y < 0) or (v.y > 100) then table.insert(outside, v) else table.insert(inside, v) if not hoverPoints and (v.position == "hover") and v.description then hoverPoints = true end end elseif v.error then table.insert(errors, v) else -- TODO illegal data or "dummy: false" mw.logObject(v, "illegal at "..tostring(i)) end end end -- automatyczne pozycjonowanie dwóch punktów if (#inside == 2) and inside[1].description and inside[2].description and not inside[1].position and not inside[2].position then local y1 = inside[1].ry local y2 = inside[2].ry if (math.abs(y1 - y2) < 16) and (y1 > 8) and (y2 > 8) and ((height - y1) > 8) and ((height - y2) > 8) and (math.abs(inside[1].rx - inside[2].rx) < 80) then inside[1].position = y2 > y1 and "top" or "bottom" inside[2].position = y1 > y2 and "top" or "bottom" end end local altInfo = customAlt if not altInfo then altInfo = get("alt") or "" if #altInfo == 0 then local g = get("dopełniacz") if g then altInfo = "Mapa konturowa "..g end end if (#altInfo > 0) and (#inside > 0) then local extAlt = inside[1].posDesc..alt.thereIs..(inside[1].alt or inside[1].autoAlt) if #inside == 1 then altInfo = altInfo..", "..extAlt elseif #inside == 2 then local extAlt2 = alt.combine2..inside[2].posDesc..alt.thereIs..(inside[2].alt or inside[2].autoAlt) if inside[1].posDesc == inside[2].posDesc then local code = relativePositionDescriptionCode(inside[1], inside[2]) extAlt2 = (alt.relativeDescription2[code] or alt.relativeDescription2[false])..alt.thereIs2..(inside[2].alt or inside[2].autoAlt) end altInfo = altInfo..", "..extAlt..", "..extAlt2 elseif (#inside > 1) and infoboxCoordinates then altInfo = altInfo..", "..extAlt end end end -- tło mapy local relief = builder:tag("div") relief:css({ position = "relative", border = "0 solid #aaa", padding = "0", width = tostring(width).."px" }) relief:wikitext("[[Plik:", reliefImage, "|", width, "px|class=notpageimage|link=") if #altInfo > 0 then relief:wikitext("|alt=", altInfo) end if not hoverPoints then local reliefInfo = get("dopełniacz") if reliefInfo then relief:wikitext("|Mapa lokalizacyjna ", reliefInfo) end end relief:wikitext("]]") function showError(category, ...) local catLink = "" local known = { ["brak mapy"] = { "'''Brak mapy:''' ''%s''", "[[Kategoria:Szablony lokalizacyjne - brak mapy]]", }, ["brak kodu mapy"] = { "'''Brak kodu mapy'''", "[[Kategoria:Szablony lokalizacyjne - brak kodu mapy]]", }, ["współrzędne spoza mapy"] = { "'''Współrzędne spoza mapy:''' ''%f %f''", "[[Kategoria:Szablony lokalizacyjne - współrzędne spoza mapy]]", }, ["brak współrzędnych"] = { "'''Brak współrzędnych'''", "[[Kategoria:Szablony lokalizacyjne – brak współrzędnych]]", }, [true] = { "%s", false }, [false] = { "'''''Inny błąd'''''", false, }, } local k = known[category] or known[false] local message = mw.ustring.format(k[1], ...) if k[2] and (mw.title.getCurrentTitle().namespace == 0) then message = message..k[2] end local absolute = relief:tag("div") :css( { position = "absolute", ["z-index"] = 200, top = "50%", left = "50%", height = 0, width = 0, margin = 0, padding = 0, } ) local msg = absolute:tag("div") :css( { ["font-size"] = "90%", ["line-height"] = "110%", position = "relative", width = "16em", ["z-index"] = 202, top = "-0.5em", left = "-8em", float = "center", ["text-align"] = "center", background = "white", color = "red", } ) :wikitext(message) end -- brak mapy if not get() then local map = get(false) showError(map and "brak mapy" or "brak kodu mapy", map) if (#inside == 1) and (#outside == 0) then local v = inside[1] if (v.longitude == 0) and (v.latitude == 0) then --mw.log("dummy (0 0) bez mapy nie jest rysowany") return end end end -- błędy if (#inside == 0) and (#outside == 0) then showError("brak współrzędnych") end for i, v in ipairs(outside) do showError("współrzędne spoza mapy", v.latitude, v.longitude) end for i, v in ipairs(errors) do showError(true, v.error or "?") end -- punkty na mapie for i, v in ipairs(inside) do local hsize = tostring(v.size/2).."px" local size = tostring(v.size).."px" local absolute = relief:tag("div") :attr("aria-hidden", "true") :css( { position = "absolute", ["z-index"] = 2, top = tostring(v.y).."%", left = tostring(v.x).."%", height = 0, width = 0, margin = 0, padding = 0, } ) local file = absolute:tag("div") :css( { position = "relative", ["text-align"] = "center", left = "-"..hsize, top = "-"..hsize, width = size, ["font-size"] = size, ["line-height"] = size, } ) file:wikitext("[[Plik:", v.mark, "|", v.size, "x", size, "|link=", v.link) if v.description then file:wikitext("|", v.description) end file:wikitext("]]") -- TODO description if v.description and (v.position ~= "hover") then local textWidthLimit = 120 function descriptionWidth(availableWidth) return availableWidth <= 0 and "auto" or (math.min(availableWidth, textWidthLimit).."px") end local descw = "auto" local css = {} if v.position == "right" then descw = descriptionWidth(math.floor(width - v.rx - (v.size / 2) - 5)) css = { top = "-0.5em", left = tostring((v.size / 2) + 2).."px", ["text-align"] = "left", float = "left" } elseif v.position == "left" then descw = descriptionWidth(math.floor(v.rx - (v.size / 2) - 5)) css = { top = "-0.5em", right = tostring((v.size / 2) + 2).."px", ["text-align"] = "right", float = "right" } elseif v.position == "top" then descw = "10em" css = { bottom = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } elseif v.position == "bottom" then descw = "10em" css = { top = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } else -- auto local textWidth = estimateTextWidth(v.description, fontSize) * 0.6 local twoLines = textWidth > textWidthLimit local minY = fontSize * (twoLines and 1 or 0.5) local maxY = height - minY local goodY = (v.ry >= minY) and (v.ry <= maxY) if goodY and ((v.x < 50) or ((v.rx + textWidth + (v.size / 2) + 2) < width)) then -- right descw = descriptionWidth(math.floor(width - v.rx - (v.size / 2) - 5)) css = { top = twoLines and "-1em" or "-0.5em", left = tostring((v.size / 2) + 2).."px", ["text-align"] = "left", float = "left" } elseif goodY and (((v.rx - (v.size / 2) - 2) > textWidth) or (v.x > 70)) then -- left descw = descriptionWidth(math.floor(v.rx - (v.size / 2) - 5)) css = { top = twoLines and "-1em" or "-0.5em", right = tostring((v.size / 2) + 2).."px", ["text-align"] = "right", float = "right" } elseif (v.y > 50) then -- top descw = "10em" css = { bottom = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } else -- bottom descw = "10em" css = { top = tostring((v.size / 4) + 2).."px", left = "-5em", ["text-align"] = "center", float = "center" } end end local desc = absolute:tag("div") :css( { ["font-size"] = tostring(fontSize).."px", ["line-height"] = tostring(1.2*fontSize).."px", ["z-index"] = "90", ["position"] = "absolute", ["width"] = descw, } ) desc:css(css) desc:tag("span") :css({ padding = "1px", ["text-shadow"] = "0 0 5px white;" }) :wikitext(v.description) end end end local function makeTrackingLinks(get, group) local linkAlias = get("link alias") local mapVariant = get(true) if not linkAlias or (#linkAlias == 0) then return end local trackingLink = "Moduł:Mapa/linkujące/"..linkAlias.."/"..group -- (kosztowne!) _ = mw.title.new(trackingLink).id -- (kosztowne!) _ = mw.title.new(trackingLink.."/"..mapVariant).id end local function adjustPointParams(points, mapgeohack) for i, p in ipairs(points) do local link = p.link if link then if mapgeohack==false then p.link = "" elseif mapgeohack then p.link = link.."_"..mapgeohack elseif p.geohack then p.link = link.."_"..p.geohack end end end end local function tryGetMapFor(property) local pid, qid, props = require("Module:Wikidane/select").selectProperty(property, mw.loadData("Moduł:Mapa/filters"), nil, nil, "najlepsza") if not qid then return end local maps = {} for i, v in ipairs(props) do if v.mainsnak and (v.mainsnak.snaktype == "value") and (v.mainsnak.datatype == "wikibase-item") then local name = mw.wikibase.getLabelByLang(v.mainsnak.datavalue.value.id, "pl") if name then table.insert(maps, name) end end end if #maps <= 0 then return end local result = table.concat(maps,'#') mw.logObject(result,"tryGetMapFor("..property..")") return result end local function isKartographerZoom(map, size) if not map then return false end if string.match(map,"^[1-9]$") or string.match(map, "^1[0-9]$") then return map end local w = tonumber(size) if w and (w > 0) then local d, k = string.match(map, "^([0-9]+) ?(k?)m$") local d = tonumber(d) if d and (d > 0) then if k == "k" then d = d * 1000 end local z = (math.log(96000) + math.log(w) - math.log(d)) / math.log(2) local zoom = math.min(math.max(math.floor(z), 1),19) mw.logObject({w = w, d = d, z=z, zoom=zoom}, "zoom calc") return zoom end end return false end return { ["Wartość"] = function(frame) local f = frame.args[1] and frame or frame:getParent() return getMapParams(f.args[1], frame)(f.args[2], f.args[3]) end, ["Infobox"] = function(frame) -- log wskazujący na początek wywołania funkcji mw.log("{{#invoke:Moduł:Mapa|Infobox}}") local args = require('Module:Arguments').getArgs(frame, { trim = true, removeBlanks = true, wrappers = "Szablon:Infobox mapa lokalizacyjna", }) local defaultIcon = "[[Plik:Geographylogo.svg|20px|alt=Ziemia|link=Ziemia]]" local map = args["mapa"] or tryGetMapFor("P17") -- państwo or tryGetMapFor("P706") -- region geograficzny or tryGetMapFor("P30") -- kontynent or "brak" -- poddaję się local variant = args["wariant"] local description = args["opis"] local mark = args["znak na mapie"] or "Red pog.svg" local markSize = tonumber(args["wielkość znaku"]) or 6 local coordinates = args["współrzędne"] local coordsRefs = false local markalt = args["alt znaku na mapie"] if not coordinates then mw.log("infobox może wyszukać współrzędne w wikidanych") else coordinates, coordsRefs = splitCoordinatesAndReferences(coordinates) mw.logObject(coordinates, "współrzędne") if coordsRefs then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/przypisy").id mw.logObject(coordsRefs, "przypisy") end end local precision = args["dokładność"] local twoMaps = args["dwie mapy"] local category = args["kategoria"] local geohack = args["opcje geohack"] local position = args["pozycja opisu"] local points = args["punkty mapy"] mw.logObject({precision = precision, twoMaps = twoMaps, category = category, geohack = geohack, position = position, points = points}, "argumenty") if points and not string.match(points, "%s*{") then mw.log("załączone punkty do mapy są w nieodpowiednim formacie") return end if not points and not coordinates then if args["wikidane"] == "nie" then mw.log("brak punktów na mapę, a nie ma pozwolenia na Wikidane") elseif map ~= "pusta" then mw.log("brak punktów na mapę i współrzędnych, nadszedł czas na Wikidane") local display = true if (map ~= "osobna") and (map ~= "niedostępna") then display = "#coordinates" end local p = require("Moduł:Współrzędne").punkt({ ["opcje geohack"] = geohack, ["znak"] = mark, ["rozmiar znaku"] = markSize, ["opis"] = description, ["pozycja"] = position, ["dokładność"] = precision, ["alt"] = markalt, display = display, symbol = false, }) if not p then mw.log("brak punktów na mapę nawet w Wikidanych") end points = p end end if not points and not coordinates and (mw.title.getCurrentTitle().fullText == frame:getParent():getTitle()) and (type(frame.getParent) == "function") then --TEST ANY ARG local any = false for k, v in pairs(frame:getParent().args) do any = true break end if not any then -- brak jakichkolwiek argumentów w szablonie to tryb demo points = require("Moduł:Współrzędne").punkt({ "0 0", display = true, symbol = false, }) map = "brak" end end if not points and not coordinates then if not category or (mw.title.getCurrentTitle().namespace ~= 0) or (map == "żadna") or (map == "osobna") or (map == "pusta") or (map == "niedostępna") then return end return '|- style="display:none;"\n!colspan="2"|brak współrzędnych[[Kategoria:Szablony lokalizacyjne – brak współrzędnych – '..category..']]\n|-' end local result = {} local coords = false if (map == "żadna") or (map == "none") then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/żadna").id -- TODO współrzędne, geohack, linkuj=tak, dokładność=kątowo, umieść=w tekście (i na górze) coords = formatCoordinates({ coordinates = coordinates, geohack = geohack, linkFlag = true, }) elseif map == "osobna" then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/osobna").id -- TODO współrzędne, geohack, linkuj=tak, dokładność=kątowo, umieść=w tekście coords = formatCoordinates({ coordinates = coordinates, geohack = geohack, linkFlag = true, placement = "w tekście", }) elseif map == "pusta" then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/pusta").id -- no map nor coordinates elseif map == "niedostępna" then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/linkujące/niedostępna").id -- TODO współrzędne, globe:none, linkuj=nie, dokładność=dziesiętnie, normalizacja=auto, ikona= coords = formatCoordinates({ coordinates = coordinates, linkFlag = false, precision = precision or "dziesiętnie", }) elseif (map == "dynamiczna") or isKartographerZoom(map, 240) then -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/kartographer").id -- (kosztowne!) _ = mw.title.new("Moduł:Mapa/kartographer/"..map).id coords = formatCoordinates({ coordinates = coordinates, geohack = geohack or "", linkFlag = true, precision = precision or "kątowo", symbol = icon, }) local primaryPoint = false if coordinates then local p = require("Moduł:Współrzędne").punkt({ coordinates, ["znak"] = mark, ["rozmiar znaku"] = markSize, ["opis"] = description, symbol = false, }) primaryPoint = true points = points and (p..points) or p end local pointsData = decodePoints(points) mw.logObject(pointsData, "pointsData") if not coords and pointsData and (#pointsData > 0) then icon = false coords = pointsData[1].display end longitude = 0 latitude = 0 for i, v in ipairs(pointsData) do longitude = longitude + v.longitude latitude = latitude + v.latitude end longitude = longitude / #pointsData latitude = latitude / #pointsData local mapWidth = 238 local map1 = mw.html.create("div") :css( { margin="0 auto", ["text-align"]="center", width=tostring(mapWidth+4).."px" } ) map1:tag("div") :css( { ["font-weight"]= "bold", color="var(--color-subtle, #54595d);" } ) :wikitext("Położenie na mapie") local content = {} if #pointsData == 1 then content.type = "Feature" content.properties = {} content.properties["marker-color"] = "f00" content.properties["marker-size"] = "medium" content.properties.description = description content.geometry = { type = "Point", coordinates = {longitude, latitude}, } else content.type = "FeatureCollection" content.features = {} for i, v in ipairs(pointsData) do p = {} p.type = "Feature" p.properties = {} p.properties["marker-size"] = (primaryPoint and (i == 1)) and "medium" or "small" p.properties["marker-color"] = (primaryPoint and (i == 1)) and "f00" or "00f" p.geometry = { type = "Point", coordinates = {v.longitude, v.latitude}, } table.insert(content.features, p) end end mw.logObject(content, "content") local contentJson = mw.text.jsonEncode(content, mw.text.JSON_PRETTY) mw.logObject(contentJson, "contentJson") local zoom = isKartographerZoom(map, 240) if not zoom then zoom = (#pointsData > 1) and nil -- zoom się sam ustali (TODO sprawdź czy punkty są różne) or 12 -- jeden punkt wymaga konkretnej skali end local kartographer = frame:extensionTag('mapframe', contentJson, { width = mapWidth, height = mapWidth, zoom = zoom, longitude = longitude, latitude = latitude, align = "center", lang = "local", frameless = 1 }) map1:wikitext(kartographer) table.insert(result, '|- class="infobox-locationmap" style="background-color:var(--background-color-base, #fff); color:black; text-align:center; border-top:1px solid var(--border-color-base, #a2a9b1);"\n|colspan="2"|') table.insert(result, tostring(map1:allDone())) table.insert(result, "\n") else local maps = {} local list = string.match(map, "#") for v in mw.ustring.gmatch(map, "[^#]+") do table.insert(maps, mw.text.trim(v)) end if #maps == 0 then table.insert(maps, map) end if not list and (twoMaps ~= "nie") then while #map > 0 do local get = loadMap(frame, map, variant) map = mw.text.trim(get("nadrzędna") or "") if #map > 0 then table.insert(maps, 2, map) end end end local mapIndex = 1 local map = maps[mapIndex] local get = loadMap(frame, map, variant) -- prepare coordinates under the map local icon = mw.text.trim(get("ikona") or "") if #icon == 0 then icon = defaultIcon end local mapPrecision = get("dokładność") if mapPrecision and (#mapPrecision <= 0) then mapPrecision = nil end coords = formatCoordinates({ coordinates = coordinates, geohack = geohack or get("globe") or "", linkFlag = get("globe") ~= false, precision = precision or mapPrecision or "kątowo", symbol = icon, }) if coordinates then local p = require("Moduł:Współrzędne").punkt({ coordinates, ["opcje geohack"] = geohack, ["znak"] = mark, ["rozmiar znaku"] = markSize, ["opis"] = description, ["pozycja"] = position, alt = markalt, symbol = false, }) --primaryPoint = true points = points and (p..points) or p end local pointsData = decodePoints(points) if pointsData then adjustPointParams(pointsData, get("globe")) end if not coords and pointsData and (#pointsData > 0) then icon = false coords = pointsData[1].display end -- tracking link, pseudo reference to primary map makeTrackingLinks(get, "primary") -- draw maps while map do map = nil -- draw map local mapWidth = tonumber(get("rozmiar")) or 238 if mapWidth > 238 then mapWidth = 238 elseif mapWidth < 100 then mapWidth = 100 end local map1 = mw.html.create("div") :css( { margin="0 auto", ["text-align"]="center", width=tostring(mapWidth+4).."px" } ) map1:tag("div") :css( { ["font-weight"]= "bold", color="var(--color-subtle, #54595d);" } ) :wikitext("Położenie na mapie ", get("dopełniacz")) drawMap(map1:tag("div"):addClass("mapa-lokalizacyjna"), get, mapWidth, 12.6, pointsData, coordinates, false) table.insert(result, '|- class="infobox-locationmap" style="background-color:var(--background-color-base, #fff); color:black; text-align:center; border-top:1px solid var(--border-color-base, #a2a9b1);"\n|colspan="2"|') table.insert(result, tostring(map1:allDone())) table.insert(result, "\n") -- next parent if mapIndex < #maps then mapIndex = mapIndex + 1 map = maps[mapIndex] get = loadMap(frame, map, variant) end end end -- Fix for T420051 for Parsoid -- For legacy parser, the processing of indicator tag in -- Moduł:Współrzędne puts it in ParserOutput but Parsoid requires -- explicit wikitext to be passed back to it. This code extracts the -- indicator wikitext and inserts it into the return value of this -- module for Parsoid. if not coords and points then local pointsData = decodePoints(points) if pointsData and (#pointsData > 0) then coords = pointsData[1].display end end if coords then table.insert(result, '|-\n|colspan="2" style="background-color:var(--background-color-base, #fff); color:black; text-align:center; border-bottom:1px solid var(--border-color-base, #a2a9b1);"|') table.insert(result, coords) if coordsRefs then table.insert(result, coordsRefs) end table.insert(result, "\n") end if #result > 0 then table.insert(result, "|-") end return table.concat(result) end, ["Thumb"] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = true, removeBlanks = false, wrappers = "Szablon:Mapa lokalizacyjna", }) local map = args["mapa"] or args[1] or "{{{1}}}" if #map == 0 then map = nil end local variant = args["wariant"] local width = tonumber(args["rozmiar"]) or 238 local fontSize = tonumber(args["font-size"]) or 12.6 local align = args["wyrównanie"] or "right" local footer = args["podpis"] local alt = args["alt"] local pointsData = decodePoints(args["punkty mapy"]) local get = loadMap(frame, map, variant) if pointsData then adjustPointParams(pointsData, get("globe")) end -- tracking link, pseudo reference to this map makeTrackingLinks(get, "standalone") local positionClass = { ["center"] = "center", ["right"] = "tright", ["left"] = "tleft", [""] = "tnone", } local thumb = mw.html.create("div") :addClass("thumb") :addClass(positionClass[align] or align) :addClass("panel-with-scroll") :wikitext('\n') local thumbinner = thumb:tag("div") :addClass("thumbinner") :css({ width = tostring(width + 2).."px" }) :wikitext('\n') local border = thumbinner:tag("div") :css({ border = "1px solid #ccc", width = tostring(width).."px !important" }) local builder = border:tag("div") --:addClass("mapa-lokalizacyjna") :css({ margin = "0 auto", width = tostring(width).."px" }) drawMap(builder, get, width, fontSize, pointsData, false, alt) if pointsData and (#pointsData == 1) and (mw.title.getCurrentTitle().namespace == 0) then builder:wikitext("[[Kategoria:Mapa lokalizacyjna z jednym punktem]]") end thumbinner :wikitext('\n') local thumbcaption = thumbinner:tag("div") :addClass("thumbcaption") thumbcaption:tag("div") :addClass("magnify") :wikitext("[[Plik:Geographylogo.svg|16x16px|link=Wikiprojekt:Szablony lokalizacyjne]]") if footer and (#footer > 0) then thumbcaption:wikitext(footer) else thumbcaption:wikitext("Położenie na mapie ", mw.text.nowiki(get("dopełniacz") or "")) end thumbinner :wikitext('\n') thumb :wikitext('\n') return thumb:allDone() end, ["Inline"] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = true, removeBlanks = false, wrappers = "Szablon:Mapa lokalizacyjna", }) local map = args["mapa"] or args[1] or "{{{1}}}" if #map == 0 then map = nil end local variant = args["wariant"] local width = tonumber(args["rozmiar"]) or 238 local fontSize = tonumber(args["font-size"]) or 12.6 local alt = args["alt"] local pointsData = decodePoints(args["punkty mapy"]) local get = loadMap(frame, map, variant) if pointsData then adjustPointParams(pointsData, get("globe")) end -- tracking link, pseudo reference to this map makeTrackingLinks(get, "standalone") local builder = mw.html.create("div") :addClass("mapa-lokalizacyjna") :css({ margin ="0 auto", width = tostring(width + 2).."px", padding = "3px", margin = "3px" }) drawMap(builder, get, width, fontSize, pointsData, false, alt) if pointsData and (#pointsData == 1) and (mw.title.getCurrentTitle().namespace == 0) then builder:wikitext("[[Kategoria:Mapa lokalizacyjna z jednym punktem]]") end return builder:allDone() end, } svsjljl7uxr24lque1bqfgk9z2defdm 204396 204395 2026-07-03T14:34:24Z HaxelKaszëba 17492 UWAGA! Usunięcie treści (strona pozostała pusta)! 204396 Scribunto text/plain phoiac9h4m842xq45sp7s6u21eteeq1 Moduł:Wespółrzãdné 828 13243 204393 2026-07-03T13:50:15Z HaxelKaszëba 17492 pozdni przedolmaczã 204393 Scribunto text/plain local geoformatdata = { supportedFormats = { { prec = "10st", precision = 10.00000000000000000000, dms = false, d = "%0.0f" }, { prec = "st", precision = 1.00000000000000000000, dms = false, d = "%0.0f" }, { prec = "1", precision = 0.10000000000000000000, dms = false, d = "%0.1f" }, { prec = "min", precision = 0.01666666666666670000, dms = true, d = "%0.0f", m="%02.0f" }, { prec = "2", precision = 0.01000000000000000000, dms = false, d = "%0.2f" }, { prec = "min+", precision = 0.00166666666666667000, dms = true, d = "%0.0f", m="%04.1f" }, { prec = "3", precision = 0.00100000000000000000, dms = false, d = "%0.3f" }, { prec = "sek", precision = 0.00027777777777777800, dms = true, d = "%0.0f", m="%02.0f", s="%02.0f" }, { prec = "min2", precision = 0.00016666666666666700, dms = nil, d = "%0.0f", m="%05.2f" }, { prec = "4", precision = 0.00010000000000000000, dms = false, d = "%0.4f" }, { prec = "sek+", precision = 0.00002777777777777780, dms = true, d = "%0.0f", m="%02.0f", s="%04.1f" }, { prec = "min3", precision = 0.00001666666666666670, dms = nil, d = "%0.0f", m="%06.3f" }, { prec = "5", precision = 0.00001000000000000000, dms = false, d = "%0.5f" }, { prec = "sek2", precision = 0.00000277777777777778, dms = true, d = "%0.0f", m="%02.0f", s="%05.2f" }, { prec = "min4", precision = 0.00000166666666666667, dms = nil, d = "%0.0f", m="%07.4f" }, { prec = "6", precision = 0.00000100000000000000, dms = false, d = "%0.6f" }, { prec = "sek3", precision = 0.00000027777777777778, dms = true, d = "%0.0f", m="%02.0f", s="%06.3f" }, { prec = "min5", precision = 0.00000016666666666667, dms = nil, d = "%0.0f", m="%08.5f" }, { prec = "7", precision = 0.00000010000000000000, dms = false, d = "%0.7f" }, { prec = "sek4", precision = 0.00000002777777777778, dms = true, d = "%0.0f", m="%02.0f", s="%07.4f" }, }, displayGlobes = { earth = { mode = "EW", Q="Q2", symbol="⨁", }, moon = { mode = "EW", Q="Q405", symbol="☾", }, mercury = { mode = "W", Q="Q308", symbol="☿", }, mars = { mode = "W", Q="Q111", symbol="♂", }, phobos = { mode = "W", Q="Q7547", }, deimos = { mode = "W", Q="Q7548", }, ganymede = { mode = "W", Q="Q3169", }, callisto = { mode = "W", Q="Q3134", }, io = { mode = "W", Q="Q3123", }, europa = { mode = "W", Q="Q3143", }, mimas = { mode = "W", Q="Q15034", }, enceladus = { mode = "W", Q="Q3303", }, tethys = { mode = "W", Q="Q15047", }, dione = { mode = "W", Q="Q15040", }, rhea = { mode = "W", Q="Q15050", }, titan = { mode = "W", Q="Q2565", }, hyperion = { mode = "?", Q="Q15037", }, iapetus = { mode = "W", Q="Q17958", }, phoebe = { mode = "W", Q="Q17975", }, venus = { mode = "E", Q="Q313", symbol="♀", }, ceres = { mode = "E", Q="Q596", symbol="⚳", }, vesta = { mode = "E", Q="Q3030", symbol="⚶", }, miranda = { mode = "E", Q="Q3352", }, ariel = { mode = "E", Q="Q3343", }, umbriel = { mode = "E", Q="Q3338", }, titania = { mode = "E", Q="Q3322", }, oberon = { mode = "E", Q="Q3332", }, triton = { mode = "E", Q="Q3359", }, pluto = { mode = "E", Q="Q339", symbol="♇", }, }, latitudeLinkMarkers = { degree="_", minute="_", second="_", positivePrefix="", positiveSuffix="N", negativePrefix="", negativeSuffix="S", }, longitudeLinkMarkers = { degree="_", minute="_", second="_", positivePrefix="", positiveSuffix="E", negativePrefix="", negativeSuffix="W", }, latitudeGlobeMarkers = { degree="°", minute="′", second="″", positivePrefix="", positiveSuffix="N", negativePrefix="", negativeSuffix="S", }, longitudeGlobeMarkers = { degree="°", minute="′", second="″", positivePrefix="", positiveSuffix="E", negativePrefix="", negativeSuffix="W", }, displayDecimalSeparator = ",", coordinatesSeparator = "\194\160", topPrefix = "Na kôrtach: ", displayGlobesDefaultSymbol = "⌘", defaultSymbolSeparator = "\194\160", documentationSubpage = "opisënk", defaultWDPrecision = 0.00027777777777777800, -- WD wyświetla domyślnie z dokładnością do sekund defaultSizePrecision = 1.0, defaultDistanceScalingFactor = 6731000, -- promień Ziemi w metrach geohack_root = "//tools.wmflabs.org/geohack/geohack.php?language=pl", geohack_hint = "Kôrtë, satelitarné òdjimczi a jinszé infòrmacje zrzeszoné z placama ò geògraficznëch wespółrzãdach %s %s", -- template API data apiCoordinates = "wespółrzãdné", apiMapPoint = "pùnkt", apiCheckDistance = "Sprawdź odległość współrzędnych", apiDistance = "Odległość", apiPrecisionRadius = "Promień dokładności", argScalingFactor = "mnożnik", argMaximumDistance = "odległość", argErrorMessage = "komunikat", wrappersCoordinates = "Szablon:Współrzędne", wrappersMapPoint = "Szablon:Mapa lokalizacyjna/punkt", argCoordinatesCoordinates = 1, argCoordinatesGeohack = 2, argLocation = "ùmiescy", valLocationTop = "na górze", valLocationInline = "w teksce", valLocationTopAndInline = "w teksce i na górze", argPrecision = "dokładnota", valPrecisionAutoDecimal = "dzesãtnié", valPrecisionAutoDMS = "nórtowò", argLink = "linkùj", valLinkYes = "jo", valLinkNo = "nié", valLinkGMS = "zgodno", argSymbol = "symbòl", valSymbolYes = "jo", valSymbolNo = "nié", argName = "pòzwa", -- apiMapPoint argMapPointCoordinates = 1, argMark = "merk", argMarkSize = "rozmiôr merku", argDescription = "òpisënk", argMapPointGeohack = "òpcje geohack", argDescriptionPosition = "pòzycjô", argAlt = "alt", defArgMark = "Red pog.svg", defArgMarkSize = 6, defArgGeohack = "type:city", mapPointMapping = { ["Mars"] = "globe:Mars", ["Księżyc"] = "globe:Moon", ["Wenus"] = "globe:Venus", ["Merkury"] = "globe:Mercury", }, -- categories errorCategory = "[[Kategoria:Strony z błędami w parametrach szablonów współrzędnych geograficznych]]", -- error messages errorInvalidMinutes = "Wartość minut jest nieprawidłowa (%s°%s')", errorExpectedIntegerMinutes = "Oczekiwana liczba minut bez kropki dziesiętnej jeśli podawane są sekundy (%s°%s'%s”)", errorInvalidSeconds = "Wartość sekund jest nieprawidłowa (%s°%s'%s”)", errorInvalidPositionalArguments = "Nieprawidłowe parametry", errorLatitudeOutOfRange = "Przekroczony zakres szerokości geograficznej (%f)", errorLongitudeOutOfRange = "Przekroczony zakres długości geograficznej (%f)", errorUnrecognizedLinkOption = "Niedozwolona wartość parametru ''linkuj'': %s", errorUnrecognizedLocationOption = "Niedozwolona wartość parametru ''umieść'': %s", errorUnrecognizedPrecisionOption = "Niedozwolona wartość parametru ''dokładność'': %s", errorEmptySymbolOption = "Pusty parametr ''symbol''", errorMissingCoordinates = "Brak współrzędnych", } -------------------------------------------------------------------------------- -- Coordinates class methods -------------------------------------------------------------------------------- local CoordinatesMetatable = {} local CoordinatesMethodtable = {} CoordinatesMetatable.__index = CoordinatesMethodtable function CoordinatesMethodtable:parse(coordinates, params, displayPrecision) local lang = mw.getContentLanguage() local function calculateDecimalPrecision(s) local s1 = string.gsub(s,"%d","0") local s2 = string.gsub(s1,"^-","0") local s3 = string.gsub(s2,"0$","1") local result = lang:parseFormattedNumber(s3) return result > 0 and result or 1.0 end local function selectAutoPrecision(p1, p2) local dms = nil if (displayPrecision == geoformatdata.valPrecisionAutoDecimal) then dms = false elseif not displayPrecision or (displayPrecision == geoformatdata.valPrecisionAutoDMS) then dms = true else -- precision is selected explicit in the parameter return end -- select automatic precision local precision = p1 < p2 and p1 or p2 -- find best DMS or decimal precision if precision < 1 then local eps = precision / 1024 for i,v in ipairs(geoformatdata.supportedFormats) do if (v.dms == dms) and ((v.precision - precision) < eps) then precision = v.precision break end end end self.precision = precision end local function analyzeAngle(degree, minutes, seconds) local result = lang:parseFormattedNumber(degree) if not result then return false, geoformatdata.errorInvalidPositionalArguments end if not string.match(degree, "^%d+$") then if (#minutes > 0) or (#seconds > 0) then -- expected empty minutes and empty seconds if float degree is given return false, geoformatdata.errorInvalidPositionalArguments end return true, result, calculateDecimalPrecision(degree) end if #minutes == 0 then if #seconds > 0 then -- expected empty seconds if minute is not given return false, geoformatdata.errorInvalidPositionalArguments end return true, result, calculateDecimalPrecision(degree) end local minute = lang:parseFormattedNumber(minutes) if not minute or (minute >= 60) then return false, string.format(geoformatdata.errorInvalidMinutes, degree, minutes) end result = result * 60 + minute if not string.match(minutes, "^%d+$") then if #seconds > 0 then return false, string.format(geoformatdata.errorExpectedIntegerMinutes, degree, minutes, seconds) end return true, result/60, 0.00027777777777777800 end if #seconds == 0 then return true, result/60, 0.01666666666666670000 end local second = lang:parseFormattedNumber(seconds) if not second or (second >= 60) then return false, string.format(geoformatdata.errorInvalidSeconds, degree, minutes, seconds) end result = result*60 + second return true, result/3600, calculateDecimalPrecision(seconds)*0.00027777777777777800 end if not coordinates or (#mw.text.trim(coordinates) <= 0) then return false, geoformatdata.errorMissingCoordinates end local function parseSimpleText() local d1, m1, s1, h1, d2, m2, s2, h2 = mw.ustring.match(coordinates, "^%s*([%d,%.]+)[°_]?%s*([%d,%.]*)['′_]?%s*([%d,%.]*)[\"″”_]?%s*([NSEW])[,;]?%s+([%d,%.]+)[°_]?%s*([%d,%.]*)['′_]?%s*([%d,%.]*)[\"″”_]?%s*([EWNS])%s*$") if d1 then if (((h1 == "N") or (h1 == "S")) and ((h2 == "N") or (h2 == "S"))) or (((h1 == "E") or (h1 == "W")) and ((h2 == "E") or (h2 == "W"))) then return geoformatdata.errorInvalidPositionalArguments end local status1, v1, p1 = analyzeAngle(d1, m1, s1) if not status1 then return v1 end local status2, v2, p2 = analyzeAngle(d2, m2, s2) if not status2 then return v2 end if (h1 == "S") or (h1 == "W") then v1 = -v1; end if (h2 == "S") or (h2 == "W") then v2 = -v2; end self.latitude = ((h1 == "N") or (h1 == "S")) and v1 or v2 self.longitude = ((h1 == "E") or (h1 == "W")) and v1 or v2 selectAutoPrecision(p1, p2) local nlat = ((h1 == "N") or (h1 == "S")) and d1 or d2 local nlon = ((h1 == "E") or (h1 == "W")) and d1 or d2 self.navi = (string.match(nlat, "^%d%d$") or string.match(nlat, "^%d%d[%.,]%d+$")) and (string.match(nlon, "^%d%d%d$") or string.match(nlon, "^%d%d%d[%.,]%d+$")) return nil end local lat, lon = string.match(coordinates, "^%s*(-?[0-9%.,]+)%s+(-?[0-9%.,]+)%s*$") if lat then local latitude = lang:parseFormattedNumber(lat) local longitude = lang:parseFormattedNumber(lon) if latitude and longitude then self.latitude = latitude self.longitude = longitude selectAutoPrecision(calculateDecimalPrecision(lat), calculateDecimalPrecision(lon)) return nil end end return geoformatdata.errorInvalidPositionalArguments end local data = false if params then local p = mw.text.trim(params) if #p > 0 then self.params = p local trace = false for i, v in ipairs(mw.text.split(p, '_', true)) do local globe = string.match(v, "^globe:(%a+)$") if globe then if data then -- more than one globe, data undetermined trace = "undetermined" data = nil break end globe = string.lower(globe) data = geoformatdata.displayGlobes[globe] if not data then -- unrecognized data trace = "unrecognized" data = nil break else trace = globe end end end if trace then _ = mw.title.new("Module:Współrzędne/globe:"..trace).id end end end if data and not displayPrecision then displayPrecision = data.Q == "Q2" and geoformatdata.valPrecisionAutoDMS or geoformatdata.valPrecisionAutoDecimal end self.displayData = data or geoformatdata.displayGlobes.earth local errorMessage = parseSimpleText() if errorMessage then return false, errorMessage end if (self.latitude < -90) or (self.latitude > 90) then return false, string.format(geoformatdata.errorLatitudeOutOfRange, self.latitude) end if (self.longitude < -360) or (self.longitude > 360) then return false, string.format(geoformatdata.errorLongitudeOutOfRange, self.longitude) end return true, nil end function CoordinatesMethodtable:normalize() assert(self,"Did you use '.' instead of ':' while calling the function?") local mode = false if self.displayData then mode = self.displayData.mode end if mode == "?" then -- unrecognized left as given elseif mode == "W" then if self.longitude > 0 then self.longitude = self.longitude - 360 end elseif mode == "E" then if self.longitude < 0 then self.longitude = self.longitude + 360 end elseif self.longitude < -180 then self.longitude = self.longitude + 360 elseif self.longitude > 180 then self.longitude = self.longitude - 360 end end function CoordinatesMethodtable:format() local function selectFormat(precision) local supportedFormats = geoformatdata.supportedFormats for i, v in ipairs(supportedFormats) do local prec = v.precision local eps = prec / 64 local minPrec = prec - eps local maxPrec = prec + eps if (minPrec < precision) and (precision < maxPrec) then return v end end -- use the last one with highest precision return supportedFormats[#supportedFormats] end local function formatAngle(value, format, markers, decimalSeparator, navi) assert(type(value) == "number") local prefix = value < 0 and markers.negativePrefix or markers.positivePrefix local suffix = value < 0 and markers.negativeSuffix or markers.positiveSuffix value = math.abs(value) local result = nil if format.m == nil then -- format decimal value if format.precision > 1 then -- round the value value = math.floor(value / format.precision) * format.precision end result = string.format(format.d.."%s", value, markers.degree) elseif format.s == nil then -- format dm value local angle = math.floor(value) local minutes = tonumber(string.format(format.m, (value - angle) * 60)) -- fix rounded minutes if minutes == 60 then angle = angle + 1 minutes = 0 end local d = navi or format.d result = string.format(d.."%s"..format.m.."%s", angle, markers.degree, minutes, markers.minute) else -- format dms value local angle = math.floor(value) local minutes = math.floor((value - angle) * 60) local seconds = tonumber(string.format(format.s, (value - angle) * 3600 - minutes * 60)) -- fix rounded seconds if seconds == 60 then minutes = minutes + 1 seconds = 0 if minutes == 60 then angle = angle + 1 minutes = 0 end end local d = navi or format.d result = string.format(d.."%s"..format.m.."%s"..format.s.."%s", angle, markers.degree, minutes, markers.minute, seconds, markers.second) end if decimalSeparator then result = string.gsub(result, "%.", decimalSeparator) end return prefix .. result .. suffix end local function formatDegree(value, decimalSeparator) local result = string.format("%f", value) if decimalSeparator then result = string.gsub(result, "%.", decimalSeparator) end return result end local function fullpagenamee() local title = mw.title.getCurrentTitle() return title.namespace == 0 and title:partialUrl() or title.nsText .. ":" .. title:partialUrl() end local format = selectFormat(self.precision) local prettyLatitude = formatAngle(self.latitude, format, geoformatdata.latitudeGlobeMarkers, geoformatdata.displayDecimalSeparator, self.navi and "%02.0f" or false) local prettyLongitude = formatAngle(self.longitude, format, geoformatdata.longitudeGlobeMarkers, geoformatdata.displayDecimalSeparator, self.navi and "%03.0f" or false) if not self.link then return mw.text.nowiki(prettyLatitude .. geoformatdata.coordinatesSeparator .. prettyLongitude) end local linkLatitude = false local linkLongitude = false if self.link == "gms" then linkLatitude = formatAngle(self.latitude, format, geoformatdata.latitudeLinkMarkers) linkLongitude = formatAngle(self.longitude, format, geoformatdata.longitudeLinkMarkers) end local geohack_link = self:geohack(fullpagenamee(), linkLatitude, linkLongitude) local degreeLatitude = formatDegree(self.latitude, geoformatdata.displayDecimalSeparator) local degreeLongitude = formatDegree(self.longitude, geoformatdata.displayDecimalSeparator) local pretty_hint = string.format(geoformatdata.geohack_hint, prettyLatitude, prettyLongitude) local degree_hint = string.format(geoformatdata.geohack_hint, degreeLatitude, degreeLongitude) local separator = mw.text.nowiki(geoformatdata.coordinatesSeparator) local node = false local result = mw.html.create():wikitext("[", geohack_link, " ") node = result:tag("span"):attr("class", "geo-default") :tag("span"):attr("class", "geo-dms"):attr("title", mw.text.nowiki(pretty_hint)) node:tag("span"):attr("class", "latitude"):wikitext(mw.text.nowiki(prettyLatitude)) node:wikitext(separator) node:tag("span"):attr("class", "longitude"):wikitext(mw.text.nowiki(prettyLongitude)) result:tag("span"):attr("class", "geo-multi-punct"):wikitext("/") node = result:tag("span"):attr("class", "geo-nondefault") :tag("span"):attr("class", "geo-dms"):attr("title", mw.text.nowiki(degree_hint)) node:tag("span"):attr("class", "latitude"):wikitext(mw.text.nowiki(degreeLatitude)) node:wikitext(separator) node:tag("span"):attr("class", "longitude"):wikitext(mw.text.nowiki(degreeLongitude)) result:wikitext("]") return tostring(result) end function CoordinatesMethodtable:display(inlinePrefix) local text = self:format{} if not self.top and not self.inline then return text end local function drawGlobeSymbol(displayData) local symbol = displayData.symbol or geoformatdata.displayGlobesDefaultSymbol if not displayData.Q then return symbol..geoformatdata.defaultSymbolSeparator end local link = mw.wikibase.sitelink(displayData.Q) if not link then return symbol..geoformatdata.defaultSymbolSeparator end return "[["..link.."|"..symbol.."]]"..geoformatdata.defaultSymbolSeparator end if inlinePrefix == nil then if self.symbol == false then inlinePrefix = "" elseif self.symbol == true then inlinePrefix = drawGlobeSymbol(self.displayData) or "" elseif self.symbol then inlinePrefix = self.symbol elseif self.displayData.Q == "Q2" then -- !symbol & Q2 inlinePrefix = "" else -- !symbol & !Q2 inlinePrefix = drawGlobeSymbol(self.displayData) or "" end end local result = mw.html.create() if self.top then local indicator = mw.html.create("span") :attr("id", "coordinates") :attr("class", "coordinates plainlinks") :wikitext(geoformatdata.topPrefix, inlinePrefix or "", text) result:wikitext(mw.getCurrentFrame():extensionTag{name = 'indicator', content = tostring(indicator), args = { name='coordinates' } } or "") end if self.inline then result:tag("span") :attr("class", self.top and "coordinates inline inline-and-top plainlinks" or "coordinates inline plainlinks") :wikitext(inlinePrefix or "", text) end return tostring(result) end function CoordinatesMethodtable:extensionGeoData() local params = {} local title = mw.title.getCurrentTitle() if self.top and not title.isTalkPage and (title.subpageText ~= geoformatdata.documentationSubpage) then table.insert(params, "primary") end if self.latitude >= 0 then table.insert(params, string.format("%f", self.latitude)) table.insert(params, "N") else table.insert(params, string.format("%f", -self.latitude)) table.insert(params, "S") end if mode == "W" then if self.longitude > 0 then table.insert(params, string.format("%f", 360-self.longitude)) else table.insert(params, string.format("%f", -self.longitude)) end table.insert(params, "W") elseif mode == "E" then if self.longitude >= 0 then table.insert(params, string.format("%f", self.longitude)) else table.insert(params, string.format("%f", 360+self.longitude)) end table.insert(params, "E") elseif self.longitude >= 0 then table.insert(params, string.format("%f", self.longitude)) table.insert(params, "E") else table.insert(params, string.format("%f", -self.longitude)) table.insert(params, "W") end if self.params then table.insert(params, self.params) end if self.name then params.name = self.name end -- https://bugzilla.wikimedia.org/show_bug.cgi?id=50863 RESOLVED return mw.getCurrentFrame():callParserFunction("#coordinates", params) or "" end function CoordinatesMethodtable:geohack(pagename, linkLatitude, linkLongitude) local result = {} table.insert(result, geoformatdata.geohack_root) if pagename then table.insert(result, "&pagename=") table.insert(result, pagename) end table.insert(result, "&params=") if linkLatitude and linkLongitude then table.insert(result, linkLatitude) elseif self.latitude < 0 then table.insert(result, tostring(-self.latitude)) table.insert(result, "_S") else table.insert(result, tostring(self.latitude)) table.insert(result, "_N") end table.insert(result, "_") if linkLatitude and linkLongitude then table.insert(result, linkLongitude) elseif self.longitude < 0 then table.insert(result, tostring(-self.longitude)) table.insert(result, "_W") else table.insert(result, tostring(self.longitude)) table.insert(result, "_E") end if self.params then table.insert(result, "_") table.insert(result, self.params) end if self.name then table.insert(result, "&title=") table.insert(result, mw.uri.encode(self.name)) end return table.concat(result) end local function create() -- initialize default data local self = { latitude = 0, longitude = 0, precision = 1, params = nil, inline = false, top = false, link = true, } setmetatable(self, CoordinatesMetatable) return self; end -------------------------------------------------------------------------------- -- utilities -------------------------------------------------------------------------------- local function showError(message, args) if not message then return geoformatdata.errorCategory end local result = {} table.insert(result, "<span style=\"color:red\">") assert(type(message) == "string", "Expected string message") table.insert(result, message) local i = 1 while args[i] do if i == 1 then table.insert(result, ": {") else table.insert(result, "&#x7C;") end table.insert(result, args[i]) i = i + 1 end if i > 1 then table.insert(result, "}") end table.insert(result, "</span>") if mw.title.getCurrentTitle().namespace == 0 then table.insert(result, geoformatdata.errorCategory) end return table.concat(result, "") end -------------------------------------------------------------------------------- -- Minimalistic Wikidata support -------------------------------------------------------------------------------- local function selectProperty(claims, pid) local prop = claims[pid] if not prop then return false end -- missing property -- load preferred statements local result = {} for _, v in ipairs(prop) do if v.rank == "preferred" then table.insert(result, v) end end if #result ~= 0 then return true, result end for _, v in ipairs(prop) do if v.rank == "normal" then table.insert(result, v) end end if #result ~= 0 then return true, result end return false -- empty property table end local function selectValue(prop, expectedType) if not prop then return false end if prop.type ~= "statement" then return false end local snak = prop.mainsnak if not snak or snak.snaktype ~= "value" then return false end local datavalue = snak.datavalue if not datavalue or datavalue.type ~= expectedType then return false end local value = datavalue.value if not value then return false end return true, value end local function wd(property, argGlobe) local entity = mw.wikibase.getEntity() if not entity then return nil end -- missing entity local claims = entity.claims if not claims then return nil end -- missing claims function selectGlobe(globe) -- the most often case if not globe or (globe == "http://www.wikidata.org/entity/Q2") then return { symbol=geoformatdata.displayGlobes.earth.symbol, link="" } end for k, v in pairs(geoformatdata.displayGlobes) do if globe == mw.wikibase.getEntityUrl(v.Q) then return { link="globe:"..k, data=v } end end return nil end function selectType() local types = { unknownType = "type:city", { property = "P300", [150093] = "type:adm1st", [247073] = "type:adm2nd", [925381] = "type:adm2nd", [3504085] = "type:adm3rd", [3491915] = "type:adm3rd", [2616791] = "type:adm3rd", }, { property = "P31", [515] = "type:city", [6256] = "type:country", [5107] = "type:satellite", [165] = "type:satellite", }, } for _, pset in ipairs(types) do local status, classes = selectProperty(claims, pset.property) if status then for _, p in ipairs(classes) do local status2, v = selectValue(p, "wikibase-entityid") if status2 and v["entity-type"] == "item" then local result = pset[v["numeric-id"]] if result then return result end end end end end return types.unknownType end local status1, coordinates = selectProperty(claims, property) if not status1 then return nil end local status2, autocoords = selectValue(coordinates[1], "globecoordinate") if not status2 then return nil end local globe = argGlobe == "" and { symbol="", link="", data=false } or selectGlobe(argGlobe or autocoords.globe) or { symbol="", link=false, data=false } if not globe.link then return nil end -- not supported globe local params = { selectType(), } if #globe.link > 0 then table.insert(params, globe.link) end local result = { latitude = autocoords.latitude, longitude = autocoords.longitude, precision = autocoords.precision or geoformatdata.defaultWDPrecision, params = table.concat(params,"_"), displayData = data or geoformatdata.displayGlobes.earth, globeSymbol = globe.symbol, } return result end local function parseDisplayPrecision(coordinates, displayPrecision) local function adjustPrecision(dms) if not coordinates.precision or (coordinates.precision >= 1) then return end local eps = coordinates.precision / 1024 for i, v in ipairs(geoformatdata.supportedFormats) do if (v.dms == dms) and ((v.precision - coordinates.precision) < eps) then coordinates.precision = v.precision break end end end local function findAndSetPrecision() -- find wikipedia template precision for i, v in ipairs(geoformatdata.supportedFormats) do if displayPrecision == v.prec then coordinates.precision = v.precision return true end end end if displayPrecision == geoformatdata.valPrecisionAutoDMS then adjustPrecision(true) elseif displayPrecision == geoformatdata.valPrecisionAutoDecimal then adjustPrecision(false) elseif not findAndSetPrecision() then return false end return true end local function distance(A, B) -- [[Ortodroma]] -- <math>D = \operatorname{arc cos}((\sin \varphi_1 \sin \varphi_2)+(\cos \varphi_1 \cos \varphi_2 \cos \Delta\lambda)),</math> local phiA = math.pi * A.latitude / 180.0 local phiB = math.pi * B.latitude / 180.0 local delta = math.pi * (B.longitude - A.longitude) / 180.0 return math.acos(math.sin(phiA)*math.sin(phiB) + math.cos(phiA)*math.cos(phiB)*math.cos(delta)) end local function size(A) local precision = A.precision or geoformatdata.defaultSizePrecision local B = {} B.latitude = A.latitude < 0 and A.latitude + precision or A.latitude - precision B.longitude = A.longitude + precision return distance(A,B) end -------------------------------------------------------------------------------- -- public module methods -------------------------------------------------------------------------------- return { [geoformatdata.apiCoordinates] = function (frame) local args = require('Module:Arguments').getArgs(frame, { trim = false, removeBlanks = false, wrappers = geoformatdata.wrappersCoordinates, }) local coords = args[geoformatdata.argCoordinatesCoordinates] local geohack = args[geoformatdata.argCoordinatesGeohack] local name = args[geoformatdata.argName] local location = args[geoformatdata.argLocation] local displayPrecision = args[geoformatdata.argPrecision] local link = args[geoformatdata.argLink] local symbol = args[geoformatdata.argSymbol] if symbol == geoformatdata.valSymbolYes then symbol = true elseif symbol == geoformatdata.valSymbolNo then symbol = false elseif symbol and (#symbol==0) then return showError(geoformatdata.errorEmptySymbolOption, {}) end if not coords and not geohack and not name and not displayPrecision and not link and (location == geoformatdata.valLocationTop) and (symbol == nil) then local autocoords = wd("P625", false) if not autocoords then -- missing data in WD return end local coordinates = create() coordinates.latitude = autocoords.latitude coordinates.longitude = autocoords.longitude coordinates.precision = autocoords.precision coordinates.params = autocoords.params coordinates.displayData = autocoords.displayData coordinates.inline = false coordinates.top = true coordinates.link = true coordinates:normalize() return coordinates:display()..coordinates:extensionGeoData() end local coordinates = create() local status, errorMessage = coordinates:parse(coords, geohack, displayPrecision) if not status then return showError(errorMessage, args) end coordinates.symbol = symbol coordinates.name = name local full = location or displayPrecision or link or (symbol ~= nil) or (coordinates.displayData and (coordinates.displayData.Q ~= "Q2")) if full then if displayPrecision and not parseDisplayPrecision(coordinates, displayPrecision) then return showError(string.format(geoformatdata.errorUnrecognizedPrecisionOption, displayPrecision), {}) end if link == geoformatdata.valLinkYes then coordinates.link = true elseif link == geoformatdata.valLinkNo then coordinates.link = false elseif link == geoformatdata.valLinkGMS then coordinates.link = "gms" elseif link then return showError(string.format(geoformatdata.errorUnrecognizedLinkOption, link), {}) else -- default is "yes" coordinates.link = true end if location == geoformatdata.valLocationTop then coordinates.top = true coordinates.inline = false elseif location == geoformatdata.valLocationInline then coordinates.top = false coordinates.inline = true elseif location == geoformatdata.valLocationTopAndInline then coordinates.top = true coordinates.inline = true elseif location then return showError(string.format(geoformatdata.errorUnrecognizedLocationOption, location), {}) else -- default if not given coordinates.top = false coordinates.inline = true end else -- micro -- options are implied in micro variant if coordinates.precision > 0.00027777777777777800 then coordinates.precision = 0.00027777777777777800 -- seconds elseif coordinates.precision < 0.00002777777777777780 then coordinates.precision = 0.00002777777777777780 -- seconds with one decimal digit end if not coordinates.params then coordinates.params = "scale:5000" -- bonus end coordinates.inline = true coordinates.top = false coordinates.link = true end coordinates:normalize() local result = {} table.insert(result, coordinates:display()) if full then table.insert(result, coordinates:extensionGeoData()) end return table.concat(result) end, [geoformatdata.apiMapPoint] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = false, removeBlanks = false, wrappers = geoformatdata.wrappersMapPoint, }) local coordinates = create() local description = args[geoformatdata.argDescription] local symbol = args[geoformatdata.argSymbol] geohack = geoformatdata.mapPointMapping[description] or args[geoformatdata.argMapPointGeohack] local status, errorMessage, fromWD = false, false, false if args[geoformatdata.argMapPointCoordinates] then status, errorMessage = coordinates:parse(args[geoformatdata.argMapPointCoordinates],geohack) else local autocoords = wd("P625", false) if not autocoords then -- missing data in WD return end coordinates.latitude = autocoords.latitude coordinates.longitude = autocoords.longitude coordinates.precision = autocoords.precision coordinates.params = autocoords.params or geohack coordinates.displayData = autocoords.displayData status = true fromWD = true end local point = {} if not status then point.error = showError(errorMessage, args) else coordinates:normalize() point.latitude = coordinates.latitude point.longitude = coordinates.longitude point.link = coordinates:geohack(false, false, false) if args.display then if symbol == geoformatdata.valSymbolYes then coordinates.symbol = true elseif symbol == geoformatdata.valSymbolNo then coordinates.symbol = false elseif symbol and (#symbol==0) then point.error = showError(geoformatdata.errorEmptySymbolOption, {}) else coordinates.symbol = symbol end coordinates.top = mw.title.getCurrentTitle().namespace == 0 coordinates.inline = true if fromWD and (args.display == "#coordinates") then point.display = coordinates:display()..coordinates:extensionGeoData() else point.display = coordinates:display() end end end point.mark = args[geoformatdata.argMark] or geoformatdata.defArgMark point.size = tonumber(args[geoformatdata.argMarkSize] or geoformatdata.defArgMarkSize) point.description = description point.position = args[geoformatdata.argDescriptionPosition] point.alt = args[geoformatdata.argAlt] if not coordinates.params then point.geohack = geoformatdata.defArgGeohack end return mw.text.jsonEncode(point).."," end, [geoformatdata.apiCheckDistance] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = false, removeBlanks = false, }) local scalingFactor = tonumber(args[geoformatdata.argScalingFactor]) or 6731000 local displayPrecision = args[geoformatdata.argPrecision] local maximumDistance = tonumber(args[geoformatdata.argMaximumDistance]) local errorMessage = args[geoformatdata.argErrorMessage] local coords = args[geoformatdata.argCoordinatesCoordinates] if not errorMessage or not maximumDistance or not coords then -- nie ma nic do wyślwietlenia lub sprawdzenia mw.log("apiCheckDistance: nic nie ma") return end local A = create() local status, error status, error = A:parse(coords, nil, displayPrecision) if not status then mw.logObject(error, "apiCheckDistance: parse error") return end -- precyzja jeszcze nie jest używana... if displayPrecision and not parseDisplayPrecision(A, display) then mw.logObject(error, "apiCheckDistance: parsePrecision error") return end local B = wd("P625", false) if not B then mw.logObject(B, "apiCheckDistance: missing data in WD") return end -- ... ale już jest wykorzystana na wyznaczenie promienia błędu A.radius = scalingFactor * size(A) B.radius = scalingFactor * size(B) local distance = scalingFactor * distance(A,B) if distance <= maximumDistance then -- brak błędów return end -- zalogujmy co się da mw.logObject({A, WD = B, distance = distance}, "apiCheckDistance") -- parametry komunikatu local parameters = { distance = tostring(math.floor(distance + 0.5)), radiusA = tostring(math.floor(A.radius + 0.5)), radiusB = tostring(math.floor(B.radius + 0.5)), } local message, _ = string.gsub(errorMessage, "%(%(%((.-)%)%)%)", parameters) return message end, [geoformatdata.apiDistance] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = false, removeBlanks = false, }) local scalingFactor = tonumber(args[geoformatdata.argScalingFactor]) or geoformatdata.defaultDistanceScalingFactor local coordsA = args[1] local coordsB = args[2] local A = create() local status, error status, error = A:parse(coordsA, nil, nil) if not status then mw.logObject(error, "apiDistance: parse error A") return end local B if coordsB then B = create() status, error = B:parse(coordsB, nil, nil) if not status then mw.logObject(error, "apiDistance: parse error B") return end else B = wd("P625", false) if not B then mw.logObject(B, "apiDistance: missing data in WD") return end end return scalingFactor * distance(A,B) end, [geoformatdata.apiPrecisionRadius] = function(frame) local args = require('Module:Arguments').getArgs(frame, { trim = false, removeBlanks = false, }) local scalingFactor = tonumber(args[geoformatdata.argScalingFactor]) or geoformatdata.defaultDistanceScalingFactor local displayPrecision = args[geoformatdata.argPrecision] local coords = args[geoformatdata.argCoordinatesCoordinates] local A if coords then A = create() local status, error status, error = A:parse(coords, nil, displayPrecision) if not status then mw.logObject(error, "apiPrecisionRadius: parse error") return end if displayPrecision and not parseDisplayPrecision(A, displayPrecision) then mw.logObject(displayPrecision, "apiPrecisionRadius: parsePrecision error") return end else A = wd("P625", false) if not A then mw.logObject(A, "apiPrecisionRadius: missing data in WD") return end end return scalingFactor * size(A) end, } ki4cc2o0cx4q9e0l22qln5svtgr7mpr