Wikipedia csbwiki https://csb.wikipedia.org/wiki/Prz%C3%A9dn%C3%B4_starna MediaWiki 1.47.0-wmf.22 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 Amsterdam 0 66 216510 199414 2026-10-05T10:13:57Z Terrus38 14026 216510 wikitext text/x-wiki [[Òbrôzk:Amsterdam, bridge name Varkenssluis.jpg|mały|Kòła ë karnôle są czãstim widzënkã w Amsterdamù]] '''Amsterdam''' – nôwikszi gard w [[Niderlandë|Niderlandach]] ë jich kònstitucyjnô stolëca (chòc rząd mô sedzbã w [[Haga|Hadze]]). W [[2005]] rokù miôł 739&nbsp;295 mieszkańców. == Bùtnowé lënczi == {{Commons}} * [http://www.amsterdam.nl/ Domôcô starna gardu] {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Niderlandë]] 0ltj25c794i9k0ee7ks0rj6dnam2bvm Lësta eùropejsczich państw 0 67 216521 215961 2026-10-05T10:21:32Z Terrus38 14026 216521 wikitext text/x-wiki [[Òbrôzk:Europejsko Unijo CBS ubt2.png|frame|right|Dôwnô kôrta [[Eùropa|Eùropë]] ë Eùropejsczi Ùnie pò kaszëbskù (nieaktualny)]]'''Lësta [[Eùropa|eùropejsczich]] państw''' – lësta [[Państwò|państw]] ë zawiôzłëch teritoriów [[Eùropa|Eùropë]]. Na òbrëmienié Eùropë w całoscë abò dzélowô najdiwô sã 46 ùznônëch państw na midzënôrodny arenie. Knéż do Eùropë zalëczô sã sétmë [[Zawiôzłé teritorium|zawiôzłëch]] [[Zawiôzłé teritorium|teritoriów]] [[Dëńskô|Dëńsczi]], [[Norweskô|Norwesczi]] ë [[Wiôlgô Britaniô|Wiôldżi Britanie]]. W Eùropie fónkcjonëje téż jedno dzélowô ùznôwóné państwò ([[Kòsowò]]) a téż jedno [[nieùznôwóné państwò]] ([[Nadedniestrzé]]). Nôwiãkszim eùropejsczim państwã je [[Ruskô]] (17 098 242 km²), równak nôwiãkszim państwã najdiwëjącym sã w całoscë na teritorium Eùropë je [[Ùkrajina]] (603 550 km²). Nôlëdniészim państwã na eùropejsczim kòntinence równak je Ruskô (142 021 981 mieszkańców), a nôlëdniészim państwã pòłóżonym w całoscë w Eùropie są [[Niemieckô|Niemcë]] (84 316 622 mieszkańców). Nômniészim tak samò wedle wiôlgòscë wiéchrzëznë, jak ë lëczbë lëdztwa je [[Watikan]] (0,44 km²; 825 mieszkańców). {| class="wikitable" |+ ! !Artikel !Kategòrëjô !Też !sloworz.org |- | align="right" |1 |[[Albańskô]] |{{#categorytree:Albańskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Albańskô →]: [[Albańskô]] |Albaniô<ref>{{sloworz.org|18433|20909}}</ref> |- | align="right" |2 |[[Andora]] |{{#categorytree:Andora|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Andora →]: – |– |- | align="right" |3 |[[Aùstriô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Aùstriô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Aùstriô →]: Aùstrëjackô |Óstrëjô<ref>{{sloworz.org|9215|10520}}</ref>; Óstrëjackô<ref>{{sloworz.org|9214|10519}}</ref>; Aùstriô<ref>{{sloworz.org|19158|21683}}</ref>; |- | align="right" |4 |[[Belgijskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Belgijskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Belgijskô →]: – |Belgiô<ref>{{sloworz.org|19593|22180}}</ref> |- | align="right" |5 |[[Biôłorus]] |{{#categorytree:Biôłorus|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Biôłorus →]: [[Biôłorëskô]]; [[Biôłorusjô]] |Biôłorusjô<ref>{{sloworz.org|19534|22109}}</ref> |- | align="right" |6 |[[Bòsniô i Hercegòwina]] |{{#categorytree:Bòsniô i Hercegòwina|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Bòsniô_i_Hercegòwina →]: [[Bòsnijô ë Hercegòwina]] |– |- | align="right" |7 |[[Bùłgariô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Bùłgariô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Bùłgariô →]: [[Bùlgarskô]] |Bùłgariô<ref>{{sloworz.org|21053|23824}}</ref> |- | align="right" |8 |[[Cyper]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Cyper|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Cyper →]: – |Cyper<ref>{{sloworz.org|22463|25437}}</ref> |- | align="right" |9 |[[Chòrwackô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Chòrwackô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Chòrwackô →]: [[Chòrwacjô]] |Chòrwacjô<ref>{{sloworz.org|21850|24722}}</ref> |- | align="right" |10 |[[Czeskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Czeskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Czeskô →]: [[Czeskô Repùblika]] |Czeskô<ref>{{sloworz.org|16592|18963}}</ref> |- | align="right" |11 |[[Czôrnogóra]] |{{#categorytree:Czôrnogóra|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Czôrnogóra →]: [[Czôrnô Góra]] |Czôrnogóra<ref>{{sloworz.org|22515|25494}}</ref> |- | align="right" |12 |[[Duńskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Duńskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Duńskô →]: [[Dëńskô]] |Duńskô<ref>{{sloworz.org|19811|22430}}</ref> |- | align="right" |13 |[[Estoniô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Estoniô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Estoniô →]: [[Estónskô]]; [[Estóńskô]] |Estoniô<ref>{{sloworz.org|25726|29718}}</ref> |- | align="right" |14 |[[Farersczé Òstrowë]] |{{#categorytree:Farersczé Òstrowë|mode=all|depth=0}} |– |– |- | align="right" |15 |[[Fińskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Fińskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Fińskô →]: – |Finlandiô<ref>{{sloworz.org|26158|30313}}</ref> |- | align="right" |16 |[[Francjô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Francjô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Francjô →]: [[Frańcëskô]]; [[Francëjô]] |Francjô<ref>{{sloworz.org|26389|30647}}</ref>; Francëskô<ref>{{sloworz.org|26389|30647}}</ref> |- | align="right" |17 |[[Greckô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Greckô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Greckô →]: [[Grecjô]] |Grecjô<ref>{{sloworz.org|27032|31520}}</ref> |- | align="right" |18 |[[Grëzóńskô]] |{{#categorytree:Grëzóńskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Grëzóńskô →]: – |Gruzjô<ref name=":0">{{sloworz.org|27113|31612}}</ref>; Grëzjô<ref name=":0" />, Grëzóńskô<ref name=":0" /> |- | align="right" |19 |[[Irlandiô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Irlandiô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Irlandiô →]: [[Irlandëjô]] |Irlandiô<ref name=":1">{{sloworz.org|28225|33035}}</ref>; Irlandzkô<ref name=":1" />; Jirlandiô<ref name=":1" />; Jirlandzkô<ref name=":1" /> |- | align="right" |20 |[[Islandiô]] |{{#categorytree:Islandiô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Islandiô →]: [[Islandëjô]] |Islandiô<ref name=":2">{{sloworz.org|28258|33076}}</ref>; Jislandiô<ref name=":2" /> |- | align="right" |21 |[[Italskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Italskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Italskô →]: – |Italiô<ref name=":3">{{sloworz.org|28276|36149}}</ref>; Italskô<ref name=":3" />; Włochë<ref>{{sloworz.org|7453|8433}}</ref> |- | align="right" |22 |[[Liechtenstein]] |{{#categorytree:Lichtenstein|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Liechtenstein →]: [[Lichtenstein]] |– |- | align="right" |23 |[[Lëtwa]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Lëtwa|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Lëtwa →]: [[Lëtewskô]] |Lëtwa<ref>{{sloworz.org|2304|2653}}</ref>; Lëtewskô<ref>{{sloworz.org|19533|22108}}</ref> |- | align="right" |24 |[[Luksembùrg]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Luksembùrg|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Luksembùrg →]: [[Luksembùrskô]] |– |- | align="right" |25 |[[Łotwa]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Łotwa|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Łotwa →]: [[Łotewskô]] |Łotwa<ref>{{sloworz.org|32931|40454}}</ref> |- | align="right" |26 |[[Madżarskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Madżarskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Madżarskô →]: – |Wãgrë<ref>{{sloworz.org|5500|6163}}</ref> |- | align="right" |27 |[[Malta]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Malta|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Malta →]: – |Malta<ref>{{sloworz.org|33229|40996}}</ref> |- | align="right" |28 |[[Niemieckô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Miemieckô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Niemieckô →]: [[Miemieckô]] |Niemieckô<ref>{{sloworz.org|19537|22112}}</ref>; Miemcë<ref name=":4">{{sloworz.org|6305|7069}}</ref>; Niemcë<ref name=":4" /> |- | align="right" |29 |[[Mònakò]] |{{#categorytree:Mònakò|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Mònakò →]: – |– |- | align="right" |30 |[[Niderlandë]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Niderlandë|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Niderlandë →]: – |Holandiô |- | align="right" |31 |[[Nordowô Macedoniô]] |{{#categorytree:Nordowô Macedoniô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Nordowô_Macedoniô →]: [[Macedońskô]]; [[Macedoniô]] |Macedoniô<ref name=":5">{{sloworz.org|33054|40686}}</ref>; téż Macedońskô<ref name=":5" /> |- | align="right" |32 |[[Norweskô]] |{{#categorytree:Norweskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Norweskô →]: [[Norge]]; [[Noreg]]; [[Kongeriket Norge]]; [[Kongeriket Noreg]] |Norweskô<ref>{{sloworz.org|19815|22434}}</ref> |- | align="right" |33 |[[Pòlskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Pòlskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Pòlskô →]: – |Pòlskô<ref>{{sloworz.org|13838|15813}}</ref> |- | align="right" |34 |[[Pòrtugalskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Pòrtugalskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Pòrtugalskô →]: – |? |- | align="right" |35 |[[Rumùńskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Rumùńskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Rumùńskô →]: [[Rumùniô]] |? |- | align="right" |36 |[[Ruskô]] |{{#categorytree:Ruskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Ruskô →]: [[Ruskô Federacëjô]] |Rusjô<ref>{{sloworz.org|19532|22107}}</ref>; Ruskô<ref>{{sloworz.org|3513|4008}}</ref> |- | align="right" |37 |[[San Marino]] |{{#categorytree:San Marino|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=San_Marino →]: – |– |- | align="right" |38 |[[Serbiô]] |{{#categorytree:Serbskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Serbiô →]: [[Serbskô]] |? |- | align="right" |39 |[[Słowackô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Słowackô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Słowackô →]: – |? |- | align="right" |40 |[[Słoweniô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Słoweniô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Słoweniô →]: [[Słoweńskô]] |? |- | align="right" |41 |[[Watikan]] |{{#categorytree:Watikan|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Watikan →]: – |? |- | align="right" |42 |[[Szpańskô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Szpańskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Szpańskô →]: – |Hiszpaniô<ref name=":6">{{sloworz.org|27545|32152}}</ref>; téż Szpaniô<ref name=":6" />, Szpańskô<ref name=":6" /> |- | align="right" |43 |[[Szwajcariô]] |{{#categorytree:Szwajcarskô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Szwajcariô →]: [[Szwajcarskô]] |? |- | align="right" |44 |[[Szwédzkô]] - (''[[Eùropejskô Ùniô|EÙ]]'') |{{#categorytree:Szwédzkô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Szwedzkô →]: – |Szwédzkô<ref>{{sloworz.org|9954|11397}}</ref> |- | align="right" |45 |[[Ùkrajina]] |{{#categorytree:Ùkrajina|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Ùkrajina →]: – |Ùkrajińskô<ref name=":7">{{sloworz.org|19528|22103}}</ref> / Ùkrajina<ref name=":7" /> |- | align="right" |46 |[[Wiôlgô Britaniô]] |{{#categorytree:Wiôlgô Britaniô|mode=all|depth=0}} |[https://csb.wikipedia.org/wiki/Specjalnô:Linkujące?namespace=&hidetrans=1&hidelinks=1&target=Wiôlgô_Britanijô →]: [[Wiôlgô Britanijô]] |Wiôlgô Britaniô<ref>{{sloworz.org|19866|22486}}</ref> |} {{Aktualizacjô|Òstatnô=2026-05-15|Nastãpnô=+1 rok}} == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} [[Kategòrëjô:Eùropejsczé państwa|*]] [[Kategòrëjô:Lëstë|Eùropejsczich państw]] 51rkc001k4i71tzi7zzcb1dio5wf1ad Wiki:Pòrtal wëcmaniznë 4 1469 216495 215874 2026-10-05T04:36:40Z Iketsi 3254 [[:Wiki:1000|Wiki:1000]] 216495 wikitext text/x-wiki __NOTOC__ {{Col3 |col1= === 🚧 Werk === * [[:Wiki:1000|Wiki:1000]] * [[:Kategòrëjô:Do werifikacje|Do werifikacje]] * [[:Kategòrëjô:Dodac òpisënk òdjimka|Dodac òpisënk òdjimka]] * [[Wiki:Starnë brëkùjącé doczënieniô|Starnë brëkùjącé doczënieniô]] * [[:Kategòrëjô:Artikle, jaczé nót je napisac òd nowa|Artikle, jaczé nót je napisac òd nowa]] * [[:Kategòrëjô:Starnë z nieprzezdrzanyma dolmaczënkama|Starnë z nieprzezdrzanyma dolmaczënkama]] |col2= === [[Przédnô starna]] === * [[Szablóna:Wiész të]] * [[Szablóna:Articzel tidzenia]] <small>(+[[Wiki:Articzel tidzenia]])</small> * [[Moduł:Random stub/dane]] |col3= === Diskùsëjô === * [[Wiki:Karczma]] * [[Wiki:Tôfla ògłosów|Tôfla ògłosów]] * diskùsëjnô lësta: ([http://mail.wikipedia.org/mailman/listinfo/wikipl-l pòlskô]) * [https://discord.gg/xquqbPC6Y4%7C kaszëbsczi serwer Wikimediów] na [[Discord|Discordze]] }} {{Col3 |col1= === 🔨Nôrzãdzé === * [[Wiki:Szablónë]] * [[:Kategòrëjô:Artikle do rëmniãcô]] |col2= === [[Wikipediô|Ò Wikipedie]] === * [[Wiki:FAQ|FAQ]] * [[Wiki:Czim Wikipedijô nie je|Czim Wikipedijô nie je]] * [[Wiki:Terminologijô|Terminologijô]] * [[Wiki:Werk ë deja Wiki|Co to je, ë jak fùnkcjonëje Wiki?]] * [[Wiki:Neùtralny pòzdrzatk|Neùtralny pòzdrzatk]] * [[Wiki:Midzëmòwnô kòòrdinacëjô|Midzëmòwnô kòòrdinacëjô]] * [[Wiki:Zladënk całi Wikipediji|Zladënk całi Wikipediji]] * [[Wiki:Normalizacëjô kaszëbsczi terminologiji]] |col3= === Òbaczë téż === * [[Wiki:Statistika]] * [[:Kategòrëjô:Nôpiérwi pò kaszëbskù]] * ''[[m:List of articles all languages should have|List of articles all languages should have]]'' * ''[[m:Slavopedia/100 zapisis, ktor vse Slavju Vikipedias dolzx imat|100 zapisis, ktor vse Slavju Vikipedias dolzx imat]]'' }} [[Kategòrëjô:Metastarnë Wikipedie]] [[eu:Wikipedia:WikiMediari buruz gaurkotasun-albisteak]] fnfd0s6z1kgrm57g0m4vcckkfzvhaf5 Kategòrëjô:Niderlandë 14 1493 216517 159082 2026-10-05T10:17:39Z Terrus38 14026 Terrus38 przeniós starnã [[Kategòrëjô:Néderlandzkô]] do [[Kategòrëjô:Niderlandë]]: pòwszechno brëkòwóną pòżwą te kraju są Niderlandë, nié Néderlandzkô 159082 wikitext text/x-wiki [[Kategòrëjô:Eùropejsczé państwa]] onlrkft29r1ccvdo7zdqkps4rkd41sy Duńskô 0 1888 216484 213488 2026-10-04T19:38:35Z DawnyTest 14843 grańca 216484 wikitext text/x-wiki {{Infobox-państwò| gwôsné miono = Kongeriget Danmark | miono = Królestwò Duńsczi | miono-genitiw = Duńsczi | fana = Flag_of_Denmark.svg | herb = National coat of arms of Denmark.svg | na karce = LocationDenmark.png | mòtto = Forbundne, forpligtede, for Kongeriget Danmark | jãzëk = [[Duńsczi jãzëk|duńsczi]] | stolëca = Kòpenhaga | fòrma państwa = Kònstitucëjnô mònarchijô | wiéchrzëzna = 43.094 | procent-wòdë = 1,6 | lëdztwò = 5 748 769 | rok = 2017 | dëtk = Króna | kòd dëtka = DKK | czasowô cona = +1 | swiãto = [[5 czerwińca]] | himn = <center>[[Òbrôzk:United States Navy Band - Der er et yndigt land.ogg]]</center> [[Himn Duńsczi|Der er et yndigt land]] – państwòwi himn<br />(Je taczi snôżi krôj) <center>[[Òbrôzk:United States Navy Band - Kong Kristian stod ved højen mast.ogg]]</center> [[Kong Kristian]] – królewsczi himn <br />(Król Christian) | kòd = DNK | Internet = .dk | telefón = +45 |Mònarcha=[[Fridrik X]]|Premiéra=Mette Frederiksen }} '''Duńskô''' ({{jãz.|da}} ''Danmark'') – je państwã w Nordowi [[Eùropa|Eùropie]], słëchającym do [[Eùropejskô Ùniô|Eùropejsczi Ùnie]]. Greńczë z [[Niemieckô|Niemcama]], długosc grańcë je òk. 70 km<ref>''[https://www.dw.com/en/germany-denmark-celebrate-border-centennial/a-57875715 Germany, Denmark celebrate border centennial]'' [online], Deutsche Welle [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Stolëcznym gardã Duńsczi je [[Kòpenhaga]]. Jińszé wôżné gardë to: [[Odense]], [[Aalborg]] ë [[Aarhus]]. Dosc wiôlgą autonomijã òd Duńsczi mają [[Farersczé Òstrowë]] i [[Grenlandzkô]]. Duńskô je kònstitucyjną mònarchią. Królã òd 2024 je [[Fridrik X]]. == Òbaczë téż == * [[Kòpenhaga]] * [[Grenlandiô]] * [[Norweskô]] * [[Niemieckô]] == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Eùropa}} {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Eùropejsczé państwa]] [[Kategòrëjô:Duńskô| ]] 2ddtu7c0fm9tirva4cppmkeoqurximf Szablóna:Eùropa 10 2386 216522 216383 2026-10-05T10:23:53Z Terrus38 14026 216522 wikitext text/x-wiki {| style="clear:both; width:55em;margin: 1.5em auto; border:1px solid #CCC; background-color:#FCFCFC; font-size:smaller; text-align:center" ! style="background:#ccccff" align="center" | [[Państwò|Państwa]] w [[Eùropa|Eùropie]] |- | align="center" style="font-size: 90%" | [[Albańskô]] | [[Andorra|Andora]] | [[Aùstriô]] | [[Belgijskô|Belgiô]] | [[Biôłorus|Biôłoruskô]] | [[Bòsniô ë Hercegòwina]] | [[Bùłgariô|Bùłgarskô]] | [[Chòrwackô]] | [[Cyper]] | [[Czeskô Repùblika]] | [[Czôrnogóra]] | [[Duńskô]] | [[Estóńskô]] | [[Fińskô]] | [[Francjô]] | [[Greckô]] | [[Irlandiô]] | [[Islandiô]] | [[Italskô]] | [[Lëtewskô]] | [[Liechtenstein]] | [[Luksembùrskô]] | [[Łotewskô]] | [[Madżarskô]] | [[Malta]] | [[Miemieckô]] | [[Mòłdawskô]] | [[Mònakò]] | [[Niderlandë|Holandiô]] | [[Nordowô Macedoniô]] | [[Norweskô]] | [[Pòlskô]] | [[Pòrtugalskô]] | [[Rumùńskô]] | [[Ruskô]] | [[San Marino]] | [[Serbskô]] | [[Słoweniô|Słoweńskô]] | [[Słowackô]] | [[Szpańskô]] | [[Szwajcariô]] | [[Szwédzkô]] | [[Tëreckô]] | [[Ùkrajina]] | [[Watikan]] | [[Wiôlgô Britaniô]] |- | align="center" style="font-size: 85%" colspan="2" | '''Zanôléżné teritoria:''' [[Alandzczé Òstrowë]] | [[Farersczé Òstrowë]] | [[Gibraltar]] | [[Grenlandzkô]] | [[Guernsey]] | [[Jersey]] | [[Man]] | [[Svalbard]] |- | align="center" style="font-size: 85%" colspan="2" | '''Ògrańczoné ùznanié:''' [[Kòsowò]] | [[Nadedniestrzé]] |} <noinclude> [[Kategòrëjô:Eùropa| ]] [[Kategòrëjô:Szablónë]] </noinclude> blquzud8cna2pzysnd317il7m0b4noc Niderlandë 0 3905 216461 213505 2026-10-04T13:10:14Z DawnyTest 14843 216461 wikitext text/x-wiki {{Infobox-państwò| gwôsné miono = Koninkrijk der Nederlanden | miono = Królestwò Néderlandsczi | miono-genitiw = Néderlandsczi | fana = Flag of the Netherlands.svg| herb = Royal coat of arms of the Netherlands.svg | na karce = LocationNetherlands.svg | mòtto = Je maintiendrai (Ùtrzëmam) | jãzëk = [[hòlendersczi jãzëk|hòlendersczi]], flemsczi | stolëca = Amsterdam| fòrma państwa = kònstitucyjna mònarchia | wiéchrzëzna = 41.543 | lëdztwò = 17.100.000 | rok = 2017 | dëtk = [[Eùro]] | kòd dëtka = EUR | czasowô cona = +0 | swiãto = 27 łżëkwiata<ref>[https://www.amsterdamsights.com/events/koningsdag.html King's Day] amsterdamsights.com [2025-08-20]</ref>| himn = Wilhelmus van Nassouwe <center>[[Òbrôzk:United States Navy Band - Het Wilhelmus (tempo corrected).ogg]]</center> | kòd = NL | Internet = .nl | telefón = +31 |Premiéra=Rob Jetten|Mònarcha=[[Wilhelm-Aleksander]]|aùtowi kòd=NL}} '''Hòlandiô'''<ref>{{sloworz.org|27579|32202}}</ref> téż '''Néderlandzkô''' ({{jãz.|nl}} ''Nederland'') je państwã w Zôpadny [[Eùropa|Eùropie]], krôj [[Eùropejskô Ùniô|Eùropejsczi Ùnie]]. Do Hòlandie nôleżą też zamòrsczé teritoria w Americe, chtërë są aùtonomicznëmi krajama: Aruba, Curaçao i Sint Maarten. Néderlandzkô je kònstitucyjną mònarchią. Przédnikã kraju òd 2013 je król [[Wilhelm-Aleksander]] z dinastëji Orańsczi-Nassau. * stoleczny gard: [[Amsterdam]], le sedzba rządu je w [[Haga|Hadze]]. * lëdztwò: 17.100.475 mieszkańców ([[2017]]) * wiéchrzëzna: 41.543 km² * dëtk: euro * telefón: +31 * Internet: .nl == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Eùropa}} {{Euro}} {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Eùropejsczé państwa]] [[Kategòrëjô:Néderlandzkô| ]] 139papbreskk8f809aaq33i62auoo9h 216501 216461 2026-10-05T10:08:01Z Terrus38 14026 Terrus38 przeniós starnã [[Néderlandzkô]] do [[Niderlandë]]: "Néderlandzkô" to fòrma znónô prakticzno blós z Wikipedie, pòwszechno ùżiwóną fòrmą są Niderlandë, zdrz. https://bibliotekacyfrowa.eu/Content/75801/82460.pdf, https://mojestrone.com/artykul/nato-rozwinie-swoj-system-n1312141, https://mojestrone.com/artykul/dzin-na-niderlandzczich-n2282927, https://biersztuba.wordpress.com/2021/04/30/ropsmenowie-z-erengrad-kaszebi-w-swiece-warhammera/ 216461 wikitext text/x-wiki {{Infobox-państwò| gwôsné miono = Koninkrijk der Nederlanden | miono = Królestwò Néderlandsczi | miono-genitiw = Néderlandsczi | fana = Flag of the Netherlands.svg| herb = Royal coat of arms of the Netherlands.svg | na karce = LocationNetherlands.svg | mòtto = Je maintiendrai (Ùtrzëmam) | jãzëk = [[hòlendersczi jãzëk|hòlendersczi]], flemsczi | stolëca = Amsterdam| fòrma państwa = kònstitucyjna mònarchia | wiéchrzëzna = 41.543 | lëdztwò = 17.100.000 | rok = 2017 | dëtk = [[Eùro]] | kòd dëtka = EUR | czasowô cona = +0 | swiãto = 27 łżëkwiata<ref>[https://www.amsterdamsights.com/events/koningsdag.html King's Day] amsterdamsights.com [2025-08-20]</ref>| himn = Wilhelmus van Nassouwe <center>[[Òbrôzk:United States Navy Band - Het Wilhelmus (tempo corrected).ogg]]</center> | kòd = NL | Internet = .nl | telefón = +31 |Premiéra=Rob Jetten|Mònarcha=[[Wilhelm-Aleksander]]|aùtowi kòd=NL}} '''Hòlandiô'''<ref>{{sloworz.org|27579|32202}}</ref> téż '''Néderlandzkô''' ({{jãz.|nl}} ''Nederland'') je państwã w Zôpadny [[Eùropa|Eùropie]], krôj [[Eùropejskô Ùniô|Eùropejsczi Ùnie]]. Do Hòlandie nôleżą też zamòrsczé teritoria w Americe, chtërë są aùtonomicznëmi krajama: Aruba, Curaçao i Sint Maarten. Néderlandzkô je kònstitucyjną mònarchią. Przédnikã kraju òd 2013 je król [[Wilhelm-Aleksander]] z dinastëji Orańsczi-Nassau. * stoleczny gard: [[Amsterdam]], le sedzba rządu je w [[Haga|Hadze]]. * lëdztwò: 17.100.475 mieszkańców ([[2017]]) * wiéchrzëzna: 41.543 km² * dëtk: euro * telefón: +31 * Internet: .nl == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Eùropa}} {{Euro}} {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Eùropejsczé państwa]] [[Kategòrëjô:Néderlandzkô| ]] 139papbreskk8f809aaq33i62auoo9h 216509 216501 2026-10-05T10:12:57Z Terrus38 14026 216509 wikitext text/x-wiki {{Infobox-państwò| gwôsné miono = Koninkrijk der Nederlanden | miono = Królestwò Niderlandów | miono-genitiw = Niderlandów | fana = Flag of the Netherlands.svg| herb = Royal coat of arms of the Netherlands.svg | na karce = LocationNetherlands.svg | mòtto = Je maintiendrai (Ùtrzëmam) | jãzëk = [[hòlendersczi jãzëk|hòlendersczi]], flemsczi | stolëca = Amsterdam| fòrma państwa = kònstitucyjna mònarchia | wiéchrzëzna = 41.543 | lëdztwò = 17.100.000 | rok = 2017 | dëtk = [[Eùro]] | kòd dëtka = EUR | czasowô cona = +0 | swiãto = 27 łżëkwiata<ref>[https://www.amsterdamsights.com/events/koningsdag.html King's Day] amsterdamsights.com [2025-08-20]</ref>| himn = Wilhelmus van Nassouwe <center>[[Òbrôzk:United States Navy Band - Het Wilhelmus (tempo corrected).ogg]]</center> | kòd = NL | Internet = .nl | telefón = +31 |Premiéra=Rob Jetten|Mònarcha=[[Wilhelm-Aleksander]]|aùtowi kòd=NL}} '''Holandiô''', téż '''Niderlandë''' ({{jãz.|nl}} ''Nederland'') – państwò w Zôpadny [[Eùropa|Eùropie]] nôleżącé do [[Eùropejskô Ùniô|Eùropejsczi Ùnie]]. Do Holandie nôleżą też zamòrsczé teritoria w Americe, chtërë są aùtonomicznyma krajama: Aruba, Curaçao i Sint Maarten. Niderlandë są kònstitucyjną mònarchią. Głową państwa òd 2013 je król [[Wilhelm-Aleksander]] z dinastie Òrańsczi-Nassaù. * stolëczny gard: [[Amsterdam]] (sedzba rządu je w [[Haga|Hadze]]). * lëdztwò: 17.100.475 mieszkańców ([[2017]]) * wiéchrzëzna: 41.543 km² * dëtk: euro * telefón: +31 * Internet: .nl == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Eùropa}} {{Euro}} {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Eùropejsczé państwa]] [[Kategòrëjô:Niderlandë| ]] t4a9s3mq7s8ib6jhrw130n151jkfnh6 Szablóna:Eùro 10 4481 216523 215766 2026-10-05T10:24:00Z Terrus38 14026 216523 wikitext text/x-wiki {| style="clear:both; width:55em;margin: 1.5em auto; border:1px solid #CCC; background-color:#FCFCFC; font-size:smaller; text-align:center" ! style="background:#ccccff" align="center" | [[Państwò|Państwa]] z [[Eùro]] |- | style="font-size:90%" | '''Państwa Gòspòdarczi i Walutowi Ùnie''' [[Aùstriô]] | [[Belgijskô|Belgiô]] | [[Bùłgariô]] | [[Chòrwackô]] | [[Cyper]] | [[Estóńskô]] | [[Fińskô]] | [[Francjô]] | [[Greckô]] | [[Irlandiô]] | [[Italskô]] | [[Lëtewskô]] | [[Luksembùrskô]] | [[Łotewskô]] | [[Malta]] | [[Miemieckô]] | [[Niderlandë|Holandiô]] | [[Pòrtugalskô|Pòrtugaliô]] | [[Słowackô]] | [[Słoweniô]] | [[Szpańskô]] | rowspan=3 |[[Òbrôzk:Eurozone Internal.svg|120px|border]] |- | style="font-size:80%" |'''jiné państwa:''' [[Andora]] | [[Czôrnogóra]] | [[Kòsowò]] | [[Mònakò]] | [[San Marino]] | [[Watikan]] |}<noinclude>[[Kategòrëjô:Navboxë]]</noinclude> h7lf2z0x4ds20kle2o2yuhne3ar0dm1 Qin Shi Huang 0 5466 216500 205192 2026-10-05T08:05:08Z Iketsi 3254 Copying from [[Category:Chinë]] to [[Category:Pòliticë]] using [[c:Help:Cat-a-lot|Cat-a-lot]] 216500 wikitext text/x-wiki [[Òbrôzk:Qinshihuangdi3.jpg|mały|Qin Shi Huang]] '''Qin Shi Huang''' (ùr. [[260 p.n.e.]], ùm. [[210 p.n.e.]]) – zwóny czasã zwëczajno '''Pierszim Czezerã''' – pierszi czezer [[Chińsczé Czezerstwò|Chińsczégò Czezerstwa]], chtëren w [[221]] r. p.n.e. sparłãcził sëłą biôtkùjącé sã królestwa w òbéńdze [[Chinë|Chinów]]<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>. == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Chinë]] [[Kategòrëjô:Pòliticë]] k7sbisontt3cm3ei2p27bvds4cxguj6 Frizjô 0 6104 216511 201700 2026-10-05T10:14:31Z Terrus38 14026 216511 wikitext text/x-wiki [[Òbrôzk:Frisian flag.svg|mały|Flaga Frizëjsczi]] [[Òbrôzk:Exmorra 02.JPG|mały|Tablëca w dwóch jãzëkach przed môlëzną we Frizje]] '''Frizjô''' (friz. ''Fryslân'') – to je prowincëjô w nordowëch [[Niderlandë|Niderlandach]] – w Zôpadny Eùropie. We Frizje są szkòłë w jaczich szkólny ùczą frizyjsczégò jãzëka. == Bùtnowé lënczi == {{Commons}} * [https://web.archive.org/web/20160304142319/http://zslipnica.info/fryzja2010.html Kaszëbi we Frizëjsce] {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Niderlandë]] gahdf0x4sbdjvtn1c350ai5qk2qyb0j 216512 216511 2026-10-05T10:14:52Z Terrus38 14026 216512 wikitext text/x-wiki [[Òbrôzk:Frisian flag.svg|mały|Frizyjskô fana]] [[Òbrôzk:Exmorra 02.JPG|mały|Dëbeltjãzëkòwô tôblëca przed môlëzną we Frizje]] '''Frizjô''' (friz. ''Fryslân'') – to je prowincëjô w nordowëch [[Niderlandë|Niderlandach]] – w Zôpadny Eùropie. We Frizje są szkòłë w jaczich szkólny ùczą frizyjsczégò jãzëka. == Bùtnowé lënczi == {{Commons}} * [https://web.archive.org/web/20160304142319/http://zslipnica.info/fryzja2010.html Kaszëbi we Frizëjsce] {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Niderlandë]] tsclzcazflcpvzwoq9x2y34w3u369i3 216513 216512 2026-10-05T10:15:13Z Terrus38 14026 216513 wikitext text/x-wiki [[Òbrôzk:Frisian flag.svg|mały|Frizyjskô fana]] [[Òbrôzk:Exmorra 02.JPG|mały|Dëbeltjãzëkòwô tôblëca przed môlëzną we Frizje]] '''Frizjô''' (friz. ''Fryslân'') – to je prowincëjô w nordowëch [[Niderlandë|Niderlandach]] – w Zôpadny Eùropie. We Frizje są szkòłë w jaczich szkólny ùczą frizyjsczégò jãzëka. == Bùtnowé lënczi == {{Commons}} * [https://web.archive.org/web/20160304142319/http://zslipnica.info/fryzja2010.html Kaszëbi we Frizje] {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Niderlandë]] 7n3xbgq8c9jxs1e1wdk34fx451riyry Otto von Bismarck 0 6412 216499 198510 2026-10-05T08:04:03Z Iketsi 3254 Copying from [[Category:Miemcë]] to [[Category:Pòliticë]] using [[c:Help:Cat-a-lot|Cat-a-lot]] 216499 wikitext text/x-wiki [[Òbrôzk:BismarckArbeitszimmer1886rest.jpg|mały|Otto von Bismarck]] '''Otto von Bismarck''' (1815–1898) – prësczi kanclérz, ùtwórca sparłãczonégò państwa, Miemiecczi Rzeszë. Ten ksyżã miôł swòje priwatné zrzeszenia z [[Kaszëbi|Kaszëbama]] bò pisôł, że w Bëtowszczi [[Zemia|Zemi]] w rozcygający sã wkół pùstoce czëc je le „wëcé wilków i Kaszëbów”. Dzélã [[Prësowie|prësczégò]] i bismarckòwsczégò na [[Pòmòrskô|Pòmòrsce]] mitu béł ùrëchlony pò wòjnie freńcëskò-prësczi, dzãka złotu wëgrónëch, gòspòdarczi rozwij Prës, òsoblëwò jegò wschódnëch, junczerzczich prowincëji, do chtërnëch barżi nôleżała [[Zôpadnô Pòmòrskô]], miéj [[Zôpadné Prësë]]. Òn béł [[Junker|junkrem]]. Derdowsczi mòże pòd amerikańsczim cëskiem napisôł: <blockquote>"Na wieczné czasë darząc gò fòlwarkã/Ònã pòsadłosc przezwalë Bismarkã"</blockquote> == Bùtnowé lënczi == {{Commons}} {{Ùzémk artikla}} {{Kòntrola}} [[Kategòrëjô:Miemcë]] [[Kategòrëjô:Pòliticë]] 9xk7hq7ui5i8qqvgurzge8sg4vvmq2h Slédny Sąd (òbrôz) 0 7897 216515 196967 2026-10-05T10:16:09Z Terrus38 14026 216515 wikitext text/x-wiki '''Slédny Sąd''' – to je triptik (trzëdzélowy òbrôz) [[Niderlandë|niderlandzczégò]] malownika. Ten òbrôz namalowôł kòl 1467–1471 rokù [[Hans Memling]], a terô òn je w [[Nôrodné Mùzeum w Gduńskù|Nôrodnym Mùzeum w Gduńskù]]. <center> <div style="border-collapse:collapse;border:1px solid lightgrey; padding:10px;width:490px;text-align:center"> [[Òbrôzk:Hans Memling 016.jpg|73px]] [[Òbrôzk:Hans Memling 017.jpg|75px]] [[Òbrôzk:Hans Memling 018.jpg|169px]] [[Òbrôzk:Hans Memling 021.jpg|75px]] [[Òbrôzk:Hans Memling 020.jpg|72px]] ''Slédny Sąd'', kòl 1467-1471 rokù. [[Nôrodné Mùzeum w Gduńskù]] </div> </center> == Bùtnowé lënczi == {{Commons}} {{Ùzémk artikla}} [[Kategòrëjô:Kùńszt]] [[Kategòrëjô:Gduńsk]] [[Kategòrëjô:Niderlandë]] k1pz9sy3fwq7t3ymdv2nx0hmhv744s3 Haga 0 9361 216514 198264 2026-10-05T10:15:36Z Terrus38 14026 216514 wikitext text/x-wiki [[Òbrôzk:Cityscape of The Hague, viewed from Het Plein (The Square).jpg|mały|Haga]] '''Haga''' – to je wiôldżi gard w [[Niderlandë|Niderlandach]] ë jich rząd mô tu sedzbã. W [[2023]] rokù òna mia 560 000 mieszkańców<ref>[https://www.denhaag.nl/en/introducing-the-hague/the-hague-in-numbers/ The Hague in numbers] The Hague</ref>. == Przëpisë == {{Przëpisë}} == Bùtnowé lënczi == {{Commons}} * [https://web.archive.org/web/20131023095458/http://www.denhaag.nl/home.htm Domôcô starna gardu] {{Ùzémk artikla}} [[Kategòrëjô:Niderlandë]] bcjudhsbi4tajzztcfb1juayvj86xjn Michael Jackson 0 11335 216493 216450 2026-10-05T00:01:29Z Terrus38 14026 przëpisë dodóm pózni 216493 wikitext text/x-wiki {{Biogram infobox|miono=Michael Jackson|òbrôzk=Michael Jackson 1983 (3x4 cropped) (contrast).jpg|fùl miono=Michael Joseph Jackson|data narodzeniégò=[[29 zélnika]] [[1958]]|môl narodzeniégò=[[Gary (Indiana)|Gary]]|data smiercë=[[25 czerwińca]] [[2009]]|môl smiercë=[[Los Angeles]]|przëczëna smiercë=przedôwkòwanié propòfòlu|wark=artista mùzyk, spiéwôrz, tuniôrz, aktór, ùsôdzca, filantrop|nôrodnosc=amerikańskô|wëznanié=[[chrzescëjaństwò]]|małżeństwò=[[Lisa Marie Presley]] (1994-1996), </br>[[Deborah Jeanne Rowe]] (1996-1999)|dzecë=[[Michael Joseph Jackson Jr.]], [[Paris-Michael Katherine Jackson]], [[Prince Michael Jackson II]]|pòdpis=Michael Jackson signature.svg}} '''Michael Joe Jackson''' (ùr. [[29 zélnika]] [[1958]] w [[Gary (Indiana)|Gary]], ùm. [[25 czerwińca]] [[2009]] w [[Los Angeles]]) – [[Zjednóné Kraje Americzi|amerikańsczi]] mùzyk a spiéwôrz mùzyczi pòp, R&B, soul, rock i funk, aùtór tekstów, estradowi artista, tuniôrz, aktór, ùsôdzca i filantrop. Spiéwôł tenorã, dispònowôł głosã o skalë trzech i pół òktawë. Pòzéwóny „królã pòpù”, trzimóny je za jednã òd nôbarżi ikònicznëch pòstacjów swiata kùlture XX stalatégò. Dzãka swòjim mùzycznym wëstãpóm ë telediskóm spòpùlarizowôł charakteristiczné tuńcowé rëchë, jaczé stałë sã jegò rozpòznôwczim céchã. Jegò głos a sztil wpłiwôł na artistów wielnëch mùzycznëch gatënków. Jackson je nôbarżi nôdgrôdzónym artistą w historie pòpùlarny mùzyczi. == Żëcopis == Jackson zaczął wëstãpòwac we wiekù piãc lat. Pòd dozorã rigòristicznégò òjca, Josepha Jacksona, Michael i czwórka jegò starszich bracynów ùtwòrza karno [[The Jackson 5]], jaczé pózni òstało przemionowóné na The Jacksons. Jich nôwikszim szlagróm słëchało ''I Want You Back'' (1969), ''Dancing Machine'' (1973), ''Blame It on the Boogie'' (1978), ''ABC'' (1970), and ''Who's Lovin' You'' (1969). Pierszi solowi albùm Michaela, ''Off the Wall'', òstôł wëpùszczony w 1979 i zajãdrzniôł czile szlagrama, taczima jak ''Don't Stop 'Til You Get Enough'', ''Rock With You'', a ''Off the Wall''. W 1983 wëszedł albùm ''Thriller''. Nawetka pò wicy jak 40 latach, òstôwô nôlepi przedôwającym sã albùmã na swiece a zamikô w se zacht jegò nôwikszich szlagrów, w tim ''Billie Jean''. Za ''Thriller'' zdobéł òsmë [[Nôdgroda Grammy|nôdgrodów Grammy]]. Michael rëgnął w promòcyjną turã albùmù ze swòjima bracynama mët. Òb nen cząd òdkrił, że cerpi na bielactwò, chòrosc, jakô sprôwia, co tracył melaninã w skórze. W gwësnym sztóce pòniechtërne òbrëmia jegò skórë stałë sã na tëli jasné, co ùżiwanié pòcemniwającégò makijażu ju nie bëło prakticzné – doprowadzëło to do ne, co przëbrôł „biôłi” wëzdrzatk — ta decyzja przëcygnã wiele kriticzi òd pùbliczi a mediów. W dodôwkù z pòwòdu wëbùchù pirotechniczi òb czas nagriwaniô reklamë Pepsi doznôł pòpieczeniów drëdżegò ë trzecégò stãpienia na skórze głowë, dlôte mùszôł brëkòwac przedłużeniów włosów a cziszów. Jegò trzecy solowi albùm, ''Bad'', wëpùszczony òstôł w 1987 i stanowił nôwikszi rozkòlib w jegò kariérze. Stôł sã drëdżim nôlepi przedôwającym sã albùmã wszechczasów a towarzącô mù tura bëła jedną òd nôwikszich czedëkòlwiek. ''Dangerous'', wëdóné trzë lata pózni, bëło téż kòmercyjną zwënégą. Jackson òstôwôł na czëpie swiata mùzyczi przez pònad trzë dekadë, wëdôwającë trzë pòsobné albùmë w 1995, 1997 a 2001. Òb czas swòjich turów pò swiece òdwiedzywôł dzecë w szpitalach a w swòjim żëcym przekôzôł wicy jak 300 milionów dolarów na humanitarné céle. Dzãka charitatiwnym kampanióm a swòjim gwôsnym frańtówkóm (taczim jak ''We Are the World'' ë ''What More Can I Give''), ùdało mù sã zebrac milionë dolarów dlô pòtrzebùjącëch. Do dzysdnia òstôwô nôwikszim filantropã òd wszetczich celebritów{{Pòtrzébny przëpis}}. Na swòji parcelë, Neverland, dze zbùdowôł, midzë jinyma, zoò a park zôbawów, gòscył wielné familie a chòré dzecë. Niechtërne dzecë spãdzywałë z nim całé dnie, nawetka zasypiającë w jegò łóżkù. Jegò dobrziństwò òstało ale zakwestionowóné pò 1993 przez òbskôrżenié ò seksualné wëkòrzëstiwanié dzecy. Pózni wëszło na jôw, co nie bëło dokazów pòcwierdzywającëch òbskôrdżi i że bëłë òne mòtiwòwóné chãcą financowégò zwëskù. Cobë òstawic za sobą nieprzijemné doswiôdczenia jak nôrëchli i ùchilëc sã òd dłudżégò procesu, Jackson zawiarł ùgôdënk na 20 milionów dolarów. Spòwòdowało to negatiwny pòmión westrzód pùbliczny òpinii, jakô ùzna to za próbã ùcëszeniô òfiarë. To dało pòsobné òbskôrżenia. Przez wnet dekadã béł pòd nadzorã FBI z ti przëczënë, ale niżóden dokôz na jegò winã nie òstôł nalazłi. Sąd ùznôł Jacksona niewinnym nëch pòstãpnëch zarzëtów ò seksualné wëkòrzistanié{{Pòtrzébny przëpis}}. W 1994 rokù òżenił sã z [[Lisą Marie Presley]], córką [[Elvis Presley|Elvisa Presleya]], równak zdënk nie béł ùdóny. Rozlezlë sã pò dwùch latach ale pòtikelë sã jesz przez jaczis czas pózni. 14 lëstopadnika 1996 Jackson zdôł sã ze swòją dermatolożką, Deborah Jeanne Rowe, z jaką miôł sëna, Michaela „Prince’a” Josepha (ùr. 1997), i córkã, Paris-Michael Katherine (ùr. 1998), rozlezlë sã równak w 1999 rokù. W 2002 Jacksonowi ùrodzył sã drëdżi syn, Prince „Blankett” Michael, jaczégò ùrodza mù zastãpczô matka, jaczi juwernota nie òsta ùpùblicznionô. 25 czerwińca 2009 rokù zamiarł z pòwòdu przedôwkòwaniô propòfòlu (chtërnégò stosowanié w domôcëch warënkach je zakôzóné) pòdónégò mù przez Conrada Murraya, priwatnégò lékarza Jacksona. == Òbaczë téż == * [[Mùzyka]] == Bùtnowé lënczi == {{Commons}} {{Ùzémk artikla}} {{DEFAULTSORT:Jackson, Michael}} [[Kategòrëjô:Spiéwôcë|Jackson, Michael]] 8glf2dr72iwrtqc1brih3ugc1ioeb2m Szablóna:Amerika 10 11685 216524 212682 2026-10-05T10:24:10Z Terrus38 14026 216524 wikitext text/x-wiki {| style="clear:both; width:55em;margin: 1.5em auto; border:1px solid #CCC; background-color:#FCFCFC; font-size:smaller; text-align:center" ! style="background:#B0C4DE" align="center" | [[Państwò|Państwa]] i teritoria w [[Nordowô_Amerika|Nordowi]], Westrzédny i [[Pôłniowô Amerika|Pôłniowi Americe]] |- | align="left" style="font-size: 100%" style="background:#B0E0E6" | '''[[Nordowô Amerika]]''' | [[Kanada]] | [[Zjednóné Kraje Americzi]] | [[Grenlandiô]] | [[Bermudë]] ([[Wiôlgô Britaniô]]) | [[Saint-Pierre ë Miquelon]] ([[Francjô]]) |- | align="left" style="font-size: 100%" | '''Westrzédnô Amerika''' | [[Belize]] | [[Gwatemala]] | [[Honduras]] | [[Kòstarika]] | [[Meksyk]] | [[Nikaragùa]] | [[Panama]] | [[Salwadór]] |- | align="left" style="font-size: 90%" style="background:#B0E0E6" | '''Karajibë''' | [[Antigùa i Barbùda]] | [[Bahamë]] | [[Barbados]] | [[Dóminika]] | [[Dóminikańskô Repùblika]] | [[Grenada]] | [[Hajiti]] | [[Jamajka]] | [[Kùba]] | [[Pòrtorikò]] ([[USA]]) | [[Saint Kitts i Nevis]] | [[Saint Lucia]] | [[Saint Vincent i Grenadinë]] |- | align="left" style="font-size: 100%" | '''[[Pôłniowô Amerika]]''' | [[Argentina]] | [[Bòliwiô]] | [[Brazylskô|Brazyliô]] | [[Chile]] | [[Ekwador|Ekwadór]] | [[Gùjana]] | [[Kòlumbiô]] | [[Paragwaj]] | [[Peru]] | [[Surinam]] | [[Trinidad ë Tobagò]] | [[Ùrugwaj]] | [[Wenezuelskô|Wenezuela]] |- | align="center" colspan="2" style="background:#B0E0E6" | <small> '''Zanôléżné teritoria:''' | [[Francjô]]: [[Gwadelupa]], [[Martinika]], [[Saint-Martin]]| [[Niderlandë]]: [[Aruba]], [[Bonaire]], [[Curaçao]], [[Saba]], [[Sint Eustatius]], [[Sint Maarten]] | [[Wiôlgô Britaniô]]: [[Anguilla]], [[Britijsczé Dzewiczé Òstrowë|B. Dzewiczé Òstrowë]], [[Kajmanë]], [[Montserrat]] | USA: [[Dzewiczé Òstrowë Zjednónëch Stanów|Dzewiczé Òstrowë]] </small> |} <noinclude> [[Kategòrëjô:Pôłniowô_Amerika| ]] [[Kategòrëjô:Nordowô_Amerika| ]] </noinclude> 1dc6k95drtkxwjhyxvti8yt197rqnnz Adriaan van Royen 0 11723 216516 203982 2026-10-05T10:16:56Z Terrus38 14026 216516 wikitext text/x-wiki [[Òbrôzk:Adriaan-van-Royen.jpg|mały|Adriaan van Royen]] '''Adriaan van Royen''' (ùr.  [[11 lëstopadnika]] 1704 rokù – ùm. [[28 gromicznika]] 1779 rokù) – to béł lékôrz i bòtanik na Leideńsczim Uniwersytece w [[Niderlandë|Niderlandach]]. Adriaan van Royen pisôł ò [[Kaszëbskô wika|kaszëbsczi wice]] - w swòji pùblikacji i cytowôł pùblikacjã [[Jakùb Breyne|Jakùba Breyne]] - "Prodromus fasciculi rariorum plantarum ..". Òn napisôł m. in. ò ti wice (''Vicia cassubica'') - ''Vicia multiflora cassubica ...'', a wespółrobił z [[Karol Linneùsz|Karolã Linneùszã]] - i ten cytowôł m.in. pùblikacjã A. van Royen. Szlach ''Royena'' L. miôł pòzwã òd jegò [[Nôzwëskò|nôzwëska]], dzysô gò zwią ''Diospyros''. == Wëbróné dokôzë == * [https://web.archive.org/web/20210719021137/http://www.botanicus.org/page/405470 ''Florae leydensis prodromus''] (1740, s. 364). * ''Carmen elegiacum de amoribus et connubiis plantarum'' (1732). == Bùtnowé lënczi == {{Commons}} * [https://web.archive.org/web/20210412151728/https://viaf.org/viaf/7734115/ VIAF] {{DEFAULTSORT:van Royen, Adriaan}} [[Kategòrëjô:Bòtanika]] [[Kategòrëjô:Niderlandë]] be61s0ufoc9iss314wrdr1sqg3nt62a Szablóna:Imagemap Miemieckô 10 12286 216525 190399 2026-10-05T10:25:50Z Terrus38 14026 216525 wikitext text/x-wiki {{#tag:imagemap| Òbrôzk:{{{Òbrôzk|{{{1|Karte Deutsche Bundesländer (nummeriert).svg}}}}}}{{!}}{{{Maße|{{{2|190px}}}}}}{{!}}{{{Alt|{{{3|Karte}}}}}}{{#if: {{{4|}}} | {{!}}{{{4}}}{{#if: {{{5|}}} | {{!}}{{{5}}} }} }} circle 481 258 27 [[Berlëno]] circle 189 198 27 [[Bremeńskô|Bremen]] circle 181 155 18 [[Bremeńskô|Bremen]] circle 271 155 27 [[Hambùrg]] poly 182 121 59 137 58 152 86 172 80 243 60 245 61 261 79 287 122 267 137 277 136 307 169 299 158 266 184 258 188 274 207 262 213 275 203 284 228 344 249 358 236 378 253 386 309 359 308 311 336 305 321 231 361 212 331 174 290 171 253 170 251 154 223 120 [[Dolné Saksë]] poly 208 566 201 510 269 462 308 493 361 475 394 477 438 520 526 632 528 668 460 711 486 761 472 774 338 787 290 793 243 768 276 756 269 688 302 648 285 612 273 570 253 545 231 545 [[Bajerë]] circle 58 581 38 [[Saarskô]] poly 198 117 150 24 157 2 192 1 241 19 343 52 350 65 322 111 322 144 306 170 287 170 280 135 247 149 226 117 [[Szlezwidzkô-Hòlsztińskô]] poly 360 210 405 225 409 296 467 325 470 369 525 370 530 355 573 349 564 251 531 217 542 170 503 154 481 183 441 188 394 170 353 195 [[Brandenbùrgiô]] poly 575 349 589 372 589 409 578 427 516 439 462 473 420 496 394 475 392 460 441 420 415 405 403 368 438 349 463 348 467 368 522 376 532 357 [[Saksë]] poly 266 385 280 411 257 447 310 489 364 473 394 473 390 453 438 419 418 407 411 423 359 395 358 376 317 357 [[Turinga]] poly 325 231 338 305 309 311 313 353 361 377 359 393 411 422 414 407 401 367 438 344 466 347 466 324 411 300 402 225 363 212 [[Sakso-Anhalt]] poly 461 24 495 41 531 97 541 168 502 153 479 183 442 189 398 170 353 195 331 171 309 168 324 145 324 114 352 67 [[Meczelbòrskô-Przédné Pòmrë]] poly 239 773 97 775 87 757 111 652 152 622 164 567 177 560 205 569 233 543 252 545 269 569 299 649 265 685 273 753 [[Badeniô-Wurtemberga]] poly 145 442 121 519 156 519 163 564 178 557 206 568 199 510 266 461 256 444 273 413 264 384 250 389 233 380 243 358 233 350 189 370 [[Hesë]] poly 7 327 3 406 26 473 59 476 124 424 140 444 188 366 221 358 227 345 198 284 207 276 207 269 188 279 182 265 161 266 171 298 135 309 136 274 120 268 70 289 [[Nordowô Nadreniô-Westfalëjô]] poly 24 474 6 504 28 536 22 557 68 548 85 552 92 609 147 624 164 566 157 521 119 521 141 446 126 426 58 479 [[Nadreniô-Palatinat]] poly 65 798 75 774 97 782 117 772 173 770 185 758 205 758 245 786 235 798 [[Szwajcarskô]] poly 207 760 239 780 247 766 229 758 215 756 [[Bodeńsczé Jezoro]] poly 237 796 241 774 251 770 263 774 271 784 279 798 295 788 293 770 315 774 333 788 365 780 373 764 399 766 439 766 465 776 467 752 459 736 447 708 497 676 509 664 515 650 545 666 579 644 587 622 589 796 343 798 [[Aùstriô]] poly 3 568 17 578 27 572 37 542 27 534 19 528 17 502 9 500 0 520 [[Luksembùrg]] poly 0 572 29 570 43 586 57 608 147 624 121 666 107 712 107 766 105 774 99 778 83 778 75 772 65 784 73 792 67 798 1 798 [[Francjô]] poly 1 512 9 502 19 498 29 480 13 444 0 440 [[Belgijskô]] poly 589 430 567 436 547 428 413 498 413 514 431 528 425 552 441 582 457 582 515 642 533 660 541 662 551 654 569 662 571 638 581 642 587 616 [[Czeskô Repùblika]] poly 539 115 539 121 563 127 563 149 545 141 553 183 535 225 565 257 565 279 571 299 575 315 563 331 575 351 573 363 585 369 587 387 579 423 589 419 587 99 [[Pòlskô]] poly 1 439 9 443 9 425 1 415 1 405 15 397 23 371 5 329 21 319 35 327 63 313 51 305 77 287 69 265 51 265 59 245 75 247 83 189 61 165 0 175 [[Niderlandë]] poly 179 15 219 23 225 23 239 15 259 21 279 11 307 25 337 27 357 45 383 39 389 47 393 35 399 21 431 7 417 3 403 0 377 1 383 11 359 19 345 11 333 21 313 25 323 3 177 1 [[Duńskô]] poly 573 0 589 9 589 1 [[Duńskô|Bòrnhòlm (do Duńsczi)]] poly 513 127 523 133 537 133 541 135 561 149 557 123 539 121 519 121 [[Szczecyńsczi Wik]] poly 125 84 127 94 135 92 135 86 137 82 [[Szlezwik-Holsztén|Helgòland (do SH)]] poly 1 156 57 140 99 120 149 120 163 84 143 32 147 0 0 0 [[Nordowé Mòrzé]] poly 267 24 275 54 311 68 325 64 331 50 339 52 349 56 353 64 345 82 331 100 325 104 337 104 349 102 369 86 397 90 411 78 419 54 455 58 465 42 485 34 487 44 503 46 507 56 501 64 521 80 519 92 539 112 549 110 585 96 589 8 567 2 431 0 435 12 419 14 395 36 397 48 389 54 383 44 363 50 349 40 319 30 329 18 335 10 343 6 341 0 325 0 313 34 301 28 289 24 279 14 277 6 269 6 273 16 [[Bôłt]] }}<noinclude> Diese Vorlage erzeugt eine [[Verweissensitive Grafik|anklickbare Karte]] (eine sogenannte [[Hilfe:Bilder#Imagemaps|Imagemap]]) von Deutschland mit den 16 Bundesländern und Stadtstaaten. Die Imagemap ist in erster Linie als Ergänzung zur [[Vorlage:Navigationsleiste Deutsche Länder|Navigationsleiste Deutsche Länder]] gedacht und soll die selben Links wie diese enthalten. Verwendung: <nowiki>{{</nowiki>{{PAGENAME}}|Òbrôzk.svg}} <nowiki>{{</nowiki>{{PAGENAME}}|Òbrôzk.svg|left|281px}} Es dürfen nur Bilder mit einer Basisgröße von 592&nbsp;×&nbsp;801 Pixeln eingesetzt werden. Die zur Verfügung stehenden Karten sind in der [[commons:Category:SVG maps of Germany|Kategorie ''SVG maps of Germany'']] sowie den dortigen Unterkategorien zu finden. Für die Verwendung in Infoboxen (experimentell): <nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|Bild=…|Maße=left{{!}}190px|Alt=…}}</nowiki> [[Kategorie:Vorlage:Deutschland|Imagemap]] [[Kategorie:Vorlage:Verweissensitive Grafik|Deutschland]] </noinclude> 16mvduzlnqmawfmxkxl1rmzi27dg4a9 Szablóna:Jãz./starna 10 13164 216457 216407 2026-10-04T12:16:43Z DawnyTest 14843 ò 216457 wikitext text/x-wiki <includeonly>{{#switch: {{{1|}}}<!----> |ar=arabsczi jãzëk<!--?--> |be=biôłorusczi jãzëk |bg=bułgarsczi jãzëk |br=bretońsczi jãzëk |bs=bòsniacczi jãzëk |ca=katalońsczi jãzëk |cs=czesczi jãzëk |csb=kaszëbsczi jãzëk |cnr=czôrnogórsczi jãzëk |da=duńsczi jãzëk<!--dëńsczi jãzëk--> |de=niemiecczi jãzëk |dsb=dólnosorbsczi jãzëk<!-- dólnołuż. --> |en=angelsczi jãzëk |es=szpańsczi jãzëk |et=estońsczi jãzëk |fa=persczi jãzëk<!--{{RKJ|2013|132}}--> |fi=fińsczi jãzëk |fr=francësczi jãzëk |gl=galisyjsczi jãzëk<!--?--> |gmh=strzédno-wësok-niemiecczi<!--{{RKJ|2007|50}}--> |gr=grecczi jãzëk<!--{{RKJ|2014|153}}--> |grc=stôrogrecczi jãzëk<!--{{RKJ|2014|153}}--> |gsw=szwajcarsczé gwarë<!--?--> |hbs=serbòchòrwacczi jãzëk |he=hebrajsczi jãzëk<!--?--> |hr=chòrwacczi jãzëk<!--?--> |hsb=górnosorbsczi jãzëk |hu=wãdżersczi jãzëk |hy=òrmiańsczi jãzëk<!--{{RKJ|2013|132}}--> |is=islandzczi jãzëk<!--?--> |it=italsczi jãzëk |ja=japóńsczi jãzëk<!--{{RKJ|2014|161}}, téż japòńsczi {{RKJ|2013|132}}--> |ka=grëzóńsczi jãzëk<!--grëzyńsczi w {{RKJ|2013|132}}; grëzóńsczi w {{RKJ|2007|42}}--> |kl=grenlandzczi jãzëk<!--?--> |kk=kazachsczi jãzëk<!--?--> |ko=kòreańsczi jãzëk<!--{{RKJ|2013|132}}--> |la=łacyńsczi jãzëk |lt=lëtewsczi jãzëk |lu=luksembùrsczi jãzëk<!--?--> |lv=łotewsczi jãzëk |lij-MC=mònegasczi dialekt<!--?--> |ky=kirgisczi jãzëk<!--?--> |mk=macedońsczi jãzëk |nds=dólnoniemiecczi jãzëk<!--RKJ 2014 s. 92--> |nl=hòlendersczi jãzëk<!--RKJ 2024 s.354; téż holandzczi, hòlandzczi, niderlandzczi<ref>RKJ 2015 s. 2016</ref>, néderlandczi, néderlandzczi, òlendersczi? --> |no=norwesczi jãzëk |pl=pòlsczi jãzëk |pox=pòłabsczi jãzëk |prg=prësczi jãzëk |pt=pòrtugalsczi jãzëk |rm=jãzëk romansz<!--?--> |ro=rumùńsczi jãzëk |ru=rusczi jãzëk |sk=słowacczi jãzëk |sl=słoweńsczi jãzëk |sq=albańsczi jãzëk<!--{{RKJ|2021|264}}--> |sr=serbsczi jãzëk |sv=szwédzczi jãzëk |szl=szląsczi etnolekt |tg=tadżicczi jãzëk<!--?--> |tk=turkmeńsczi jãzëk<!--?--> |tr=tërecczi jãzëk<!--{{RKJ|2018|41}}--> |uk=ùkrajińsczi jãzëk |vi=wietnamsczi jãzëk<!--?--> |yi=jãzëk jidisz<!--?--> |zh=chińsczi jãzëk<!--{{RKJ|2024|354}}--> <!----------------------------------------------------------> |xpsi=prasłowiańsczi jãzëk<!--{{RKJ|2016|117}}--> |#default={{{1|}}} }}</includeonly><noinclude> ---- <code><nowiki>{{jãz./starna|csb}}</nowiki></code> :{{jãz./starna|csb}} ---- <code><nowiki>{{jãz./starna|pl}}</nowiki></code> :{{jãz./starna|pl}} ---- <code><nowiki>{{jãz./starna|de}}</nowiki></code> :{{jãz./starna|de}} ---- <code><nowiki>{{jãz./starna|en}}</nowiki></code> :{{jãz./starna|en}} ---- <code><nowiki>{{jãz./starna|es}}</nowiki></code> :{{jãz./starna|es}} ---- </noinclude> q2sv5caug5uwye9sh1fnhidh4zfz799 Szablóna:Kòlumnë 10 13414 216472 207014 2026-10-04T17:02:37Z Iketsi 3254 + 216472 wikitext text/x-wiki <includeonly><div style="{{#if:{{{em|}}}|column-width:{{width em|{{{em|}}}}};}}{{#if:{{{number|}}}|column-count:{{{number|}}};}}column-gap:1em;{{{style|}}}" class="colonnes"> {{{1|}}} </div></includeonly><noinclude> <code>{{Kòlumnë|em=18|1=</code> {{Kòlumnë|em=18|1= * Banino * Brusy * Bydgoszcz * Bytów * Cewice * Chmielno * Chojnice * Chwaszczyno * Czersk * Człuchów * Dębogórze-Kosakowo * Dziemiany * Gdańsk * Gdańskie Dni Kaszubskie * Gdynia * Góra * Gościcino * Grudziądz * Hel * Jastarnia * Jastrzębia Góra * Kartuzy * Klub Studencki "Pomorania" * Klub Turystyczny "Wanożnik" * Kolbudy * Konarzyny * Kościerzyna * Koszalin * Krokowa * Lębork * Linia * Lipnica * Lipusz * Luzino * Łeba * Łęczyce * Łubiana * Miastko * Nowa Karczma * Pelplin * Pruszcz Gdański * Przodkowo * Przywidz * Puck * PZS Kłanino * Reda * Rumia * Sianowo * Sierakowice * Słupsk * Somonino * Sopot * Stargard * Stężyca * Strzelno * Sulęczyno * Szczecin * Szemud * Szymbark * Tczew * Toruń * Tuchola * Wejherowo * Wiele - Karsin * Wierzchucino * Władysławowo * Zblewo * Zespół Pieśni i Tańca GDYNIA * Żukowo }} ---- <code>{{Kòlumnë|number=2|1=</code> {{Kòlumnë|number=2|1= * Banino * Brusy * Bydgoszcz * Bytów * Cewice * Chmielno * Chojnice * Chwaszczyno * Czersk * Człuchów * Dębogórze-Kosakowo * Dziemiany * Gdańsk * Gdańskie Dni Kaszubskie * Gdynia * Góra * Gościcino * Grudziądz * Hel * Jastarnia * Jastrzębia Góra * Kartuzy * Klub Studencki "Pomorania" * Klub Turystyczny "Wanożnik" * Kolbudy * Konarzyny * Kościerzyna * Koszalin * Krokowa * Lębork * Linia * Lipnica * Lipusz * Luzino * Łeba * Łęczyce * Łubiana * Miastko * Nowa Karczma * Pelplin * Pruszcz Gdański * Przodkowo * Przywidz * Puck * PZS Kłanino * Reda * Rumia * Sianowo * Sierakowice * Słupsk * Somonino * Sopot * Stargard * Stężyca * Strzelno * Sulęczyno * Szczecin * Szemud * Szymbark * Tczew * Toruń * Tuchola * Wejherowo * Wiele - Karsin * Wierzchucino * Władysławowo * Zblewo * Zespół Pieśni i Tańca GDYNIA * Żukowo }} </noinclude> 04znx149r9u6tdj0yj5unx3lvqyykuu Szablóna:Wiész të 10 13421 216496 215717 2026-10-05T07:16:47Z Terrus38 14026 nowi tidzéń, nowé artikle 216496 wikitext text/x-wiki <div style="font-size: 1.4em; font-weight: bold; margin-top: 0.75em; margin-bottom: 0.5em; border-bottom: 1px solid #a2a9b1; padding-bottom: 0.25em;">Òd nowëch i slédno rozbùdowónëch artiklów…</div> <div style="display: flex; flex-direction: row-reverse; align-items: flex-start; margin-top: 15px;"> <div style="flex-shrink: 0; width: 170px; text-align: right;">[[File:Michael Jackson in 1983.jpg|150px|link=|alt=]]</div> <div style="flex-grow: 1; padding-right: 10px;"> <ul style="margin: 0; padding-left: 20px;"> <li>…dlôcz '''[[Michael Jackson]]''' mùszôł naszac czisze? <small> (''na òdjimkù'') </small></li> <li>…jaczé stanowiszcze w lotniczi linie KLM zajimô [[Wilem-Aleksander]]?</li> <li>…że '''[[bòsniacczi jãzëk]]''' czedës béł zapisowóny arabsczim pismã?</li> <li>…na jaczi ôrt dzejają'''[[Gazomiérz|gazomierze]]'''?</li> <li>…czedë pòwstôł sztandard '''[[czôrnogórsczi jãzëk|czôrnogórsczégò jãzëka]]'''?</li> </ul> </div> </div> 6lkgcucv8y2ciwfh83t617w23a4z5eq 216497 216496 2026-10-05T07:17:00Z Terrus38 14026 216497 wikitext text/x-wiki <div style="font-size: 1.4em; font-weight: bold; margin-top: 0.75em; margin-bottom: 0.5em; border-bottom: 1px solid #a2a9b1; padding-bottom: 0.25em;">Òd nowëch i slédno rozbùdowónëch artiklów…</div> <div style="display: flex; flex-direction: row-reverse; align-items: flex-start; margin-top: 15px;"> <div style="flex-shrink: 0; width: 170px; text-align: right;">[[File:Michael Jackson in 1983.jpg|150px|link=|alt=]]</div> <div style="flex-grow: 1; padding-right: 10px;"> <ul style="margin: 0; padding-left: 20px;"> <li>…dlôcz '''[[Michael Jackson]]''' mùszôł naszac czisze? <small> (''na òdjimkù'') </small></li> <li>…jaczé stanowiszcze w lotniczi linie KLM zajimô [[Wilem-Aleksander]]?</li> <li>…że '''[[bòsniacczi jãzëk]]''' czedës béł zapisowóny arabsczim pismã?</li> <li>…na jaczi ôrt dzejają '''[[Gazomiérz|gazomierze]]'''?</li> <li>…czedë pòwstôł sztandard '''[[czôrnogórsczi jãzëk|czôrnogórsczégò jãzëka]]'''?</li> </ul> </div> </div> 8tbn8al1mcn5jy1guy1h6q6k83ie7af Szablóna:Articzel tidzenia 10 13427 216498 216400 2026-10-05T07:18:38Z Terrus38 14026 nowi articzel tidzenia 216498 wikitext text/x-wiki <noinclude>* [[Wiki:Articzel tidzenia]] [[Kategòrëjô:Szablónë]]</noinclude><div style="margin-top: 1em;"> [[File:Jelgava aerial view.jpg|200px|right|link=Jelgava|alt=Widzënk Jelgavë z wiodra]] <div style="font-weight: bold; font-size: 1.4em;">[[Jelgava]]</div> <div style="margin-top: 0.5em; line-height: 1.6; font-size: 1.25em;">'''Jelgava''' (rus. Елгава, dôwni Митава, niem. Mitau, pòl. Jełgawa, dôwni Mitawa) – gard we westrzédnym dzélu Łotwë, kòl 45 km na pôłniowi zôpôd òd Ridżi, przë ùscym rzéczi Driksë do Lielupe, wëdzeloné miasto, sedzba novadsu Jelgava (niewchòdzącô w jegò skłôd). W òbrëmim dzysdniowi Jelgavë w X wiekù pòwsta òsada Liwów. W XIII stalatim, inflanckô wietew krzëżacczégò zôkònu, zarządzónô przez krajewégò méstra Kònrada von Mandera rozpòczã bùdacjã zómkù w nym môlu, pòzwónégò Mitau. Mitau béł grańcznym zómkã, z jaczégò ricérzowie zôkònu colemało òrganizowelë wëprawë procëm Liwóm i Semigalóm jaż do 1290. Pózni znaczënk zómkù ùrósł jesz barżi z pòwòdu rozwiju lëtewsczégò państwa na pôłnim. Lëtwinóm ùdało sã splundrowac Mitau w 1345. </div> <div style="margin-top: 1em; font-size: 1.25em; font-weight: bold;">[[Jelgava|» Czëtôj dali...]]</div> </div> lud5jbwoj5t871jou2coc5etfw1lp8e Szablóna:Etikéta 10 14185 216465 216456 2026-10-04T13:35:00Z Iketsi 3254 216465 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{{lang|csb}}} |link={{{link|mul}}} |capitalization={{{capitalization|}}} |show_id={{{show_id|}}} |fallback={{{fallback|}}} |show_lang={{{show_lang|}}} |show_qid={{{show_qid|}}} |edit={{{edit|}}} |missing={{{missing|}}} }}</includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} [[Kategòrëjô:Szablónë]] </noinclude> rweawn3mniam1xss2yqd0zxs4na4j7u 216466 216465 2026-10-04T13:57:18Z Iketsi 3254 + 216466 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{{lang|csb}}} |link={{{link|}}} |capitalization={{{capitalization|}}} |show_id={{{show_id|}}} |fallback={{{fallback|}}} |show_lang={{{show_lang|}}} |show_qid={{{show_qid|}}} |edit={{{edit|}}} |article={{{article|}}} }}</includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} [[Kategòrëjô:Szablónë]] </noinclude> oibla1l0z3lthhve6xy0t8xo4g8eyj1 216473 216466 2026-10-04T17:37:39Z Iketsi 3254 +preset 216473 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}} |show_lang={{#switch:{{{preset|}}} |1k=fallback |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k=fallback |#default={{{edit|}}} }} |article={{{article|}}} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} [[Kategòrëjô:Szablónë]] </noinclude> 6izvvqph1oetgtgamopao91t1mu712o 216474 216473 2026-10-04T17:40:51Z Iketsi 3254 1k: show_lang=fallback-no-mul 216474 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}} |show_lang={{#switch:{{{preset|}}} |1k=fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k=fallback |#default={{{edit|}}} }} |article={{{article|}}} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} [[Kategòrëjô:Szablónë]] </noinclude> hckrg4x82db1twz1xkh66iftuoeubd8 216480 216474 2026-10-04T19:01:07Z Iketsi 3254 + 216480 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}} |show_lang={{#switch:{{{preset|}}} |1k|1kat=fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k|1kat=fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |1kat=rawname |#default={{{show_qid|}}} }} |category_label={{{category_label|}}} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5820551|category_mode=rawname}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=}} |} </noinclude> cer8zf0sghvmofjrdab4whbo0gszoti 216483 216480 2026-10-04T19:32:55Z Iketsi 3254 1kat=true 216483 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}} |show_lang={{#switch:{{{preset|}}} |1k|1kat=fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k|1kat=fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> 3xftmmlktvnke399bq72tofqfimar3c 216485 216483 2026-10-04T19:46:28Z Iketsi 3254 1k=mul 216485 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1k=mul |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}} |show_lang={{#switch:{{{preset|}}} |1k|1kat=fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k|1kat=fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> keof38850pqf2rocj6v0egps1wgluy9 216487 216485 2026-10-04T19:55:46Z Iketsi 3254 + 216487 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1k=mul |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}} |1k|1kat=mul,pl,en |show_lang={{#switch:{{{preset|}}} |1k|1kat=fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k|1kat=fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> dpjlsc6vhvukwhewv98sb2n74z3z4ek 216488 216487 2026-10-04T19:58:33Z Iketsi 3254 fallback 216488 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1k=mul |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}}{{#switch:{{{preset|}}} |1k|1kat=mul,pl,en |#default={{{fallback|}}} }} |show_lang={{#switch:{{{preset|}}} |1k|1kat=fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k|1kat=fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|show_lang=fallback|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> bb978mwwfnxnrpoxc4kcb64eq3t4x2q 216489 216488 2026-10-04T20:11:53Z Iketsi 3254 " " 216489 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1k=mul |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}}{{#switch:{{{preset|}}} |1k|1kat=mul,pl,en |#default={{{fallback|}}} }} |show_lang={{#switch:{{{preset|}}} |1k | 1kat=fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k | 1kat=fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|show_lang=fallback|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> 6uhretxkobclm29hmgbt83ek4wm6dve 216490 216489 2026-10-04T20:14:48Z Iketsi 3254 category_mode 216490 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1k=mul |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}}{{#switch:{{{preset|}}} |1k|1kat=mul,pl,en |#default={{{fallback|}}} }} |show_lang={{#switch:{{{preset|}}} |1k | 1kat = fallback-no-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k | 1kat = fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{category_mode|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-no-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|show_lang=fallback|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> 3pahd7bzxfhkysz233kfoufd9xv87eh 216491 216490 2026-10-04T20:15:59Z Iketsi 3254 t 216491 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1k=mul |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}}{{#switch:{{{preset|}}} |1k|1kat=mul,pl,en |#default={{{fallback|}}} }} |show_lang={{#switch:{{{preset|}}} |1k | 1kat = fallback-not-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k | 1kat = fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{category_mode|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }} </includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|show_lang=fallback|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> 2yxs33oztvcifou0d918j8en6im7vwo 216492 216491 2026-10-04T21:56:22Z Iketsi 3254 - 216492 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata labelmul|getLabel |item={{{item|{{{1|}}}}}} |lang={{#switch:{{{preset|}}} |#default={{{lang|csb}}} }} |link={{#switch:{{{preset|}}} |1k=mul |1kat=none |#default={{{link|}}} }} |capitalization={{#switch:{{{preset|}}} |#default={{{capitalization|}}} }} |show_id={{#switch:{{{preset|}}} |#default={{{show_id|}}} }} |fallback={{{fallback|}}}{{#switch:{{{preset|}}} |1k|1kat=mul,pl,en |#default={{{fallback|}}} }} |show_lang={{#switch:{{{preset|}}} |1k | 1kat = fallback-not-mul |#default={{{show_lang|}}} }} |show_qid={{#switch:{{{preset|}}} |#default={{{show_qid|}}} }} |edit={{#switch:{{{preset|}}} |1k | 1kat = fallback |#default={{{edit|}}} }} |article={{{article|}}} |category_mode={{#switch:{{{preset|}}} |#default={{{category_mode|}}} }} |category_label={{{category_label|}}} |strip_namespace={{#switch:{{{preset|}}} |1kat=true |#default={{{strip_namespace|}}} }} }}</includeonly><noinclude> {| class="wikitable" |+ |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb = Wikipòdôwczi)''' |- |{{ExampleRow|__template=Etikéta|Q2}} |- |{{ExampleRow|__template=Etikéta|Q2|show_lang=always}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=1 (csb ≠ Wikipòdôwczi)''' |- {{ExampleRow|__template=Etikéta|Q1}} |- {{ExampleRow|__template=Etikéta|Q1|link=none}} |- {{ExampleRow|__template=Etikéta|Q1|link=wikidata}} |- |colspan="2" align="middle"| '''artikel=1; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q141566673}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (csb)''' |- {{ExampleRow|__template=Etikéta|Q107659597}} |- {{ExampleRow|__template=Etikéta|Q107659597|link=none}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=1 (mul)''' |- {{ExampleRow|__template=Etikéta|Q42}} |- {{ExampleRow|__template=Etikéta|Q42|link=none}} |- {{ExampleRow|__template=Etikéta|Q42|link=mul}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|edit=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|missing=plain}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=mul}} |- {{ExampleRow|__template=Etikéta|Q42|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_qid=fallback-not-mul}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback}} |- {{ExampleRow|__template=Etikéta|Q42|show_lang=fallback-not-mul}} |- |colspan="2" align="middle"| '''artikel=0; etikéta=0''' |- {{ExampleRow|__template=Etikéta|Q989898}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=fo}} |- {{ExampleRow|__template=Etikéta|Q989898|fallback=zh|show_qid=fallback}} |- {{ExampleRow|__template=Etikéta|Q989898|show_qid=fallback-not-mul}} |} {| class="wikitable" |+ Przeczerowania |- {{ExampleRow|__template=Etikéta|Q12345678}} |} {| class="wikitable" |+ Kategòrie |- {{ExampleRow|__template=Etikéta|Q5820551}} |- {{ExampleRow|__template=Etikéta|Q5820551|link=none|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5820551|strip_namespace=true|link=none}} |- {{ExampleRow|__template=Etikéta|Q5613274|show_lang=fallback|category_mode=link}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=rawfull|fallback=en}} |- {{ExampleRow|__template=Etikéta|Q5613274|category_mode=active}} |- {{ExampleRow|__template=Etikéta|Q15647814|category_mode=link}} |} </noinclude> 2o2jvs5npc55dq1gos55h0qmzq21gcj Moduł:Wikidata labelmul 828 14186 216458 216454 2026-10-04T12:58:56Z Iketsi 3254 test 216458 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beggining and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that is has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p 5bqtl6kwzr4vg29zbaxyhgyq65l8cyr 216462 216458 2026-10-04T13:18:08Z Iketsi 3254 + [[]] 216462 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beggining and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and label_lang == requested_lang then local_title = label end if link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that is has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p nbajv97bkzh0bxnl7lby3gj7yapr7e3 216463 216462 2026-10-04T13:23:53Z Iketsi 3254 + 216463 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beggining and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and label_lang == requested_lang and raw_label then local_title = raw_label end if link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that is has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p nzko454y8eoylh6cn60p8svoq72opxp 216464 216463 2026-10-04T13:32:28Z Iketsi 3254 + 216464 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beggining and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end if link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that is has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p 9fcu2o2cp6nh0sx4aict3pabusagi17 216475 216464 2026-10-04T18:10:29Z Iketsi 3254 cat 216475 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeWikitextMode(mode) mode = normalizeLanguageCode(mode) or 'plaintext' if mode == 'active' then return 'active' end return 'plaintext' end local function renderWikitext(value, mode) if normalizeWikitextMode(mode) == 'active' then return value end return mw.text.nowiki(value) end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, link_mode, category_label) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end if category_label and category_label ~= '' then label = renderWikitext(category_label, category_mode) end if link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. renderWikitext(local_title, link_mode) .. '|' .. label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. renderWikitext(local_title, link_mode) .. '|' .. label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.link_mode, args.category_label ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p 2w2gs97hwip24g42z193k0aqkx1lgtq 216476 216475 2026-10-04T18:25:09Z Iketsi 3254 test 216476 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeCategoryMode(mode) mode = normalizeLanguageCode(mode) or 'plaintext' if mode == 'active' then return 'active' end return 'plaintext' end local function getPlaintextLinkTarget(value) local title = mw.title.new(value) if title then return title.prefixedText end return nil end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, category_label) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label, local_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end local_label = label if category_label and category_label ~= '' then if normalizeCategoryMode(category_mode) == 'active' then local_label = category_label else local_label = mw.text.nowiki(category_label) end end if local_title and normalizeCategoryMode(category_mode) == 'plaintext' then local_title = getPlaintextLinkTarget(local_title) end if link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. local_label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. local_label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.category_label ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p k3v1k4aotdboc4ofsx41ctjqnigc3ac 216477 216476 2026-10-04T18:30:02Z Iketsi 3254 test 216477 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeCategoryMode(mode) mode = normalizeLanguageCode(mode) or 'plaintext' if mode == 'active' then return 'active' end return 'plaintext' end local function getPlaintextLinkTarget(value) local title = mw.title.new(value) if title then return title.prefixedText, title.namespace == 14 end return nil, false end local function getActiveLinkTarget(value) local title = mw.title.new(value) if title and title.namespace == 14 then return ':' .. value end return value end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, category_label) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label, local_label, is_category -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end local_label = label if category_label and category_label ~= '' then if normalizeCategoryMode(category_mode) == 'active' then local_label = category_label else local_label = mw.text.nowiki(category_label) end end if local_title then if normalizeCategoryMode(category_mode) == 'active' then local_title = getActiveLinkTarget(local_title) else local_title, is_category = getPlaintextLinkTarget(local_title) if local_title and is_category then local_title = ':' .. local_title end end end if link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. local_label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. local_label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.category_label ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p 6zyv5z56uu9pmeciux53z2xliupdlo2 216478 216477 2026-10-04T18:39:25Z Iketsi 3254 test 216478 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeCategoryMode(mode) mode = normalizeLanguageCode(mode) or 'link' if mode == 'plaintext' or mode == 'active' or mode == 'link' then return mode end return 'link' end local function renderCategory(category, category_label, category_mode) category_mode = normalizeCategoryMode(category_mode) if category_mode == 'plaintext' then return mw.text.nowiki(category) end if category_label and category_label ~= '' then if category_mode == 'active' then return '[[' .. category .. '|' .. category_label .. ']]' end return '[[:' .. category .. '|' .. category_label .. ']]' end if category_mode == 'active' then return '[[' .. category .. ']]' end return '[[:' .. category .. ']]' end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, category_label) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end if local_title and mw.ustring.sub(local_title, 1, 9) == 'Category:' then output = renderCategory(local_title, category_label or raw_label, category_mode) elseif link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.category_label ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p m6fwqpi2q7m5g6crp3b3k0d7ycpxikt 216479 216478 2026-10-04T18:51:45Z Iketsi 3254 rawfull; rawname 216479 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeCategoryMode(mode) mode = normalizeLanguageCode(mode) or 'link' if mode == 'link' or mode == 'active' or mode == 'rawfull' or mode == 'rawname' then return mode end return 'link' end local function renderCategoryTitle(title, label, category_mode) category_mode = normalizeCategoryMode(category_mode) if category_mode == 'rawfull' then return mw.text.nowiki(title) elseif category_mode == 'rawname' then local category_name = mw.ustring.gsub(title, '^[^:]*:', '') return mw.text.nowiki(category_name) elseif category_mode == 'active' then return '[[' .. title .. '|' .. label .. ']]' end return '[[:' .. title .. '|' .. label .. ']]' end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end local function hasBestStatementValue(item, entity, prop, expected_value) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak and statment.mainsnak.datavalue and statment.mainsnak.datavalue.value and statment.mainsnak.datavalue.value.id == expected_value then return true end end return false end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, category_label) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label local is_wikimedia_category, category_link_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end is_wikimedia_category = hasBestStatementValue( item, entity, 'P31', 'Q4167836' ) category_link_label = label if category_label and category_label ~= '' then category_link_label = mw.text.nowiki(category_label) end if is_wikimedia_category and local_title then if link_type == '-' or link_type == 'none' then output = mw.text.nowiki(local_title) else output = renderCategoryTitle( local_title, category_link_label, category_mode ) end elseif link_type == '-' or link_type == 'none' then output = label elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = '[[' .. local_title .. '|' .. label .. ']]' else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.category_label ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p ow5tbrv3kwga7aw9vtv4t202d22u6sn 216481 216479 2026-10-04T19:21:58Z Iketsi 3254 test 216481 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeCategoryMode(mode) mode = normalizeLanguageCode(mode) or 'link' if mode == 'active' then return 'active' end return 'link' end local function renderLocalLink(title, label, category_mode) if normalizeCategoryMode(category_mode) == 'active' then return '[[' .. title .. '|' .. label .. ']]' end return '[[:' .. title .. '|' .. label .. ']]' end local function stripNamespace(value) if type(value) ~= 'string' then return value end return mw.ustring.gsub(value, '^[^:]*:', '') end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, category_label, strip_namespace) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label, local_link_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end local_link_label = category_label or label if yesno(strip_namespace, false) then local_link_label = stripNamespace(local_link_label) end if link_type == '-' or link_type == 'none' then if local_title then output = mw.text.nowiki(local_title) else output = label end elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = renderLocalLink(local_title, local_link_label, category_mode) else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = renderLocalLink(local_title, local_link_label, category_mode) else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.category_label, args.strip_namespace ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p dtrm9v1ecw2l6jp3xaq6v9u4rwuv4x0 216482 216481 2026-10-04T19:27:51Z Iketsi 3254 link=none; strip_namespace=true 216482 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeCategoryMode(mode) mode = normalizeLanguageCode(mode) or 'link' if mode == 'active' then return 'active' end return 'link' end local function renderLocalLink(title, label, category_mode) if normalizeCategoryMode(category_mode) == 'active' then return '[[' .. title .. '|' .. label .. ']]' end return '[[:' .. title .. '|' .. label .. ']]' end local function stripNamespace(value) if type(value) ~= 'string' then return value end return mw.ustring.gsub(value, '^[^:]*:', '') end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, category_label, strip_namespace) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label, local_link_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end local_link_label = category_label or label if yesno(strip_namespace, false) then local_link_label = stripNamespace(local_link_label) end if link_type == '-' or link_type == 'none' then if local_title then if yesno(strip_namespace, false) then output = mw.text.nowiki(stripNamespace(local_title)) else output = mw.text.nowiki(local_title) end else output = label end elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = renderLocalLink(local_title, local_link_label, category_mode) else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = renderLocalLink(local_title, local_link_label, category_mode) else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.category_label, args.strip_namespace ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p mpfxppvwe7ywz581meawisu2842jbqr 216486 216482 2026-10-04T19:53:22Z Iketsi 3254 test 216486 Scribunto text/plain --[[ __ __ _ _ __ ___ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| | | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ | | | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ | |_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_| This module is intended to be the engine behind "Template:Label". This module was copied from Commons; please ask for changes there. Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing at "Module:Wikidata label/testcases". Authors and maintainers: * User:Jarekt – original version * User:Iketsi – improved fallback logic ]] require('strict') -- used for debugging purposes as it detects cases of unintended global variables --============================================= --=== Internal functions ====================== --============================================= --------------------------------------------------------------------------- -- Normalize input arguments by converting them all to lower case and -- replacing space with "_" in the argument name. Also empty strings are -- converted to nils. Arguments are collected from arguments passed to the -- module and if missing from the template that calls the module local function getArgs(frame) local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do value = mw.text.trim(value) -- trim whitespaces from the beginning and the end of the string if value ~= '' then -- nuke empty strings if type(name)=='string' then name = string.gsub( string.lower(name), ' ', '_') end output_args[name] = value end end return output_args end local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) return args end --------------------------------------------------------------------------- -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to Module:Yesno but does not assume val is a string local function yesno(val, default) if type(val) == 'boolean' then return val elseif type(val) == 'number' then if val == 1 then return true elseif val == 0 then return false end elseif type(val) == 'string' then val = mw.ustring.lower(val) -- put in lower case if val == 'no' or val == 'n' or val == 'false' or val == '0' then return false elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then return true end end return default end ------------------------------------------------------------------------- -- get message in a given language -- INPUTS: -- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up -- * lang - translate message to language "lang" -- * default - string to return in case this module is moved to a project where this message is not set -- OUTPUT: -- * translated message local function getMessage(msg, lang, default) msg = mw.message.new(msg):inLanguage(lang):plain() return (msg == nil and default) or msg end local function normalizeLanguageCode(code) if type(code) ~= 'string' then return nil end code = mw.text.trim(code) if code == '' then return nil end return mw.ustring.lower(mw.ustring.gsub(code, '_', '-')) end local function normalizeCategoryMode(mode) mode = normalizeLanguageCode(mode) or 'link' if mode == 'active' then return 'active' end return 'link' end local function renderLocalLink(title, label, category_mode) if normalizeCategoryMode(category_mode) == 'active' then return '[[' .. title .. '|' .. label .. ']]' end return '[[:' .. title .. '|' .. label .. ']]' end local function stripNamespace(value) if type(value) ~= 'string' then return value end return mw.ustring.gsub(value, '^[^:]*:', '') end local function appendUniqueLanguage(langList, seen, code) code = normalizeLanguageCode(code) if code and not seen[code] then seen[code] = true table.insert(langList, code) end end local function getLabelLanguages(lang, fallback) local requested_lang = normalizeLanguageCode(lang) local langList = {} local seen = {} fallback = normalizeLanguageCode(fallback) if not fallback then fallback = 'default' end appendUniqueLanguage(langList, seen, requested_lang) if fallback == 'none' then return langList, requested_lang end if fallback == 'default' then appendUniqueLanguage(langList, seen, 'mul') for _, language in ipairs(mw.language.getFallbacksFor(requested_lang)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end for _, language in ipairs(mw.text.split(fallback, ',', true)) do appendUniqueLanguage(langList, seen, language) end return langList, requested_lang end local function getLabelInLanguages(item, entity, langList) for _, language in ipairs(langList) do local label if entity then label = entity:getLabel(language) else label = mw.wikibase.getLabelByLang(item, language) end if label then return label, language end end end local function getDescriptionInLanguages(item, entity, langList) if entity and entity.descriptions then for _, language in ipairs(langList) do if entity.descriptions[language] then return entity.descriptions[language].value end end else for _, language in ipairs(langList) do local desc = mw.wikibase.getDescriptionByLang(item, language) if desc then return desc end end end end local function isFallbackLabel(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang end local function isNonMulFallback(requested_lang, label_lang) return label_lang ~= nil and label_lang ~= requested_lang and label_lang ~= 'mul' end local function shouldShowLanguage(show_lang, requested_lang, label_lang) show_lang = normalizeLanguageCode(show_lang) or 'fallback-not-mul' if not label_lang then return false elseif show_lang == 'always' then return true elseif show_lang == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_lang == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowQid(show_qid, requested_lang, label_lang) show_qid = normalizeLanguageCode(show_qid) or 'never' if show_qid == 'always' then return label_lang ~= nil elseif show_qid == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif show_qid == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function shouldShowEdit(edit, requested_lang, label_lang) edit = normalizeLanguageCode(edit) or 'fallback-not-mul' if edit == 'always' then return true elseif edit == 'fallback' then return isFallbackLabel(requested_lang, label_lang) elseif edit == 'fallback-not-mul' then return isNonMulFallback(requested_lang, label_lang) end return false end local function renderFallbackMarker(label_lang, item, show_lang, show_qid, requested_lang) local show_language = shouldShowLanguage(show_lang, requested_lang, label_lang) local show_qid = shouldShowQid(show_qid, requested_lang, label_lang) local marker = {} if show_qid then table.insert(marker, '[[d:' .. item .. '|' .. mw.text.nowiki(item) .. ']]') end if show_language then table.insert(marker, mw.text.nowiki(label_lang)) end if #marker == 0 then return '' end return '<sup class="wikidata-label-marker" lang="en" dir="ltr">(' .. table.concat(marker, ' · ') .. ')</sup>' end local function renderLabelEditLink(item, requested_lang) local url = 'https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. item .. '/' .. mw.uri.encode(requested_lang, 'PATH') .. '?uselang=' .. mw.uri.encode(requested_lang, 'QUERY') local tooltip = getMessage('Translate', requested_lang, 'Translate') tooltip = mw.text.nowiki(tooltip) return '<span class="plainlinks wikidata-label-edit">[' .. url .. ' <span title="' .. tooltip .. '">&#127991;</span>]</span>' end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * lang - language of the project -- OUTPUT: -- * sitelink local function getSitelink(item, entity, lang) if entity and entity.getSitelink then -- if we have entity then use it return entity:getSitelink(lang .. 'wiki') else -- if no entity then use different function return mw.wikibase.getSitelink(item, lang .. 'wiki') end end local function canUseLocalLink(link_type, requested_lang, label_lang) link_type = normalizeLanguageCode(link_type) or 'default' if link_type == 'default' then return label_lang == requested_lang elseif link_type == 'mul' then return label_lang == requested_lang or label_lang == 'mul' elseif link_type == 'all' then return label_lang ~= nil end return false end --------------------------------------------------------------------------- -- use different sitelink call depending if you already have an entity or not -- INPUTS: -- * item and entity - entity id and entity: if full entity already uploded than use that -- otherwise use entity id to look up sitelink -- * prop - property for which to return the best statment -- OUTPUT: -- * value of the best statment (only from the first one) local function getBestStatementsValue(item, entity, prop) local statments if entity then statments = entity:getBestStatements(prop) else statments = mw.wikibase.getBestStatements(item, prop) end for _, statment in ipairs(statments) do if statment and statment.mainsnak.datavalue.value then return statment.mainsnak.datavalue.value end end end --------------------------------------------------------------------------- -- change capitalization of the label -- INPUTS: -- * label - label string -- * capitalization - capitalization to be applied: allowed values are "tc", "lc", -- "uc", "lcfirst", and "ucfirst". Any other value will return original string -- * lang - language of the label -- OUTPUT: -- * value of the best statment (only from the first one) local function apply_capitalization(label, capitalization, lang) capitalization = string.lower(capitalization or 'none') if capitalization == 'none' then return label elseif capitalization == 'uc' then return mw.language.new(lang):uc(label) elseif capitalization == 'lc' then return mw.language.new(lang):lc(label) elseif capitalization == 'tc' then -- title case local new_label = {} for _, word in ipairs(mw.text.split(label, ' ')) do table.insert(new_label, mw.language.new(lang):ucfirst(word)) end return table.concat(new_label, ' ') elseif capitalization == 'ucfirst' then return mw.language.new(lang):ucfirst(label) elseif capitalization == 'lcfirst' then return mw.language.new(lang):lcfirst(label) end return label end --[[------------------------------------------------------------------------- get link based on user preference INPUTS: * link_type - can be : * "wikidata" - link to wikidata * "wikipedia" - link to wikipedia (language dependent) * "wikidata talk" - link to wikidata talk page * "commons" - link to commons (try sitelink then commons category then commons gallery) * "commonscat" - link to commons (try commons category then commons gallery) * "-" - means no link * item - entity ID (always provided) * entity - whole entity. It can be nil if whole entity is not loaded * langList - language fallback list for preferred language (required) OUTPUT: * link - link to the wikimedia page ]] local function getLink(link_type, item, entity, requested_lang) local link, eLink link_type = mw.ustring.lower(link_type or 'default') local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M' if item_type == 'M' then eLink='c:Special:EntityPage/'..item elseif item_type == 'Q' then eLink='d:'..item -- wikibase entity page link elseif item_type == 'P' then eLink='d:Property:'..item -- wikibase entity page link else eLink='d:Special:EntityPage/'..item end if link_type == '-' or link_type == 'none' then -- allow different link formats return '' -- no link elseif link_type == 'wikidata' or item_type == 'M' then return eLink -- link to wikibase entity page elseif link_type == 'wikidata talk' and item_type == 'P' then return 'd:Property talk:'.. item -- link to wikidata property talk page elseif link_type == 'wikidata talk' then return 'd:Talk:'..item -- link to wikidata talk page elseif link_type == 'commons' or link_type == 'commonscat' then --[[ When link_type == 'commons' we try the following links (in specified order): 1) commons sitelink 2) P373 "Commons Category" claims 3) P935 "Commons Gallery" claims Since most items have a commons sitelink we never have to look for claims When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we try the following links (in specified order): 1) commons sitelink, which is kept if it points to a category 2) P373 "Commons Category" claims 3) commons sitelink (which does not point to a category) 4) P935 "Commons Gallery" claims Since most pages have a commons sitelink we never have to look for claims ]] local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons if sLink then sLink = 'c:'..sLink if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then link = sLink end end if not link then -- try linking to P373 "Commons Category" local cat = getBestStatementsValue(item, entity, 'P373') link = (cat ~= nil and 'c:Category:' .. cat) or nil end link = link or sLink if not link then -- try linking to P935 "Commons Gallery" link = getBestStatementsValue(item, entity, 'P935') end return link or eLink end local sitelink = getSitelink(item, entity, requested_lang) if sitelink then return ':' .. requested_lang .. ':' .. sitelink end return eLink end --============================================= --=== External functions ====================== --============================================= local p = {} --====================================================================== --=== API functions for use from other Scribunto modules =============== --====================================================================== --[[ _getLabel This function returns a label translated to desired language, created based on wikidata Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - desired language of the label 3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter), "lcfirst" (lower case for the first letter), or 'none' (default) Error Handling: Bad q-id will result in displayed error ]] function p._getLabel(item, lang, link_type, capitalization, show_id, fallback, show_lang, edit, show_qid, article, category_mode, category_label, strip_namespace) local entity, s, link, label, language, desc local label_lang, requested_lang, langList, output local local_title, raw_label, local_link_label -- clean up the input parameters if type(item) ~= 'string' then -- "item" is not a q-id entity = item -- "item" must be the entity if not entity or not entity.id then return '<strong class="error">Wikidata label: missing or invalid item</strong>' end item = entity.id -- look-up q-id elseif tonumber(item) then -- if it is just the number then add "Q" in front item = 'Q'..item end item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize if link_type == 'no' then link_type = 'none' end link_type = normalizeLanguageCode(link_type) or 'default' requested_lang = normalizeLanguageCode(lang) if not requested_lang then requested_lang = mw.getCurrentFrame():callParserFunction("int","lang") requested_lang = normalizeLanguageCode(requested_lang) end if not requested_lang then requested_lang = 'en' end langList, requested_lang = getLabelLanguages(requested_lang, fallback) label, label_lang = getLabelInLanguages(item, entity, langList) raw_label = label if yesno(strip_namespace, false) and label then label = stripNamespace(label) end if label then -- wikitext-escape the label if we have one label = mw.text.nowiki(label) end if not label then -- no labels found, so just show the q-id label = item elseif show_id then -- add id show_id = yesno(show_id,false) if show_id then local wordsep = getMessage('Word-separator', requested_lang, ' ') local id = mw.message.new('parentheses', item):inLanguage(requested_lang):plain() id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set label = label .. wordsep .. "<small>" .. id .. "</small>" end end label = apply_capitalization(label, capitalization, requested_lang) -- look for description desc = getDescriptionInLanguages(item, entity, langList) if desc and link_type ~= '-' and link_type ~= 'none' then -- wikitext-escape the description if we have one desc = mw.text.nowiki(desc) -- add description as hover text label = '<span title="' .. desc .. '">' .. label .. '</span>' end local_title = article if not local_title or local_title == '' then local_title = getSitelink(item, entity, requested_lang) end if (not local_title or local_title == '') and raw_label and ( label_lang == requested_lang or (link_type == 'mul' and label_lang == 'mul') ) then local_title = raw_label end local_link_label = label if category_label and category_label ~= '' then if yesno(strip_namespace, false) then local_link_label = mw.text.nowiki(stripNamespace(category_label)) else local_link_label = category_label end end if link_type == '-' or link_type == 'none' then if local_title then if yesno(strip_namespace, false) then output = mw.text.nowiki(stripNamespace(local_title)) else output = mw.text.nowiki(local_title) end else output = label end elseif link_type == 'wikidata' then output = '[[d:' .. item .. '|' .. label .. ']]' elseif link_type == 'olddefault' then if local_title then output = renderLocalLink(local_title, local_link_label, category_mode) else output = '[[d:' .. item .. '|' .. label .. ']]' end elseif canUseLocalLink(link_type, requested_lang, label_lang) and local_title then output = renderLocalLink(local_title, local_link_label, category_mode) else output = label end output = output .. renderFallbackMarker( label_lang, item, show_lang, show_qid, requested_lang ) if shouldShowEdit(edit, requested_lang, label_lang) then output = output .. renderLabelEditLink(item, requested_lang) end return output end --[[------------------------------------------------------------------------------- _sitelinks This function returns a table of sitelinks for a single project organized by language Inputs: 1: item - wikidata's item's q-id or entity class 2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc. Output: Table of sitelinks with language fields Output: Table of sitelinks with language fields See also * [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis. * [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps). ]] function p._sitelinks(item, project) local entity, sitelink -- get entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end -- convert from english project name to proproject code local projLUT = { wikipedia = 'wiki', commons = 'commonswiki', foundation = 'foundationwiki', mediawiki = 'mediawikiwiki', wikispecies = 'specieswiki', wikidata = 'wikidatawiki', incubator = 'incubatorwiki',oldwikisource = 'sourceswiki', } local langLUT = { -- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode: foundation = '~', commons = '~',-- they will be skipped incubator = '~', meta = '~', mediawiki = '~', sources = '~', species = '~', beta = '~', -- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes: -- See [https://meta.wikimedia.org/wiki/Special_language_codes](https://meta.wikimedia.org/wiki/Special_language_codes) for details als = 'gsw', bat_smg = 'sgs', fiu_vro = 'vro', be_x_old = 'be-tarask', roa_rup = 'rup', zh_classical = 'lzh', zh_yue = 'yue', zh_min_nan = 'nan', zh_wuu = 'wuu', no = 'nb', } project = project:lower() project = projLUT[project] or project -- correct the project name local n = project:len() local linkTable = {} if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks local site = sitelink.site local m = site:len() - n local proj = site:sub(m +1) -- project part of the siteID if proj == project then -- proj matches desired "project" local lang = site:sub(1, m) -- language part of the siteID lang = langLUT[lang] or lang:gsub('_','-') if lang ~= '~' then -- proj matches desired "project" linkTable[lang] = sitelink.title end end end end return linkTable end --[[---------------------------------------------------------------- _aliases This function returns a table of aliases for a single language Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Table of aliases with language fields ]] function p._aliases(item, lang) local entity if type(item) == 'string' then -- "item" is a q-id entity = mw.wikibase.getEntity(item) else entity = item -- "item" is the entity end local aliasTable = {} if entity and entity.aliases then-- See if there is an entity and that it has aliases if entity.aliases[lang] then-- See if it has English Aliases for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases table.insert(aliasTable, alias.value)-- Create a table of English aliases end end end return aliasTable end --====================================================================== --=== Invoke functions for use from wikitext, e.g., templates ========== ---===================================================================== --[[ getLabel This function returns a label translated to desired language, created based on wikidata Usage: {{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}} Parameters 1: wikidata's item's q-id (required) 2: language (optional; default {{int:lang}}) 3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link) 4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst" Error Handling: Bad q-id will result in displayed error ]] function p.getLabel(frame) local args = getArgs(frame) return p._getLabel( args.item, args.lang, args.link, args.capitalization, args.show_id, args.fallback, args.show_lang, args.edit, args.show_qid, args.article, args.category_mode, args.category_label, args.strip_namespace ) end --[[------------------------------------------------------------------------------- sitelinks This function returns a comma separated list of sitelinks for a single project organized by language Its main purpose is to help with testing of _sitelinks function. Usage: {{#invoke:Wikidata label|sitelinks|item=Q...|project=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks", "wikinews", "wikiversity", "wikivoyage", "wiktionary", etc. Output: comma separated list ]] function p.sitelinks(frame) local args = getArgs(frame) local sitelinks = p._sitelinks(args.item, args.project) local sitelinkList = {} for lang, sitelink in pairs(sitelinks) do table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink)) end return table.concat(sitelinkList, ', ') end --[[---------------------------------------------------------------------------- aliases This function returns a comma separated list of aliases for a single language Its main purpose is to help with testing of _aliases function. Usage: {{#invoke:Wikidata label|aliases|item=Q...|lang=..}} Inputs: 1: item - wikidata's item's q-id or entity class 2: lang - language code, like 'en' or 'de' Output: Comma separated list ]] function p.aliases(frame) local args = getArgs(frame) return table.concat(p._aliases(args.item, args.lang), ', ') end return p i9lkno6fso6qeo6rg4mhalrmza6eiwy Wilem-Aleksander 0 14187 216459 2026-10-04T13:09:03Z DawnyTest 14843 nowo starna 216459 wikitext text/x-wiki [[Òbrôzk:Zijne Majesteit Koning Willem-Alexander met koningsmantel april 2013 (cropped 2).jpeg|mały|Wilhelm-Aleksander w 2013]] '''Wilhelm-Aleksander''' ({{Jãz.|nl}} Willem-Alexander Claus George Ferdinand; ùr. 27 łżëkwiata 1967 w Utrechcie) je królã [[Néderlandzkô|Néderlandsczi]] òd 30 łżëkwiata 2013. Je synã królowi Beatricze ë ksãca Clausa von Amsberga<ref>''[https://www.royal-house.nl/members-royal-house/king-willem-alexander King Willem-Alexander]'' [online], Royal House of the Netherlands, 13 stëcznika 2026 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Sztudérowôł historiã na Ùniwersytece w Lejdzé<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/education ''Education''], Royal House of the Netherlands, 8 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Pracôwôł jakno wòlontariusz w [[Keniô|Kenie]], dze jakno pilot pracôwôł przë transpòrce lekarsczi pòmocë ë przë òchronie strzodowiska<ref>King Willem-Alexander, [w:] ''[https://www.royal-house.nl/members-royal-house/king-willem-alexander/flying Flying, Royal House of the Netherlands]'', 26 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Je pierszim òficerã (F/O) w lotniczi linie KLM<ref>''[https://www.wprost.pl/swiat/10055207/krol-holandii-przez-lata-ukrywal-swoja-tajemnice-w-koncu-ujawnil-sekret.html Król Holandii przez lata ukrywał, że jest pilotem]'' [online], wprost.pl [dostęp 2017-11-27] ({{Jãz.|pl}}).</ref>. W 2002 òżenił sã z [[Argentina|Argentińską]] ekònomistką Maximą Zorreguietą Cerruti para mô trzë córczi Katarzënã Amaliã (ùr. 2003), Aleksjã (ùr. 2005) ë Arianã (ùr. 2007)<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/marriage-and-family ''Marriage and family''], Royal House of the Netherlands, [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. 30 łżëkwiata 2013 òstał królã Hòlandie po abdikacje swòji matczi. W 2014 òbczas gòscënë w [[Pòlskô|Pòlsce]] prezydent [[Barnisłôw Komorowsczi|Barnisłôw Komorowski]] wëapartnił gò [[Order Biôłégò Orła|Orderã Biôłégò Orła]]<ref>''[https://web.archive.org/web/20140625010424/http://www.telegraaf.nl/binnenland/22779386/___Vrijheid_dankzij_Polen___.html Koning: vrijheid mede te danken aan Polen]''. telegraaf.nl, 24 czerwińca 2014. [dost. 2014-06-26]. ({{Jãz.|nl}}).</ref>. == Przëpisë == {{Przëpisë}} [[Kategòrëjô:Mònarchòwie Néderlandsczi]] gitxnl0stfq7v3nx1fv4hfdwrtfnycx 216467 216459 2026-10-04T15:35:06Z Terrus38 14026 Terrus38 przeniós starnã [[Wilhelm-Aleksander]] do [[Wilem-Aleksander]]: kaszëbskô fòrma miona, ùchwałë RKJ 4, 5, 6, 8/08 216459 wikitext text/x-wiki [[Òbrôzk:Zijne Majesteit Koning Willem-Alexander met koningsmantel april 2013 (cropped 2).jpeg|mały|Wilhelm-Aleksander w 2013]] '''Wilhelm-Aleksander''' ({{Jãz.|nl}} Willem-Alexander Claus George Ferdinand; ùr. 27 łżëkwiata 1967 w Utrechcie) je królã [[Néderlandzkô|Néderlandsczi]] òd 30 łżëkwiata 2013. Je synã królowi Beatricze ë ksãca Clausa von Amsberga<ref>''[https://www.royal-house.nl/members-royal-house/king-willem-alexander King Willem-Alexander]'' [online], Royal House of the Netherlands, 13 stëcznika 2026 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Sztudérowôł historiã na Ùniwersytece w Lejdzé<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/education ''Education''], Royal House of the Netherlands, 8 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Pracôwôł jakno wòlontariusz w [[Keniô|Kenie]], dze jakno pilot pracôwôł przë transpòrce lekarsczi pòmocë ë przë òchronie strzodowiska<ref>King Willem-Alexander, [w:] ''[https://www.royal-house.nl/members-royal-house/king-willem-alexander/flying Flying, Royal House of the Netherlands]'', 26 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Je pierszim òficerã (F/O) w lotniczi linie KLM<ref>''[https://www.wprost.pl/swiat/10055207/krol-holandii-przez-lata-ukrywal-swoja-tajemnice-w-koncu-ujawnil-sekret.html Król Holandii przez lata ukrywał, że jest pilotem]'' [online], wprost.pl [dostęp 2017-11-27] ({{Jãz.|pl}}).</ref>. W 2002 òżenił sã z [[Argentina|Argentińską]] ekònomistką Maximą Zorreguietą Cerruti para mô trzë córczi Katarzënã Amaliã (ùr. 2003), Aleksjã (ùr. 2005) ë Arianã (ùr. 2007)<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/marriage-and-family ''Marriage and family''], Royal House of the Netherlands, [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. 30 łżëkwiata 2013 òstał królã Hòlandie po abdikacje swòji matczi. W 2014 òbczas gòscënë w [[Pòlskô|Pòlsce]] prezydent [[Barnisłôw Komorowsczi|Barnisłôw Komorowski]] wëapartnił gò [[Order Biôłégò Orła|Orderã Biôłégò Orła]]<ref>''[https://web.archive.org/web/20140625010424/http://www.telegraaf.nl/binnenland/22779386/___Vrijheid_dankzij_Polen___.html Koning: vrijheid mede te danken aan Polen]''. telegraaf.nl, 24 czerwińca 2014. [dost. 2014-06-26]. ({{Jãz.|nl}}).</ref>. == Przëpisë == {{Przëpisë}} [[Kategòrëjô:Mònarchòwie Néderlandsczi]] gitxnl0stfq7v3nx1fv4hfdwrtfnycx 216470 216467 2026-10-04T15:39:24Z Terrus38 14026 kòrekta 216470 wikitext text/x-wiki [[Òbrôzk:Zijne Majesteit Koning Willem-Alexander met koningsmantel april 2013 (cropped 2).jpeg|mały|Wilem-Aleksander w 2013]] '''Wilem-Aleksander''' ({{Jãz.|nl}} ''Willem-Alexander Claus George Ferdinand''; ùr. [[27 łżëkwiata]] [[1967]] w [[Ùtrecht|Ùtrechce]]) – król [[Néderlandzkô|Néderlandzczi]] òd [[30 łżëkwiata]] [[2013]]. Je synã królewi Beatriczë ë ksãca Clausa von Amsberga<ref>''[https://www.royal-house.nl/members-royal-house/king-willem-alexander King Willem-Alexander]'' [online], Royal House of the Netherlands, 13 stëcznika 2026 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Sztudérowôł historiã na Ùniwersytece w Leiden<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/education ''Education''], Royal House of the Netherlands, 8 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Prôcowôł jakno wòlontariusz w [[Keniô|Kenie]], dze jakno pilot robił przë transpòrce lékarsczi pòmocë ë przë òchronie strzodowiszcza<ref>King Willem-Alexander, [w:] ''[https://www.royal-house.nl/members-royal-house/king-willem-alexander/flying Flying, Royal House of the Netherlands]'', 26 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Je pierszim òficérą (F/O) w lotniczi linie KLM<ref>''[https://www.wprost.pl/swiat/10055207/krol-holandii-przez-lata-ukrywal-swoja-tajemnice-w-koncu-ujawnil-sekret.html Król Holandii przez lata ukrywał, że jest pilotem]'' [online], wprost.pl [dostęp 2017-11-27] ({{Jãz.|pl}}).</ref>. W [[2002]] òżenił sã z [[Argentina|argentińską]] ekònomistką Maximą Zorreguietą Cerruti. Pôra mô trzë córczi, [[Katarzëna Amaliô|Katarzënã Amaliã]] (ùr. [[2003]]), Aleksjã (ùr. [[2005]]) ë Arianã (ùr. [[2007]])<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/marriage-and-family ''Marriage and family''], Royal House of the Netherlands, [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. 30 łżëkwiata 2013 òstôł królã Holandie pò abdikacje swòji matczi. W [[2014]] òb czas gòscënë w [[Pòlskô|Pòlsce]] prezydeńt [[Barnisłôw Komorowsczi|Barnisłôw Kòmòrowsczi]] wëapartnił gò [[Òrder Biôłégò Òrzła|Òrderã Biôłégò Òrzła]]<ref>''[https://web.archive.org/web/20140625010424/http://www.telegraaf.nl/binnenland/22779386/___Vrijheid_dankzij_Polen___.html Koning: vrijheid mede te danken aan Polen]''. telegraaf.nl, 24 czerwińca 2014. [dost. 2014-06-26]. ({{Jãz.|nl}}).</ref>. == Przëpisë == {{Przëpisë}} [[Kategòrëjô:Mònarchòwie Néderlandsczi]] pdvwi4ittroa8q65ap0n19ikewybdo2 216503 216470 2026-10-05T10:08:28Z Terrus38 14026 216503 wikitext text/x-wiki [[Òbrôzk:Zijne Majesteit Koning Willem-Alexander met koningsmantel april 2013 (cropped 2).jpeg|mały|Wilem-Aleksander w 2013]] '''Wilem-Aleksander''' ({{Jãz.|nl}} ''Willem-Alexander Claus George Ferdinand''; ùr. [[27 łżëkwiata]] [[1967]] w [[Ùtrecht|Ùtrechce]]) – król [[Niderlandë|Niderlandów]] òd [[30 łżëkwiata]] [[2013]]. Je synã królewi Beatriczë ë ksãca Clausa von Amsberga<ref>''[https://www.royal-house.nl/members-royal-house/king-willem-alexander King Willem-Alexander]'' [online], Royal House of the Netherlands, 13 stëcznika 2026 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Sztudérowôł historiã na Ùniwersytece w Leiden<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/education ''Education''], Royal House of the Netherlands, 8 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Prôcowôł jakno wòlontariusz w [[Keniô|Kenie]], dze jakno pilot robił przë transpòrce lékarsczi pòmocë ë przë òchronie strzodowiszcza<ref>King Willem-Alexander, [w:] ''[https://www.royal-house.nl/members-royal-house/king-willem-alexander/flying Flying, Royal House of the Netherlands]'', 26 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Je pierszim òficérą (F/O) w lotniczi linie KLM<ref>''[https://www.wprost.pl/swiat/10055207/krol-holandii-przez-lata-ukrywal-swoja-tajemnice-w-koncu-ujawnil-sekret.html Król Holandii przez lata ukrywał, że jest pilotem]'' [online], wprost.pl [dostęp 2017-11-27] ({{Jãz.|pl}}).</ref>. W [[2002]] òżenił sã z [[Argentina|argentińską]] ekònomistką Maximą Zorreguietą Cerruti. Pôra mô trzë córczi, [[Katarzëna Amaliô|Katarzënã Amaliã]] (ùr. [[2003]]), Aleksjã (ùr. [[2005]]) ë Arianã (ùr. [[2007]])<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/marriage-and-family ''Marriage and family''], Royal House of the Netherlands, [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. 30 łżëkwiata 2013 òstôł królã Holandie pò abdikacje swòji matczi. W [[2014]] òb czas gòscënë w [[Pòlskô|Pòlsce]] prezydeńt [[Barnisłôw Komorowsczi|Barnisłôw Kòmòrowsczi]] wëapartnił gò [[Òrder Biôłégò Òrzła|Òrderã Biôłégò Òrzła]]<ref>''[https://web.archive.org/web/20140625010424/http://www.telegraaf.nl/binnenland/22779386/___Vrijheid_dankzij_Polen___.html Koning: vrijheid mede te danken aan Polen]''. telegraaf.nl, 24 czerwińca 2014. [dost. 2014-06-26]. ({{Jãz.|nl}}).</ref>. == Przëpisë == {{Przëpisë}} [[Kategòrëjô:Mònarchòwie Néderlandsczi]] onam3priyh9glr2k7fn6ybn1l0tci9i 216506 216503 2026-10-05T10:09:51Z Terrus38 14026 216506 wikitext text/x-wiki [[Òbrôzk:Zijne Majesteit Koning Willem-Alexander met koningsmantel april 2013 (cropped 2).jpeg|mały|Wilem-Aleksander w 2013]] '''Wilem-Aleksander''' ({{Jãz.|nl}} ''Willem-Alexander Claus George Ferdinand''; ùr. [[27 łżëkwiata]] [[1967]] w [[Ùtrecht|Ùtrechce]]) – król [[Niderlandë|Niderlandów]] òd [[30 łżëkwiata]] [[2013]]. Je synã królewi Beatriczë ë ksãca Clausa von Amsberga<ref>''[https://www.royal-house.nl/members-royal-house/king-willem-alexander King Willem-Alexander]'' [online], Royal House of the Netherlands, 13 stëcznika 2026 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Sztudérowôł historiã na Ùniwersytece w Leiden<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/education ''Education''], Royal House of the Netherlands, 8 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Prôcowôł jakno wòlontariusz w [[Keniô|Kenie]], dze jakno pilot robił przë transpòrce lékarsczi pòmocë ë przë òchronie strzodowiszcza<ref>King Willem-Alexander, [w:] ''[https://www.royal-house.nl/members-royal-house/king-willem-alexander/flying Flying, Royal House of the Netherlands]'', 26 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Je pierszim òficérą (F/O) w lotniczi linie KLM<ref>''[https://www.wprost.pl/swiat/10055207/krol-holandii-przez-lata-ukrywal-swoja-tajemnice-w-koncu-ujawnil-sekret.html Król Holandii przez lata ukrywał, że jest pilotem]'' [online], wprost.pl [dostęp 2017-11-27] ({{Jãz.|pl}}).</ref>. W [[2002]] òżenił sã z [[Argentina|argentińską]] ekònomistką Maximą Zorreguietą Cerruti. Pôra mô trzë córczi, [[Katarzëna Amaliô|Katarzënã Amaliã]] (ùr. [[2003]]), Aleksjã (ùr. [[2005]]) ë Arianã (ùr. [[2007]])<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/marriage-and-family ''Marriage and family''], Royal House of the Netherlands, [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. 30 łżëkwiata 2013 òstôł królã Holandie pò abdikacje swòji matczi. W [[2014]] òb czas gòscënë w [[Pòlskô|Pòlsce]] prezydeńt [[Barnisłôw Komorowsczi|Barnisłôw Kòmòrowsczi]] wëapartnił gò [[Òrder Biôłégò Òrzła|Òrderã Biôłégò Òrzła]]<ref>''[https://web.archive.org/web/20140625010424/http://www.telegraaf.nl/binnenland/22779386/___Vrijheid_dankzij_Polen___.html Koning: vrijheid mede te danken aan Polen]''. telegraaf.nl, 24 czerwińca 2014. [dost. 2014-06-26]. ({{Jãz.|nl}}).</ref>. == Przëpisë == {{Przëpisë}} e8n44n0tykavls3fbrypls6pxdwlmyh 216507 216506 2026-10-05T10:10:16Z Terrus38 14026 216507 wikitext text/x-wiki [[Òbrôzk:Zijne Majesteit Koning Willem-Alexander met koningsmantel april 2013 (cropped 2).jpeg|mały|Wilem-Aleksander w 2013]] '''Wilem-Aleksander''' ({{Jãz.|nl}} ''Willem-Alexander Claus George Ferdinand''; ùr. [[27 łżëkwiata]] [[1967]] w [[Ùtrecht|Ùtrechce]]) – król [[Niderlandë|Niderlandów]] òd [[30 łżëkwiata]] [[2013]]. Je synã królewi Beatriczë ë ksãca Clausa von Amsberga<ref>''[https://www.royal-house.nl/members-royal-house/king-willem-alexander King Willem-Alexander]'' [online], Royal House of the Netherlands, 13 stëcznika 2026 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Sztudérowôł historiã na Ùniwersytece w Leiden<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/education ''Education''], Royal House of the Netherlands, 8 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Prôcowôł jakno wòlontariusz w [[Keniô|Kenie]], dze jakno pilot robił przë transpòrce lékarsczi pòmocë ë przë òchronie strzodowiszcza<ref>King Willem-Alexander, [w:] ''[https://www.royal-house.nl/members-royal-house/king-willem-alexander/flying Flying, Royal House of the Netherlands]'', 26 séwnika 2025 [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. Je pierszim òficérą (F/O) w lotniczi linie KLM<ref>''[https://www.wprost.pl/swiat/10055207/krol-holandii-przez-lata-ukrywal-swoja-tajemnice-w-koncu-ujawnil-sekret.html Król Holandii przez lata ukrywał, że jest pilotem]'' [online], wprost.pl [dostęp 2017-11-27] ({{Jãz.|pl}}).</ref>. W [[2002]] òżenił sã z [[Argentina|argentińską]] ekònomistką Maximą Zorreguietą Cerruti. Pôra mô trzë córczi, [[Katarzëna Amaliô|Katarzënã Amaliã]] (ùr. [[2003]]), Aleksjã (ùr. [[2005]]) ë Arianã (ùr. [[2007]])<ref>''King Willem-Alexander'', [w:] [https://www.royal-house.nl/members-royal-house/king-willem-alexander/marriage-and-family ''Marriage and family''], Royal House of the Netherlands, [dost. 2026-10-04] ({{Jãz.|en}}).</ref>. 30 łżëkwiata 2013 òstôł królã Holandie pò abdikacje swòji matczi. W [[2014]] òb czas gòscënë w [[Pòlskô|Pòlsce]] prezydeńt [[Barnisłôw Komorowsczi|Barnisłôw Kòmòrowsczi]] wëapartnił gò [[Òrder Biôłégò Òrzła|Òrderã Biôłégò Òrzła]]<ref>''[https://web.archive.org/web/20140625010424/http://www.telegraaf.nl/binnenland/22779386/___Vrijheid_dankzij_Polen___.html Koning: vrijheid mede te danken aan Polen]''. telegraaf.nl, 24 czerwińca 2014. [dost. 2014-06-26]. ({{Jãz.|nl}}).</ref>. == Przëpisë == {{Przëpisë}} [[Kategòrëjô:Mònarchòwie Niderlandów]] raao7hajvfdmmynwn6wsdyd09ggjxpe Kategòrëjô:Mònarchòwie Niderlandów 14 14188 216460 2026-10-04T13:09:50Z DawnyTest 14843 Ùsôdzonô nowô starna "[[Kategòrëjô:Mònarchòwie]] [[Kategòrëjô:Néderlandzkô]]" 216460 wikitext text/x-wiki [[Kategòrëjô:Mònarchòwie]] [[Kategòrëjô:Néderlandzkô]] f4074g1hr9zvkj9s0jspxoyi1l0q2vz 216504 216460 2026-10-05T10:09:11Z Terrus38 14026 Terrus38 przeniós starnã [[Kategòrëjô:Mònarchòwie Néderlandsczi]] do [[Kategòrëjô:Mònarchòwie Niderlandów]]: 1. pisënk, 2. pòwszechno brëkòwóną fòrmą w kaszëbsczim są "Niderlandë", nié "Néderlandzkô" 216460 wikitext text/x-wiki [[Kategòrëjô:Mònarchòwie]] [[Kategòrëjô:Néderlandzkô]] f4074g1hr9zvkj9s0jspxoyi1l0q2vz 216520 216504 2026-10-05T10:19:53Z Terrus38 14026 216520 wikitext text/x-wiki [[Kategòrëjô:Mònarchòwie]] [[Kategòrëjô:Niderlandë]] 5upquyg545i8ttn69nz2ols9m1qb33r Wilhelm-Aleksander 0 14189 216468 2026-10-04T15:35:07Z Terrus38 14026 Terrus38 przeniós starnã [[Wilhelm-Aleksander]] do [[Wilem-Aleksander]]: kaszëbskô fòrma miona, ùchwałë RKJ 4, 5, 6, 8/08 216468 wikitext text/x-wiki #PATRZ [[Wilem-Aleksander]] ecrbz88lww8eq23kyxa14y5vhdkjeb3 216469 216468 2026-10-04T15:35:38Z Terrus38 14026 216469 wikitext text/x-wiki #PATRZ [[Wilem-Aleksander]] [[Kategòrëjô:Przeczerowania z jinégò jãzëka/pl]] 5933f288p4pk7crr04oryop9ez0dfq4 Moduł:PAGENAMEish 828 14190 216471 2026-10-04T16:08:35Z Iketsi 3254 N 216471 Scribunto text/plain local function stripThroughFirstColon(value) local position = string.find(value, ":", 1, true) return position and string.sub(value, position + 1) or value end hw8ojxzb9fv2mln838yfxryzvsnph85 Wiki:1000 4 14191 216494 2026-10-05T04:34:03Z Iketsi 3254 N – Wiki:1000 – tësąc nôjwôżniejszëch artiklów 216494 wikitext text/x-wiki Wiki:1000 – tësąc nôjwôżniejszëch artiklów: == {{Etikéta|preset=1kat|item=Q5640343}} == <!-- Biography --> === {{Etikéta|preset=1kat|item=Q4266974}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6460970}}}} === <!-- Philosophers and social scientists --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q868}} # {{Etikéta|preset=1k|item=Q7197}} # {{Etikéta|preset=1k|item=Q9045}} # {{Etikéta|preset=1k|item=Q4604}} # {{Etikéta|preset=1k|item=Q9191}} # {{Etikéta|preset=1k|item=Q9215}} # {{Etikéta|preset=1k|item=Q9235}} # {{Etikéta|preset=1k|item=Q48301}} # {{Etikéta|preset=1k|item=Q9294}} # {{Etikéta|preset=1k|item=Q9312}} # {{Etikéta|preset=1k|item=Q9317}} # {{Etikéta|preset=1k|item=Q9333}} # {{Etikéta|preset=1k|item=Q9353}} # {{Etikéta|preset=1k|item=Q1399}} # {{Etikéta|preset=1k|item=Q9061}} # {{Etikéta|preset=1k|item=Q9358}} # {{Etikéta|preset=1k|item=Q859}} # {{Etikéta|preset=1k|item=Q6527}} # {{Etikéta|preset=1k|item=Q9364}} # {{Etikéta|preset=1k|item=Q9372}} # {{Etikéta|preset=1k|item=Q9381}} # {{Etikéta|preset=1k|item=Q913}} # {{Etikéta|preset=1k|item=Q9068}} # {{Etikéta|preset=1k|item=Q9387}} # {{Etikéta|preset=1k|item=Q9391}} # {{Etikéta|preset=1k|item=Q9397}} }} === {{Etikéta|preset=1kat|item=Q7582881}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6997334}}}} === <!--Religious figures and theologians--> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q9181}} # {{Etikéta|preset=1k|item=Q9438}} # {{Etikéta|preset=1k|item=Q8018}} # {{Etikéta|preset=1k|item=Q9441}} # {{Etikéta|preset=1k|item=Q9546}} # {{Etikéta|preset=1k|item=Q302}} # {{Etikéta|preset=1k|item=Q9554}} # {{Etikéta|preset=1k|item=Q9077}} # {{Etikéta|preset=1k|item=Q9458}} # {{Etikéta|preset=1k|item=Q171195}} }} === {{Etikéta|preset=1kat|item=Q5753390}} === <!-- Politicians --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q8597}} # {{Etikéta|preset=1k|item=Q8409}} # {{Etikéta|preset=1k|item=Q8589}}<!-- Great Indian monarch of antiquity; spread Buddhism --> # {{Etikéta|preset=1k|item=Q5152}} # {{Etikéta|preset=1k|item=Q1405}} # {{Etikéta|preset=1k|item=Q8442}} # {{Etikéta|preset=1k|item=Q8605}} # {{Etikéta|preset=1k|item=Q1048}} # {{Etikéta|preset=1k|item=Q3044}} # {{Etikéta|preset=1k|item=Q8016}} # {{Etikéta|preset=1k|item=Q8413}} # {{Etikéta|preset=1k|item=Q8423}} # {{Etikéta|preset=1k|item=Q2042}} # {{Etikéta|preset=1k|item=Q7207}} # {{Etikéta|preset=1k|item=Q1001}} # {{Etikéta|preset=1k|item=Q720}} # {{Etikéta|preset=1k|item=Q5809}} # {{Etikéta|preset=1k|item=Q352}} # {{Etikéta|preset=1k|item=Q7226}} # {{Etikéta|preset=1k|item=Q8027}} # {{Etikéta|preset=1k|item=Q1394}} # {{Etikéta|preset=1k|item=Q91}} # {{Etikéta|preset=1k|item=Q7742}} # {{Etikéta|preset=1k|item=Q7231}} # {{Etikéta|preset=1k|item=Q517}} # {{Etikéta|preset=1k|item=Q8023}} # {{Etikéta|preset=1k|item=Q5816}} # {{Etikéta|preset=1k|item=Q1047}} # {{Etikéta|preset=1k|item=Q8620}} # {{Etikéta|preset=1k|item=Q8479}} # {{Etikéta|preset=1k|item=Q7192}}<!-- Created first Chinese state and dynasty --> # {{Etikéta|preset=1k|item=Q8007}} # {{Etikéta|preset=1k|item=Q8581}} # {{Etikéta|preset=1k|item=Q855}} # {{Etikéta|preset=1k|item=Q8474}}<!-- Greatest Ottoman sultan --> # {{Etikéta|preset=1k|item=Q8573}} # {{Etikéta|preset=1k|item=Q8462}} # {{Etikéta|preset=1k|item=Q8467}}<!-- Conquered Persia, Syria, Palestine, and Egypt for Islam --> # {{Etikéta|preset=1k|item=Q23}} }} === {{Etikéta|preset=1kat|item=Q6528885}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q7043111}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7217485}}}} === <!-- Inventors, scientists and mathematicians --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q8739}} # {{Etikéta|preset=1k|item=Q8011}} # {{Etikéta|preset=1k|item=Q80}} # {{Etikéta|preset=1k|item=Q202943}} # {{Etikéta|preset=1k|item=Q619}} # {{Etikéta|preset=1k|item=Q7186}} # {{Etikéta|preset=1k|item=Q1035}} # {{Etikéta|preset=1k|item=Q8743}} # {{Etikéta|preset=1k|item=Q937}} # {{Etikéta|preset=1k|item=Q8747}} # {{Etikéta|preset=1k|item=Q7604}} # {{Etikéta|preset=1k|item=Q8750}} # {{Etikéta|preset=1k|item=Q8753}} # {{Etikéta|preset=1k|item=Q8768}} # {{Etikéta|preset=1k|item=Q8778}} # {{Etikéta|preset=1k|item=Q307}} # {{Etikéta|preset=1k|item=Q6722}} # {{Etikéta|preset=1k|item=Q8958}} # {{Etikéta|preset=1k|item=Q41585}} # {{Etikéta|preset=1k|item=Q8962}} # {{Etikéta|preset=1k|item=Q8963}} # {{Etikéta|preset=1k|item=Q9038}} # {{Etikéta|preset=1k|item=Q9047}} # {{Etikéta|preset=1k|item=Q1043}} # {{Etikéta|preset=1k|item=Q9095}} # {{Etikéta|preset=1k|item=Q9106}} # {{Etikéta|preset=1k|item=Q935}} # {{Etikéta|preset=1k|item=Q529}} # {{Etikéta|preset=1k|item=Q9021}} # {{Etikéta|preset=1k|item=Q9123}} # {{Etikéta|preset=1k|item=Q9130}} # {{Etikéta|preset=1k|item=Q9036}} # {{Etikéta|preset=1k|item=Q7251}} # {{Etikéta|preset=1k|item=Q9041}} }} === {{Etikéta|preset=1kat|item=Q6442246}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6875304}}}} === <!-- Artists and architects --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q4724}} # {{Etikéta|preset=1k|item=Q5577}} # {{Etikéta|preset=1k|item=Q5580}} # {{Etikéta|preset=1k|item=Q5582}} # {{Etikéta|preset=1k|item=Q5432}} # {{Etikéta|preset=1k|item=Q5586}} # {{Etikéta|preset=1k|item=Q5588}} # {{Etikéta|preset=1k|item=Q762}} # {{Etikéta|preset=1k|item=Q5589}} # {{Etikéta|preset=1k|item=Q5592}} # {{Etikéta|preset=1k|item=Q5593}} # {{Etikéta|preset=1k|item=Q5597}} # {{Etikéta|preset=1k|item=Q5598}} # {{Etikéta|preset=1k|item=Q5599}} # {{Etikéta|preset=1k|item=Q5600}} # {{Etikéta|preset=1k|item=Q297}} # {{Etikéta|preset=1k|item=Q5603}} # {{Etikéta|preset=1k|item=Q5604}} }} === {{Etikéta|preset=1kat|item=Q8008937}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6606401}}}} === <!-- Composers and musicians --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q1779}} # {{Etikéta|preset=1k|item=Q1339}} # {{Etikéta|preset=1k|item=Q1299}} # {{Etikéta|preset=1k|item=Q255}} # {{Etikéta|preset=1k|item=Q7294}} # {{Etikéta|preset=1k|item=Q1268}} # {{Etikéta|preset=1k|item=Q7298}} # {{Etikéta|preset=1k|item=Q7302}} # {{Etikéta|preset=1k|item=Q7349}} # {{Etikéta|preset=1k|item=Q2831}} # {{Etikéta|preset=1k|item=Q1110560}} # {{Etikéta|preset=1k|item=Q7304}} # {{Etikéta|preset=1k|item=Q254}} # {{Etikéta|preset=1k|item=Q179277}} # {{Etikéta|preset=1k|item=Q7311}} # {{Etikéta|preset=1k|item=Q7312}} # {{Etikéta|preset=1k|item=Q7314}} # {{Etikéta|preset=1k|item=Q7315}} # {{Etikéta|preset=1k|item=Q7317}} # {{Etikéta|preset=1k|item=Q1340}} # {{Etikéta|preset=1k|item=Q1511}} }} === {{Etikéta|preset=1kat|item=Q3919997}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q3920019}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q3919792}}}} === <!-- Film directors, screenwriters and actors --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q7546}} # {{Etikéta|preset=1k|item=Q4605}} # {{Etikéta|preset=1k|item=Q882}} # {{Etikéta|preset=1k|item=Q4612}} # {{Etikéta|preset=1k|item=Q8704}} # {{Etikéta|preset=1k|item=Q8003}} # {{Etikéta|preset=1k|item=Q7371}} # {{Etikéta|preset=1k|item=Q7374}} # {{Etikéta|preset=1k|item=Q2001}} # {{Etikéta|preset=1k|item=Q8006}} # {{Etikéta|preset=1k|item=Q4616}} # {{Etikéta|preset=1k|item=Q8873}} }} === {{Etikéta|preset=1kat|item=Q5849863}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q9702405}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6487149}}}} === <!-- Authors, playwrights and poets --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q5670}} # {{Etikéta|preset=1k|item=Q5673}} # {{Etikéta|preset=1k|item=Q36322}} # {{Etikéta|preset=1k|item=Q5676}} # {{Etikéta|preset=1k|item=Q909}} # {{Etikéta|preset=1k|item=Q5679}} # {{Etikéta|preset=1k|item=Q5682}} # {{Etikéta|preset=1k|item=Q5683}} # {{Etikéta|preset=1k|item=Q5685}} # {{Etikéta|preset=1k|item=Q1067}} # {{Etikéta|preset=1k|item=Q5686}} # {{Etikéta|preset=1k|item=Q991}} # {{Etikéta|preset=1k|item=Q5878}} # {{Etikéta|preset=1k|item=Q5879}} # {{Etikéta|preset=1k|item=Q6240}} # {{Etikéta|preset=1k|item=Q6691}} # {{Etikéta|preset=1k|item=Q535}} # {{Etikéta|preset=1k|item=Q6882}} # {{Etikéta|preset=1k|item=Q905}} # {{Etikéta|preset=1k|item=Q7011}} # {{Etikéta|preset=1k|item=Q7071}} # {{Etikéta|preset=1k|item=Q7176}} # {{Etikéta|preset=1k|item=Q687}} # {{Etikéta|preset=1k|item=Q7198}} # {{Etikéta|preset=1k|item=Q7199}} # {{Etikéta|preset=1k|item=Q7200}} # {{Etikéta|preset=1k|item=Q692}} # {{Etikéta|preset=1k|item=Q7235}} # {{Etikéta|preset=1k|item=Q7241}} # {{Etikéta|preset=1k|item=Q7243}} # {{Etikéta|preset=1k|item=Q7245}} # {{Etikéta|preset=1k|item=Q1398}} }} === {{Etikéta|preset=1kat|item=Q7043334}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7074786}}}} === <!-- Explorers and travellers --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q926}} # {{Etikéta|preset=1k|item=Q1615}} # {{Etikéta|preset=1k|item=Q7321}} # {{Etikéta|preset=1k|item=Q7322}} # {{Etikéta|preset=1k|item=Q7324}} # {{Etikéta|preset=1k|item=Q7326}} # {{Etikéta|preset=1k|item=Q7327}} # {{Etikéta|preset=1k|item=Q7328}} # {{Etikéta|preset=1k|item=Q7331}} # {{Etikéta|preset=1k|item=Q1496}} # {{Etikéta|preset=1k|item=Q6101}} # {{Etikéta|preset=1k|item=Q7333}} }} == {{Etikéta|preset=1kat|item=Q1983674}} == <!-- Philosophy --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q7066}} # {{Etikéta|preset=1k|item=Q7242}} # {{Etikéta|preset=1k|item=Q9581}} # {{Etikéta|preset=1k|item=Q9453}} # {{Etikéta|preset=1k|item=Q9465}} # {{Etikéta|preset=1k|item=Q9471}} # {{Etikéta|preset=1k|item=Q9476}} # {{Etikéta|preset=1k|item=Q9081}} # {{Etikéta|preset=1k|item=Q8078}} # {{Etikéta|preset=1k|item=Q7081}} # {{Etikéta|preset=1k|item=Q5891}} # {{Etikéta|preset=1k|item=Q9510}} # {{Etikéta|preset=1k|item=Q7949}} }} == {{Etikéta|preset=1kat|item=Q1457903}} == <!-- Religion --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q9149}} # {{Etikéta|preset=1k|item=Q190}} ## {{Etikéta|preset=1k|item=Q9159}} ## {{Etikéta|preset=1k|item=Q9163}} # {{Etikéta|preset=1k|item=Q9134}} # {{Etikéta|preset=1k|item=Q128593}} # {{Etikéta|preset=1k|item=Q9174}} # {{Etikéta|preset=1k|item=Q9165}} # {{Etikéta|preset=1kat|item=Q5881075}} <!-- Specific religions --> ## {{Etikéta|preset=1k|item=Q748}} ## {{Etikéta|preset=1k|item=Q5043}} ### {{Etikéta|preset=1k|item=Q9592}} ### {{Etikéta|preset=1k|item=Q23540}} ## {{Etikéta|preset=1k|item=Q9089}} ## {{Etikéta|preset=1k|item=Q432}} ### {{Etikéta|preset=1k|item=Q9585}} ### {{Etikéta|preset=1k|item=Q483654}} ## {{Etikéta|preset=1k|item=Q9232}} ## {{Etikéta|preset=1k|item=Q9268}} ## {{Etikéta|preset=1k|item=Q812767}} ## {{Etikéta|preset=1k|item=Q9316}} ## {{Etikéta|preset=1k|item=Q9598}} ## {{Etikéta|preset=1k|item=Q9601}} }} == {{Etikéta|preset=1kat|item=Q6577596}} == <!-- Social sciences --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q8425}} # {{Etikéta|preset=1k|item=Q8432}} # {{Etikéta|preset=1k|item=Q8434}} === {{Etikéta|preset=1kat|item=Q1983760}} === <!-- Psychology --> # {{Etikéta|preset=1k|item=Q9332}} # {{Etikéta|preset=1k|item=Q9415}} # {{Etikéta|preset=1k|item=Q316}} # {{Etikéta|preset=1k|item=Q450}} # {{Etikéta|preset=1k|item=Q9418}} # {{Etikéta|preset=1k|item=Q9420}} === {{Etikéta|preset=1kat|item=Q7216461}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7237794}}}} === <!-- Family and relationships --> # {{Etikéta|preset=1k|item=Q8436}} # {{Etikéta|preset=1k|item=Q7569}} # {{Etikéta|preset=1k|item=Q8441}} # {{Etikéta|preset=1k|item=Q8445}} # {{Etikéta|preset=1k|item=Q467}} === {{Etikéta|preset=1kat|item=Q4103183}} === <!-- Politics --> # {{Etikéta|preset=1k|item=Q7163}} # {{Etikéta|preset=1k|item=Q7167}} # {{Etikéta|preset=1k|item=Q1889}} # {{Etikéta|preset=1k|item=Q7188}} ## {{Etikéta|preset=1k|item=Q7174}} ## {{Etikéta|preset=1k|item=Q317}} ## {{Etikéta|preset=1k|item=Q7269}} ## {{Etikéta|preset=1k|item=Q7270}} # {{Etikéta|preset=1k|item=Q7257}} ## {{Etikéta|preset=1k|item=Q6199}} ## {{Etikéta|preset=1k|item=Q6206}} ## {{Etikéta|preset=1k|item=Q6186}} ## {{Etikéta|preset=1k|item=Q7169}} ## {{Etikéta|preset=1k|item=Q6223}} ## {{Etikéta|preset=1k|item=Q6216}} ## {{Etikéta|preset=1k|item=Q7264}} ## {{Etikéta|preset=1k|item=Q6235}} ## {{Etikéta|preset=1k|item=Q7272}} # {{Etikéta|preset=1k|item=Q7260}} # {{Etikéta|preset=1k|item=Q7275}} # {{Etikéta|preset=1k|item=Q7278}} # {{Etikéta|preset=1k|item=Q7281}} === {{Etikéta|preset=1kat|item=Q6353120}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q4026633}}}} === <!-- Business and economics --> # {{Etikéta|preset=1k|item=Q8134}} # {{Etikéta|preset=1k|item=Q8137}} # {{Etikéta|preset=1k|item=Q8142}} ## {{Etikéta|preset=1k|item=Q4916}} ## {{Etikéta|preset=1k|item=Q4917}} # {{Etikéta|preset=1k|item=Q8148}} # {{Etikéta|preset=1k|item=Q1368}} # {{Etikéta|preset=1k|item=Q8161}} # {{Etikéta|preset=1k|item=Q601401}} === {{Etikéta|preset=1kat|item=Q4026563}} === <!-- Law --> # {{Etikéta|preset=1k|item=Q7748}} # {{Etikéta|preset=1k|item=Q7755}} === {{Etikéta|preset=1kat|item=Q6528085}} === <!-- International organizations --> # {{Etikéta|preset=1k|item=Q7159}} # {{Etikéta|preset=1k|item=Q7172}} # {{Etikéta|preset=1k|item=Q7768}} # {{Etikéta|preset=1k|item=Q7785}} # {{Etikéta|preset=1k|item=Q458}} # {{Etikéta|preset=1k|item=Q7178}} # {{Etikéta|preset=1k|item=Q7184}} # {{Etikéta|preset=1k|item=Q7191}} # {{Etikéta|preset=1k|item=Q7795}} # {{Etikéta|preset=1k|item=Q1065}} ## {{Etikéta|preset=1k|item=Q7801}} ## {{Etikéta|preset=1k|item=Q7804}} ## {{Etikéta|preset=1k|item=Q7809}} ## {{Etikéta|preset=1k|item=Q7817}} # {{Etikéta|preset=1k|item=Q7164}} # {{Etikéta|preset=1k|item=Q7825}} === {{Etikéta|preset=1kat|item=Q8394144}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q5850187}}}} === <!-- War and military --> # {{Etikéta|preset=1k|item=Q8473}} # {{Etikéta|preset=1k|item=Q454}} # {{Etikéta|preset=1k|item=Q7283}} # {{Etikéta|preset=1k|item=Q198}} ## {{Etikéta|preset=1k|item=Q8465}} === {{Etikéta|preset=1kat|item=Q7090668}} === <!-- Social issues --> # {{Etikéta|preset=1k|item=Q8452}} # {{Etikéta|preset=1k|item=Q8454}} # {{Etikéta|preset=1k|item=Q169207}} ## {{Etikéta|preset=1k|item=Q8461}} # {{Etikéta|preset=1k|item=Q7252}} # {{Etikéta|preset=1k|item=Q7181}} # {{Etikéta|preset=1k|item=Q8458}} # {{Etikéta|preset=1k|item=Q10294}} # {{Etikéta|preset=1k|item=Q8463}} }} == {{Etikéta|preset=1kat|item=Q1458484}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q8259}}}} == <!-- Language and literature --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q315}} # {{Etikéta|preset=1kat|item=Q4960490}} ## {{Etikéta|preset=1k|item=Q13955}} <!-- Technically, not a single language. --> ## {{Etikéta|preset=1k|item=Q9610}} ## {{Etikéta|preset=1k|item=Q7850}} <!-- Technically, not a single language. --> ## {{Etikéta|preset=1k|item=Q1860}} ## {{Etikéta|preset=1k|item=Q150}} ## {{Etikéta|preset=1k|item=Q188}} ## {{Etikéta|preset=1k|item=Q9129}} ## {{Etikéta|preset=1k|item=Q9288}} ## {{Etikéta|preset=1k|item=Q11051}} ## {{Etikéta|preset=1k|item=Q9176}} ## {{Etikéta|preset=1k|item=Q5287}} ## {{Etikéta|preset=1k|item=Q397}} ## {{Etikéta|preset=1k|item=Q9168}} ## {{Etikéta|preset=1k|item=Q5146}} ## {{Etikéta|preset=1k|item=Q7737}} ## {{Etikéta|preset=1k|item=Q11059}} ## {{Etikéta|preset=1k|item=Q1321}} ## {{Etikéta|preset=1k|item=Q7838}} ## {{Etikéta|preset=1k|item=Q256}} # {{Etikéta|preset=1k|item=Q8162}} # {{Etikéta|preset=1k|item=Q8091}} # {{Etikéta|preset=1k|item=Q8171}} ## {{Etikéta|preset=1k|item=Q8183}} ## {{Etikéta|preset=1k|item=Q8188}} # {{Etikéta|preset=1k|item=Q8192}} ## {{Etikéta|preset=1k|item=Q1828555}} ## {{Etikéta|preset=1k|item=Q8201}} ## {{Etikéta|preset=1k|item=Q8209}} ## {{Etikéta|preset=1k|item=Q8216}} ## {{Etikéta|preset=1k|item=Q8229}} # {{Etikéta|preset=1k|item=Q8236}} # {{Etikéta|preset=1k|item=Q7553}} # {{Etikéta|preset=1k|item=Q8242}} ## {{Etikéta|preset=1k|item=Q676}} ### ''{{Etikéta|preset=1k|item=Q8251}}'' ## {{Etikéta|preset=1k|item=Q8253}} ### ''{{Etikéta|preset=1k|item=Q8258}}'' ## {{Etikéta|preset=1k|item=Q8261}} ### ''{{Etikéta|preset=1k|item=Q8269}}'' ## {{Etikéta|preset=1k|item=Q482}} ### ''{{Etikéta|preset=1k|item=Q8272}}'' ### ''{{Etikéta|preset=1k|item=Q8275}}'' ### ''{{Etikéta|preset=1k|item=Q8279}}'' ## {{Etikéta|preset=1kat|item=Q9232453}} <!-- Religious texts --> ### ''{{Etikéta|preset=1k|item=Q1845}}'' ### ''{{Etikéta|preset=1k|item=Q8276}}'' }} == {{Etikéta|preset=1kat|item=Q8840652}} == <!-- Measurements --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q12453}} # {{Etikéta|preset=1k|item=Q12457}} === {{Etikéta|preset=1kat|item=Q5828462}} ({{lcfirst:{{Etikéta|preset=1kat|item=Q105592638}}}}; {{lcfirst:{{Etikéta|preset=1kat|item=Q8175902}}}}; {{lcfirst:{{Etikéta|preset=1kat|item=Q9648275}}}}) === <!-- Weight, volume and distance --> # {{Etikéta|preset=1k|item=Q11570}} # {{Etikéta|preset=1k|item=Q11582}} # {{Etikéta|preset=1k|item=Q11573}} === {{Etikéta|preset=1kat|item=Q4049213}} === <!-- Time --> # {{Etikéta|preset=1k|item=Q12132}} ## {{Etikéta|preset=1k|item=Q12138}} # {{Etikéta|preset=1k|item=Q376}} # {{Etikéta|preset=1k|item=Q11574}} # {{Etikéta|preset=1k|item=Q573}} # {{Etikéta|preset=1k|item=Q577}} # {{Etikéta|preset=1k|item=Q12143}} }} === {{Etikéta|preset=1kat|item=Q1458083}} === <!-- Science --> # {{Etikéta|preset=1k|item=Q336}} # {{Etikéta|preset=1k|item=Q7860}} === {{Etikéta|preset=1kat|item=Q6508}} === <!-- Astronomy --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q333}} # {{Etikéta|preset=1k|item=Q3863}} # {{Etikéta|preset=1k|item=Q323}} # {{Etikéta|preset=1k|item=Q589}} # {{Etikéta|preset=1k|item=Q3559}} # {{Etikéta|preset=1k|item=Q318}} ## {{Etikéta|preset=1k|item=Q321}} # {{Etikéta|preset=1k|item=Q405}} # {{Etikéta|preset=1k|item=Q634}} ## {{Etikéta|preset=1k|item=Q308}} ## {{Etikéta|preset=1k|item=Q313}} ## {{Etikéta|preset=1k|item=Q2}} ## {{Etikéta|preset=1k|item=Q111}} ## {{Etikéta|preset=1k|item=Q319}} ## {{Etikéta|preset=1k|item=Q193}} ## {{Etikéta|preset=1k|item=Q324}} ## {{Etikéta|preset=1k|item=Q332}} # {{Etikéta|preset=1k|item=Q544}} # {{Etikéta|preset=1k|item=Q5916}} # {{Etikéta|preset=1k|item=Q523}} ## {{Etikéta|preset=1k|item=Q525}} # {{Etikéta|preset=1k|item=Q1}} }} === {{Etikéta|preset=1kat|item=Q1457402}} === <!-- Biology --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q420}} # {{Etikéta|preset=1kat|item=Q6807119}} <!-- Organic compounds --> ## {{Etikéta|preset=1k|item=Q7430}} ## {{Etikéta|preset=1k|item=Q8047}} ## {{Etikéta|preset=1k|item=Q11364}} ## {{Etikéta|preset=1k|item=Q8054}} # {{Etikéta|preset=1k|item=Q441}} # {{Etikéta|preset=1k|item=Q4}} ## {{Etikéta|preset=1k|item=Q10737}} # {{Etikéta|preset=1k|item=Q7150}} ## {{Etikéta|preset=1k|item=Q11394}} # {{Etikéta|preset=1k|item=Q3}} # {{Etikéta|preset=1k|item=Q11398}} ## {{Etikéta|preset=1k|item=Q7432}} }} ==== {{Etikéta|preset=1kat|item=Q6226217}} ==== <!-- Biological processes --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q1057}} ## {{Etikéta|preset=1k|item=Q11978}} ## {{Etikéta|preset=1k|item=Q11982}} ## {{Etikéta|preset=1k|item=Q472287}} # {{Etikéta|preset=1k|item=Q1063}} # {{Etikéta|preset=1k|item=Q11990}} ## {{Etikéta|preset=1k|item=Q11995}} ## {{Etikéta|preset=1k|item=Q290}} }} ==== {{Etikéta|preset=1kat|item=Q5626060}} ==== <!-- Organisms --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q7239}} # {{Etikéta|preset=1k|item=Q729}} ## {{Etikéta|preset=1k|item=Q5185}} ## {{Etikéta|preset=1k|item=Q25326}} ## {{Etikéta|preset=1k|item=Q1360}} ### {{Etikéta|preset=1k|item=Q1390}} #### {{Etikéta|preset=1k|item=Q7386}} #### {{Etikéta|preset=1k|item=Q7391}} #### {{Etikéta|preset=1k|item=Q7367}} ### {{Etikéta|preset=1k|item=Q1357}} ## {{Etikéta|preset=1kat|item=Q8734609}} <!-- Chordates --> ### {{Etikéta|preset=1k|item=Q10908}} ### {{Etikéta|preset=1k|item=Q5113}} #### {{Etikéta|preset=1k|item=Q780}} #### {{Etikéta|preset=1k|item=Q10856}} ### {{Etikéta|preset=1k|item=Q152}} #### {{Etikéta|preset=1k|item=Q7372}} ### {{Etikéta|preset=1k|item=Q7377}} #### {{Etikéta|preset=1k|item=Q7375}} #### {{Etikéta|preset=1k|item=Q146}} #### {{Etikéta|preset=1k|item=Q830}} #### {{Etikéta|preset=1k|item=Q160}} #### {{Etikéta|preset=1k|item=Q144}} #### {{Etikéta|preset=1k|item=Q726}} #### {{Etikéta|preset=1k|item=Q7368}} #### {{Etikéta|preset=1k|item=Q10850}} #### {{Etikéta|preset=1k|item=Q787}} #### {{Etikéta|preset=1k|item=Q7380}} ##### {{Etikéta|preset=1k|item=Q5}} ### {{Etikéta|preset=1k|item=Q10811}} #### {{Etikéta|preset=1k|item=Q430}} #### {{Etikéta|preset=1k|item=Q2102}} # {{Etikéta|preset=1k|item=Q37868}} # {{Etikéta|preset=1k|item=Q10872}} # {{Etikéta|preset=1k|item=Q10876}} # {{Etikéta|preset=1k|item=Q764}} # {{Etikéta|preset=1k|item=Q756}} ## {{Etikéta|preset=1k|item=Q506}} ## {{Etikéta|preset=1k|item=Q1364}} ## {{Etikéta|preset=1k|item=Q10884}} # {{Etikéta|preset=1k|item=Q10892}} }} ==== {{Etikéta|preset=1kat|item=Q4095469}} ==== <!-- Anatomy --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q514}} # {{Etikéta|preset=1k|item=Q7868}} # {{Etikéta|preset=1k|item=Q11068}} ## {{Etikéta|preset=1k|item=Q7873}} ## {{Etikéta|preset=1k|item=Q1072}} # {{Etikéta|preset=1k|item=Q11078}} # {{Etikéta|preset=1k|item=Q9649}} ## {{Etikéta|preset=1k|item=Q11083}} ## {{Etikéta|preset=1k|item=Q11090}} ## {{Etikéta|preset=1k|item=Q9368}} # {{Etikéta|preset=1k|item=Q7365}} # {{Etikéta|preset=1k|item=Q9404}} ## {{Etikéta|preset=1k|item=Q1073}} ## {{Etikéta|preset=1k|item=Q9620}} ## {{Etikéta|preset=1k|item=Q11101}} ### {{Etikéta|preset=1k|item=Q7362}} ### {{Etikéta|preset=1k|item=Q7363}} ### {{Etikéta|preset=1k|item=Q7364}} ### {{Etikéta|preset=1k|item=Q124794}} # {{Etikéta|preset=1k|item=Q7895}} # {{Etikéta|preset=1k|item=Q7891}} # {{Etikéta|preset=1k|item=Q7881}} # {{Etikéta|preset=1k|item=Q1074}} }} === {{Etikéta|preset=1kat|item=Q7486603}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q4095812}}}} === <!-- Health and medicine --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q11190}} # {{Etikéta|preset=1k|item=Q12128}} # {{Etikéta|preset=1k|item=Q12136}} # {{Etikéta|preset=1k|item=Q12140}} ## {{Etikéta|preset=1k|item=Q12187}} # {{Etikéta|preset=1k|item=Q12147}} # {{Etikéta|preset=1k|item=Q1059}} # {{Etikéta|preset=1k|item=Q12171}} # {{Etikéta|preset=1k|item=Q12184}} # {{Etikéta|preset=1k|item=Q134808}} # {{Etikéta|preset=1k|item=Q808}} ==== {{Etikéta|preset=1kat|item=Q7215431}} ==== <!-- Diseases/disorders --> # {{Etikéta|preset=1k|item=Q12029}} ## {{Etikéta|preset=1k|item=Q153}} ## {{Etikéta|preset=1k|item=Q1566}} # {{Etikéta|preset=1k|item=Q11081}} # {{Etikéta|preset=1k|item=Q12078}} # {{Etikéta|preset=1k|item=Q199804}} # {{Etikéta|preset=1k|item=Q12125}} # {{Etikéta|preset=1k|item=Q12131}} ## {{Etikéta|preset=1k|item=Q10874}} ## {{Etikéta|preset=1k|item=Q12133}} # {{Etikéta|preset=1k|item=Q12135}} # {{Etikéta|preset=1k|item=Q41571}} # {{Etikéta|preset=1k|item=Q156103}} # {{Etikéta|preset=1k|item=Q86}} # {{Etikéta|preset=1k|item=Q12152}} # {{Etikéta|preset=1k|item=Q2840}} # {{Etikéta|preset=1k|item=Q12156}} # {{Etikéta|preset=1k|item=Q12167}} # {{Etikéta|preset=1k|item=Q12174}} # {{Etikéta|preset=1k|item=Q12192}} # {{Etikéta|preset=1k|item=Q12195}} # {{Etikéta|preset=1k|item=Q12198}} ## {{Etikéta|preset=1k|item=Q12199}} # {{Etikéta|preset=1k|item=Q12214}} # {{Etikéta|preset=1k|item=Q12202}} # {{Etikéta|preset=1k|item=Q12204}} # {{Etikéta|preset=1k|item=Q12206}} }} === {{Etikéta|preset=1kat|item=Q1457474}} === <!-- Chemistry --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q2329}} # {{Etikéta|preset=1k|item=Q11165}} # {{Etikéta|preset=1k|item=Q7094}} # {{Etikéta|preset=1k|item=Q11173}} ## {{Etikéta|preset=1k|item=Q11158}} ## {{Etikéta|preset=1k|item=Q11193}} ## {{Etikéta|preset=1k|item=Q12370}} # {{Etikéta|preset=1k|item=Q11344}} ## {{Etikéta|preset=1k|item=Q10693}} ## {{Etikéta|preset=1k|item=Q663}} ## {{Etikéta|preset=1k|item=Q623}} ## {{Etikéta|preset=1k|item=Q753}} ## {{Etikéta|preset=1k|item=Q897}} ## {{Etikéta|preset=1k|item=Q556}} ## {{Etikéta|preset=1k|item=Q677}} ## {{Etikéta|preset=1k|item=Q627}} ## {{Etikéta|preset=1k|item=Q629}} ## {{Etikéta|preset=1k|item=Q1090}} ## {{Etikéta|preset=1k|item=Q1096}} # {{Etikéta|preset=1k|item=Q11351}} ## {{Etikéta|preset=1k|item=Q156}} ## {{Etikéta|preset=1k|item=Q11358}} ## {{Etikéta|preset=1k|item=Q11367}} # {{Etikéta|preset=1k|item=Q11369}} # {{Etikéta|preset=1k|item=Q2346}} # {{Etikéta|preset=1k|item=Q11372}} }} === {{Etikéta|preset=1kat|item=Q1457551}} === <!-- Earth science --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q7937}} # {{Etikéta|preset=1k|item=Q81041}} # {{Etikéta|preset=1k|item=Q7939}} # {{Etikéta|preset=1k|item=Q7942}} # {{Etikéta|preset=1k|item=Q7944}} # {{Etikéta|preset=1k|item=Q1069}} ## {{Etikéta|preset=1k|item=Q7946}} ### {{Etikéta|preset=1k|item=Q5283}} ## {{Etikéta|preset=1k|item=Q7950}} ## {{Etikéta|preset=1k|item=Q8063}} # {{Etikéta|preset=1k|item=Q8065}} ## {{Etikéta|preset=1k|item=Q8068}} ## {{Etikéta|preset=1k|item=Q8070}} # {{Etikéta|preset=1k|item=Q8072}} # {{Etikéta|preset=1k|item=Q11663}} ## {{Etikéta|preset=1k|item=Q8074}} ## {{Etikéta|preset=1k|item=Q7925}} ## {{Etikéta|preset=1k|item=Q7561}} ## {{Etikéta|preset=1k|item=Q8081}} ## {{Etikéta|preset=1k|item=Q8092}} ## {{Etikéta|preset=1k|item=Q8094}} }} === {{Etikéta|preset=1kat|item=Q1457258}} === <!-- Physics --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q413}} # {{Etikéta|preset=1k|item=Q11376}} # {{Etikéta|preset=1k|item=Q9121}} # {{Etikéta|preset=1k|item=Q11379}} ## {{Etikéta|preset=1k|item=Q11382}} # {{Etikéta|preset=1k|item=Q12969754}} ## {{Etikéta|preset=1k|item=Q11388}} ## {{Etikéta|preset=1k|item=Q11391}} ## {{Etikéta|preset=1k|item=Q9128}} ### {{Etikéta|preset=1k|item=Q1075}} # {{Etikéta|preset=1k|item=Q11397}} # {{Etikéta|preset=1k|item=Q11402}} ## {{Etikéta|preset=1k|item=Q849919}} ### {{Etikéta|preset=1k|item=Q11408}} ## {{Etikéta|preset=1k|item=Q11412}} ## {{Etikéta|preset=1k|item=Q11415}} ## {{Etikéta|preset=1k|item=Q11418}} # {{Etikéta|preset=1k|item=Q11421}} # {{Etikéta|preset=1k|item=Q11423}} # {{Etikéta|preset=1k|item=Q11426}} ## {{Etikéta|preset=1k|item=Q11427}} # {{Etikéta|preset=1k|item=Q11429}} # {{Etikéta|preset=1k|item=Q11430}} ## {{Etikéta|preset=1k|item=Q11432}} ## {{Etikéta|preset=1k|item=Q11435}} ## {{Etikéta|preset=1k|item=Q10251}} ## {{Etikéta|preset=1k|item=Q11438}} # {{Etikéta|preset=1k|item=Q944}} # {{Etikéta|preset=1k|item=Q11448}} # {{Etikéta|preset=1k|item=Q11452}} # {{Etikéta|preset=1k|item=Q11455}} # {{Etikéta|preset=1k|item=Q11456}} # {{Etikéta|preset=1k|item=Q11461}} # {{Etikéta|preset=1k|item=Q11465}} ## {{Etikéta|preset=1k|item=Q2111}} # {{Etikéta|preset=1k|item=Q11466}} # {{Etikéta|preset=1k|item=Q11471}} # {{Etikéta|preset=1k|item=Q11473}} # {{Etikéta|preset=1k|item=Q11475}} }} === {{Etikéta|preset=1kat|item=Q4619}} === <!-- Mathematics --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q395}} # {{Etikéta|preset=1k|item=Q11205}} ## {{Etikéta|preset=1k|item=Q11197}} ## {{Etikéta|preset=1k|item=Q11563}} ## {{Etikéta|preset=1k|item=Q12479}} # {{Etikéta|preset=1k|item=Q3968}} ## {{Etikéta|preset=1k|item=Q11567}} ## {{Etikéta|preset=1k|item=Q11345}} ## {{Etikéta|preset=1k|item=Q82571}} # {{Etikéta|preset=1k|item=Q8087}} ## {{Etikéta|preset=1k|item=Q11352}} ## {{Etikéta|preset=1k|item=Q11500}} ## {{Etikéta|preset=1k|item=Q11210}} ## {{Etikéta|preset=1k|item=Q167}} ## {{Etikéta|preset=1k|item=Q11518}} ## {{Etikéta|preset=1k|item=Q12485}} ## {{Etikéta|preset=1k|item=Q8084}} # {{Etikéta|preset=1k|item=Q7754}} ## {{Etikéta|preset=1k|item=Q11214}} ## {{Etikéta|preset=1k|item=Q11216}} # {{Etikéta|preset=1kat|item=Q7066183}} <!-- Probability and statistics --> ## {{Etikéta|preset=1k|item=Q9492}} ## {{Etikéta|preset=1k|item=Q12483}} # {{Etikéta|preset=1kat|item=Q7217201}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7145042}}}} <!-- Logic and foundations --> ## {{Etikéta|preset=1k|item=Q11348}} ## {{Etikéta|preset=1k|item=Q205}} ## {{Etikéta|preset=1k|item=Q11538}} ## {{Etikéta|preset=1k|item=Q12482}} }} == {{Etikéta|preset=1kat|item=Q5611149}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q5658978}}}} == <!-- Food and agriculture --> === {{Etikéta|preset=1kat|item=Q5658978}} === <!-- Agriculture --> # {{Etikéta|preset=1k|item=Q11451}} ## {{Etikéta|preset=1k|item=Q11453}} ## {{Etikéta|preset=1k|item=Q11464}} ## {{Etikéta|preset=1k|item=Q11395}} === {{Etikéta|preset=1kat|item=Q5611149}} === <!-- Food --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q2095}} # {{Etikéta|preset=1k|item=Q7802}} # {{Etikéta|preset=1k|item=Q12117}} ## {{Etikéta|preset=1k|item=Q11577}} ## {{Etikéta|preset=1k|item=Q11575}} ## {{Etikéta|preset=1k|item=Q5090}} ## {{Etikéta|preset=1k|item=Q332062}} ## {{Etikéta|preset=1k|item=Q15645384}} # {{Etikéta|preset=1k|item=Q10943}} # {{Etikéta|preset=1k|item=Q195}} # {{Etikéta|preset=1k|item=Q10987}} # {{Etikéta|preset=1k|item=Q89}} # {{Etikéta|preset=1k|item=Q503}} # {{Etikéta|preset=1k|item=Q81513}} # {{Etikéta|preset=1k|item=Q10978}} # {{Etikéta|preset=1k|item=Q11009}} # {{Etikéta|preset=1k|item=Q11006}} # {{Etikéta|preset=1k|item=Q10990}} # {{Etikéta|preset=1k|item=Q11002}} # {{Etikéta|preset=1k|item=Q42527}} # {{Etikéta|preset=1k|item=Q11254}} # {{Etikéta|preset=1k|item=Q11004}} ## {{Etikéta|preset=1k|item=Q10998}} }} === {{Etikéta|preset=1kat|item=Q6543743}} === <!-- Beverages --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q44}} # {{Etikéta|preset=1k|item=Q8486}} # {{Etikéta|preset=1k|item=Q8492}} # {{Etikéta|preset=1k|item=Q8495}} # {{Etikéta|preset=1k|item=Q6097}} # {{Etikéta|preset=1k|item=Q283}} # {{Etikéta|preset=1k|item=Q282}} }} == {{Etikéta|preset=1kat|item=Q4884546}} == <!-- Technology --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q11016}} # {{Etikéta|preset=1k|item=Q7108}} # {{Etikéta|preset=1k|item=Q11460}} ## {{Etikéta|preset=1k|item=Q11457}} # {{Etikéta|preset=1k|item=Q11023}} ## {{Etikéta|preset=1k|item=Q11019}} ## {{Etikéta|preset=1k|item=Q11012}} ## {{Etikéta|preset=1k|item=Q11022}} ## {{Etikéta|preset=1k|item=Q446}} # {{Etikéta|preset=1k|item=Q11467}} # {{Etikéta|preset=1k|item=Q11468}} === {{Etikéta|preset=1kat|item=Q1458498}} === <!-- Communication --> # {{Etikéta|preset=1k|item=Q11024}} # {{Etikéta|preset=1k|item=Q11028}} ## {{Etikéta|preset=1k|item=Q5292}} # {{Etikéta|preset=1k|item=Q11030}} ## {{Etikéta|preset=1k|item=Q11032}} # {{Etikéta|preset=1k|item=Q7075}} ## {{Etikéta|preset=1k|item=Q571}} # {{Etikéta|preset=1k|item=Q11034}} # {{Etikéta|preset=1k|item=Q11035}} === {{Etikéta|preset=1kat|item=Q5460952}} === <!-- Electronics --> # {{Etikéta|preset=1k|item=Q11650}} ## {{Etikéta|preset=1k|item=Q11651}} ## {{Etikéta|preset=1k|item=Q11652}} # {{Etikéta|preset=1kat|item=Q7493787}} <!-- Components --> ## {{Etikéta|preset=1k|item=Q5322}} ## {{Etikéta|preset=1k|item=Q5325}} ## {{Etikéta|preset=1k|item=Q5339}} ## {{Etikéta|preset=1k|item=Q11656}} ## {{Etikéta|preset=1k|item=Q5321}} ## {{Etikéta|preset=1k|item=Q11658}} ==== {{Etikéta|preset=1kat|item=Q6517860}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q4049595}}}} ==== <!-- Computer science and Internet --> # {{Etikéta|preset=1k|item=Q68}} ## {{Etikéta|preset=1k|item=Q4439}} ## {{Etikéta|preset=1k|item=Q5300}} # {{Etikéta|preset=1k|item=Q11660}} # {{Etikéta|preset=1k|item=Q11661}} ## {{Etikéta|preset=1k|item=Q8366}} # {{Etikéta|preset=1k|item=Q75}} ## {{Etikéta|preset=1k|item=Q9158}} ## {{Etikéta|preset=1k|item=Q466}} # {{Etikéta|preset=1k|item=Q9135}} # {{Etikéta|preset=1k|item=Q9143}} # {{Etikéta|preset=1k|item=Q7397}} === {{Etikéta|preset=1kat|item=Q8413436}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7214212}}}} === <!-- Energy and fuels --> # {{Etikéta|preset=1k|item=Q12705}} # {{Etikéta|preset=1k|item=Q12725}} ## {{Etikéta|preset=1k|item=Q12739}} # {{Etikéta|preset=1k|item=Q12748}} # {{Etikéta|preset=1kat|item=Q8414840}} <!-- Engine --> ## {{Etikéta|preset=1k|item=Q12757}} ## {{Etikéta|preset=1k|item=Q12760}} # {{Etikéta|preset=1k|item=Q3196}} === {{Etikéta|preset=1kat|item=Q4057308}} === <!-- Materials --> # {{Etikéta|preset=1k|item=Q11469}} # {{Etikéta|preset=1k|item=Q11472}} # {{Etikéta|preset=1k|item=Q11474}} # {{Etikéta|preset=1k|item=Q287}} === {{Etikéta|preset=1kat|item=Q7216108}} === <!-- Transportation --> # {{Etikéta|preset=1k|item=Q7590}} # {{Etikéta|preset=1k|item=Q11436}} # {{Etikéta|preset=1k|item=Q11442}} # {{Etikéta|preset=1k|item=Q1420}} # {{Etikéta|preset=1k|item=Q2811}} # {{Etikéta|preset=1k|item=Q11446}} # {{Etikéta|preset=1k|item=Q870}} === {{Etikéta|preset=1kat|item=Q7166566}} === <!-- Weapons --> # {{Etikéta|preset=1k|item=Q728}} ## {{Etikéta|preset=1k|item=Q12791}} ## {{Etikéta|preset=1k|item=Q12796}} ### {{Etikéta|preset=1k|item=Q12800}} ## {{Etikéta|preset=1k|item=Q12802}} # {{Etikéta|preset=1k|item=Q12876}} # {{Etikéta|preset=1k|item=Q12870}} ## {{Etikéta|preset=1k|item=Q12861}} }} == {{Etikéta|preset=1kat|item=Q4104783}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7045033}}}} == <!-- Arts and recreation --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q11042}} # {{Etikéta|preset=1k|item=Q735}} ## {{Etikéta|preset=1k|item=Q1004}} ## {{Etikéta|preset=1k|item=Q11629}} ## {{Etikéta|preset=1k|item=Q11633}} ## {{Etikéta|preset=1k|item=Q11634}} ## {{Etikéta|preset=1k|item=Q11642}} # {{Etikéta|preset=1k|item=Q11639}} # {{Etikéta|preset=1k|item=Q12684}} # {{Etikéta|preset=1k|item=Q11635}} # {{Etikéta|preset=1k|item=Q12681}} === {{Etikéta|preset=1kat|item=Q6204331}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6135934}}}} === <!-- Architecture and civil engineering --> # {{Etikéta|preset=1k|item=Q12271}} # {{Etikéta|preset=1k|item=Q12277}} # {{Etikéta|preset=1k|item=Q12280}} # {{Etikéta|preset=1k|item=Q12284}} # {{Etikéta|preset=1k|item=Q12323}} # {{Etikéta|preset=1k|item=Q12493}} # {{Etikéta|preset=1k|item=Q3947}} # {{Etikéta|preset=1kat|item=Q1458429}} <!-- Buildings and structures --> ## {{Etikéta|preset=1k|item=Q43473}} ## {{Etikéta|preset=1k|item=Q10285}} ## {{Etikéta|preset=1k|item=Q12501}} ## {{Etikéta|preset=1k|item=Q243}} ## {{Etikéta|preset=1k|item=Q9188}} ## {{Etikéta|preset=1k|item=Q12506}} ## {{Etikéta|preset=1k|item=Q10288}} ## {{Etikéta|preset=1k|item=Q13217298}} ## {{Etikéta|preset=1k|item=Q12512}} ## {{Etikéta|preset=1k|item=Q9202}} ## {{Etikéta|preset=1k|item=Q9141}} ## {{Etikéta|preset=1k|item=Q12514}} # {{Etikéta|preset=1k|item=Q12516}} # {{Etikéta|preset=1k|item=Q12518}} === {{Etikéta|preset=1kat|item=Q1458269}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q7153700}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7018418}}}} === <!-- Film, radio and television --> # {{Etikéta|preset=1k|item=Q11424}} ## {{Etikéta|preset=1k|item=Q11425}} # {{Etikéta|preset=1k|item=Q872}} # {{Etikéta|preset=1k|item=Q289}} === {{Etikéta|preset=1kat|item=Q8255}} === <!-- Music --> # {{Etikéta|preset=1k|item=Q638}} # {{Etikéta|preset=1k|item=Q7366}} # {{Etikéta|preset=1kat|item=Q6134246}} <!-- Music genres --> ## {{Etikéta|preset=1k|item=Q9759}} ## {{Etikéta|preset=1k|item=Q9730}} ### {{Etikéta|preset=1k|item=Q1344}} ### {{Etikéta|preset=1k|item=Q9734}} ## {{Etikéta|preset=1k|item=Q9778}} ## {{Etikéta|preset=1k|item=Q9764}} ## {{Etikéta|preset=1k|item=Q11401}} ## {{Etikéta|preset=1k|item=Q8341}} ## {{Etikéta|preset=1k|item=Q9794}} ## {{Etikéta|preset=1k|item=Q11399}} ## {{Etikéta|preset=1k|item=Q11403}} # {{Etikéta|preset=1kat|item=Q7212463}}<!-- Musical instruments --> ## {{Etikéta|preset=1k|item=Q11404}} ## {{Etikéta|preset=1k|item=Q11405}} ## {{Etikéta|preset=1k|item=Q6607}} ## {{Etikéta|preset=1k|item=Q5994}} ## {{Etikéta|preset=1k|item=Q8338}} ## {{Etikéta|preset=1k|item=Q8355}} === {{Etikéta|preset=1kat|item=Q7045033}} === <!-- Recreation --> # {{Etikéta|preset=1k|item=Q11410}} ## {{Etikéta|preset=1k|item=Q11411}} ## {{Etikéta|preset=1k|item=Q718}} ## {{Etikéta|preset=1k|item=Q11413}} ## {{Etikéta|preset=1k|item=Q7889}} # {{Etikéta|preset=1k|item=Q11416}} # {{Etikéta|preset=1k|item=Q11417}} ## {{Etikéta|preset=1k|item=Q11420}} # {{Etikéta|preset=1k|item=Q5389}} # {{Etikéta|preset=1k|item=Q349}} ## {{Etikéta|preset=1k|item=Q542}} ## {{Etikéta|preset=1kat|item=Q7379346}} <!-- Ball games --> ### {{Etikéta|preset=1k|item=Q5369}} ### {{Etikéta|preset=1k|item=Q5372}} ### {{Etikéta|preset=1k|item=Q5375}} ### {{Etikéta|preset=1k|item=Q2736}} ### {{Etikéta|preset=1k|item=Q5377}} ### {{Etikéta|preset=1k|item=Q5378}} ### {{Etikéta|preset=1k|item=Q847}} ## {{Etikéta|preset=1k|item=Q6388}} # {{Etikéta|preset=1k|item=Q11422}} }} == {{Etikéta|preset=1kat|item=Q1457595}} == <!-- History --> # {{Etikéta|preset=1k|item=Q309}} ==== {{Etikéta|preset=1kat|item=Q9084370}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6499653}}}} ==== <!-- Prehistoric and ancient history --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q11768}} # {{Etikéta|preset=1k|item=Q11772}} # {{Etikéta|preset=1k|item=Q11761}} # {{Etikéta|preset=1k|item=Q11774}} # {{Etikéta|preset=1k|item=Q7209}} # {{Etikéta|preset=1k|item=Q11764}} # {{Etikéta|preset=1k|item=Q28567}} # {{Etikéta|preset=1k|item=Q11767}} # {{Etikéta|preset=1k|item=Q11756}} # {{Etikéta|preset=1k|item=Q2277}} # {{Etikéta|preset=1k|item=Q35355}} # {{Etikéta|preset=1k|item=Q11759}} # {{Etikéta|preset=1k|item=Q9683}} }} ==== {{Etikéta|preset=1kat|item=Q7461740}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q8651924}}}} ==== <!-- Medieval and Renaissance periods --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q12536}} # {{Etikéta|preset=1k|item=Q12542}} # {{Etikéta|preset=1k|item=Q12544}} # {{Etikéta|preset=1k|item=Q12546}} # {{Etikéta|preset=1k|item=Q12548}} # {{Etikéta|preset=1k|item=Q28573}} # {{Etikéta|preset=1k|item=Q184536}} # {{Etikéta|preset=1k|item=Q12554}} # {{Etikéta|preset=1k|item=Q9903}} # {{Etikéta|preset=1k|item=Q12557}} # {{Etikéta|preset=1k|item=Q12560}} # {{Etikéta|preset=1k|item=Q4692}} # {{Etikéta|preset=1k|item=Q12567}} }} ==== {{Etikéta|preset=1kat|item=Q7473369}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6115583}}}} ==== <!-- Early modern and modern periods --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q12539}} # {{Etikéta|preset=1k|item=Q8676}} # {{Etikéta|preset=1k|item=Q8669}} # {{Etikéta|preset=1k|item=Q11409}} # {{Etikéta|preset=1k|item=Q8680}} # {{Etikéta|preset=1k|item=Q8683}} # {{Etikéta|preset=1k|item=Q6534}} # {{Etikéta|preset=1k|item=Q8698}} # {{Etikéta|preset=1k|item=Q2763}} # {{Etikéta|preset=1k|item=Q2269}} # {{Etikéta|preset=1k|item=Q7318}} # {{Etikéta|preset=1k|item=Q8707}} <!-- most significant event in Japanese history --> # {{Etikéta|preset=1k|item=Q12562}} # {{Etikéta|preset=1k|item=Q8729}} # {{Etikéta|preset=1k|item=Q8733}} # {{Etikéta|preset=1k|item=Q15180}} # {{Etikéta|preset=1k|item=Q8740}} # {{Etikéta|preset=1k|item=Q361}} # {{Etikéta|preset=1k|item=Q362}} }} == {{Etikéta|preset=1kat|item=Q1457673}} == <!-- Geography --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q1071}} # {{Etikéta|preset=1k|item=Q515}} # {{Etikéta|preset=1k|item=Q5107}} # {{Etikéta|preset=1k|item=Q4421}} # {{Etikéta|preset=1k|item=Q8502}} # {{Etikéta|preset=1k|item=Q8514}} # {{Etikéta|preset=1k|item=Q934}} # {{Etikéta|preset=1k|item=Q9430}} # {{Etikéta|preset=1k|item=Q4022}} # {{Etikéta|preset=1k|item=Q165}} # {{Etikéta|preset=1k|item=Q933}} === {{Etikéta|preset=1kat|item=Q2945667}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6581383}}}} === <!-- Continents and major regions --> # {{Etikéta|preset=1k|item=Q15}} # {{Etikéta|preset=1k|item=Q51}} # {{Etikéta|preset=1k|item=Q48}} # {{Etikéta|preset=1k|item=Q46}} # {{Etikéta|preset=1k|item=Q7204}} # {{Etikéta|preset=1k|item=Q49}} # {{Etikéta|preset=1k|item=Q55643}} # {{Etikéta|preset=1k|item=Q18}} }} === {{Etikéta|preset=1kat|item=Q4026570}} === <!-- Countries --> {{Kòlumnë|em=16|1= Eventually, there should be articles on most or all of the countries listed at [[:w:en:List of sovereign states|List of countries]]. However, for the smaller Wikipedias, some of the more high-priority countries to have articles on are: ==== {{Etikéta|preset=1kat|item=Q6581695}} ==== <!-- Africa --> # {{Etikéta|preset=1k|item=Q262}} # {{Etikéta|preset=1k|item=Q974}} # {{Etikéta|preset=1k|item=Q79}} # {{Etikéta|preset=1k|item=Q115}} # {{Etikéta|preset=1k|item=Q1033}} # {{Etikéta|preset=1k|item=Q258}} # {{Etikéta|preset=1k|item=Q1049}} # {{Etikéta|preset=1k|item=Q924}} ==== {{Etikéta|preset=1kat|item=Q8055354}} ==== <!-- Asia --> # {{Etikéta|preset=1k|item=Q889}} # {{Etikéta|preset=1k|item=Q902}} # {{Etikéta|preset=1k|item=Q148}} # {{Etikéta|preset=1k|item=Q668}} # {{Etikéta|preset=1k|item=Q252}} # {{Etikéta|preset=1k|item=Q794}} # {{Etikéta|preset=1k|item=Q796}} # {{Etikéta|preset=1k|item=Q801}} # {{Etikéta|preset=1k|item=Q17}} # {{Etikéta|preset=1k|item=Q843}} # {{Etikéta|preset=1k|item=Q928}} # {{Etikéta|preset=1k|item=Q851}} # {{Etikéta|preset=1k|item=Q884}} # {{Etikéta|preset=1k|item=Q869}} # {{Etikéta|preset=1k|item=Q43}} # {{Etikéta|preset=1k|item=Q881}} ==== {{Etikéta|preset=1kat|item=Q4587626}} ==== <!-- Europe --> # {{Etikéta|preset=1k|item=Q40}} # {{Etikéta|preset=1k|item=Q142}} # {{Etikéta|preset=1k|item=Q183}} # {{Etikéta|preset=1k|item=Q38}} # {{Etikéta|preset=1k|item=Q55}} # {{Etikéta|preset=1k|item=Q36}} # {{Etikéta|preset=1k|item=Q45}} # {{Etikéta|preset=1k|item=Q159}} # {{Etikéta|preset=1k|item=Q29}} # {{Etikéta|preset=1k|item=Q39}} # {{Etikéta|preset=1k|item=Q212}} # {{Etikéta|preset=1k|item=Q145}} # {{Etikéta|preset=1k|item=Q237}} ==== {{Etikéta|preset=1kat|item=Q7131138}} ==== <!-- North America --> # {{Etikéta|preset=1k|item=Q16}} # {{Etikéta|preset=1k|item=Q241}} # {{Etikéta|preset=1k|item=Q96}} # {{Etikéta|preset=1k|item=Q30}} ==== {{Etikéta|preset=1kat|item=Q7185534}} ==== <!-- South America --> # {{Etikéta|preset=1k|item=Q414}} # {{Etikéta|preset=1k|item=Q155}} # {{Etikéta|preset=1k|item=Q739}} ==== {{Etikéta|preset=1kat|item=Q7130988}} ==== <!-- Oceania --> # {{Etikéta|preset=1k|item=Q408}} }} === {{Etikéta|preset=1kat|item=Q9126476}} === <!-- Cities --> {{Kòlumnë|em=16|1= ==== {{Etikéta|preset=1kat|item=Q7230788}} ==== <!-- Africa --> # {{Etikéta|preset=1k|item=Q85}} # {{Etikéta|preset=1k|item=Q5465}} # {{Etikéta|preset=1k|item=Q3838}} # {{Etikéta|preset=1k|item=Q8673}} # {{Etikéta|preset=1k|item=Q3870}} ==== {{Etikéta|preset=1kat|item=Q7229671}} ==== <!-- Asia --> # {{Etikéta|preset=1k|item=Q1530}} # {{Etikéta|preset=1k|item=Q1861}} # {{Etikéta|preset=1k|item=Q956}} # {{Etikéta|preset=1k|item=Q3766}} # {{Etikéta|preset=1k|item=Q1353}} # {{Etikéta|preset=1k|item=Q1354}} # {{Etikéta|preset=1k|item=Q612}} # {{Etikéta|preset=1k|item=Q8646}} # {{Etikéta|preset=1k|item=Q3630}} # {{Etikéta|preset=1k|item=Q1218}} # {{Etikéta|preset=1k|item=Q8660}} # {{Etikéta|preset=1k|item=Q1348}} # {{Etikéta|preset=1k|item=Q5806}} # {{Etikéta|preset=1k|item=Q1156}} # {{Etikéta|preset=1k|item=Q8684}} # {{Etikéta|preset=1k|item=Q8686}} # {{Etikéta|preset=1k|item=Q334}} # {{Etikéta|preset=1k|item=Q3616}} # {{Etikéta|preset=1k|item=Q1490}} ==== {{Etikéta|preset=1kat|item=Q4992948}} ==== <!-- Europe --> # {{Etikéta|preset=1k|item=Q727}} # {{Etikéta|preset=1k|item=Q1524}} # {{Etikéta|preset=1k|item=Q64}} # {{Etikéta|preset=1k|item=Q239}} # {{Etikéta|preset=1k|item=Q406}} # {{Etikéta|preset=1k|item=Q84}} # {{Etikéta|preset=1k|item=Q2807}} # {{Etikéta|preset=1k|item=Q649}} # {{Etikéta|preset=1k|item=Q90}} # {{Etikéta|preset=1k|item=Q220}} # {{Etikéta|preset=1k|item=Q656}} # {{Etikéta|preset=1k|item=Q1741}} ==== {{Etikéta|preset=1kat|item=Q7150911}} ==== <!-- North America --> # {{Etikéta|preset=1k|item=Q65}} # {{Etikéta|preset=1k|item=Q1489}} # {{Etikéta|preset=1k|item=Q60}} # {{Etikéta|preset=1k|item=Q61}} ==== {{Etikéta|preset=1kat|item=Q7228572}} ==== <!-- South America --> # {{Etikéta|preset=1k|item=Q2841}} # {{Etikéta|preset=1k|item=Q1486}} # {{Etikéta|preset=1k|item=Q8678}} # {{Etikéta|preset=1k|item=Q174}} ==== {{Etikéta|preset=1kat|item=Q9055844}} ==== <!-- Oceania --> # {{Etikéta|preset=1k|item=Q3130}} }} === {{Etikéta|preset=1kat|item=Q5933994}} === <!-- Bodies of water --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q3783}} # {{Etikéta|preset=1k|item=Q788}} # {{Etikéta|preset=1k|item=Q97}} # {{Etikéta|preset=1k|item=Q545}} # {{Etikéta|preset=1k|item=Q166}} # {{Etikéta|preset=1k|item=Q1247}} # {{Etikéta|preset=1k|item=Q5484}} # {{Etikéta|preset=1k|item=Q3503}} # {{Etikéta|preset=1k|item=Q1653}} # {{Etikéta|preset=1k|item=Q5089}} # {{Etikéta|preset=1k|item=Q7343}} # {{Etikéta|preset=1k|item=Q7347}} # {{Etikéta|preset=1k|item=Q1239}} # {{Etikéta|preset=1k|item=Q7348}} # {{Etikéta|preset=1k|item=Q5513}} # {{Etikéta|preset=1k|item=Q5505}} # {{Etikéta|preset=1k|item=Q4918}} # {{Etikéta|preset=1k|item=Q1497}} # {{Etikéta|preset=1k|item=Q3542}} # {{Etikéta|preset=1k|item=Q3392}} # {{Etikéta|preset=1k|item=Q1693}} # {{Etikéta|preset=1k|item=Q98}} # {{Etikéta|preset=1k|item=Q7350}} # {{Etikéta|preset=1k|item=Q584}} # {{Etikéta|preset=1k|item=Q37660}} # {{Etikéta|preset=1k|item=Q899}} # {{Etikéta|preset=1k|item=Q7354}} # {{Etikéta|preset=1k|item=Q626}} # {{Etikéta|preset=1k|item=Q5413}} # {{Etikéta|preset=1k|item=Q7355}} }} === {{Etikéta|preset=1kat|item=Q5741923}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7217334}}}} === <!-- Mountains and deserts --> # {{Etikéta|preset=1k|item=Q1286}} # {{Etikéta|preset=1k|item=Q5456}} # {{Etikéta|preset=1k|item=Q5451}} ## {{Etikéta|preset=1k|item=Q513}} # {{Etikéta|preset=1k|item=Q7296}} # {{Etikéta|preset=1k|item=Q5463}} # {{Etikéta|preset=1k|item=Q6583}} [[Kategòrëjô:Metastarnë Wikipedie]] 8pkqbxjd9c5qy7vv5rlya0ybo53tmea 216526 216494 2026-10-05T10:28:11Z Terrus38 14026 216526 wikitext text/x-wiki Wiki:1000 – tësąc nôwôżniészich artiklów: == {{Etikéta|preset=1kat|item=Q5640343}} == <!-- Biography --> === {{Etikéta|preset=1kat|item=Q4266974}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6460970}}}} === <!-- Philosophers and social scientists --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q868}} # {{Etikéta|preset=1k|item=Q7197}} # {{Etikéta|preset=1k|item=Q9045}} # {{Etikéta|preset=1k|item=Q4604}} # {{Etikéta|preset=1k|item=Q9191}} # {{Etikéta|preset=1k|item=Q9215}} # {{Etikéta|preset=1k|item=Q9235}} # {{Etikéta|preset=1k|item=Q48301}} # {{Etikéta|preset=1k|item=Q9294}} # {{Etikéta|preset=1k|item=Q9312}} # {{Etikéta|preset=1k|item=Q9317}} # {{Etikéta|preset=1k|item=Q9333}} # {{Etikéta|preset=1k|item=Q9353}} # {{Etikéta|preset=1k|item=Q1399}} # {{Etikéta|preset=1k|item=Q9061}} # {{Etikéta|preset=1k|item=Q9358}} # {{Etikéta|preset=1k|item=Q859}} # {{Etikéta|preset=1k|item=Q6527}} # {{Etikéta|preset=1k|item=Q9364}} # {{Etikéta|preset=1k|item=Q9372}} # {{Etikéta|preset=1k|item=Q9381}} # {{Etikéta|preset=1k|item=Q913}} # {{Etikéta|preset=1k|item=Q9068}} # {{Etikéta|preset=1k|item=Q9387}} # {{Etikéta|preset=1k|item=Q9391}} # {{Etikéta|preset=1k|item=Q9397}} }} === {{Etikéta|preset=1kat|item=Q7582881}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6997334}}}} === <!--Religious figures and theologians--> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q9181}} # {{Etikéta|preset=1k|item=Q9438}} # {{Etikéta|preset=1k|item=Q8018}} # {{Etikéta|preset=1k|item=Q9441}} # {{Etikéta|preset=1k|item=Q9546}} # {{Etikéta|preset=1k|item=Q302}} # {{Etikéta|preset=1k|item=Q9554}} # {{Etikéta|preset=1k|item=Q9077}} # {{Etikéta|preset=1k|item=Q9458}} # {{Etikéta|preset=1k|item=Q171195}} }} === {{Etikéta|preset=1kat|item=Q5753390}} === <!-- Politicians --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q8597}} # {{Etikéta|preset=1k|item=Q8409}} # {{Etikéta|preset=1k|item=Q8589}}<!-- Great Indian monarch of antiquity; spread Buddhism --> # {{Etikéta|preset=1k|item=Q5152}} # {{Etikéta|preset=1k|item=Q1405}} # {{Etikéta|preset=1k|item=Q8442}} # {{Etikéta|preset=1k|item=Q8605}} # {{Etikéta|preset=1k|item=Q1048}} # {{Etikéta|preset=1k|item=Q3044}} # {{Etikéta|preset=1k|item=Q8016}} # {{Etikéta|preset=1k|item=Q8413}} # {{Etikéta|preset=1k|item=Q8423}} # {{Etikéta|preset=1k|item=Q2042}} # {{Etikéta|preset=1k|item=Q7207}} # {{Etikéta|preset=1k|item=Q1001}} # {{Etikéta|preset=1k|item=Q720}} # {{Etikéta|preset=1k|item=Q5809}} # {{Etikéta|preset=1k|item=Q352}} # {{Etikéta|preset=1k|item=Q7226}} # {{Etikéta|preset=1k|item=Q8027}} # {{Etikéta|preset=1k|item=Q1394}} # {{Etikéta|preset=1k|item=Q91}} # {{Etikéta|preset=1k|item=Q7742}} # {{Etikéta|preset=1k|item=Q7231}} # {{Etikéta|preset=1k|item=Q517}} # {{Etikéta|preset=1k|item=Q8023}} # {{Etikéta|preset=1k|item=Q5816}} # {{Etikéta|preset=1k|item=Q1047}} # {{Etikéta|preset=1k|item=Q8620}} # {{Etikéta|preset=1k|item=Q8479}} # {{Etikéta|preset=1k|item=Q7192}}<!-- Created first Chinese state and dynasty --> # {{Etikéta|preset=1k|item=Q8007}} # {{Etikéta|preset=1k|item=Q8581}} # {{Etikéta|preset=1k|item=Q855}} # {{Etikéta|preset=1k|item=Q8474}}<!-- Greatest Ottoman sultan --> # {{Etikéta|preset=1k|item=Q8573}} # {{Etikéta|preset=1k|item=Q8462}} # {{Etikéta|preset=1k|item=Q8467}}<!-- Conquered Persia, Syria, Palestine, and Egypt for Islam --> # {{Etikéta|preset=1k|item=Q23}} }} === {{Etikéta|preset=1kat|item=Q6528885}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q7043111}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7217485}}}} === <!-- Inventors, scientists and mathematicians --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q8739}} # {{Etikéta|preset=1k|item=Q8011}} # {{Etikéta|preset=1k|item=Q80}} # {{Etikéta|preset=1k|item=Q202943}} # {{Etikéta|preset=1k|item=Q619}} # {{Etikéta|preset=1k|item=Q7186}} # {{Etikéta|preset=1k|item=Q1035}} # {{Etikéta|preset=1k|item=Q8743}} # {{Etikéta|preset=1k|item=Q937}} # {{Etikéta|preset=1k|item=Q8747}} # {{Etikéta|preset=1k|item=Q7604}} # {{Etikéta|preset=1k|item=Q8750}} # {{Etikéta|preset=1k|item=Q8753}} # {{Etikéta|preset=1k|item=Q8768}} # {{Etikéta|preset=1k|item=Q8778}} # {{Etikéta|preset=1k|item=Q307}} # {{Etikéta|preset=1k|item=Q6722}} # {{Etikéta|preset=1k|item=Q8958}} # {{Etikéta|preset=1k|item=Q41585}} # {{Etikéta|preset=1k|item=Q8962}} # {{Etikéta|preset=1k|item=Q8963}} # {{Etikéta|preset=1k|item=Q9038}} # {{Etikéta|preset=1k|item=Q9047}} # {{Etikéta|preset=1k|item=Q1043}} # {{Etikéta|preset=1k|item=Q9095}} # {{Etikéta|preset=1k|item=Q9106}} # {{Etikéta|preset=1k|item=Q935}} # {{Etikéta|preset=1k|item=Q529}} # {{Etikéta|preset=1k|item=Q9021}} # {{Etikéta|preset=1k|item=Q9123}} # {{Etikéta|preset=1k|item=Q9130}} # {{Etikéta|preset=1k|item=Q9036}} # {{Etikéta|preset=1k|item=Q7251}} # {{Etikéta|preset=1k|item=Q9041}} }} === {{Etikéta|preset=1kat|item=Q6442246}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6875304}}}} === <!-- Artists and architects --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q4724}} # {{Etikéta|preset=1k|item=Q5577}} # {{Etikéta|preset=1k|item=Q5580}} # {{Etikéta|preset=1k|item=Q5582}} # {{Etikéta|preset=1k|item=Q5432}} # {{Etikéta|preset=1k|item=Q5586}} # {{Etikéta|preset=1k|item=Q5588}} # {{Etikéta|preset=1k|item=Q762}} # {{Etikéta|preset=1k|item=Q5589}} # {{Etikéta|preset=1k|item=Q5592}} # {{Etikéta|preset=1k|item=Q5593}} # {{Etikéta|preset=1k|item=Q5597}} # {{Etikéta|preset=1k|item=Q5598}} # {{Etikéta|preset=1k|item=Q5599}} # {{Etikéta|preset=1k|item=Q5600}} # {{Etikéta|preset=1k|item=Q297}} # {{Etikéta|preset=1k|item=Q5603}} # {{Etikéta|preset=1k|item=Q5604}} }} === {{Etikéta|preset=1kat|item=Q8008937}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6606401}}}} === <!-- Composers and musicians --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q1779}} # {{Etikéta|preset=1k|item=Q1339}} # {{Etikéta|preset=1k|item=Q1299}} # {{Etikéta|preset=1k|item=Q255}} # {{Etikéta|preset=1k|item=Q7294}} # {{Etikéta|preset=1k|item=Q1268}} # {{Etikéta|preset=1k|item=Q7298}} # {{Etikéta|preset=1k|item=Q7302}} # {{Etikéta|preset=1k|item=Q7349}} # {{Etikéta|preset=1k|item=Q2831}} # {{Etikéta|preset=1k|item=Q1110560}} # {{Etikéta|preset=1k|item=Q7304}} # {{Etikéta|preset=1k|item=Q254}} # {{Etikéta|preset=1k|item=Q179277}} # {{Etikéta|preset=1k|item=Q7311}} # {{Etikéta|preset=1k|item=Q7312}} # {{Etikéta|preset=1k|item=Q7314}} # {{Etikéta|preset=1k|item=Q7315}} # {{Etikéta|preset=1k|item=Q7317}} # {{Etikéta|preset=1k|item=Q1340}} # {{Etikéta|preset=1k|item=Q1511}} }} === {{Etikéta|preset=1kat|item=Q3919997}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q3920019}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q3919792}}}} === <!-- Film directors, screenwriters and actors --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q7546}} # {{Etikéta|preset=1k|item=Q4605}} # {{Etikéta|preset=1k|item=Q882}} # {{Etikéta|preset=1k|item=Q4612}} # {{Etikéta|preset=1k|item=Q8704}} # {{Etikéta|preset=1k|item=Q8003}} # {{Etikéta|preset=1k|item=Q7371}} # {{Etikéta|preset=1k|item=Q7374}} # {{Etikéta|preset=1k|item=Q2001}} # {{Etikéta|preset=1k|item=Q8006}} # {{Etikéta|preset=1k|item=Q4616}} # {{Etikéta|preset=1k|item=Q8873}} }} === {{Etikéta|preset=1kat|item=Q5849863}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q9702405}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6487149}}}} === <!-- Authors, playwrights and poets --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q5670}} # {{Etikéta|preset=1k|item=Q5673}} # {{Etikéta|preset=1k|item=Q36322}} # {{Etikéta|preset=1k|item=Q5676}} # {{Etikéta|preset=1k|item=Q909}} # {{Etikéta|preset=1k|item=Q5679}} # {{Etikéta|preset=1k|item=Q5682}} # {{Etikéta|preset=1k|item=Q5683}} # {{Etikéta|preset=1k|item=Q5685}} # {{Etikéta|preset=1k|item=Q1067}} # {{Etikéta|preset=1k|item=Q5686}} # {{Etikéta|preset=1k|item=Q991}} # {{Etikéta|preset=1k|item=Q5878}} # {{Etikéta|preset=1k|item=Q5879}} # {{Etikéta|preset=1k|item=Q6240}} # {{Etikéta|preset=1k|item=Q6691}} # {{Etikéta|preset=1k|item=Q535}} # {{Etikéta|preset=1k|item=Q6882}} # {{Etikéta|preset=1k|item=Q905}} # {{Etikéta|preset=1k|item=Q7011}} # {{Etikéta|preset=1k|item=Q7071}} # {{Etikéta|preset=1k|item=Q7176}} # {{Etikéta|preset=1k|item=Q687}} # {{Etikéta|preset=1k|item=Q7198}} # {{Etikéta|preset=1k|item=Q7199}} # {{Etikéta|preset=1k|item=Q7200}} # {{Etikéta|preset=1k|item=Q692}} # {{Etikéta|preset=1k|item=Q7235}} # {{Etikéta|preset=1k|item=Q7241}} # {{Etikéta|preset=1k|item=Q7243}} # {{Etikéta|preset=1k|item=Q7245}} # {{Etikéta|preset=1k|item=Q1398}} }} === {{Etikéta|preset=1kat|item=Q7043334}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7074786}}}} === <!-- Explorers and travellers --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q926}} # {{Etikéta|preset=1k|item=Q1615}} # {{Etikéta|preset=1k|item=Q7321}} # {{Etikéta|preset=1k|item=Q7322}} # {{Etikéta|preset=1k|item=Q7324}} # {{Etikéta|preset=1k|item=Q7326}} # {{Etikéta|preset=1k|item=Q7327}} # {{Etikéta|preset=1k|item=Q7328}} # {{Etikéta|preset=1k|item=Q7331}} # {{Etikéta|preset=1k|item=Q1496}} # {{Etikéta|preset=1k|item=Q6101}} # {{Etikéta|preset=1k|item=Q7333}} }} == {{Etikéta|preset=1kat|item=Q1983674}} == <!-- Philosophy --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q7066}} # {{Etikéta|preset=1k|item=Q7242}} # {{Etikéta|preset=1k|item=Q9581}} # {{Etikéta|preset=1k|item=Q9453}} # {{Etikéta|preset=1k|item=Q9465}} # {{Etikéta|preset=1k|item=Q9471}} # {{Etikéta|preset=1k|item=Q9476}} # {{Etikéta|preset=1k|item=Q9081}} # {{Etikéta|preset=1k|item=Q8078}} # {{Etikéta|preset=1k|item=Q7081}} # {{Etikéta|preset=1k|item=Q5891}} # {{Etikéta|preset=1k|item=Q9510}} # {{Etikéta|preset=1k|item=Q7949}} }} == {{Etikéta|preset=1kat|item=Q1457903}} == <!-- Religion --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q9149}} # {{Etikéta|preset=1k|item=Q190}} ## {{Etikéta|preset=1k|item=Q9159}} ## {{Etikéta|preset=1k|item=Q9163}} # {{Etikéta|preset=1k|item=Q9134}} # {{Etikéta|preset=1k|item=Q128593}} # {{Etikéta|preset=1k|item=Q9174}} # {{Etikéta|preset=1k|item=Q9165}} # {{Etikéta|preset=1kat|item=Q5881075}} <!-- Specific religions --> ## {{Etikéta|preset=1k|item=Q748}} ## {{Etikéta|preset=1k|item=Q5043}} ### {{Etikéta|preset=1k|item=Q9592}} ### {{Etikéta|preset=1k|item=Q23540}} ## {{Etikéta|preset=1k|item=Q9089}} ## {{Etikéta|preset=1k|item=Q432}} ### {{Etikéta|preset=1k|item=Q9585}} ### {{Etikéta|preset=1k|item=Q483654}} ## {{Etikéta|preset=1k|item=Q9232}} ## {{Etikéta|preset=1k|item=Q9268}} ## {{Etikéta|preset=1k|item=Q812767}} ## {{Etikéta|preset=1k|item=Q9316}} ## {{Etikéta|preset=1k|item=Q9598}} ## {{Etikéta|preset=1k|item=Q9601}} }} == {{Etikéta|preset=1kat|item=Q6577596}} == <!-- Social sciences --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q8425}} # {{Etikéta|preset=1k|item=Q8432}} # {{Etikéta|preset=1k|item=Q8434}} === {{Etikéta|preset=1kat|item=Q1983760}} === <!-- Psychology --> # {{Etikéta|preset=1k|item=Q9332}} # {{Etikéta|preset=1k|item=Q9415}} # {{Etikéta|preset=1k|item=Q316}} # {{Etikéta|preset=1k|item=Q450}} # {{Etikéta|preset=1k|item=Q9418}} # {{Etikéta|preset=1k|item=Q9420}} === {{Etikéta|preset=1kat|item=Q7216461}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7237794}}}} === <!-- Family and relationships --> # {{Etikéta|preset=1k|item=Q8436}} # {{Etikéta|preset=1k|item=Q7569}} # {{Etikéta|preset=1k|item=Q8441}} # {{Etikéta|preset=1k|item=Q8445}} # {{Etikéta|preset=1k|item=Q467}} === {{Etikéta|preset=1kat|item=Q4103183}} === <!-- Politics --> # {{Etikéta|preset=1k|item=Q7163}} # {{Etikéta|preset=1k|item=Q7167}} # {{Etikéta|preset=1k|item=Q1889}} # {{Etikéta|preset=1k|item=Q7188}} ## {{Etikéta|preset=1k|item=Q7174}} ## {{Etikéta|preset=1k|item=Q317}} ## {{Etikéta|preset=1k|item=Q7269}} ## {{Etikéta|preset=1k|item=Q7270}} # {{Etikéta|preset=1k|item=Q7257}} ## {{Etikéta|preset=1k|item=Q6199}} ## {{Etikéta|preset=1k|item=Q6206}} ## {{Etikéta|preset=1k|item=Q6186}} ## {{Etikéta|preset=1k|item=Q7169}} ## {{Etikéta|preset=1k|item=Q6223}} ## {{Etikéta|preset=1k|item=Q6216}} ## {{Etikéta|preset=1k|item=Q7264}} ## {{Etikéta|preset=1k|item=Q6235}} ## {{Etikéta|preset=1k|item=Q7272}} # {{Etikéta|preset=1k|item=Q7260}} # {{Etikéta|preset=1k|item=Q7275}} # {{Etikéta|preset=1k|item=Q7278}} # {{Etikéta|preset=1k|item=Q7281}} === {{Etikéta|preset=1kat|item=Q6353120}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q4026633}}}} === <!-- Business and economics --> # {{Etikéta|preset=1k|item=Q8134}} # {{Etikéta|preset=1k|item=Q8137}} # {{Etikéta|preset=1k|item=Q8142}} ## {{Etikéta|preset=1k|item=Q4916}} ## {{Etikéta|preset=1k|item=Q4917}} # {{Etikéta|preset=1k|item=Q8148}} # {{Etikéta|preset=1k|item=Q1368}} # {{Etikéta|preset=1k|item=Q8161}} # {{Etikéta|preset=1k|item=Q601401}} === {{Etikéta|preset=1kat|item=Q4026563}} === <!-- Law --> # {{Etikéta|preset=1k|item=Q7748}} # {{Etikéta|preset=1k|item=Q7755}} === {{Etikéta|preset=1kat|item=Q6528085}} === <!-- International organizations --> # {{Etikéta|preset=1k|item=Q7159}} # {{Etikéta|preset=1k|item=Q7172}} # {{Etikéta|preset=1k|item=Q7768}} # {{Etikéta|preset=1k|item=Q7785}} # {{Etikéta|preset=1k|item=Q458}} # {{Etikéta|preset=1k|item=Q7178}} # {{Etikéta|preset=1k|item=Q7184}} # {{Etikéta|preset=1k|item=Q7191}} # {{Etikéta|preset=1k|item=Q7795}} # {{Etikéta|preset=1k|item=Q1065}} ## {{Etikéta|preset=1k|item=Q7801}} ## {{Etikéta|preset=1k|item=Q7804}} ## {{Etikéta|preset=1k|item=Q7809}} ## {{Etikéta|preset=1k|item=Q7817}} # {{Etikéta|preset=1k|item=Q7164}} # {{Etikéta|preset=1k|item=Q7825}} === {{Etikéta|preset=1kat|item=Q8394144}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q5850187}}}} === <!-- War and military --> # {{Etikéta|preset=1k|item=Q8473}} # {{Etikéta|preset=1k|item=Q454}} # {{Etikéta|preset=1k|item=Q7283}} # {{Etikéta|preset=1k|item=Q198}} ## {{Etikéta|preset=1k|item=Q8465}} === {{Etikéta|preset=1kat|item=Q7090668}} === <!-- Social issues --> # {{Etikéta|preset=1k|item=Q8452}} # {{Etikéta|preset=1k|item=Q8454}} # {{Etikéta|preset=1k|item=Q169207}} ## {{Etikéta|preset=1k|item=Q8461}} # {{Etikéta|preset=1k|item=Q7252}} # {{Etikéta|preset=1k|item=Q7181}} # {{Etikéta|preset=1k|item=Q8458}} # {{Etikéta|preset=1k|item=Q10294}} # {{Etikéta|preset=1k|item=Q8463}} }} == {{Etikéta|preset=1kat|item=Q1458484}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q8259}}}} == <!-- Language and literature --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q315}} # {{Etikéta|preset=1kat|item=Q4960490}} ## {{Etikéta|preset=1k|item=Q13955}} <!-- Technically, not a single language. --> ## {{Etikéta|preset=1k|item=Q9610}} ## {{Etikéta|preset=1k|item=Q7850}} <!-- Technically, not a single language. --> ## {{Etikéta|preset=1k|item=Q1860}} ## {{Etikéta|preset=1k|item=Q150}} ## {{Etikéta|preset=1k|item=Q188}} ## {{Etikéta|preset=1k|item=Q9129}} ## {{Etikéta|preset=1k|item=Q9288}} ## {{Etikéta|preset=1k|item=Q11051}} ## {{Etikéta|preset=1k|item=Q9176}} ## {{Etikéta|preset=1k|item=Q5287}} ## {{Etikéta|preset=1k|item=Q397}} ## {{Etikéta|preset=1k|item=Q9168}} ## {{Etikéta|preset=1k|item=Q5146}} ## {{Etikéta|preset=1k|item=Q7737}} ## {{Etikéta|preset=1k|item=Q11059}} ## {{Etikéta|preset=1k|item=Q1321}} ## {{Etikéta|preset=1k|item=Q7838}} ## {{Etikéta|preset=1k|item=Q256}} # {{Etikéta|preset=1k|item=Q8162}} # {{Etikéta|preset=1k|item=Q8091}} # {{Etikéta|preset=1k|item=Q8171}} ## {{Etikéta|preset=1k|item=Q8183}} ## {{Etikéta|preset=1k|item=Q8188}} # {{Etikéta|preset=1k|item=Q8192}} ## {{Etikéta|preset=1k|item=Q1828555}} ## {{Etikéta|preset=1k|item=Q8201}} ## {{Etikéta|preset=1k|item=Q8209}} ## {{Etikéta|preset=1k|item=Q8216}} ## {{Etikéta|preset=1k|item=Q8229}} # {{Etikéta|preset=1k|item=Q8236}} # {{Etikéta|preset=1k|item=Q7553}} # {{Etikéta|preset=1k|item=Q8242}} ## {{Etikéta|preset=1k|item=Q676}} ### ''{{Etikéta|preset=1k|item=Q8251}}'' ## {{Etikéta|preset=1k|item=Q8253}} ### ''{{Etikéta|preset=1k|item=Q8258}}'' ## {{Etikéta|preset=1k|item=Q8261}} ### ''{{Etikéta|preset=1k|item=Q8269}}'' ## {{Etikéta|preset=1k|item=Q482}} ### ''{{Etikéta|preset=1k|item=Q8272}}'' ### ''{{Etikéta|preset=1k|item=Q8275}}'' ### ''{{Etikéta|preset=1k|item=Q8279}}'' ## {{Etikéta|preset=1kat|item=Q9232453}} <!-- Religious texts --> ### ''{{Etikéta|preset=1k|item=Q1845}}'' ### ''{{Etikéta|preset=1k|item=Q8276}}'' }} == {{Etikéta|preset=1kat|item=Q8840652}} == <!-- Measurements --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q12453}} # {{Etikéta|preset=1k|item=Q12457}} === {{Etikéta|preset=1kat|item=Q5828462}} ({{lcfirst:{{Etikéta|preset=1kat|item=Q105592638}}}}; {{lcfirst:{{Etikéta|preset=1kat|item=Q8175902}}}}; {{lcfirst:{{Etikéta|preset=1kat|item=Q9648275}}}}) === <!-- Weight, volume and distance --> # {{Etikéta|preset=1k|item=Q11570}} # {{Etikéta|preset=1k|item=Q11582}} # {{Etikéta|preset=1k|item=Q11573}} === {{Etikéta|preset=1kat|item=Q4049213}} === <!-- Time --> # {{Etikéta|preset=1k|item=Q12132}} ## {{Etikéta|preset=1k|item=Q12138}} # {{Etikéta|preset=1k|item=Q376}} # {{Etikéta|preset=1k|item=Q11574}} # {{Etikéta|preset=1k|item=Q573}} # {{Etikéta|preset=1k|item=Q577}} # {{Etikéta|preset=1k|item=Q12143}} }} === {{Etikéta|preset=1kat|item=Q1458083}} === <!-- Science --> # {{Etikéta|preset=1k|item=Q336}} # {{Etikéta|preset=1k|item=Q7860}} === {{Etikéta|preset=1kat|item=Q6508}} === <!-- Astronomy --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q333}} # {{Etikéta|preset=1k|item=Q3863}} # {{Etikéta|preset=1k|item=Q323}} # {{Etikéta|preset=1k|item=Q589}} # {{Etikéta|preset=1k|item=Q3559}} # {{Etikéta|preset=1k|item=Q318}} ## {{Etikéta|preset=1k|item=Q321}} # {{Etikéta|preset=1k|item=Q405}} # {{Etikéta|preset=1k|item=Q634}} ## {{Etikéta|preset=1k|item=Q308}} ## {{Etikéta|preset=1k|item=Q313}} ## {{Etikéta|preset=1k|item=Q2}} ## {{Etikéta|preset=1k|item=Q111}} ## {{Etikéta|preset=1k|item=Q319}} ## {{Etikéta|preset=1k|item=Q193}} ## {{Etikéta|preset=1k|item=Q324}} ## {{Etikéta|preset=1k|item=Q332}} # {{Etikéta|preset=1k|item=Q544}} # {{Etikéta|preset=1k|item=Q5916}} # {{Etikéta|preset=1k|item=Q523}} ## {{Etikéta|preset=1k|item=Q525}} # {{Etikéta|preset=1k|item=Q1}} }} === {{Etikéta|preset=1kat|item=Q1457402}} === <!-- Biology --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q420}} # {{Etikéta|preset=1kat|item=Q6807119}} <!-- Organic compounds --> ## {{Etikéta|preset=1k|item=Q7430}} ## {{Etikéta|preset=1k|item=Q8047}} ## {{Etikéta|preset=1k|item=Q11364}} ## {{Etikéta|preset=1k|item=Q8054}} # {{Etikéta|preset=1k|item=Q441}} # {{Etikéta|preset=1k|item=Q4}} ## {{Etikéta|preset=1k|item=Q10737}} # {{Etikéta|preset=1k|item=Q7150}} ## {{Etikéta|preset=1k|item=Q11394}} # {{Etikéta|preset=1k|item=Q3}} # {{Etikéta|preset=1k|item=Q11398}} ## {{Etikéta|preset=1k|item=Q7432}} }} ==== {{Etikéta|preset=1kat|item=Q6226217}} ==== <!-- Biological processes --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q1057}} ## {{Etikéta|preset=1k|item=Q11978}} ## {{Etikéta|preset=1k|item=Q11982}} ## {{Etikéta|preset=1k|item=Q472287}} # {{Etikéta|preset=1k|item=Q1063}} # {{Etikéta|preset=1k|item=Q11990}} ## {{Etikéta|preset=1k|item=Q11995}} ## {{Etikéta|preset=1k|item=Q290}} }} ==== {{Etikéta|preset=1kat|item=Q5626060}} ==== <!-- Organisms --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q7239}} # {{Etikéta|preset=1k|item=Q729}} ## {{Etikéta|preset=1k|item=Q5185}} ## {{Etikéta|preset=1k|item=Q25326}} ## {{Etikéta|preset=1k|item=Q1360}} ### {{Etikéta|preset=1k|item=Q1390}} #### {{Etikéta|preset=1k|item=Q7386}} #### {{Etikéta|preset=1k|item=Q7391}} #### {{Etikéta|preset=1k|item=Q7367}} ### {{Etikéta|preset=1k|item=Q1357}} ## {{Etikéta|preset=1kat|item=Q8734609}} <!-- Chordates --> ### {{Etikéta|preset=1k|item=Q10908}} ### {{Etikéta|preset=1k|item=Q5113}} #### {{Etikéta|preset=1k|item=Q780}} #### {{Etikéta|preset=1k|item=Q10856}} ### {{Etikéta|preset=1k|item=Q152}} #### {{Etikéta|preset=1k|item=Q7372}} ### {{Etikéta|preset=1k|item=Q7377}} #### {{Etikéta|preset=1k|item=Q7375}} #### {{Etikéta|preset=1k|item=Q146}} #### {{Etikéta|preset=1k|item=Q830}} #### {{Etikéta|preset=1k|item=Q160}} #### {{Etikéta|preset=1k|item=Q144}} #### {{Etikéta|preset=1k|item=Q726}} #### {{Etikéta|preset=1k|item=Q7368}} #### {{Etikéta|preset=1k|item=Q10850}} #### {{Etikéta|preset=1k|item=Q787}} #### {{Etikéta|preset=1k|item=Q7380}} ##### {{Etikéta|preset=1k|item=Q5}} ### {{Etikéta|preset=1k|item=Q10811}} #### {{Etikéta|preset=1k|item=Q430}} #### {{Etikéta|preset=1k|item=Q2102}} # {{Etikéta|preset=1k|item=Q37868}} # {{Etikéta|preset=1k|item=Q10872}} # {{Etikéta|preset=1k|item=Q10876}} # {{Etikéta|preset=1k|item=Q764}} # {{Etikéta|preset=1k|item=Q756}} ## {{Etikéta|preset=1k|item=Q506}} ## {{Etikéta|preset=1k|item=Q1364}} ## {{Etikéta|preset=1k|item=Q10884}} # {{Etikéta|preset=1k|item=Q10892}} }} ==== {{Etikéta|preset=1kat|item=Q4095469}} ==== <!-- Anatomy --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q514}} # {{Etikéta|preset=1k|item=Q7868}} # {{Etikéta|preset=1k|item=Q11068}} ## {{Etikéta|preset=1k|item=Q7873}} ## {{Etikéta|preset=1k|item=Q1072}} # {{Etikéta|preset=1k|item=Q11078}} # {{Etikéta|preset=1k|item=Q9649}} ## {{Etikéta|preset=1k|item=Q11083}} ## {{Etikéta|preset=1k|item=Q11090}} ## {{Etikéta|preset=1k|item=Q9368}} # {{Etikéta|preset=1k|item=Q7365}} # {{Etikéta|preset=1k|item=Q9404}} ## {{Etikéta|preset=1k|item=Q1073}} ## {{Etikéta|preset=1k|item=Q9620}} ## {{Etikéta|preset=1k|item=Q11101}} ### {{Etikéta|preset=1k|item=Q7362}} ### {{Etikéta|preset=1k|item=Q7363}} ### {{Etikéta|preset=1k|item=Q7364}} ### {{Etikéta|preset=1k|item=Q124794}} # {{Etikéta|preset=1k|item=Q7895}} # {{Etikéta|preset=1k|item=Q7891}} # {{Etikéta|preset=1k|item=Q7881}} # {{Etikéta|preset=1k|item=Q1074}} }} === {{Etikéta|preset=1kat|item=Q7486603}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q4095812}}}} === <!-- Health and medicine --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q11190}} # {{Etikéta|preset=1k|item=Q12128}} # {{Etikéta|preset=1k|item=Q12136}} # {{Etikéta|preset=1k|item=Q12140}} ## {{Etikéta|preset=1k|item=Q12187}} # {{Etikéta|preset=1k|item=Q12147}} # {{Etikéta|preset=1k|item=Q1059}} # {{Etikéta|preset=1k|item=Q12171}} # {{Etikéta|preset=1k|item=Q12184}} # {{Etikéta|preset=1k|item=Q134808}} # {{Etikéta|preset=1k|item=Q808}} ==== {{Etikéta|preset=1kat|item=Q7215431}} ==== <!-- Diseases/disorders --> # {{Etikéta|preset=1k|item=Q12029}} ## {{Etikéta|preset=1k|item=Q153}} ## {{Etikéta|preset=1k|item=Q1566}} # {{Etikéta|preset=1k|item=Q11081}} # {{Etikéta|preset=1k|item=Q12078}} # {{Etikéta|preset=1k|item=Q199804}} # {{Etikéta|preset=1k|item=Q12125}} # {{Etikéta|preset=1k|item=Q12131}} ## {{Etikéta|preset=1k|item=Q10874}} ## {{Etikéta|preset=1k|item=Q12133}} # {{Etikéta|preset=1k|item=Q12135}} # {{Etikéta|preset=1k|item=Q41571}} # {{Etikéta|preset=1k|item=Q156103}} # {{Etikéta|preset=1k|item=Q86}} # {{Etikéta|preset=1k|item=Q12152}} # {{Etikéta|preset=1k|item=Q2840}} # {{Etikéta|preset=1k|item=Q12156}} # {{Etikéta|preset=1k|item=Q12167}} # {{Etikéta|preset=1k|item=Q12174}} # {{Etikéta|preset=1k|item=Q12192}} # {{Etikéta|preset=1k|item=Q12195}} # {{Etikéta|preset=1k|item=Q12198}} ## {{Etikéta|preset=1k|item=Q12199}} # {{Etikéta|preset=1k|item=Q12214}} # {{Etikéta|preset=1k|item=Q12202}} # {{Etikéta|preset=1k|item=Q12204}} # {{Etikéta|preset=1k|item=Q12206}} }} === {{Etikéta|preset=1kat|item=Q1457474}} === <!-- Chemistry --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q2329}} # {{Etikéta|preset=1k|item=Q11165}} # {{Etikéta|preset=1k|item=Q7094}} # {{Etikéta|preset=1k|item=Q11173}} ## {{Etikéta|preset=1k|item=Q11158}} ## {{Etikéta|preset=1k|item=Q11193}} ## {{Etikéta|preset=1k|item=Q12370}} # {{Etikéta|preset=1k|item=Q11344}} ## {{Etikéta|preset=1k|item=Q10693}} ## {{Etikéta|preset=1k|item=Q663}} ## {{Etikéta|preset=1k|item=Q623}} ## {{Etikéta|preset=1k|item=Q753}} ## {{Etikéta|preset=1k|item=Q897}} ## {{Etikéta|preset=1k|item=Q556}} ## {{Etikéta|preset=1k|item=Q677}} ## {{Etikéta|preset=1k|item=Q627}} ## {{Etikéta|preset=1k|item=Q629}} ## {{Etikéta|preset=1k|item=Q1090}} ## {{Etikéta|preset=1k|item=Q1096}} # {{Etikéta|preset=1k|item=Q11351}} ## {{Etikéta|preset=1k|item=Q156}} ## {{Etikéta|preset=1k|item=Q11358}} ## {{Etikéta|preset=1k|item=Q11367}} # {{Etikéta|preset=1k|item=Q11369}} # {{Etikéta|preset=1k|item=Q2346}} # {{Etikéta|preset=1k|item=Q11372}} }} === {{Etikéta|preset=1kat|item=Q1457551}} === <!-- Earth science --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q7937}} # {{Etikéta|preset=1k|item=Q81041}} # {{Etikéta|preset=1k|item=Q7939}} # {{Etikéta|preset=1k|item=Q7942}} # {{Etikéta|preset=1k|item=Q7944}} # {{Etikéta|preset=1k|item=Q1069}} ## {{Etikéta|preset=1k|item=Q7946}} ### {{Etikéta|preset=1k|item=Q5283}} ## {{Etikéta|preset=1k|item=Q7950}} ## {{Etikéta|preset=1k|item=Q8063}} # {{Etikéta|preset=1k|item=Q8065}} ## {{Etikéta|preset=1k|item=Q8068}} ## {{Etikéta|preset=1k|item=Q8070}} # {{Etikéta|preset=1k|item=Q8072}} # {{Etikéta|preset=1k|item=Q11663}} ## {{Etikéta|preset=1k|item=Q8074}} ## {{Etikéta|preset=1k|item=Q7925}} ## {{Etikéta|preset=1k|item=Q7561}} ## {{Etikéta|preset=1k|item=Q8081}} ## {{Etikéta|preset=1k|item=Q8092}} ## {{Etikéta|preset=1k|item=Q8094}} }} === {{Etikéta|preset=1kat|item=Q1457258}} === <!-- Physics --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q413}} # {{Etikéta|preset=1k|item=Q11376}} # {{Etikéta|preset=1k|item=Q9121}} # {{Etikéta|preset=1k|item=Q11379}} ## {{Etikéta|preset=1k|item=Q11382}} # {{Etikéta|preset=1k|item=Q12969754}} ## {{Etikéta|preset=1k|item=Q11388}} ## {{Etikéta|preset=1k|item=Q11391}} ## {{Etikéta|preset=1k|item=Q9128}} ### {{Etikéta|preset=1k|item=Q1075}} # {{Etikéta|preset=1k|item=Q11397}} # {{Etikéta|preset=1k|item=Q11402}} ## {{Etikéta|preset=1k|item=Q849919}} ### {{Etikéta|preset=1k|item=Q11408}} ## {{Etikéta|preset=1k|item=Q11412}} ## {{Etikéta|preset=1k|item=Q11415}} ## {{Etikéta|preset=1k|item=Q11418}} # {{Etikéta|preset=1k|item=Q11421}} # {{Etikéta|preset=1k|item=Q11423}} # {{Etikéta|preset=1k|item=Q11426}} ## {{Etikéta|preset=1k|item=Q11427}} # {{Etikéta|preset=1k|item=Q11429}} # {{Etikéta|preset=1k|item=Q11430}} ## {{Etikéta|preset=1k|item=Q11432}} ## {{Etikéta|preset=1k|item=Q11435}} ## {{Etikéta|preset=1k|item=Q10251}} ## {{Etikéta|preset=1k|item=Q11438}} # {{Etikéta|preset=1k|item=Q944}} # {{Etikéta|preset=1k|item=Q11448}} # {{Etikéta|preset=1k|item=Q11452}} # {{Etikéta|preset=1k|item=Q11455}} # {{Etikéta|preset=1k|item=Q11456}} # {{Etikéta|preset=1k|item=Q11461}} # {{Etikéta|preset=1k|item=Q11465}} ## {{Etikéta|preset=1k|item=Q2111}} # {{Etikéta|preset=1k|item=Q11466}} # {{Etikéta|preset=1k|item=Q11471}} # {{Etikéta|preset=1k|item=Q11473}} # {{Etikéta|preset=1k|item=Q11475}} }} === {{Etikéta|preset=1kat|item=Q4619}} === <!-- Mathematics --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q395}} # {{Etikéta|preset=1k|item=Q11205}} ## {{Etikéta|preset=1k|item=Q11197}} ## {{Etikéta|preset=1k|item=Q11563}} ## {{Etikéta|preset=1k|item=Q12479}} # {{Etikéta|preset=1k|item=Q3968}} ## {{Etikéta|preset=1k|item=Q11567}} ## {{Etikéta|preset=1k|item=Q11345}} ## {{Etikéta|preset=1k|item=Q82571}} # {{Etikéta|preset=1k|item=Q8087}} ## {{Etikéta|preset=1k|item=Q11352}} ## {{Etikéta|preset=1k|item=Q11500}} ## {{Etikéta|preset=1k|item=Q11210}} ## {{Etikéta|preset=1k|item=Q167}} ## {{Etikéta|preset=1k|item=Q11518}} ## {{Etikéta|preset=1k|item=Q12485}} ## {{Etikéta|preset=1k|item=Q8084}} # {{Etikéta|preset=1k|item=Q7754}} ## {{Etikéta|preset=1k|item=Q11214}} ## {{Etikéta|preset=1k|item=Q11216}} # {{Etikéta|preset=1kat|item=Q7066183}} <!-- Probability and statistics --> ## {{Etikéta|preset=1k|item=Q9492}} ## {{Etikéta|preset=1k|item=Q12483}} # {{Etikéta|preset=1kat|item=Q7217201}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7145042}}}} <!-- Logic and foundations --> ## {{Etikéta|preset=1k|item=Q11348}} ## {{Etikéta|preset=1k|item=Q205}} ## {{Etikéta|preset=1k|item=Q11538}} ## {{Etikéta|preset=1k|item=Q12482}} }} == {{Etikéta|preset=1kat|item=Q5611149}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q5658978}}}} == <!-- Food and agriculture --> === {{Etikéta|preset=1kat|item=Q5658978}} === <!-- Agriculture --> # {{Etikéta|preset=1k|item=Q11451}} ## {{Etikéta|preset=1k|item=Q11453}} ## {{Etikéta|preset=1k|item=Q11464}} ## {{Etikéta|preset=1k|item=Q11395}} === {{Etikéta|preset=1kat|item=Q5611149}} === <!-- Food --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q2095}} # {{Etikéta|preset=1k|item=Q7802}} # {{Etikéta|preset=1k|item=Q12117}} ## {{Etikéta|preset=1k|item=Q11577}} ## {{Etikéta|preset=1k|item=Q11575}} ## {{Etikéta|preset=1k|item=Q5090}} ## {{Etikéta|preset=1k|item=Q332062}} ## {{Etikéta|preset=1k|item=Q15645384}} # {{Etikéta|preset=1k|item=Q10943}} # {{Etikéta|preset=1k|item=Q195}} # {{Etikéta|preset=1k|item=Q10987}} # {{Etikéta|preset=1k|item=Q89}} # {{Etikéta|preset=1k|item=Q503}} # {{Etikéta|preset=1k|item=Q81513}} # {{Etikéta|preset=1k|item=Q10978}} # {{Etikéta|preset=1k|item=Q11009}} # {{Etikéta|preset=1k|item=Q11006}} # {{Etikéta|preset=1k|item=Q10990}} # {{Etikéta|preset=1k|item=Q11002}} # {{Etikéta|preset=1k|item=Q42527}} # {{Etikéta|preset=1k|item=Q11254}} # {{Etikéta|preset=1k|item=Q11004}} ## {{Etikéta|preset=1k|item=Q10998}} }} === {{Etikéta|preset=1kat|item=Q6543743}} === <!-- Beverages --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q44}} # {{Etikéta|preset=1k|item=Q8486}} # {{Etikéta|preset=1k|item=Q8492}} # {{Etikéta|preset=1k|item=Q8495}} # {{Etikéta|preset=1k|item=Q6097}} # {{Etikéta|preset=1k|item=Q283}} # {{Etikéta|preset=1k|item=Q282}} }} == {{Etikéta|preset=1kat|item=Q4884546}} == <!-- Technology --> {{Kòlumnë|number=2|1= # {{Etikéta|preset=1k|item=Q11016}} # {{Etikéta|preset=1k|item=Q7108}} # {{Etikéta|preset=1k|item=Q11460}} ## {{Etikéta|preset=1k|item=Q11457}} # {{Etikéta|preset=1k|item=Q11023}} ## {{Etikéta|preset=1k|item=Q11019}} ## {{Etikéta|preset=1k|item=Q11012}} ## {{Etikéta|preset=1k|item=Q11022}} ## {{Etikéta|preset=1k|item=Q446}} # {{Etikéta|preset=1k|item=Q11467}} # {{Etikéta|preset=1k|item=Q11468}} === {{Etikéta|preset=1kat|item=Q1458498}} === <!-- Communication --> # {{Etikéta|preset=1k|item=Q11024}} # {{Etikéta|preset=1k|item=Q11028}} ## {{Etikéta|preset=1k|item=Q5292}} # {{Etikéta|preset=1k|item=Q11030}} ## {{Etikéta|preset=1k|item=Q11032}} # {{Etikéta|preset=1k|item=Q7075}} ## {{Etikéta|preset=1k|item=Q571}} # {{Etikéta|preset=1k|item=Q11034}} # {{Etikéta|preset=1k|item=Q11035}} === {{Etikéta|preset=1kat|item=Q5460952}} === <!-- Electronics --> # {{Etikéta|preset=1k|item=Q11650}} ## {{Etikéta|preset=1k|item=Q11651}} ## {{Etikéta|preset=1k|item=Q11652}} # {{Etikéta|preset=1kat|item=Q7493787}} <!-- Components --> ## {{Etikéta|preset=1k|item=Q5322}} ## {{Etikéta|preset=1k|item=Q5325}} ## {{Etikéta|preset=1k|item=Q5339}} ## {{Etikéta|preset=1k|item=Q11656}} ## {{Etikéta|preset=1k|item=Q5321}} ## {{Etikéta|preset=1k|item=Q11658}} ==== {{Etikéta|preset=1kat|item=Q6517860}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q4049595}}}} ==== <!-- Computer science and Internet --> # {{Etikéta|preset=1k|item=Q68}} ## {{Etikéta|preset=1k|item=Q4439}} ## {{Etikéta|preset=1k|item=Q5300}} # {{Etikéta|preset=1k|item=Q11660}} # {{Etikéta|preset=1k|item=Q11661}} ## {{Etikéta|preset=1k|item=Q8366}} # {{Etikéta|preset=1k|item=Q75}} ## {{Etikéta|preset=1k|item=Q9158}} ## {{Etikéta|preset=1k|item=Q466}} # {{Etikéta|preset=1k|item=Q9135}} # {{Etikéta|preset=1k|item=Q9143}} # {{Etikéta|preset=1k|item=Q7397}} === {{Etikéta|preset=1kat|item=Q8413436}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7214212}}}} === <!-- Energy and fuels --> # {{Etikéta|preset=1k|item=Q12705}} # {{Etikéta|preset=1k|item=Q12725}} ## {{Etikéta|preset=1k|item=Q12739}} # {{Etikéta|preset=1k|item=Q12748}} # {{Etikéta|preset=1kat|item=Q8414840}} <!-- Engine --> ## {{Etikéta|preset=1k|item=Q12757}} ## {{Etikéta|preset=1k|item=Q12760}} # {{Etikéta|preset=1k|item=Q3196}} === {{Etikéta|preset=1kat|item=Q4057308}} === <!-- Materials --> # {{Etikéta|preset=1k|item=Q11469}} # {{Etikéta|preset=1k|item=Q11472}} # {{Etikéta|preset=1k|item=Q11474}} # {{Etikéta|preset=1k|item=Q287}} === {{Etikéta|preset=1kat|item=Q7216108}} === <!-- Transportation --> # {{Etikéta|preset=1k|item=Q7590}} # {{Etikéta|preset=1k|item=Q11436}} # {{Etikéta|preset=1k|item=Q11442}} # {{Etikéta|preset=1k|item=Q1420}} # {{Etikéta|preset=1k|item=Q2811}} # {{Etikéta|preset=1k|item=Q11446}} # {{Etikéta|preset=1k|item=Q870}} === {{Etikéta|preset=1kat|item=Q7166566}} === <!-- Weapons --> # {{Etikéta|preset=1k|item=Q728}} ## {{Etikéta|preset=1k|item=Q12791}} ## {{Etikéta|preset=1k|item=Q12796}} ### {{Etikéta|preset=1k|item=Q12800}} ## {{Etikéta|preset=1k|item=Q12802}} # {{Etikéta|preset=1k|item=Q12876}} # {{Etikéta|preset=1k|item=Q12870}} ## {{Etikéta|preset=1k|item=Q12861}} }} == {{Etikéta|preset=1kat|item=Q4104783}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7045033}}}} == <!-- Arts and recreation --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q11042}} # {{Etikéta|preset=1k|item=Q735}} ## {{Etikéta|preset=1k|item=Q1004}} ## {{Etikéta|preset=1k|item=Q11629}} ## {{Etikéta|preset=1k|item=Q11633}} ## {{Etikéta|preset=1k|item=Q11634}} ## {{Etikéta|preset=1k|item=Q11642}} # {{Etikéta|preset=1k|item=Q11639}} # {{Etikéta|preset=1k|item=Q12684}} # {{Etikéta|preset=1k|item=Q11635}} # {{Etikéta|preset=1k|item=Q12681}} === {{Etikéta|preset=1kat|item=Q6204331}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6135934}}}} === <!-- Architecture and civil engineering --> # {{Etikéta|preset=1k|item=Q12271}} # {{Etikéta|preset=1k|item=Q12277}} # {{Etikéta|preset=1k|item=Q12280}} # {{Etikéta|preset=1k|item=Q12284}} # {{Etikéta|preset=1k|item=Q12323}} # {{Etikéta|preset=1k|item=Q12493}} # {{Etikéta|preset=1k|item=Q3947}} # {{Etikéta|preset=1kat|item=Q1458429}} <!-- Buildings and structures --> ## {{Etikéta|preset=1k|item=Q43473}} ## {{Etikéta|preset=1k|item=Q10285}} ## {{Etikéta|preset=1k|item=Q12501}} ## {{Etikéta|preset=1k|item=Q243}} ## {{Etikéta|preset=1k|item=Q9188}} ## {{Etikéta|preset=1k|item=Q12506}} ## {{Etikéta|preset=1k|item=Q10288}} ## {{Etikéta|preset=1k|item=Q13217298}} ## {{Etikéta|preset=1k|item=Q12512}} ## {{Etikéta|preset=1k|item=Q9202}} ## {{Etikéta|preset=1k|item=Q9141}} ## {{Etikéta|preset=1k|item=Q12514}} # {{Etikéta|preset=1k|item=Q12516}} # {{Etikéta|preset=1k|item=Q12518}} === {{Etikéta|preset=1kat|item=Q1458269}}, {{lcfirst:{{Etikéta|preset=1kat|item=Q7153700}}}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7018418}}}} === <!-- Film, radio and television --> # {{Etikéta|preset=1k|item=Q11424}} ## {{Etikéta|preset=1k|item=Q11425}} # {{Etikéta|preset=1k|item=Q872}} # {{Etikéta|preset=1k|item=Q289}} === {{Etikéta|preset=1kat|item=Q8255}} === <!-- Music --> # {{Etikéta|preset=1k|item=Q638}} # {{Etikéta|preset=1k|item=Q7366}} # {{Etikéta|preset=1kat|item=Q6134246}} <!-- Music genres --> ## {{Etikéta|preset=1k|item=Q9759}} ## {{Etikéta|preset=1k|item=Q9730}} ### {{Etikéta|preset=1k|item=Q1344}} ### {{Etikéta|preset=1k|item=Q9734}} ## {{Etikéta|preset=1k|item=Q9778}} ## {{Etikéta|preset=1k|item=Q9764}} ## {{Etikéta|preset=1k|item=Q11401}} ## {{Etikéta|preset=1k|item=Q8341}} ## {{Etikéta|preset=1k|item=Q9794}} ## {{Etikéta|preset=1k|item=Q11399}} ## {{Etikéta|preset=1k|item=Q11403}} # {{Etikéta|preset=1kat|item=Q7212463}}<!-- Musical instruments --> ## {{Etikéta|preset=1k|item=Q11404}} ## {{Etikéta|preset=1k|item=Q11405}} ## {{Etikéta|preset=1k|item=Q6607}} ## {{Etikéta|preset=1k|item=Q5994}} ## {{Etikéta|preset=1k|item=Q8338}} ## {{Etikéta|preset=1k|item=Q8355}} === {{Etikéta|preset=1kat|item=Q7045033}} === <!-- Recreation --> # {{Etikéta|preset=1k|item=Q11410}} ## {{Etikéta|preset=1k|item=Q11411}} ## {{Etikéta|preset=1k|item=Q718}} ## {{Etikéta|preset=1k|item=Q11413}} ## {{Etikéta|preset=1k|item=Q7889}} # {{Etikéta|preset=1k|item=Q11416}} # {{Etikéta|preset=1k|item=Q11417}} ## {{Etikéta|preset=1k|item=Q11420}} # {{Etikéta|preset=1k|item=Q5389}} # {{Etikéta|preset=1k|item=Q349}} ## {{Etikéta|preset=1k|item=Q542}} ## {{Etikéta|preset=1kat|item=Q7379346}} <!-- Ball games --> ### {{Etikéta|preset=1k|item=Q5369}} ### {{Etikéta|preset=1k|item=Q5372}} ### {{Etikéta|preset=1k|item=Q5375}} ### {{Etikéta|preset=1k|item=Q2736}} ### {{Etikéta|preset=1k|item=Q5377}} ### {{Etikéta|preset=1k|item=Q5378}} ### {{Etikéta|preset=1k|item=Q847}} ## {{Etikéta|preset=1k|item=Q6388}} # {{Etikéta|preset=1k|item=Q11422}} }} == {{Etikéta|preset=1kat|item=Q1457595}} == <!-- History --> # {{Etikéta|preset=1k|item=Q309}} ==== {{Etikéta|preset=1kat|item=Q9084370}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6499653}}}} ==== <!-- Prehistoric and ancient history --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q11768}} # {{Etikéta|preset=1k|item=Q11772}} # {{Etikéta|preset=1k|item=Q11761}} # {{Etikéta|preset=1k|item=Q11774}} # {{Etikéta|preset=1k|item=Q7209}} # {{Etikéta|preset=1k|item=Q11764}} # {{Etikéta|preset=1k|item=Q28567}} # {{Etikéta|preset=1k|item=Q11767}} # {{Etikéta|preset=1k|item=Q11756}} # {{Etikéta|preset=1k|item=Q2277}} # {{Etikéta|preset=1k|item=Q35355}} # {{Etikéta|preset=1k|item=Q11759}} # {{Etikéta|preset=1k|item=Q9683}} }} ==== {{Etikéta|preset=1kat|item=Q7461740}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q8651924}}}} ==== <!-- Medieval and Renaissance periods --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q12536}} # {{Etikéta|preset=1k|item=Q12542}} # {{Etikéta|preset=1k|item=Q12544}} # {{Etikéta|preset=1k|item=Q12546}} # {{Etikéta|preset=1k|item=Q12548}} # {{Etikéta|preset=1k|item=Q28573}} # {{Etikéta|preset=1k|item=Q184536}} # {{Etikéta|preset=1k|item=Q12554}} # {{Etikéta|preset=1k|item=Q9903}} # {{Etikéta|preset=1k|item=Q12557}} # {{Etikéta|preset=1k|item=Q12560}} # {{Etikéta|preset=1k|item=Q4692}} # {{Etikéta|preset=1k|item=Q12567}} }} ==== {{Etikéta|preset=1kat|item=Q7473369}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6115583}}}} ==== <!-- Early modern and modern periods --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q12539}} # {{Etikéta|preset=1k|item=Q8676}} # {{Etikéta|preset=1k|item=Q8669}} # {{Etikéta|preset=1k|item=Q11409}} # {{Etikéta|preset=1k|item=Q8680}} # {{Etikéta|preset=1k|item=Q8683}} # {{Etikéta|preset=1k|item=Q6534}} # {{Etikéta|preset=1k|item=Q8698}} # {{Etikéta|preset=1k|item=Q2763}} # {{Etikéta|preset=1k|item=Q2269}} # {{Etikéta|preset=1k|item=Q7318}} # {{Etikéta|preset=1k|item=Q8707}} <!-- most significant event in Japanese history --> # {{Etikéta|preset=1k|item=Q12562}} # {{Etikéta|preset=1k|item=Q8729}} # {{Etikéta|preset=1k|item=Q8733}} # {{Etikéta|preset=1k|item=Q15180}} # {{Etikéta|preset=1k|item=Q8740}} # {{Etikéta|preset=1k|item=Q361}} # {{Etikéta|preset=1k|item=Q362}} }} == {{Etikéta|preset=1kat|item=Q1457673}} == <!-- Geography --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q1071}} # {{Etikéta|preset=1k|item=Q515}} # {{Etikéta|preset=1k|item=Q5107}} # {{Etikéta|preset=1k|item=Q4421}} # {{Etikéta|preset=1k|item=Q8502}} # {{Etikéta|preset=1k|item=Q8514}} # {{Etikéta|preset=1k|item=Q934}} # {{Etikéta|preset=1k|item=Q9430}} # {{Etikéta|preset=1k|item=Q4022}} # {{Etikéta|preset=1k|item=Q165}} # {{Etikéta|preset=1k|item=Q933}} === {{Etikéta|preset=1kat|item=Q2945667}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q6581383}}}} === <!-- Continents and major regions --> # {{Etikéta|preset=1k|item=Q15}} # {{Etikéta|preset=1k|item=Q51}} # {{Etikéta|preset=1k|item=Q48}} # {{Etikéta|preset=1k|item=Q46}} # {{Etikéta|preset=1k|item=Q7204}} # {{Etikéta|preset=1k|item=Q49}} # {{Etikéta|preset=1k|item=Q55643}} # {{Etikéta|preset=1k|item=Q18}} }} === {{Etikéta|preset=1kat|item=Q4026570}} === <!-- Countries --> {{Kòlumnë|em=16|1= Eventually, there should be articles on most or all of the countries listed at [[:w:en:List of sovereign states|List of countries]]. However, for the smaller Wikipedias, some of the more high-priority countries to have articles on are: ==== {{Etikéta|preset=1kat|item=Q6581695}} ==== <!-- Africa --> # {{Etikéta|preset=1k|item=Q262}} # {{Etikéta|preset=1k|item=Q974}} # {{Etikéta|preset=1k|item=Q79}} # {{Etikéta|preset=1k|item=Q115}} # {{Etikéta|preset=1k|item=Q1033}} # {{Etikéta|preset=1k|item=Q258}} # {{Etikéta|preset=1k|item=Q1049}} # {{Etikéta|preset=1k|item=Q924}} ==== {{Etikéta|preset=1kat|item=Q8055354}} ==== <!-- Asia --> # {{Etikéta|preset=1k|item=Q889}} # {{Etikéta|preset=1k|item=Q902}} # {{Etikéta|preset=1k|item=Q148}} # {{Etikéta|preset=1k|item=Q668}} # {{Etikéta|preset=1k|item=Q252}} # {{Etikéta|preset=1k|item=Q794}} # {{Etikéta|preset=1k|item=Q796}} # {{Etikéta|preset=1k|item=Q801}} # {{Etikéta|preset=1k|item=Q17}} # {{Etikéta|preset=1k|item=Q843}} # {{Etikéta|preset=1k|item=Q928}} # {{Etikéta|preset=1k|item=Q851}} # {{Etikéta|preset=1k|item=Q884}} # {{Etikéta|preset=1k|item=Q869}} # {{Etikéta|preset=1k|item=Q43}} # {{Etikéta|preset=1k|item=Q881}} ==== {{Etikéta|preset=1kat|item=Q4587626}} ==== <!-- Europe --> # {{Etikéta|preset=1k|item=Q40}} # {{Etikéta|preset=1k|item=Q142}} # {{Etikéta|preset=1k|item=Q183}} # {{Etikéta|preset=1k|item=Q38}} # {{Etikéta|preset=1k|item=Q55}} # {{Etikéta|preset=1k|item=Q36}} # {{Etikéta|preset=1k|item=Q45}} # {{Etikéta|preset=1k|item=Q159}} # {{Etikéta|preset=1k|item=Q29}} # {{Etikéta|preset=1k|item=Q39}} # {{Etikéta|preset=1k|item=Q212}} # {{Etikéta|preset=1k|item=Q145}} # {{Etikéta|preset=1k|item=Q237}} ==== {{Etikéta|preset=1kat|item=Q7131138}} ==== <!-- North America --> # {{Etikéta|preset=1k|item=Q16}} # {{Etikéta|preset=1k|item=Q241}} # {{Etikéta|preset=1k|item=Q96}} # {{Etikéta|preset=1k|item=Q30}} ==== {{Etikéta|preset=1kat|item=Q7185534}} ==== <!-- South America --> # {{Etikéta|preset=1k|item=Q414}} # {{Etikéta|preset=1k|item=Q155}} # {{Etikéta|preset=1k|item=Q739}} ==== {{Etikéta|preset=1kat|item=Q7130988}} ==== <!-- Oceania --> # {{Etikéta|preset=1k|item=Q408}} }} === {{Etikéta|preset=1kat|item=Q9126476}} === <!-- Cities --> {{Kòlumnë|em=16|1= ==== {{Etikéta|preset=1kat|item=Q7230788}} ==== <!-- Africa --> # {{Etikéta|preset=1k|item=Q85}} # {{Etikéta|preset=1k|item=Q5465}} # {{Etikéta|preset=1k|item=Q3838}} # {{Etikéta|preset=1k|item=Q8673}} # {{Etikéta|preset=1k|item=Q3870}} ==== {{Etikéta|preset=1kat|item=Q7229671}} ==== <!-- Asia --> # {{Etikéta|preset=1k|item=Q1530}} # {{Etikéta|preset=1k|item=Q1861}} # {{Etikéta|preset=1k|item=Q956}} # {{Etikéta|preset=1k|item=Q3766}} # {{Etikéta|preset=1k|item=Q1353}} # {{Etikéta|preset=1k|item=Q1354}} # {{Etikéta|preset=1k|item=Q612}} # {{Etikéta|preset=1k|item=Q8646}} # {{Etikéta|preset=1k|item=Q3630}} # {{Etikéta|preset=1k|item=Q1218}} # {{Etikéta|preset=1k|item=Q8660}} # {{Etikéta|preset=1k|item=Q1348}} # {{Etikéta|preset=1k|item=Q5806}} # {{Etikéta|preset=1k|item=Q1156}} # {{Etikéta|preset=1k|item=Q8684}} # {{Etikéta|preset=1k|item=Q8686}} # {{Etikéta|preset=1k|item=Q334}} # {{Etikéta|preset=1k|item=Q3616}} # {{Etikéta|preset=1k|item=Q1490}} ==== {{Etikéta|preset=1kat|item=Q4992948}} ==== <!-- Europe --> # {{Etikéta|preset=1k|item=Q727}} # {{Etikéta|preset=1k|item=Q1524}} # {{Etikéta|preset=1k|item=Q64}} # {{Etikéta|preset=1k|item=Q239}} # {{Etikéta|preset=1k|item=Q406}} # {{Etikéta|preset=1k|item=Q84}} # {{Etikéta|preset=1k|item=Q2807}} # {{Etikéta|preset=1k|item=Q649}} # {{Etikéta|preset=1k|item=Q90}} # {{Etikéta|preset=1k|item=Q220}} # {{Etikéta|preset=1k|item=Q656}} # {{Etikéta|preset=1k|item=Q1741}} ==== {{Etikéta|preset=1kat|item=Q7150911}} ==== <!-- North America --> # {{Etikéta|preset=1k|item=Q65}} # {{Etikéta|preset=1k|item=Q1489}} # {{Etikéta|preset=1k|item=Q60}} # {{Etikéta|preset=1k|item=Q61}} ==== {{Etikéta|preset=1kat|item=Q7228572}} ==== <!-- South America --> # {{Etikéta|preset=1k|item=Q2841}} # {{Etikéta|preset=1k|item=Q1486}} # {{Etikéta|preset=1k|item=Q8678}} # {{Etikéta|preset=1k|item=Q174}} ==== {{Etikéta|preset=1kat|item=Q9055844}} ==== <!-- Oceania --> # {{Etikéta|preset=1k|item=Q3130}} }} === {{Etikéta|preset=1kat|item=Q5933994}} === <!-- Bodies of water --> {{Kòlumnë|em=16|1= # {{Etikéta|preset=1k|item=Q3783}} # {{Etikéta|preset=1k|item=Q788}} # {{Etikéta|preset=1k|item=Q97}} # {{Etikéta|preset=1k|item=Q545}} # {{Etikéta|preset=1k|item=Q166}} # {{Etikéta|preset=1k|item=Q1247}} # {{Etikéta|preset=1k|item=Q5484}} # {{Etikéta|preset=1k|item=Q3503}} # {{Etikéta|preset=1k|item=Q1653}} # {{Etikéta|preset=1k|item=Q5089}} # {{Etikéta|preset=1k|item=Q7343}} # {{Etikéta|preset=1k|item=Q7347}} # {{Etikéta|preset=1k|item=Q1239}} # {{Etikéta|preset=1k|item=Q7348}} # {{Etikéta|preset=1k|item=Q5513}} # {{Etikéta|preset=1k|item=Q5505}} # {{Etikéta|preset=1k|item=Q4918}} # {{Etikéta|preset=1k|item=Q1497}} # {{Etikéta|preset=1k|item=Q3542}} # {{Etikéta|preset=1k|item=Q3392}} # {{Etikéta|preset=1k|item=Q1693}} # {{Etikéta|preset=1k|item=Q98}} # {{Etikéta|preset=1k|item=Q7350}} # {{Etikéta|preset=1k|item=Q584}} # {{Etikéta|preset=1k|item=Q37660}} # {{Etikéta|preset=1k|item=Q899}} # {{Etikéta|preset=1k|item=Q7354}} # {{Etikéta|preset=1k|item=Q626}} # {{Etikéta|preset=1k|item=Q5413}} # {{Etikéta|preset=1k|item=Q7355}} }} === {{Etikéta|preset=1kat|item=Q5741923}} {{int:And}} {{lcfirst:{{Etikéta|preset=1kat|item=Q7217334}}}} === <!-- Mountains and deserts --> # {{Etikéta|preset=1k|item=Q1286}} # {{Etikéta|preset=1k|item=Q5456}} # {{Etikéta|preset=1k|item=Q5451}} ## {{Etikéta|preset=1k|item=Q513}} # {{Etikéta|preset=1k|item=Q7296}} # {{Etikéta|preset=1k|item=Q5463}} # {{Etikéta|preset=1k|item=Q6583}} [[Kategòrëjô:Metastarnë Wikipedie]] ee1o24x7ookft0yzpmxmdqp383og59h Néderlandzkô 0 14192 216502 2026-10-05T10:08:01Z Terrus38 14026 Terrus38 przeniós starnã [[Néderlandzkô]] do [[Niderlandë]]: "Néderlandzkô" to fòrma znónô prakticzno blós z Wikipedie, pòwszechno ùżiwóną fòrmą są Niderlandë, zdrz. https://bibliotekacyfrowa.eu/Content/75801/82460.pdf, https://mojestrone.com/artykul/nato-rozwinie-swoj-system-n1312141, https://mojestrone.com/artykul/dzin-na-niderlandzczich-n2282927, https://biersztuba.wordpress.com/2021/04/30/ropsmenowie-z-erengrad-kaszebi-w-swiece-warhammera/ 216502 wikitext text/x-wiki #PATRZ [[Niderlandë]] qn4jmu4uofxug2y5uknqq93fv7l3jas Kategòrëjô:Mònarchòwie Néderlandsczi 14 14193 216505 2026-10-05T10:09:11Z Terrus38 14026 Terrus38 przeniós starnã [[Kategòrëjô:Mònarchòwie Néderlandsczi]] do [[Kategòrëjô:Mònarchòwie Niderlandów]]: 1. pisënk, 2. pòwszechno brëkòwóną fòrmą w kaszëbsczim są "Niderlandë", nié "Néderlandzkô" 216505 wikitext text/x-wiki #PATRZ [[:Kategòrëjô:Mònarchòwie Niderlandów]] r0h8vnke47ccdra117yyc3izp8f1ecj 216508 216505 2026-10-05T10:10:52Z Terrus38 14026 Usunięto przekierowanie do [[Kategòrëjô:Mònarchòwie Niderlandów]] 216508 wikitext text/x-wiki {{ADR|pisënk, pòwszechno brëkòwóną pòzwą te kraju są "Niderlandë", nié "Néderlandzkô"}} 4q0nepfwn9te29g75j8727982u8hyy6 Kategòrëjô:Néderlandzkô 14 14194 216518 2026-10-05T10:17:39Z Terrus38 14026 Terrus38 przeniós starnã [[Kategòrëjô:Néderlandzkô]] do [[Kategòrëjô:Niderlandë]]: pòwszechno brëkòwóną pòżwą te kraju są Niderlandë, nié Néderlandzkô 216518 wikitext text/x-wiki #PATRZ [[:Kategòrëjô:Niderlandë]] sdz39g4dnpvnu4mjib6b436mowjsxqo 216519 216518 2026-10-05T10:19:33Z Terrus38 14026 Usunięto przekierowanie do [[Kategòrëjô:Niderlandë]] 216519 wikitext text/x-wiki {{ADR|pòwszechno brëkòwóną pòzwą te państwa są ''Niderlandë''<ref>https://mojestrone.com/artykul/nato-rozwinie-swoj-system-n1312141</ref><ref>https://mojestrone.com/artykul/dzin-na-niderlandzczich-n2282927</ref><ref>https://bibliotekacyfrowa.eu/Content/75801/82460.pdf</ref><ref>https://biersztuba.wordpress.com/2021/04/30/ropsmenowie-z-erengrad-kaszebi-w-swiece-warhammera/</ref> }} smewh4bboglf2csf6wx4mmolpp94163