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 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 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 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 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, "¶ms=")
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, "|")
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