Wiktionary svwiktionary https://sv.wiktionary.org/wiki/Wiktionary:Huvudsida MediaWiki 1.47.0-wmf.24 case-sensitive Media Special Diskussion Användare Användardiskussion Wiktionary Wiktionarydiskussion Fil Fildiskussion MediaWiki MediaWiki-diskussion Mall Malldiskussion Hjälp Hjälpdiskussion Kategori Kategoridiskussion Appendix Appendixdiskussion Rimord Rimordsdiskussion Transwiki Transwikidiskussion TimedText TimedText talk Modul Moduldiskussion Event Event talk Sverige 0 777 4157292 4127947 2026-10-24T01:28:03Z Frodlekis 762 4157292 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} {{media|Flag_of_Sweden.svg|'''Sveriges''' flagga}} '''Sverige''' * {{uttal|sv|ljud=Sv-Sverige.ogg|ipa=[ˈsværjɛ]}} #{{tagg|kat=länder}} stat i [[Skandinavien]] i norra [[Europa]] #: ''Under 1900-talet utvecklades '''Sverige''' till en välfärdsstat.'' #: {{synonymer|[[landet lagom]], [[moder Svea]], [[Svea rike]], [[Konungariket Sverige]], [[Svedala]], [[Svitjod]]}} #: {{etymologi|Kallat på 1200-talets {{härledning|sv|gmq-fsv|Swerike}}, under 1300-talet ''[[Svearike]]'', på den tiden åsyftande regionen ''[[Svealand]]''. Sammansatt av ''[[svear]]'' och ''[[rike]]''. Mot slutet av 1400-talet i yngre fornsvenska har stavningen ändrats till ''[[Swerighe]]'' i både svenska och danska språket. Under 1600-talet dök andra stavningsformer upp såsom ''Swerghe'' och ''Swirghe''. Gustav II Adolf använde stavningen ''Swirge''. Även i bestämd form såsom ''[[Sveriget]]'' 1648, och ''[[Sverget]]'' år 1719.<ref>{{källa-svetym|1005}}</ref>}} #: {{besläktade ord|[[svenne]], [[svennefiera]], [[svennefiering]], [[svensk]], [[svenska]], [[svenskhet]], [[svenskifiera]], [[svenskifiering]]}} #: {{sammansättningar|[[sverigebo]], [[sverigedemokrat]], [[sverigefinsk]], [[sverigemästare]], [[sverigesvenska]], [[sverigevän]]}} ====Översättningar==== {{ö-topp|stat i Skandinavien}} *abchaziska: {{ö|ab|Швециа|tr=Švetsia}} *acehnesiska: {{ö|ace|Swèdia}} *afrikaans: {{ö|af|Swede}} *albanska: {{ö+|sq|Suedia}} *alemanniska: {{ö|als|Schwede}} *amhariska: {{ö|am|ስዊድን|tr=swidən}} *arabiska: {{ö+|ar|اَلسُوَيْد|m|tr=as-suwayd}} *aragonska: {{ö|an|Suecia}} *armeniska: {{ö+|hy|Շվեդիա|tr=Sjvedia}} *asturiska: {{ö+|ast|Suecia}} *aymara: {{ö|ay|Suecia}} *azerbajdzjanska: {{ö+|az|İsveç}} *bambara: {{ö|bm|Swedi}} *basjkiriska: {{ö|ba|Швеция|tr=Švetsija}} *baskiska: {{ö+|eu|Suedia}} *bayerska: {{ö|bar|Schwedn}} *belarusiska: {{ö|be|Швецыя|tr=Švécyja}} *bengali: {{ö+|bn|সুইডেন|tr=su'iḑen}} *bislama: {{ö|bi|Sweden}} *bokmål: {{ö+|no|Sverige}} *bosniska: {{ö|bs|Švedska}} *bretonska: {{ö+|br|Sveden}} *burmesiska: {{ö|my|ဆွီဒင်နိုင်ငံ}} *cebuano: {{ö|ceb|Sweden}} *central bikol: {{ö|bcl|Suesya}} *cherokesiska: {{ö|chr|ᏍᏫᏕᏂ|tr=Swideni}} *danska: {{ö+|da|Sverige}} *engelska: {{ö+|en|Sweden}} *esperanto: {{ö+|eo|Svedio}}, {{ö+|eo|Svedujo}}, {{ö+|eo|Svedlando}} *estniska: {{ö+|et|Rootsi}} *extremaduriska: {{ö|ext|Suecia}} *finsk romani: {{ö|rmf|Sveedi}} *finska: {{ö+|fi|Ruotsi}} *frankoprovensalska: {{ö|frp|Suède}} *franska: {{ö+|fr|Suède|f}} *frisiska: {{ö+|fy|Sweden}} *friuliska: {{ö|fur|Svezie}} *färöiska: {{ö+|fo|Svøríki|n}} *gagauziska: {{ö|gag|Şvețiya}} *galiciska: {{ö+|gl|Suecia}} *georgiska: {{ö+|ka|შვედეთი|tr=Šwedeťi}} *gotiska: {{ö|got|𐍃𐍅𐌴𐌰𐍂𐌴𐌹𐌺𐌹|tr=Sweareiki}}, {{ö|got|𐍃𐍅𐌰𐌹𐌷𐌰𐍂𐌴𐌹𐌺𐌹|tr=Swaihareiki}} *grönländska: {{ö+|kl|Svenskit Nunaat}} *guaraní: {{ö|gn|Suesia}} *haitisk kreol: {{ö|ht|Syèd}} *hebreiska: {{ö|he|שוודיה|tr=shvédya}} *hawaiiska: {{ö|haw|Kuekene}} *ido: {{ö+|io|Suedia}} *indonesiska: {{ö+|id|Swedia}} *interlingua: {{ö|ia|Svedia}} *inuktitut: {{ö|iu|ᔅᕗᕆᑭ|tr=svuriki}} *iriska: {{ö|ga|Sualainn|f|text=an tSualainn}} *isländska: {{ö+|is|Svíþjóð}} *italienska: {{ö+|it|Svezia|f}} *jakutiska: {{ö|sah|Швеция|tr=Švetsija}} *japanska: {{ö+|ja|スウェーデン|tr=瑞典, Suwēden}} *javanesiska: {{ö|jv|Swédia}} *jiddisch: {{ö|yi|שוועדן|n|tr=shvedn|skrift=Hebr}} *kabyliska: {{ö|kab|Sswid}} *kapampangan: {{ö|pam|Sweden}} *karakalpakiska: {{ö|kaa|Shvetsiya}} *kasjubiska: {{ö+|csb|Szwedzkô}} *katalanska: {{ö+|ca|Suècia}} *kazakiska: {{ö|kk|Швеция|tr=Švetsija}} *khmer: {{ö+|km|ស៊ុយអែត}} *kikongo: {{ö|kg|Suedi}} *kirgiziska: {{ö+|ky|Швеция|tr=Švetsija}} *komi: {{ö|kpv|Швеция|tr=Švetsija}} *koreanska: {{ö+|ko|스웨덴|tr=seuweden}} *korniska: {{ö|kw|Swedherwyk}} *korsikanska: {{ö|co|Svezia}} *krimtatariska: {{ö|crh|İsveç}} *kroatiska: {{ö+|hr|Švedska}} *kurdiska: {{ö+|ku|Swêd}} *kvänska: {{ö|fkv|Ruottii}} *kymriska: {{ö+|cy|Sweden}} *ladino: {{ö|lad|Suesia}} *lao: {{ö+|lo|ສະວີເດັນ|tr=sa-vī-den}} *latin: {{ö+|la|Suecia}} *lettiska: {{ö+|lv|Zviedrija}} *lezginska: {{ö|lez|Швеция|tr=Švetsija}} *liguriska: {{ö|lij|Sveçia}} *limburgiska: {{ö|li|Zwaede}}, {{ö|li|Zwieëd}}, {{ö+|li|Zwede}} *lingala: {{ö|ln|Swési}}, {{ö|ln|Swédi}} *litauiska: {{ö+|lt|Švedija|f}} *liviska: {{ö|liv|Rūotšmō}} *lojban: {{ö|jbo|sueriges}} *lombardiska: {{ö|lmo|Svezia}} *luganda: {{ö|lg|Swiiden}} *lulesamiska: {{ö|smj|Svierik}} *luxemburgiska: {{ö+|lb|Schweden}} *lågskotska: {{ö|sco|Swaden}} *lågtyska: {{ö+|nds|Sweden}} *malagassiska: {{ö+|mg|Soeda}} *malajiska: {{ö+|ms|Sweden}} *malayalam: {{ö|ml|സ്വീഡന്‍|tr=svīḍan‍}} *maltesiska: {{ö|mt|Żvezja}} *manx: {{ö|gv|Soolyn|f|text=Y Toolyn}} *maori: {{ö|mi|Huitene}} *marathi: {{ö|mr|स्वीडन|tr=svīḍan}} *meänkieli: {{ö|fit|Ruotti}} *nahuatl: {{ö|nah|Suecia}} *nauruanska: {{ö|na|Widen}} *navajo: {{ö|nv|Chʼah Bideeʼí Dineʼé Bikéyah}} *neapolitanska: {{ö|nap|Sguezia}} *nederländska: {{ö+|nl|Zweden|n}} *nordfrisiska: {{ö|frr|Swärik}}, {{ö|frr|Sweeden}} *nordsamiska: {{ö|se|Ruoŧŧa}} *norfuk: {{ö|pih|Swiiden}} *normandiska: {{ö|nrm|Suède}} *novial: {{ö|nov|Suedia}} *nynorska: {{ö+|nn|Sverige}} *occitanska: {{ö+|oc|Suècia}} *papiamento: {{ö|pap|Suecia}} *piedmontesiska: {{ö|pms|Svessia}} *polska: {{ö+|pl|Szwecja}} *portugisiska: {{ö+|pt|Suécia|f}} *rumänska: {{ö+|ro|Suedia|f}} *rwanda: {{ö|rw|Suwede}} *ryska: {{ö+|ru|Швеция|f|tr=Švétsija}} *rätoromanska: {{ö|rm|Svezia}} *sango: {{ö+|sg|Suêde}} *saterfrisiska: {{ö|stq|Sweeden}} *schlesiska: {{ö|szl|Szwecyjo}} *serbiska: {{ö+|sr|Шведска|f}}, {{ö|sr|Švedska|f}} *sicilianska: {{ö|scn|Svezzia}} *siswati: {{ö|ss|ISwideni}} *skotsk gäliska: {{ö|gd|An t-Suain}} *slovakiska: {{ö+|sk|Švédsko}} *slovenska: {{ö+|sl|Švedska|f}} *somaliska: {{ö|so|Iswidhan}} *spanska: {{ö+|es|Suecia|f}} *sundanesiska: {{ö|su|Swédia}} *swahili: {{ö+|sw|Uswidi}} *sydsamiska: {{ö|sma|Sveerje}} *tagalog: {{ö|tl|Suwesya}} *tatariska: {{ö+|tt|Швеция|tr=Švetsija}} *tetum: {{ö|tet|Suésia}} *thai: {{ö+|th|สวีเดน}} *tjeckiska: {{ö+|cs|Švédsko|n}} *tjetjenska: {{ö|ce|Швеция|tr=Švetsija}} *tjuvasjiska: {{ö|cv|Швеция|tr=Švetsija}} *tok pisin: {{ö|tpi|Suwidan}} *turkiska: {{ö+|tr|İsveç}} *turkmeniska: {{ö|tk|Şwesiýa}} *tuvinska: {{ö|tyv|Швеция|tr=Švetsija}} *tyska: {{ö+|de|Schweden|n}} *udmurtiska: {{ö|udm|Швеция|tr=Švetsija}} *ukrainska: {{ö+|uk|Швеція|f|tr=Švetsija}} *ungerska: {{ö+|hu|Svédország}} *uzbekiska: {{ö+|uz|Shvetsiya}} *venetianska: {{ö+|vec|Svèsia}} *vietnamesiska: {{ö|vi|Thụy Điển}} *volapük: {{ö+|vo|Svedän}} *västpanjabi: {{ö+|pnb|سویڈن}} *võro: {{ö|fiu-vro|Roodsi}} *wolof: {{ö|wo|Suweed}} *yoruba: {{ö|yo|Swídìn}} *zazaiska: {{ö+|diq|İswec}} *zulu: {{ö|zu|ISwidi}} *älvdalska: {{ö|ovd|Swerre}}, {{ö|ovd|Swerje}} {{ö-botten}} ==Bokmål== ===Substantiv=== {{subst|no}} '''Sverige''' # {{tagg|kat=länder|språk=no}} [[#Svenska|Sverige]] ==Danska== ===Substantiv=== {{subst|da}} '''Sverige''' # {{tagg|kat=länder|språk=da}} [[#Svenska|Sverige]] #: {{varianter|[[Sverrig]] ''(ålderdomligt)''}} ==Nynorska== ===Substantiv=== {{subst|nn}} '''Sverige''' # {{tagg|kat=länder|språk=nn}} [[#Svenska|Sverige]] ==Källor== <references/> m04umjpq4rp2ko9m29cn6adgjhvs0ry kat 0 827 4157108 3915801 2026-10-23T14:15:14Z ~2026-56702-21 62364 /* Svenska */ 4157108 wikitext text/x-wiki {{wikipedia}} {{se även|Kat}} ==Tvärspråkligt== ===Tecken=== {{tecken|beteckningar för enheter}} '''kat''' #''beteckning för katalysenheten'' [[katal]] #{{tagg|text=ISO 639-2 (T)}} kod för språket [[georgiska]] #{{tagg|text=ISO 639-3}} kod för språket [[georgiska]] ==Svenska== ===Substantiv=== {{subst|sv}} '''kat''' #en [[växt]] ''(Catha edulis)'', känd för att användas som [[drog]] #:{{varianter|[[khat]]}} #:{{etymologi|{{belagt|sv|1989}}<ref>{{källa-so}}</ref> Av {{härledning|sv|ar|tr=qaat}}.}} #:{{homofoner|[[katt]]}} ====Översättningar==== {{ö-topp|beteckning för katalysenheten katal}} *tyska: {{ö|de|Khat}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''kat''' #{{tagg|kat=djur|språk=af}} [[katt]] ==Danska== ===Substantiv=== {{da-subst-n-e|rot=katt}} '''kat''' #{{tagg|kat=djur|språk=da}} [[katt]] #:''Min '''kat''' er bange for mus.'' #::''Min '''katt''' är rädd för möss.'' #:{{synonymer|[[mis]]}} ==Frisiska== ===Substantiv=== {{subst|fy}} '''kat''' {{u}} *{{uttal|fy|ipa=kɔt}} #{{tagg|kat=kattdjur|språk=fy}} [[katt]] #:{{synonymer|[[húskat]], [[poes#Frisiska|poes]]}} ==Nederländska== ===Substantiv=== {{subst|nl}} '''kat''' ''plural'' {{g-länk|nl|subst|katten}} *{{uttal|nl|ljud=nl-kat.ogg}} #{{tagg|kat=däggdjur|språk=nl}} [[katt]] #:{{synonymer|katje}} #:{{sammansättningar|kattenras}} ==Polska== ===Substantiv=== {{subst|pl}} '''kat''' {{m}} *{{uttal|pl|ljud=Pl-kat.ogg}} #[[bödel]], person som avrättar ==Slovakiska== ===Substantiv=== {{subst|sk}} '''kat''' #[[bödel]], person som avrättar ==Tjeckiska== ===Substantiv=== {{subst|cs}} '''kat''' #[[bödel]], person som avrättar #:{{synonymer|[[popravčí]]}} ==Turkiska== ===Substantiv=== {{subst|tr}} '''kat''' #[[våning]] cw2vy3lai7buu5tzxy9wup3399fugz7 4157109 4157108 2026-10-23T14:16:13Z ~2026-56702-21 62364 /* Svenska */ 4157109 wikitext text/x-wiki {{wikipedia}} {{se även|Kat}} ==Tvärspråkligt== ===Tecken=== {{tecken|beteckningar för enheter}} '''kat''' #''beteckning för katalysenheten'' [[katal]] #{{tagg|text=ISO 639-2 (T)}} kod för språket [[georgiska]] #{{tagg|text=ISO 639-3}} kod för språket [[georgiska]] ==Svenska== ===Substantiv=== {{sv-subst-n-oräkn}} '''kat''' {{u}} #{{tagg|kat=narkotika|kat2=växter|kat2=växtarter}} en [[växt]] (''[[Catha edulis]]''), känd för att användas som [[drog]] #:{{varianter|[[khat]]}} #:{{etymologi|{{belagt|sv|1989}}<ref>{{källa-so}}</ref> Av {{härledning|sv|ar|tr=qaat}}.}} #:{{homofoner|[[katt]]}} ====Översättningar==== {{ö-topp|beteckning för katalysenheten katal}} *tyska: {{ö|de|Khat}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''kat''' #{{tagg|kat=djur|språk=af}} [[katt]] ==Danska== ===Substantiv=== {{da-subst-n-e|rot=katt}} '''kat''' #{{tagg|kat=djur|språk=da}} [[katt]] #:''Min '''kat''' er bange for mus.'' #::''Min '''katt''' är rädd för möss.'' #:{{synonymer|[[mis]]}} ==Frisiska== ===Substantiv=== {{subst|fy}} '''kat''' {{u}} *{{uttal|fy|ipa=kɔt}} #{{tagg|kat=kattdjur|språk=fy}} [[katt]] #:{{synonymer|[[húskat]], [[poes#Frisiska|poes]]}} ==Nederländska== ===Substantiv=== {{subst|nl}} '''kat''' ''plural'' {{g-länk|nl|subst|katten}} *{{uttal|nl|ljud=nl-kat.ogg}} #{{tagg|kat=däggdjur|språk=nl}} [[katt]] #:{{synonymer|katje}} #:{{sammansättningar|kattenras}} ==Polska== ===Substantiv=== {{subst|pl}} '''kat''' {{m}} *{{uttal|pl|ljud=Pl-kat.ogg}} #[[bödel]], person som avrättar ==Slovakiska== ===Substantiv=== {{subst|sk}} '''kat''' #[[bödel]], person som avrättar ==Tjeckiska== ===Substantiv=== {{subst|cs}} '''kat''' #[[bödel]], person som avrättar #:{{synonymer|[[popravčí]]}} ==Turkiska== ===Substantiv=== {{subst|tr}} '''kat''' #[[våning]] o3inaye30mzlbrrecfv3k03qvlhamn4 4157110 4157109 2026-10-23T14:16:46Z ~2026-56702-21 62364 +en: [[khat]] (assisterat) 4157110 wikitext text/x-wiki {{wikipedia}} {{se även|Kat}} ==Tvärspråkligt== ===Tecken=== {{tecken|beteckningar för enheter}} '''kat''' #''beteckning för katalysenheten'' [[katal]] #{{tagg|text=ISO 639-2 (T)}} kod för språket [[georgiska]] #{{tagg|text=ISO 639-3}} kod för språket [[georgiska]] ==Svenska== ===Substantiv=== {{sv-subst-n-oräkn}} '''kat''' {{u}} #{{tagg|kat=narkotika|kat2=växter|kat2=växtarter}} en [[växt]] (''[[Catha edulis]]''), känd för att användas som [[drog]] #:{{varianter|[[khat]]}} #:{{etymologi|{{belagt|sv|1989}}<ref>{{källa-so}}</ref> Av {{härledning|sv|ar|tr=qaat}}.}} #:{{homofoner|[[katt]]}} ====Översättningar==== {{ö-topp|beteckning för katalysenheten katal}} *engelska: {{ö+|en|khat}} *tyska: {{ö|de|Khat}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''kat''' #{{tagg|kat=djur|språk=af}} [[katt]] ==Danska== ===Substantiv=== {{da-subst-n-e|rot=katt}} '''kat''' #{{tagg|kat=djur|språk=da}} [[katt]] #:''Min '''kat''' er bange for mus.'' #::''Min '''katt''' är rädd för möss.'' #:{{synonymer|[[mis]]}} ==Frisiska== ===Substantiv=== {{subst|fy}} '''kat''' {{u}} *{{uttal|fy|ipa=kɔt}} #{{tagg|kat=kattdjur|språk=fy}} [[katt]] #:{{synonymer|[[húskat]], [[poes#Frisiska|poes]]}} ==Nederländska== ===Substantiv=== {{subst|nl}} '''kat''' ''plural'' {{g-länk|nl|subst|katten}} *{{uttal|nl|ljud=nl-kat.ogg}} #{{tagg|kat=däggdjur|språk=nl}} [[katt]] #:{{synonymer|katje}} #:{{sammansättningar|kattenras}} ==Polska== ===Substantiv=== {{subst|pl}} '''kat''' {{m}} *{{uttal|pl|ljud=Pl-kat.ogg}} #[[bödel]], person som avrättar ==Slovakiska== ===Substantiv=== {{subst|sk}} '''kat''' #[[bödel]], person som avrättar ==Tjeckiska== ===Substantiv=== {{subst|cs}} '''kat''' #[[bödel]], person som avrättar #:{{synonymer|[[popravčí]]}} ==Turkiska== ===Substantiv=== {{subst|tr}} '''kat''' #[[våning]] hp2vsm2imrzaian49325szw1k17b21b 4157111 4157110 2026-10-23T14:17:26Z ~2026-56702-21 62364 /* Svenska */ 4157111 wikitext text/x-wiki {{wikipedia}} {{se även|Kat}} ==Tvärspråkligt== ===Tecken=== {{tecken|beteckningar för enheter}} '''kat''' #''beteckning för katalysenheten'' [[katal]] #{{tagg|text=ISO 639-2 (T)}} kod för språket [[georgiska]] #{{tagg|text=ISO 639-3}} kod för språket [[georgiska]] ==Svenska== ===Substantiv=== {{sv-subst-n-oräkn}} '''kat''' {{u}} #{{tagg|kat=narkotika|kat2=växter|kat2=växtarter}} en [[växt]] (''[[Catha edulis]]''), känd för att användas som [[drog]] #:{{varianter|[[khat]]}} #:{{etymologi|{{belagt|sv|1989}}<ref>{{källa-so}}</ref> Av {{härledning|sv|ar|قَات|tr=qaat}}.}} #:{{homofoner|[[katt]]}} ====Översättningar==== {{ö-topp|beteckning för katalysenheten katal}} *engelska: {{ö+|en|khat}} *tyska: {{ö|de|Khat}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''kat''' #{{tagg|kat=djur|språk=af}} [[katt]] ==Danska== ===Substantiv=== {{da-subst-n-e|rot=katt}} '''kat''' #{{tagg|kat=djur|språk=da}} [[katt]] #:''Min '''kat''' er bange for mus.'' #::''Min '''katt''' är rädd för möss.'' #:{{synonymer|[[mis]]}} ==Frisiska== ===Substantiv=== {{subst|fy}} '''kat''' {{u}} *{{uttal|fy|ipa=kɔt}} #{{tagg|kat=kattdjur|språk=fy}} [[katt]] #:{{synonymer|[[húskat]], [[poes#Frisiska|poes]]}} ==Nederländska== ===Substantiv=== {{subst|nl}} '''kat''' ''plural'' {{g-länk|nl|subst|katten}} *{{uttal|nl|ljud=nl-kat.ogg}} #{{tagg|kat=däggdjur|språk=nl}} [[katt]] #:{{synonymer|katje}} #:{{sammansättningar|kattenras}} ==Polska== ===Substantiv=== {{subst|pl}} '''kat''' {{m}} *{{uttal|pl|ljud=Pl-kat.ogg}} #[[bödel]], person som avrättar ==Slovakiska== ===Substantiv=== {{subst|sk}} '''kat''' #[[bödel]], person som avrättar ==Tjeckiska== ===Substantiv=== {{subst|cs}} '''kat''' #[[bödel]], person som avrättar #:{{synonymer|[[popravčí]]}} ==Turkiska== ===Substantiv=== {{subst|tr}} '''kat''' #[[våning]] fj4ea7j6lwkaf8pczwog3409cp38d4c 4157112 4157111 2026-10-23T14:17:38Z ~2026-56702-21 62364 /* Svenska */ 4157112 wikitext text/x-wiki {{wikipedia}} {{se även|Kat}} ==Tvärspråkligt== ===Tecken=== {{tecken|beteckningar för enheter}} '''kat''' #''beteckning för katalysenheten'' [[katal]] #{{tagg|text=ISO 639-2 (T)}} kod för språket [[georgiska]] #{{tagg|text=ISO 639-3}} kod för språket [[georgiska]] ==Svenska== ===Substantiv=== {{sv-subst-n-oräkn}} '''kat''' {{u}} #{{tagg|kat=narkotika|kat2=växter|kat3=växtarter}} en [[växt]] (''[[Catha edulis]]''), känd för att användas som [[drog]] #:{{varianter|[[khat]]}} #:{{etymologi|{{belagt|sv|1989}}<ref>{{källa-so}}</ref> Av {{härledning|sv|ar|قَات|tr=qaat}}.}} #:{{homofoner|[[katt]]}} ====Översättningar==== {{ö-topp|beteckning för katalysenheten katal}} *engelska: {{ö+|en|khat}} *tyska: {{ö|de|Khat}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''kat''' #{{tagg|kat=djur|språk=af}} [[katt]] ==Danska== ===Substantiv=== {{da-subst-n-e|rot=katt}} '''kat''' #{{tagg|kat=djur|språk=da}} [[katt]] #:''Min '''kat''' er bange for mus.'' #::''Min '''katt''' är rädd för möss.'' #:{{synonymer|[[mis]]}} ==Frisiska== ===Substantiv=== {{subst|fy}} '''kat''' {{u}} *{{uttal|fy|ipa=kɔt}} #{{tagg|kat=kattdjur|språk=fy}} [[katt]] #:{{synonymer|[[húskat]], [[poes#Frisiska|poes]]}} ==Nederländska== ===Substantiv=== {{subst|nl}} '''kat''' ''plural'' {{g-länk|nl|subst|katten}} *{{uttal|nl|ljud=nl-kat.ogg}} #{{tagg|kat=däggdjur|språk=nl}} [[katt]] #:{{synonymer|katje}} #:{{sammansättningar|kattenras}} ==Polska== ===Substantiv=== {{subst|pl}} '''kat''' {{m}} *{{uttal|pl|ljud=Pl-kat.ogg}} #[[bödel]], person som avrättar ==Slovakiska== ===Substantiv=== {{subst|sk}} '''kat''' #[[bödel]], person som avrättar ==Tjeckiska== ===Substantiv=== {{subst|cs}} '''kat''' #[[bödel]], person som avrättar #:{{synonymer|[[popravčí]]}} ==Turkiska== ===Substantiv=== {{subst|tr}} '''kat''' #[[våning]] 8f6lqcg699ajk69yds601gb6oizowdz ko 0 2399 4157150 4101704 2026-10-23T16:12:15Z Frodlekis 762 +am: [[ላም]] (assisterat) 4157150 wikitext text/x-wiki {{se även|kö|kø|KO}} {{wikipedia|Nötkreatur}} ==Tvärspråkligt== ===Kod=== {{kod|språkkoder}} '''ko''' #{{tagg|text=ISO 639-1}} kod för språket [[koreanska]] ==Svenska== ===Substantiv=== {{sv-subst-n-r}} {{media|Koe in weiland bij Gorssel.JPG|en '''ko'''}} '''ko''' {{u}} *{{uttal|sv|ipa=kuː}} #{{tagg|kat=däggdjur|kat2=djurhonor}} (vuxen) [[hona]] av [[däggdjur]]s[[art]]en [[nötkreatur]], ''Bos taurus'', vilken hålls som [[boskap]] och som har [[kalvat]], det vill säga fött en [[avkomma]] och därför [[producera]]r [[mjölk]] #:''Pigorna måste gå upp tidigt för att mjölka '''korna'''.'' #:{{synonymer|[[kossa]], [[tjir]] ''(orsamål)''}} #:{{meronymer|[[juver]], [[spenar]]}} #:{{kohyponymer|[[kalv]], [[tjur]]}} #{{tagg|vardagligt}} [[nötkreatur]]; individ av arten ''[[Bos taurus]]'', oavsett kön och ålder #:{{synonymer|[[nötkreatur]]}} #:{{hyponymer|[[tjur]], [[kalv]], [[kviga]], [[oxe]], [[#Svenska|ko]] (hona)}} #:{{hyperonymer|[[boskap]], [[fä]], [[kreatur]]}} #:{{sammansättningar|[[kohage]], [[komocka]], [[kostall]], [[kovändning]]}} #:{{fraser|''(idiom)'' [[dum som en ko]], [[helig ko]], [[ingen ko på isen]]}} #hona av ett av ett flertal större däggdjur, huvudsakligen [[slidhornsdjur]] #:{{hyponymer|[[getko]], [[renko]], [[älgko]]}} :{{avgränsare}} :{{etymologi|{{belagt|sv|1200|bt}}<ref>{{källa-so}}</ref>, som {{härledning|sv|gmq-fsv|ko}}.}} :{{grammatik|Dialektalt även ''[[kör]], [[körna]]'' i plural. Jämför danska och norska.}} ====Översättningar==== {{ö-topp|hona av ''Bos taurus''}} *amhariska: {{ö|am|ላም|tr=lam}} *bokmål: {{ö+|no|ku|mf}} *bretonska: {{ö+|br|buoc'h|f}} *danska: {{ö+|da|ko|u}} *engelska: {{ö+|en|cow}} *esperanto: {{ö+|eo|bovino}} *estniska: {{ö+|et|lehm}} *finska: {{ö+|fi|lehmä}} *franska: {{ö+|fr|vache|f}} *galiciska: {{ö+|gl|vaca|f}} *grekiska: {{ö+|el|αγελάδα}} *hebreiska: {{ö+|he|פרה}} (para) *indonesiska: {{ö+|id|sapi}} *isländska: {{ö+|is|kýr|f}} *italienska: {{ö+|it|mucca|f}}, {{ö+|it|vacca|f}} *japanska: {{ö+|ja|牛}} (うし, ushi) *jiddisch: {{ö|yi|קו|f|tr=ku}} *koreanska: {{ö+|ko|암소|tr=amso}} *kroatiska: {{ö+|hr|krava|f}} *kymriska: {{ö+|cy|buwch|f}} *latin: {{ö+|la|bos}}, {{ö+|la|vacca|f}} *lettiska: {{ö+|lv|govs}} *litauiska: {{ö+|lt|karvė|f}} *nederländska: {{ö+|nl|koe|f}} *nordsamiska: {{ö|se|gussa}} *persiska: {{ö+|fa|گاو ماده}} *polska: {{ö+|pl|krowa|f}} *portugisiska: {{ö+|pt|vaca|f}} *rumänska: {{ö+|ro|vacă|f}} *ryska: {{ö+|ru|корова|f}} *slovakiska: {{ö+|sk|krava}} *slovenska: {{ö+|sl|krava}} *spanska: {{ö+|es|vaca|f}} *svensk romani: {{ö|rmu|gurmi|u}}, {{ö|rmu|kromma|u}} *sydsamiska: {{ö|sma|govse}} *tjeckiska: {{ö+|cs|kráva|f}} *turkiska: {{ö+|tr|inek}} *tyska: {{ö+|de|Kuh|f}} *ukrainska: {{ö+|uk|корова|f}} *ungerska: {{ö+|hu|tehén}} *vepsiska: {{ö|vep|lehm}} *älvdalska: {{ö|ovd|tjyr}} {{ö-botten}} {{ö-topp|individ av arten nötkreatur, Bos taurus, oavsett kön och ålder}} *engelska: {{ö+|en|cow}} *malajiska: {{ö+|ms|lembu}} *nederländska: {{ö+|nl|rund|n}} *tyska: {{ö+|de|Rind|n}} {{ö-botten}} {{ö-topp|hona av ett av ett flertal större däggdjur (idisslare)}} *bokmål: {{ö+|no|ku|mf}} *engelska: {{ö+|en|cow}} *polska: {{ö+|pl|krowa|f}} *tyska: {{ö+|de|Kuh|f}} {{ö-botten}} ==Danska== ===Substantiv=== {{da-subst-n|ko|koen|køer|køerne}} '''ko''' {{u}} #[[#Svenska|ko]], hona av ''Bos taurus'' #[[#Svenska|ko]], individ av arten nötkreatur, ''Bos taurus'', oavsett kön och ålder #:{{hyponymer|[[kvie]], [[kalv]], [[tyr]], [[stud]], [[okse]], [[#Danska|ko]] (1)}} ====Fraser==== *(der er) [[ingen ko på isen]] - inga problem *[[som to røde køer]] - när två personer liknar varandra mycket ==Lettiska== ===Adverb=== {{adv|lv}} '''ko''' #[[varför]] ===Pronomen=== '''ko''' #{{böjning|lv|pron|kas}} ==Källor== <references/> qfk17c3z989x3ycza8whf6h04tcrc8h Wiktionary:Stilguide/Språknamn 4 3193 4157281 4155340 2026-10-24T01:21:25Z Frodlekis 762 /* Språknamn och språkkoder */ 4157281 wikitext text/x-wiki {{genväg|[[WT:SPRÅK]]}} På denna sida listas de språk med respektive språkkoder som används i artiklarnas rubriker och ihop med många mallars namngivning och syntax. Vissa språkvarianter hanteras i vissa fall inte på samma sätt som egna huvudspråk och för dessa används en speciell struktur som även presenteras på denna sida. Det händer att flera alternativa namn används för ett språk. Denna sida presenterar även namn eller pseudonamn på språk där ett annat namn på språket används här på Wiktionary. Målet är att det vanligaste, korrektaste och mest neutrala namnet är det som används, vilket inte alltid är helt enkelt att göra en bedömning av. Målet är dock att användningen av namnet för språket ska vara konsekvent oavsett vilket valet faller på. Informationen på denna sida kan ständigt fyllas ut och förbättras. Det är inte alltid självklart vilka språk som bör hanteras som ett eget huvudspråk här på Wiktionary och vilka språk som bättre hanteras som underspråk eller språkvarianter av ett annat språk. Diskutera gärna dessa frågor. Generellt bör inte språk som saknar egen [[w:en:ISO 639-3|ISO 639-3]]-kod finnas i listan, såvida det inte finns synnerliga skäl till att ha med dessa. Notera att ett av de vanligaste skälen till att ett naturligt (till skillnad från ett konstgjort) språk inte har en kod är att debatten om huruvida det är ett språk eller en dialekt inte är riktigt avgjord ännu. För att inte aktivt ta ställning i dylika debatter håller vi oss till en standard, nämligen att vi säger att det är ett "språk" om och endast om det har en ISO 639-3-kod, annars är det ''antingen'' en dialekt, som då tas upp under motsvarande språk, ''eller'' så är det ett konstgjort språk med starkt begränsad utbredning varvid en fall för fall-diskussion måste väckas. ==Språknamn och språkkoder== {{topp|språk : språkkod <sup>(källa för språkkoden)</sup> anmärkning}} {{kolumner|3}} * {{språk|tvärspråkligt|--|-|not=inget språk, ingen riktig språkkod}} ---- * {{språk|abazinska|abq|ISO 639-3}} * {{språk|abchaziska|ab|Wiktionary}} * {{språk|abenakiska|abe|ISO 639-3}} * {{språk|acehnesiska|ace|Wikimedia}} * {{språk|adygeiska|ady|ISO 639-3}} * {{språk|afar|aa|Wiktionary}} * {{språk|afrikaans|af|Wiktionary}} * {{ersättningsspråk|aino|använd=''ainu''}} * {{språk|ainu|ain|ISO 639-3}} * {{språk|akan|ak|Wiktionary}} * {{språk|akkadiska|akk|ISO 639-3}} * {{språk|akkalasamiska|sia|ISO 639-3}} * {{språk|albanska|sq|Wiktionary}} * {{språk|alemanniska|als|Wiktionary|not=wiktionary omdirigerar till wikipedia, kod "gsw" enligt ISO 639-3}} * {{språk|aleutiska|ale|ISO 639-3}} * {{språk|altaiska|tut|ISO 639-2}} * {{språk|amhariska|am|Wiktionary}} * {{språk|andalusisk arabiska|xaa|ISO 639-3}} * {{språk|anglo-normandiska|xno|ISO 639-3}} * {{ersättningsspråk|anglonormandiska|använd=''anglo-normandiska''}} * {{ersättningsspråk|anglosachsiska|använd=''fornengelska''}} * {{ersättningsspråk|anglosaxiska|använd=''fornengelska''}} * {{språk|arabiska|ar|Wiktionary}} * {{språk|aragonska|an|Wiktionary}} * {{språk|arameiska|arc|Wikimedia}} * {{ersättningsspråk|arjeplogssamiska|använd=''pitesamiska''}} * {{språk|armeniska|hy|Wiktionary}} * {{språk|arumänska|roa-rup|Wiktionary}} * {{språk|assamesiska|as|Wiktionary}} * {{språk|asturiska|ast|Wiktionary}} * {{ersättningsspråk|atjehnesiska|använd=''acehnesiska''}} * {{språk|avariska|av|Wiktionary}} * {{språk|avestiska|ave|ISO 639-3}} * {{språk|aymara|ay|Wiktionary}} * {{språk|azerbajdzjanska|az|Wiktionary}} * {{ersättningsspråk|azeri|använd=''azerbajdzjanska''}} * {{ersättningsspråk|azeriska|använd=''azerbajdzjanska''}} * {{ersättningsspråk|bahasa indonesia|använd=''indonesiska''}} * {{språk|balinesiska|ban|ISO 639-3}} * {{språk|baluchiska|bal|ISO 639-2}} * {{språk|bambara|bm|Wiktionary}} * {{språk|banjaresiska|bjn|ISO 639-3}} * {{språk|basjkiriska|ba|Wiktionary}} * {{språk|baskiska|eu|Wiktionary}} * {{språk|batak karo|btx|ISO 639-3}} * {{språk|bats|bbl|ISO 639-3}} * {{språk|bayerska|bar|ISO 639-3}} * {{språk|belarusiska|be|Wiktionary}} * {{språk|bemba|bem|ISO 639-3}} * {{språk|bengali|bn|Wiktionary}} * {{språk|berberspråk|ber|ISO 639-2}} {{?|"berber" eller "berberspråk"? se disksidan}} * {{språk|bidjara|bym|ISO 639-3}} * {{språk|bihari|bh|Wiktionary}} * {{språk|bishnupriya manipuri|bpy|Wikimedia}} * {{språk|bislama|bi|Wiktionary}} * {{språk|bokmål|no|Wiktionary}} {{?|Fortfarande en hel del översättningar kvar att fixa där bokmål hanteras som dialekt istället för som eget huvudspråk}} * {{språk|bosniska|bs|Wiktionary}} * {{ersättningsspråk|brasilianska|använd=''portugisiska''}} * {{språk|bretonska|br|Wiktionary}} * {{språk|buginesiska|bug|Wikimedia}} * {{språk|bulgariska|bg|Wiktionary}} * {{språk|burjatiska|bxr|Wikimedia}} * {{språk|burmesiska|my|Wiktionary}} * {{ersättningsspråk|caló|använd=''iberisk romani''}} * {{språk|capiznon|cps|ISO 639-3}} * {{språk|cebuano|ceb|Wikimedia}} * {{språk|central bikol|bcl|Wikimedia}} * {{språk|centralkurdiska|ckb|Wikimedia}} * {{språk|centralnahuatl|nhn|ISO 639-3}} * {{språk|chavacano|cbk|ISO 639-3}} * {{språk|chamorro|ch|Wiktionary}} * {{språk|chantiska|kca|ISO 639-3}} * {{ersättningsspråk|cherokee|använd=''cherokesiska''}} * {{språk|cherokesiska|chr|Wiktionary}} * {{språk|cheyenne|chy|Wikimedia}} * {{språk|chichewa|ny|Wikimedia}} * {{språk|chinook jargon|chn|ISO 639-3}} * {{språk|chuukesiska|chk|ISO 639-3}} * {{språk|cia-cia|cia|ISO 639-3}} * {{språk|cora|crn|ISO 639-3}} * {{språk|cree|cr|Wiktionary}} * {{språk|dairi batak|btd|ISO 639-3}} * {{språk|dagbanli|dag|ISO 639-3}} * {{språk|danska|da|Wiktionary}} * {{språk|dari|prs|ISO 639-3}} * {{språk|demotiska|egy-dem|ISO 639-2 / konstruerad}} * {{språk|dinka|din|ISO 639-3}} * {{språk|divehi|dv|Wikimedia}} * {{språk|dzongkha|dz|Wiktionary}} * {{språk|enaresamiska|smn|ISO 639-3}} * {{språk|engelska|en|Wiktionary}} * {{språk|egyptiska|egy|ISO 639-3}} * {{språk|erzya|myv|Wikimedia}} * {{språk|esperanto|eo|Wiktionary}} * {{språk|estniska|et|Wiktionary}} * {{språk|etruskiska|ett|ISO 639-3}} * {{språk|extremaduriska|ext|Wikimedia}} * {{språk|evenki|evn|ISO 639-3}} * {{språk|ewe|ee|ISO 639-3}} * {{språk|fang|fan|ISO 639-3}} * {{ersättningsspråk|farsi|använd=''persiska''}} * {{språk|feniciska|phn|ISO 639-3}} * {{språk|fiji|fj|Wiktionary}} * {{ersättningsspråk|fijianska|använd=''fiji''}} * {{språk|fijiansk hindi|hif|Wikimedia}} * {{språk|filipino|fil|ISO 639-3}} * {{språk|finska|fi|Wiktionary}} * {{språk|finsk romani|rmf|ISO 639-3}} * {{språk|forndanska|gmq-fda|ISO 639-5 / konstruerad}} * {{språk|fornengelska|ang|Wiktionary}} * {{språk|fornfrankiska|frk|ISO 639-3}} * {{språk|fornfranska|fro|ISO 639-3}} * {{språk|fornfrisiska|ofs|ISO 639-3}} * {{språk|forngeorgiska|oge|ISO 639-3}} * {{språk|fornhögtyska|goh|ISO 639-3}} * {{ersättningsspråk|fornlågtyska|använd=''fornsaxiska''}} * {{ersättningsspråk|fornnederländska|använd=''fornlågfrankiska''}} * {{språk|forniriska|sga|ISO 639-3}} * {{ersättningsspråk|fornisländska|använd=''fornnordiska''}} * {{språk|fornkymriska|owl|ISO 639-3}} * {{språk|fornkyrkoslaviska|cu|Wikipedia}} * {{språk|fornlågfrankiska|odt|ISO 639-3}} * {{språk|fornnordiska|non|ISO 639-2}} * {{språk|fornoccitanska|pro|ISO 639-3}} * {{språk|fornpersiska|peo|ISO 639-3}} * {{språk|fornportugisiska|roa-fpt|ISO 639-5 / konstruerad}} * {{ersättningsspråk|fornpreussiska|använd=''preussiska''}} * {{språk|fornsaxiska|osx|ISO 639-3}} * {{språk|fornspanska|osp|ISO 639-3}} * {{språk|fornsvenska|gmq-fsv|ISO 639-5 / konstruerad}} * {{språk|fornturkiska|otk|ISO 639-3}} * {{språk|fornöstslaviska|orv|ISO 639-3}} * {{språk|frankoprovensalska|frp|Wikimedia}} * {{språk|franska|fr|Wiktionary}} * {{språk|frisiska|fy|Wiktionary}} * {{språk|friuliska|fur|ISO 639-3}} * {{språk|futuniska|fud|ISO 639-3}} * {{språk|färöiska|fo|Wiktionary}} * {{språk|gagauziska|gag|ISO 639-3}} * {{språk|galiciska|gl|Wiktionary}} * {{språk|ge'ez|gez|ISO 639-3}} * {{språk|georgiska|ka|Wiktionary}} * {{språk|gotiska|got|Wikimedia}} * {{språk|grekiska|el|Wiktionary}} * {{språk|groningska|gos|ISO 639-3}} * {{språk|grönländska|kl|Wiktionary}} * {{språk|guanche|gnc|ISO 639-3}} * {{språk|guaraní|gn|Wiktionary}} * {{språk|guerreronahuatl|ngu|ISO 639-3}} * {{språk|gujarati|gu|Wiktionary}} * {{språk|gusii|guz|ISO 639-3}} {{?|Behöver verifieras}} * {{ersättningsspråk|haitiska|använd=''haitisk kreol''}} * {{språk|haitisk kreol|ht|Wikimedia}} * {{språk|hakka|hak|Wikimedia}} * {{språk|hausa|ha|Wiktionary}} * {{ersättningsspråk|hawaiianska|använd=''hawaiiska''}} * {{språk|hawaiiska|haw|Wikimedia}} * {{språk|hebreiska|he|Wiktionary}} * {{språk|hedi|xed|ISO 639-3}} * {{språk|hettitiska|hit|ISO 639-3}} * {{språk|hiligaynon|hil|ISO 639-2}} * {{språk|hindi|hi|Wiktionary}} * {{språk|hindko|hnd|ISO 639-3}} * {{språk|hmong daw|mww|ISO 639-3}} * {{ersättningsspråk|holländska|använd=''nederländska''}} * {{språk|hurritiska|xhu|ISO 639-3}} * {{språk|högsorbiska|hsb|Wiktionary}} * {{språk|iberisk romani|rmq|ISO 639-3}} * {{ersättningsspråk|ibo|använd=''igbo''}} * {{språk|ido|io|Wiktionary}} * {{språk|igbo|ig|Wikimedia}} * {{språk|ilokano|ilo|Wikimedia}} * {{språk|indonesiska|id|Wiktionary}} * {{språk|interlingua|ia|Wiktionary}} * {{språk|interlingue|ie|Wiktionary}} * {{språk|inuktitut|iu|Wiktionary}} * {{språk|iñupiaq|ik|Wiktionary}} * {{språk|iriska|ga|Wiktionary}} * {{ersättningsspråk|irländska|använd=''iriska''}} * {{språk|isländska|is|Wiktionary}} * {{språk|istriotiska|ist|ISO 639-3}} * {{språk|italienska|it|Wiktionary}} * {{språk|jakan|yka|ISO 639-3}} * {{språk|jakutiska|sah|ISO 639-3}} * {{språk|japanska|ja|Wiktionary}} * {{språk|javanesiska|jv|Wiktionary}} * {{språk|jiddisch|yi|Wiktionary}} * {{språk|kabardinska|kbd|ISO 639-3}} * {{språk|kabyliska|kab|ISO 639-3}} * {{ersättningsspråk|kalaallisut|använd=''grönländska''}} * {{ersättningsspråk|kalé|använd=''finsk romani''}} * {{språk|kalmuckiska|xal|Wikimedia}} * {{ersättningsspråk|kalo|använd=''finsk romani''}} * {{språk|kamba|kam|ISO 639-3}} * {{språk|kammu|xmu|ISO 639-3}} * {{språk|kanjobal|kjb|ISO 639-3}} * {{språk|kannada|kn|Wiktionary}} * {{språk|kantonesiska|yue|Wikimedia}} * {{språk|kanuri|kr|Wikimedia}} * {{språk|kapampangan|pam|Wikimedia}} * {{språk|karakalpakiska|kaa|ISO 639-3}} * {{språk|karatjajbalkariska|krc|Wikimedia}} * {{språk|karelska|krl|ISO 639-3}} * {{språk|kashmiri|ks|Wiktionary}} * {{språk|kasjubiska|csb|Wiktionary}} * {{språk|katalanska|ca|Wiktionary}} * {{ersättningsspråk|kazakh|använd=''kazakiska''}} * {{språk|kazakiska|kk|Wiktionary}} * {{ersättningsspråk|khakas|använd=''khakasiska''}} * {{språk|khakasiska|kjh|ISO 639-3}} * {{språk|khmer|km|Wiktionary}} * {{språk|kikai|kzg|ISO 639-3}} * {{språk|kikongo|kg|Wikimedia}} * {{språk|kikuyu|ki|Wikimedia}} * {{språk|kildinsamiska|sjd|ISO 639-3}} * {{språk|kinesiska|zh|Wiktionary}} * {{språk|kirgiziska|ky|Wiktionary}} * {{språk|kirundi|rn|Wiktionary}} * {{språk|kituba|ktu|ISO 639-3}} * {{språk|klassisk grekiska|grc|ISO 639-3}} * {{språk|klassisk nahuatl|nci|ISO 639-3}} * {{språk|klassisk syriska|syc|ISO 639-3}} * {{ersättningsspråk|klingon|använd=''klingonska''}} * {{språk|klingonska|tlh|ISO 639-3}} * {{språk|komi|kpv|ISO 639-3}} * {{ersättningsspråk|komi-syrjänska|använd=''komi''}} * {{språk|koptiska|cop|ISO 639-3}} * {{språk|koreanska|ko|Wiktionary}} * {{språk|korjakiska|kpy|ISO 639-3}} * {{språk|korniska|kw|Wiktionary}} * {{språk|korsikanska|co|Wiktionary}} * {{språk|kotava|avk|ISO 639-3}} * {{språk|krimtatariska|crh|Wikimedia}} * {{språk|krimtjakiska|jct|ISO 639-3}} * {{språk|kroatiska|hr|Wiktionary}} * {{språk|kumykiska|kum|ISO 639-3}}<!-- Språknamnet är 'kumykiska' hos NE. --> * {{språk|kunigami|xug|ISO 639-3}} * {{ersättningsspråk|kurdiska||använd=''nordkurdiska'', ''centralkurdiska'', ''sydkurdiska'' eller ''zazaiska''|not=(se nedan för härledningar)}} * {{språk|kurdiska|ku|Wiktionary}} {{?|kurdiska eller syd-/nordkurdiska är frågan, se diskussion}} * {{språk|kvänska|fkv|ISO 639-3}} * {{språk|kymriska|cy|Wiktionary}} * {{språk|ladino|lad|Wikimedia}} * {{språk|ladinska|lld|ISO 639-3}} * {{språk|lak|lbe|ISO 639-3}} * {{språk|lakandonska|lac|ISO 639-3}} * {{språk|lakota|lkt|ISO 639-3}} * {{språk|lao|lo|Wiktionary}} * {{ersättningsspråk|laotiska|använd=''lao''}} * {{språk|latin|la|Wiktionary}} * {{språk|laziska|lzz|ISO 639-3}} * {{språk|lettgalliska|ltg|ISO 639-3}} * {{språk|lettiska|lv|Wiktionary}} * {{ersättningsspråk|letzeburgiska|använd=''luxemburgiska''}} * {{språk|lezginska|lez|ISO 639-3}} * {{språk|liguriska|lij|Wikimedia}} * {{språk|limburgiska|li|Wiktionary}} * {{språk|lingala|ln|Wiktionary}} * {{språk|litauiska|lt|Wiktionary}} * {{språk|liviska|liv|ISO 639-3}} * {{språk|livvi|olo|ISO 639-3}} * {{språk|lojban|jbo|Wiktionary}} * {{språk|lombardiska|lmo|Wikimedia}} * {{språk|luganda|lg|Wikimedia}} * {{språk|lulesamiska|smj|ISO 639-3}} * {{språk|luxemburgiska|lb|Wiktionary}} * {{språk|luhya|luy|ISO 639-3}} * {{ersättningsspråk|låglitauiska|använd=''žemaitiska''}} * {{språk|lågskotska|sco|Wikimedia}} {{?|Diskuteras fortfarande på [[Malldiskussion:sco]]}} * {{språk|lågsorbiska|dsb|Wikimedia}} * {{språk|lågtyska|nds|Wiktionary}} * {{språk|maa|mas|ISO 639-3}} * {{språk|maduresiska|mad|ISO 639-3}} * {{språk|magindanao|mdh|ISO 639-3}} * {{språk|maithili|mai|Wikimedia}} * {{språk|makassariska|mak|ISO 639-3}} * {{språk|makedonska|mk|Wiktionary}} * {{ersättningsspråk|makedoniska|använd=''makedonska''}} * {{språk|malagassiska|mg|Wiktionary}} * {{språk|malajiska|ms|Wiktionary}} * {{språk|malayalam|ml|Wiktionary}} * {{ersättningsspråk|maldiviska|använd=''divehi''}} * {{språk|maltesiska|mt|Wiktionary}} * {{språk|manchu|mnc|ISO 639-3}} * {{ersättningsspråk|mandarin|använd=''kinesiska''|not={{?|Detta borde nog diskuteras.}}}} * {{språk|mansiska|mns|ISO 639-3}} * {{språk|manx|gv|Wiktionary}} * {{språk|maori|mi|Wiktionary}} * {{språk|mapudungun|arn|Wikimedia}} * {{språk|mara|mrh|ISO 639-3}} {{?|Behöver verifieras}} * {{språk|maranao|mrw|ISO 639-3}} * {{språk|marathi|mr|Wiktionary}} * {{språk|marshallesiska|mh|Wiktionary}} * {{ersättningsspråk|massaj|använd=''maa'' med kod "mas"}} * {{språk|mauritisk kreol|mfe|ISO 639-3}} * {{språk|medelengelska|enm|ISO 639-3}} * {{språk|medelfranska|frm|ISO 639-3}} * {{språk|medelhögtyska|gmh|ISO 639-3}} * {{språk|medellågtyska|gml|ISO 639-3}} * {{språk|medelnederländska|dum|ISO 639-3}} * {{språk|medelpersiska|pal|ISO 639-3}} * {{språk|meänkieli|fit|ISO 639-3}} * {{språk|minangkabau|min|Wikimedia}} * {{språk|min nan|zh-min-nan|Wiktionary}} * {{språk|mirandesiska|mwl|ISO 639-3}} * {{språk|miskito|miq|ISO 639-3}} * {{språk|miyako|mvi|ISO 639-3}} * {{språk|moksja|mdf|ISO 639-3}} * {{språk|moldaviska|mo|Wiktionary}} * {{språk|mongoliska|mn|Wiktionary}} * {{ersättningsspråk|mòoré|använd=''mossi''}} * {{ersättningsspråk|morisien|använd=''mauritisk kreol''}} * {{språk|mossi|mos|ISO 639-3}} * {{språk|mykensk grekiska|gmy|ISO 639-3}} * {{språk|nahuatl|nah|Wiktionary}} * {{språk|norfuk|pih|ISO 639-3}} * {{språk|nauruanska|na|Wiktionary}} * {{språk|navajo|nv|Wikimedia}} * {{språk|ndonga|ng|Wikimedia}} * {{språk|neapolitanska|nap|Wikimedia}} * {{språk|nederländska|nl|Wiktionary}} * {{ersättningsspråk|nepalesiska|använd=''nepali''}} * {{språk|nepali|ne|Wiktionary}} * {{språk|ngaju dayak|nij|ISO 639-3}} {{?|Behöver verifieras}} * {{språk|nordamami|ryn|ISO 639-3}} * {{ersättningsspråk|nordkoreanska|använd=''koreanska''}} * {{språk|nordfrisiska|frr|ISO 639-3}} * {{språk|nordkurdiska|kmr|ISO 639-3}} * {{språk|nordndebele|nd|ISO 639-1}} * {{språk|nordsamiska|se|Wikimedia}} * {{språk|normandiska|nrm|Wiktionary}} * {{språk|norn|nrn|ISO 639-3}} * {{ersättningsspråk|norska|använd=''bokmål'' eller ''nynorska''|not=se nedan för härledningar}} * {{språk|novial|nov|Wikimedia}} * [[nubiska]] {{?|språkgrupp, ej språk}} * {{språk|nynorska|nn|Wiktionary}} * {{språk|nyöstsyriska|aii|ISO 639-3}} * {{språk|occitanska|oc|Wiktionary}} * {{språk|ojibwe|oj|ISO 639-1}} {{?|"ojibwe" eller "ojibwa" eller "ojibwaspråk"? se disksidan}} * {{språk|okinawianska|ryu|ISO 639-3}} * {{språk|okinoerabu|okn|ISO 639-3}} * {{språk|oriya|or|Wiktionary}} * {{språk|oromo|om|Wiktionary}} * {{språk|osmanska|ota|ISO 639-3}} * {{språk|ossetiska|os|Wikimedia}} * {{ersättningsspråk|ottomanska|använd=''osmanska''}} * {{språk|palauiska|pau|ISO 639-3}} * {{språk|pali|pi|Wiktionary}} * {{språk|pangasinan|pag|ISO 639-3}} * {{språk|papiamento|pap|Wikimedia}} * {{språk|pashto|ps|Wiktionary}} * {{språk|patwa|jam|ISO 639-3 (och [[incubator:Wp/jam|Wikimedia]]?)}} * {{språk|pennsylvaniatyska|pdc|SIL}} * {{språk|persiska|fa|Wiktionary}} * {{språk|piedmontesiska|pms|Wikimedia}} * {{språk|pikardiska|pcd|Wikimedia}} * {{ersättningsspråk|pilipino|använd=''filipino''}} * {{språk|pitesamiska|sje|ISO 639-3}} * {{språk|pitjantjatjara|pjt|ISO 639-3}} * {{språk|polabiska|pox|ISO 639-3}} * {{språk|polska|pl|Wiktionary}} * {{språk|portugisiska|pt|Wiktionary}} * {{språk|powhatan|pim|ISO 639-3}} * {{språk|preussiska|prg|ISO 639-3}} * {{ersättningsspråk|provensalska|använd=''occitanska''}} * {{språk|punjabi|pa|Wiktionary}} * {{språk|quechua|qu|Wiktionary}} * {{språk|rejang|rej|ISO 639-3}} * {{ersättningsspråk|resanderomani|använd=''svensk romani''}} * {{språk|rohingya|rhg|ISO 639-3}} * {{språk|romani|rom|ISO 639-2}}: egna språkkoder finns hittills för ''[[svensk romani]], [[finsk romani]], [[iberisk romani]]''. * {{språk|rukai|dru|ISO 639-3}} * {{språk|rumänska|ro|Wiktionary}} * {{språk|rusinska|rue|ISO 639-3}} * {{språk|rwanda|rw|Wiktionary}} * {{språk|ryska|ru|Wiktionary}} * {{språk|rätoromanska|rm|Wiktionary}} * {{ersättningsspråk|samiska|använd=''akkalasamiska, enaresamiska, kildinsamiska, lulesamiska, nordsamiska, pitesamiska, skoltsamiska, sydsamiska, tersamiska'' eller ''umesamiska''|not=(se nedan för härledningar)}} * {{språk|samoanska|sm|Wiktionary}} * {{ersättningsspråk|samogitiska|använd=''žemaitiska''}} * {{språk|sango|sg|Wiktionary}} * {{språk|sanskrit|sa|Wiktionary}} * {{språk|sardiska|sc|Wiktionary}} * {{språk|sasak|sas|ISO 639-3}} * {{språk|saterfrisiska|stq|ISO 639-3}} * {{språk|schlesiska|szl|Wikimedia}} * {{språk|schwabiska|swg|ISO 639-3}} * {{språk|selkupiska|sel|ISO 639-3}} * {{språk|sepedi|nso|ISO 639-3}} * {{språk|serbiska|sr|Wiktionary}} * {{ersättningsspråk|serbokroatiska|använd=''serbiska'' eller ''kroatiska''}} * {{språk|sesotho|st|Wiktionary}} * {{språk|shan|shn|Wiktionary}} * {{språk|shauraseni|psu|ISO 639-3}} * {{språk|shetländska|scz|ISO 639-3}} * {{språk|shona|sn|Wiktionary}} * {{ersättningsspråk|siamesiska|använd=''thai''}} * {{språk|sicilianska|scn|Wiktionary}} * {{språk|sidamo|sid|ISO 639-3}} * {{språk|sindhi|sd|Wiktionary}} * {{språk|singalesiska|si|Wiktionary}} * {{språk|siswati|ss|Wiktionary}} * {{språk|sjoriska|cjs|ISO 639-3}} * {{ersättningsspråk|skandoromani|använd=''svensk romani''}} * {{språk|skoltsamiska|sms|ISO 639-3}} * {{ersättningsspråk|skotska|använd=''lågskotska'' ''(eller engelska med taggen skotsk engelska om dialekten avses)''}} * {{ersättningsspråk|skotsk gaeliska|använd=''skotsk gäliska''}} * {{språk|skotsk gäliska|gd|Wiktionary}} * {{språk|slovakiska|sk|Wiktionary}} * {{språk|slovenska|sl|Wiktionary}} * {{språk|somaliska|so|Wiktionary}} * {{ersättningsspråk|sorani|använd=''centralkurdiska''}} * {{ersättningsspråk|sranan|använd=''surinamesiska''}} * {{språk|spanska|es|Wiktionary}} * {{språk|slovakiska|sk|Wiktionary}} * {{språk|sumeriska|sux|ISO 639-3}} * {{språk|sundanesiska|su|Wiktionary}} * {{språk|surigaonon|sul|ISO 639-3}} {{?|Behöver verifieras}} * {{språk|surinamesiska|srn|ISO 639-3}} * {{språk|svanetiska|sva|ISO 639-3}} * {{språk|svenska|sv|[[Wiktionary:Huvudsida|Wiktionary]]}} * {{språk|svensk romani|rmu|ISO 639-3}} * {{språk|svenskt teckenspråk|swl|ISO 639-3}} * {{språk|swahili|sw|Wiktionary}} * {{språk|sydamami|ams|ISO 639-3}} * {{språk|sydazerbajdzjanska|azb|ISO 639-3}} {{?|Behöver verifieras}} * {{ersättningsspråk|sydkoreanska|använd=''koreanska''}} * {{språk|sydkurdiska|sdh|ISO 639-3}} {{?|kurdiska eller syd-/nordkurdiska är frågan, se diskussion}} * {{språk|sydndebele|nr|ISO 639-1}} * {{språk|sydsamiska|sma|ISO 639-3}} * {{ersättningsspråk|syriska|använd=''klassisk syriska'' eller ''nyöstsyriska''}} * {{språk|tadzjikiska|tg|Wiktionary}} * {{ersättningsspråk|tadjikiska|använd=''tadzjikiska''}} * {{språk|tagalog|tl|Wiktionary}} * {{språk|tahitiska|ty|Wikimedia}} * {{språk|tai lü|khb|ISO 639-3}} * {{språk|tamil|ta|Wiktionary}} * {{språk|tatariska|tt|Wiktionary}} * {{språk|tausug|tsg|ISO 639-3}} * {{språk|telugu|te|Wiktionary}} * {{språk|teop|tio|ISO 639-3}} * {{språk|tersamiska|sjt|ISO 639-3}} * {{språk|tetum|tet|ISO 639-3}} * {{språk|thai|th|Wiktionary}} * {{ersättningsspråk|thailändska|använd=''thai''}} * {{språk|tibetanska|bo|Wiktionary}} * {{språk|tigre|tig|Wikimedia}} * {{språk|tigrinska|ti|Wiktionary}} * {{språk|tiwi|tiw|ISO 639-1}} * {{språk|tjeckiska|cs|Wiktionary}} * {{språk|tjetjenska|ce|ISO 639-1}} * {{språk|tjuktjiska|ckt|ISO 639-3}} * {{språk|tjuvasjiska|cv|ISO 639-1}} * {{språk|tlingit|tli|ISO 639-1}} * {{språk|toba batak|bbc|ISO 639-3}} * {{språk|tok pisin|tpi|Wiktionary}} * {{språk|tokunoshima|tkn|ISO 639-3}} * {{språk|tonganska|to|Wiktionary}} * {{ersättningsspråk|tornedalsfinska|använd=''meänkieli''}} * {{språk|tsonga|ts|Wiktionary}} * {{språk|tswana|tn|Wiktionary}} * {{språk|tumbuka|tum|Wikimedia}} * {{språk|tupinambá|tpn|ISO 639-3}} * {{språk|turkiska|tr|Wiktionary}} * {{språk|turkmeniska|tk|Wiktionary}} * {{språk|tuvinska|tyv|ISO 639-3}} * {{språk|twi|tw|Wiktionary}} * {{språk|tyska|de|Wiktionary}} * {{språk|udmurtiska|udm|Wikimedia}} * {{språk|ugaritiska|uga|ISO 639-3}} * {{språk|uiguriska|ug|Wiktionary}} * {{språk|ukrainska|uk|Wiktionary}} * {{språk|umesamiska|sju|ISO 639-3}} * {{språk|ungerska|hu|Wiktionary}} * {{språk|uralbanska|sqj-usq|ISO 639-5 / konstruerad}} * {{språk|urdu|ur|Wiktionary}} * {{språk|urgermanska|gem-ugm|ISO 639-5 / konstruerad}} * {{språk|urnordiska|gem-uno|ISO 639-5 / konstruerad}} * {{språk|urindoariska|inc-uia|ISO 639-5 / konstruerad}} * {{språk|urindoeuropeiska|ine-uie|ISO 639-5 / konstruerad}} * {{språk|urindoiranska|iir-uir|ISO 639-5 / konstruerad}} * {{språk|uriranska|ira-uir|ISO 639-5 / konstruerad}} * {{språk|uritaliska|itc-uit|ISO 639-5 / konstruerad}} * {{språk|urkeltiska|cel-uce|ISO 639-5 / konstruerad}} * {{språk|ursamiska|smi-usm|ISO 639-2 / konstruerad}} * {{språk|ursemitiska|sem-use|ISO 639-5 / konstruerad}} * {{språk|urslaviska|sla-usl|ISO 639-5 / konstruerad}} * {{språk|urturkiska|trk-utr|ISO 639-5 / konstruerad}} * {{språk|uröstersjöfinska|fiu-ufi|ISO 639-5 / konstruerad}} * {{språk|uzbekiska|uz|Wiktionary}} * {{språk|vallonska|wa|Wiktionary}} * {{språk|venda|ve|Wikipedia}} * {{språk|venetianska|vec|Wikimedia}} * {{språk|vepsiska|vep|ISO 639-3}} * {{språk|vietnamesiska|vi|Wiktionary}} * {{språk|vilamoviska|wym|ISO 639-3}} * {{ersättningsspråk|vitryska|använd=''belarusiska''}} * {{språk|volapük|vo|Wiktionary}} * {{ersättningsspråk|volapyk|använd=''volapük''}} * {{språk|võro|fiu-vro|Wikimedia}} * {{språk|votiska|vot|ISO 639-3}} * {{ersättningsspråk|västflamländska|använd=''nederländska'' med dialekttagg}} * {{språk|västmariska|mrj|Wikimedia}} * {{språk|västpanjabi|pnb|Wikimedia}} {{?|Västpanjabi eller lahnda?}} * {{ersättningsspråk|walesiska|använd=''kymriska''}} * {{språk|walliska|wls|ISO 639-3}} * {{språk|waray-waray|war|Wikimedia}} * {{språk|wolof|wo|Wiktionary}} * {{ersättningsspråk|wymysöriska|använd=''vilamoviska''}} * {{språk|xhosa|xh|Wiktionary}} * {{språk|yaeyama|rys|ISO 639-3}} * {{språk|yankunytjatjara|kdd|ISO 639-3}} * {{språk|yi|ii|Wikimedia}} * {{språk|yonaguni|yoi|ISO 639-3}} * {{språk|yoron|yox|ISO 639-3}} * {{språk|yoruba|yo|Wiktionary}} * {{språk|yukatekiska|yua|ISO 639-3}} * {{språk|zarma|dje|ISO 639-3}} * {{ersättningsspråk|zaza|använd=''zazaiska''}} * {{språk|zazaiska|diq|Wikimedia}} * {{ersättningsspråk|zazaki|använd=''zazaiska''}} * {{språk|zeeländska|zea|ISO 639-3}} * {{språk|žemaitiska|sgs|ISO 639-3}} * {{språk|zhuang|za|Wiktionary}} * {{språk|zulu|zu|Wiktionary}} * {{språk|älvdalska|ovd|ISO 639-3}} * {{språk|östmariska|mhr|Wikimedia}} {{kolumner-slut}} {{botten}} Språkkoder och namn på språk samt antal huvuduppslag finns också på sidan [[Wiktionary:Alla språk och koder med antal huvuduppslag]]. == Språkkoder reserverade för etymologi == Dessa koder bör användas enbart i {{mall|härledning}}. * {{språk|e=onlyetym|norska|h-nor|ISO 639-5|not=aktuell norska (bokmål + nynorsk), detta till skillnad från "non" för fornnordiska}} * {{språk|e=onlyetym|samiska|h-smi|ISO 639-5|not=aktuell samiska (11 dialekter), detta till skillnad från "smi-usm" för ursamiska}} * {{språk|e=onlyetym|taino|tnq|ISO 639-3|not=utdött språk som talades i Karibien på bland annat Kuba, Jamaica och Haiti}} == Lägg till nytt språk == # Lägg till språket i [[Modul:lang/data]] på samma sätt som befintliga språk. Tänk på att: #:...i första hand använda [[Special:SiteMatrix|Wikimedias språkkoder]] för det aktuella språket. #:...i andra hand använda ISO 639-koder i följande ordning: ISO 639-1, ISO 639-3, ISO 639-2(/T) så som presenteras på [https://iso639-3.sil.org/ https://iso639-3.sil.org/]. #:...som källa för språkkoden anges ''Wiktionary'' om en Wiktionaryupplaga finns på det aktuella språket. Detta för att kunna länka till den Wiktionaryupplagan på det språket. Om språket saknar Wiktionaryupplaga men har en språkupplaga av ett annat projekt (såsom Wikipedia) anges ''Wikimedia''. I övriga fall anges den ISO 639 som koden är hämtad ifrån. Ange bara ISO 639-2 om ISO 639-3 för det aktuella språket saknas. # Lägg till <code><nowiki>* {{språk|språknamn|språkkod|källa}}</nowiki></code> på sidan [[Wiktionary:Stilguide/Språknamn]] (här) # (Frivilligt) Skapa associerade kategorier, såsom <code>Kategori:Språknamn</code> och <code>Kategori:Språknamn/Alla uppslag</code> # (Frivilligt) (Endast administratörer) Uppdatera data som används av finesser på [[Wiktionary:Finesser/Uppdatera data]] ==Underspråk och språkvarianter== ;Detta avsnitt är tänkt att ge information om hur olika underspråk och språkvarianter hanteras i artiklar *Engelska :<nowiki>{{tagg}}</nowiki>-mallar för ord som inte är gemensamma för amerikansk och brittisk engelska, eller som används i andra områden: :*amerikansk engelska, om ordet är specifikt för USA. :*australisk engelska, om ordet är specifikt för Australien. :*brittisk engelska, om ordet är specifikt för Storbritannien. :*skotsk engelska, om ordet är specifikt för Skottland. (jämför lågskotska) :*<...> engelska, om ordet är specifikt för annat område *Koreanska, om ordet är samma både i Nord- och Sydkorea :<nowiki>{{tagg}}</nowiki>-mallar för ord som inte är gemensamma i Nordkorea och i Sydkorea: :*nordkoreanska :*sydkoreanska *Portugisiska, om ordet är samma i både Brasilien och Portugal :<nowiki>{{tagg}}</nowiki>-mallar för ord som inte är gemensamma i Afrika, Brasilien och i Portugal: :*afrikansk portugisiska :*brasiliansk portugisiska :*portugisisk portugisiska [[Kategori:Stilguide|Språknamn]] 7t6kqr7xdpiqdlfyx5mdw4cyx4t2a0r oj 0 5030 4157286 4102549 2026-10-24T01:24:14Z Frodlekis 762 4157286 wikitext text/x-wiki ==Svenska== ===Interjektion=== {{interj|sv}} '''oj''' *{{uttal|sv|enkel=ˈåjː|ipa=ˈɔjː}} #uttrycker [[förvåning]] #:'''''Oj''', vad snabbt det gick!'' #:{{synonymer|[[hoppsan]], [[ojdå]]}} #:{{besläktade ord|[[oja]] sig}} ====Översättningar==== {{ö-topp|uttryck av förvåning}} *bokmål: {{ö|no|oi}} *central bikol: {{ö|bcl|palán}} *engelska: {{ö+|en|oh}}, {{ö+|en|blimey}}, {{ö+|en|whoa}}, {{ö+|en|oops}}, {{ö+|en|cor}}, {{ö+|en|wow}} *polska: {{ö+|pl|oj}} *ryska: {{ö+|ru|ой}} *älvdalska: {{ö|ovd|oj}} {{ö-botten}} af3n07fhzjdyoh6c5zirz618idsk9kt penis 0 5108 4157327 4155692 2026-10-24T01:44:36Z Frodlekis 762 4157327 wikitext text/x-wiki {{wikipedia}} {{se även|Penis|pénis|pênis}} ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} '''penis''' #{{tagg|fysiologi|kat=anatomi}} ett av mannens yttre [[könsorgan]], vilket är beläget mellan benen och som hos mannen innehåller [[urinrör]]ets mynning och dessutom innehåller [[erektil]] vävnad som gör penis styv så att organet vid [[samlag]] kan föras in i kvinnans [[slida]] ([[vagina]]) och vid [[utlösning]] ([[ejakulation]]) föra [[sperma]] in i de kvinnliga könsvägarna, vilket kan leda till [[befruktning]] av en [[äggcell]], vilket är första steget i [[fortplantning]]en #:{{hyperonymer|[[könsorgan]]}} #:{{grammatik|I bestämd form förekommer det även att ordet skrivs utan slutartikel (”[Älgen] hade saknat scrotum, och penis hade haft ett läge ungefär halvvägs mellan det normala och anus, sålunda vettande bakåt.” [https://runeberg.org/faunaflora/1930/0060.html Fauna och Flora]).}} #:{{användning|Denna term är den medicinska och den mest neutrala benämningen på mannens könsorgan.}} #:{{diverse|Ordet reduceras från "penis" till "pen" i vissa sammansättningar.}} #:{{synonymer|[[balle]] ''(vardagligt, slang)'', [[dase]] ''(slang)'', [[dingeling]] ''(vardagligt, slang)'', [[dolme]] ''(vardagligt, slang)'', [[donge]] ''(slang)'', [[drule]] ''(slang)'', [[familjelycka]] ''(vardagligt)'', [[fläsksvärd]] ''(vardagligt)'', [[frodlem]] ''(ålderdomligt)'', [[frälsarstav]] ''(slang)'', [[kuk]] ''(slang, vulgärt)'', [[kärleksstav]], [[köttflöjt]] ''(vulgärt)'', [[köttklubba]] ''(vulgärt)'', [[köttspjut]] ''(vulgärt)'', [[manslem]] ''(vardagligt)'', [[petterniklas]] ''(vardagligt, slang)'', [[pick]] ''(vardagligt, slang)'', [[pille]] ''(vardagligt)'', [[pillesnopp]] ''(barnspråk)'', [[pillesnorre]] ''(slang)'', [[pillevink]] ''(barnspråk)'', [[pitt]] ''(vardagligt, slang)'', [[skinnspik]] ''(slang)'', [[snopp]] ''(vardagligt)'', [[snorre]] ''(vardagligt, slang)'', [[task]] ''(vardagligt)'', [[veke]] ''(vardagligt)'', [[åderpåle]] ''(vardagligt)''}} #:{{sammansättningar|[[löspenis]], [[mikropenis]], [[penisattrapp]], [[penisfodral]], [[penisfraktur]], [[penisförlängare]], [[penisförlängning]], [[penisskaft]]}} #:{{besläktade ord|[[penektomi]]}} ====Översättningar==== {{ö-topp|det manliga könsorganet}} *afrikaans: {{ö+|af|penis}} *alemanniska: {{ö|als|Penis}} *arabiska: {{ö|ar|قَضِيب|m|tr=qaḍīb}}, {{ö+|ar|ذَكَر|m|tr=ḏakar}} *aragonska: {{ö|an|pene}} *asturiska: {{ö+|ast|pene|m}} *azerbajdzjanska: {{ö+|az|penis}} *baskiska: {{ö+|eu|zakil}} *bayerska: {{ö|bar|Schwanz}} *bokmål: {{ö+|no|penis}} *bosniska: {{ö+|bs|penis}} *central bikol: {{ö|bcl|putoy}} *danska: {{ö+|da|penis}} *engelska: {{ö+|en|penis}} *esperanto: {{ö|eo|peniso}} *finska: {{ö+|fi|penis}}, {{ö+|fi|siitin}} *franska: {{ö+|fr|pénis|m}} *frisiska: {{ö|fy|penis}} *galiciska: {{ö+|gl|pene|m}} *grekiska: {{ö+|el|πέος|n}} (péos) *indonesiska: {{ö+|id|penis}}, {{ö+|id|zakar}}, {{ö+|id|kontol|not=vulgärt}} *isländska: {{ö+|is|getnaðarlimur|m}}, {{ö|is|reður|m}}, {{ö|is|tippi|n}}, {{ö|is|böllur|m}} *italienska: {{ö+|it|pene|m}} *kroatiska: {{ö+|hr|penis|m}} *lakota: {{ö|lkt|čhé}} *lulesamiska: {{ö|smj|buohtja}} *malagassiska: {{ö+|mg|lataka}} *manx: {{ö|gv|bwoid}} *maori: {{ö|mi|ure}} *nederländska: {{ö+|nl|penis|m}} *polska: {{ö+|pl|penis|m}} *portugisiska: {{ö+|pt|pênis}}, {{ö+|pt|pénis|m}} *rumänska: {{ö+|ro|penis|n}} *slovenska: {{ö+|sl|penis}} *spanska: {{ö+|es|pene|m}} *sydsamiska: {{ö|sma|boetje}} *tjeckiska: {{ö+|cs|penis|m}} *turkiska: {{ö+|tr|penis}} *tyska: {{ö+|de|Penis|m}}, {{ö+|de|Glied|n}} *ugaritiska: {{ö|uga|𐎜𐎌𐎗}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''penis''' #{{tagg|anatomi|språk=af}} [[#Svenska|penis]] ==Bokmål== ===Substantiv=== {{subst|no}} '''penis''' #{{tagg|anatomi|kat=anatomi|språk=no}} [[#Svenska|penis]] ==Bosniska== ===Substantiv=== {{subst|bs}} '''penis''' #{{tagg|anatomi|språk=bs}} [[#Svenska|penis]] ==Danska== ===Substantiv=== {{da-subst-n|penis|penissen|penisser|penisserne|penis}} '''penis''' {{u}} #{{tagg|anatomi|språk=da}} [[#Svenska|penis]] ==Engelska== ===Substantiv=== {{en-subst|2=[[penises]], [[penes]], [[penii]]|4=[[penises']], [[penes']], [[penii's]]}} '''penis''' *{{uttal|en|ipa=ˈpiːnɪs|ljud=En-us-penis.ogg}} #{{tagg|anatomi|språk=en}} [[#Svenska|penis]] #:{{synonymer|[[male member]], [[membrum virile]] ''(latin)'', [[phallus]], [[pizzle]] ''(brittiska, australienska, om djur, särskilt tjur)'', [[virile member]], [[boner]] ''(erigerad)'', [[cock]], [[dick]], [[ding-a-ling]], [[ding-dong]], [[dingy]] ''(barnspråk)'', [[dong]], [[dork]], [[johnson]], [[John Thomas]], [[joystick]], [[knob]] ''(brittiska)'', [[lad]] ''(irländska)'', [[love muscle]], [[love truncheon]], [[male rod]], [[manhood]], [[member]], [[organ]], [[package]], [[pecker]], [[peen]], [[pee-pee]] ''(barnspråk)'', [[pee-wee]] ''(barnspråk)'', [[peter]], [[piece]], [[pocket rocket]], [[prick]], [[pud]], [[schlong]], [[shaft]], [[shlong]], [[skin flute]], [[todger]] ''(brittiska, australienska)'', [[tool]], [[unit]], [[wang]], [[weapon]], [[wee-wee]] ''(barnspråk)'', [[wiener]] ''(barnspråk)'', [[willie]]}} #:{{antonymer|[[vagina]]}} #:{{meronymer|[[glans]]}} #:{{besläktade ord|[[penectomy]], [[penile]]}} #:{{fraser|[[glans penis]], [[penis envy]], [[penis transplant]], [[penis worm]]}} #:{{diverse|Latinska pluralformen ''[[penii]]'' används här och där i modern engelska. Ordet reduceras från "penis" till "pen" i vissa sammansättningar.}} ==Esperanto== ===Verb=== '''penis''' #{{böjning|eo|verb|peni}} ==Finska== ===Substantiv=== {{subst|fi}} '''penis''' #{{tagg|anatomi|språk=fi}} [[#Svenska|penis]] #:{{seäven|[[siitin]]}} ==Frisiska== ===Substantiv=== {{subst|fy}} '''penis''' *{{uttal|fy|ipa=ˈpe:nəs}} #{{tagg|anatomi|språk=fy}} [[#Svenska|penis]] #:{{synonymer|[[lid]], [[pyst]]}} ==Indonesiska== ===Substantiv=== {{subst|id}} '''penis''' #{{tagg|anatomi|språk=id}} [[#Svenska|penis]] #:{{synonymer|[[zakar]], [[kontol]] ''(vulgärt)''}} #:{{fraser|[[glans penis]], [[kanker penis]], [[kepala penis]]}} ==Katalanska== ===Substantiv=== {{subst|ca}} '''penis''' {{m}} *{{uttal|ca|ipa=ˈpɛ.nis}} #{{tagg|anatomi|språk=ca}} [[#Svenska|penis]] #:{{synonymer|[[carall]] ''(vulgärt)'', [[cigala]], [[cuca]] ''(vardagligt)'', [[fal·lus]], [[membre]], [[pardal]], [[piu]], [[pixa]] ''(vulgärt)'', [[quirra]], [[tita]], [[titola]], [[verga]]}} ==Nederländska== ===Substantiv=== {{subst|nl}} '''penis''' #{{tagg|anatomi|språk=nl}} [[#Svenska|penis]] ==Polska== ===Substantiv=== {{pl-subst-m|penis|penisy|penisa|penisów|penisowi|penisom|[[penis]], [[penisa]]|penisy|penisem|penisami|penisie|penisach|penisie|penisy}} '''penis''' {{m}} *{{uttal|pl|ipa=ˈpɛɲis̪/|ljud=Pl-penis.ogg}} #{{tagg|anatomi|språk=pl}} [[#Svenska|penis]] #:{{synonymer|[[chuj]] ''(slang)'', [[członek]], [[kutas]] ''(slang)'', [[fallus]], [[fiut]] ''(slang)'', [[lacha]] ''(slang)'', [[pała]] ''(slang)'', [[prącie]], [[kapucyn]] ''(slang)'', [[wacek]], [[laga]], [[siusiak]], [[pindol]], [[kuśka]]}} ==Rumänska== ===Substantiv=== {{subst|ro}} '''penis''' {{n}} #{{tagg|anatomi|språk=ro}} [[#Svenska|penis]] #:{{synonymer|[[miel]] ''(slang)'', [[pulă]] ''(vulgärt, slang)'', [[puţă]] ''(slang)'', [[sculă]] ''(slang)''}} fitta ==Tjeckiska== ===Substantiv=== {{subst|cs}} '''penis''' {{m}} #{{tagg|anatomi|språk=cs}} [[#Svenska|penis]] #:{{synonymer|[[pyj]]}} ==Turkiska== ===Substantiv=== {{tr-subst-k}} '''penis''' #{{tagg|anatomi|språk=tr}} [[#Svenska|penis]] #:{{antonymer|vulva}} #:{{synonymer|[[kamış]], [[sik]]}} #:{{hyperonymer|[[cinsî organ]], [[cinsel organ]]}} 50myotuq77s9p87zml0mzt3f3kbxh3f örn 0 5192 4157116 3952010 2026-10-23T15:07:10Z ~2026-56702-21 62364 +yi: [[אָדלער]] (assisterat) 4157116 wikitext text/x-wiki {{se även|Örn}} ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} {{media|Aguila-calva - Bald-Eagle - Haliaeetus-leucocephalus.jpg|örn (fågel)}} {{media|Coat of arms of Germany.svg|örn (heraldik)}} '''örn''' #{{tagg|zoologi|kat=fåglar}} vardagligt samlingsnamn för en grupp större [[rovfågel|rovfåglar]] inom familjen [[hökfågel|hökfåglar]] #{{tagg|heraldik}} [[beståndsdel]] av [[vapen]] eller [[flagga|flaggor]] {{?|som föreställer en örn (1)?}} :{{avgränsare}} :{{etymologi|Runsvenska ''ærni'' ('''arni''', dativ singularis), {{härledning|sv|gmq-fsv|ørn}}, fornisländska ''ǫrn'' (nominativ pluralis ''ernir''), nyisländska ''örn'', fornengelska ''earn'', engelska ''erne'', fornsaxiska och fornhögtyska ''arn'', medellågtyska ''arent'', nederländska ''arend'', av urgermanska ''[[*arnu-]]''. Besläktat med tyska ''[[Aar]]'', fornhögtyska och fornsaxiska ''aro'', gotiska ''ara'' fornisländska ''ari'', av ett urgermanskt ''[[*aran-]]''. Återfinns även i germanska namn som [[Arnold]] and [[Arthur]]. Ytterst av urindoeuropeiska ''[[*h₃er-]]'', varav även grekiska ''[[ὄρνις]]'' (varav [[ornitolog]]), ’fågel’, armeniska ''oror'', ’mås’, forniriska ''irar'' (iriska ''iolar''), litauiska ''[[erēlis]]'', ryska ''[[орёл]]''.<ref>{{källa-etymonline|erne|datum=2017-05-24}}</ref><ref>http://en.wiktionary.org/wiki/earn</ref>}} :{{sammansättningar|[[dubbelörn]], [[havsörn]], [[kungsörn]], [[örnbo]], [[örnnäsa]], [[örnnäste]], [[örnunge]], [[örnvråk]]}} ====Översättningar==== {{ö-topp|rovfågel}} *afrikaans: {{ö+|af|arend}}, {{ö|af|adelaar}} *albanska: {{ö|sq|shqiponja}} *armeniska: {{ö+|hy|արծիվ}} (artsiv) *baskiska: {{ö+|eu|arrano}} *belarusiska: {{ö|be|арол|m}} *bokmål: {{ö+|no|ørn|f}} *bretonska: {{ö+|br|erer|m}} *bulgariska: {{ö+|bg|оре́л|m}} *cherokesiska: {{ö|chr|ᎠᏩᎯᎵ}} (awahili) *danska: {{ö+|da|ørn}} *engelska: {{ö+|en|eagle}} *esperanto: {{ö+|eo|aglo}} *estniska: {{ö+|et|kotkas}} *finska: {{ö+|fi|kotka}} *fornengelska: {{ö|ang|earn}} *franska: {{ö+|fr|aigle|m}} *färöiska: {{ö|fo|ørn}} *georgiska: {{ö+|ka|არწივი}} (artsivi) *indonesiska: {{ö+|id|elang}} *isländska: {{ö+|is|örn|m}} *italienska: {{ö+|it|aquila}} *japanska: {{ö+|ja|鷲|tr=わし, ''washi''}} *jiddisch: {{ö|yi|אָדלער|m|tr=odler}} *koptiska: {{ö|cop|ⲁϧⲱⲙ|tr=àxōm}} *korniska: {{ö|kw|er|m}} *kymriska: {{ö+|cy|eryr|m}} *latin: {{ö+|la|aquila|f}} *litauiska: {{ö+|lt|aras|m}}, {{ö+|lt|erelis|m}} *makedonska: {{ö|mk|орел|m}} *mirandesiska: {{ö|mwl|águila|f}}, {{ö|mwl|aila|f}} *nederländska: {{ö+|nl|adelaar}}, {{ö+|nl|arend|m}} *nynorska: {{ö|nn|ørn|f}} *persiska: {{ö+|fa|عقاب}} *polska: {{ö+|pl|orzeł}} *portugisiska: {{ö+|pt|águia|f}} *rumänska: {{ö+|ro|vultur}} *ryska: {{ö+|ru|орёл}} *sanskrit: {{ö+|sa|गरुडः}} (garuḍaḥ) *slovakiska: {{ö+|sk|orol}} *spanska: {{ö+|es|águila|f}} *sydsamiska: {{ö|sma|aarhtse}} *tjeckiska: {{ö+|cs|orel|m}} *turkiska: {{ö+|tr|kartal}} *tyska: {{ö+|de|Adler|m}} *ukrainska: {{ö+|uk|орел|m}} (orel) *ungerska: {{ö+|hu|sas}} {{ö-botten}} {{ö-topp|heraldik}} *engelska: {{ö+|en|eagle}} *italienska: {{ö+|it|aquila|f}} *nederländska: {{ö+|nl|adelaar|m}} *spanska: {{ö+|es|águila|f}} *tyska: {{ö+|de|Adler|m}} {{ö-botten}} ==Isländska== ===Substantiv=== {{is-subst|genus=maskulinum|örn|örninn|ernir|ernirnir|örn|örninn|erni|ernina|erni|erninum|örnum|örnunum|arnar|arnarins|arna|arnanna}} '''örn''' {{m}} #{{tagg|kat=fåglar|språk=is}} [[örn#Svenska|örn]] ==Källor== <references/> 5r7o2l2kg8foo1omgaiuyhfrm9a3y0i Tyskland 0 7968 4157326 4084873 2026-10-24T01:44:17Z Frodlekis 762 4157326 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} {{media|Flag_of_Germany.svg|Tysklands [[flagga]]}} '''[[tysk|Tysk]][[land]]''' #{{tagg|kat=länder}} en [[stat]] i västra Europa; officiellt namn: [[Förbundsrepubliken Tyskland]] #:'''''Tyskland''' har haft många framgångar vad gäller biltillverkning.'' #:{{sammansättningar|[[Nordtyskland]], [[Sydtyskland]], [[Västtyskland]], [[Östtyskland]]}} ====Översättningar==== {{ö-topp}} *abchaziska: {{ö|ab|Алмантәыла|tr=Ālmānṭ°əlā}} *abenakiska: {{ö|abe|Alemônki}} *acehnesiska: {{ö|ace|Jeureuman}} *afrikaans: {{ö+|af|Duitsland}} *albanska: {{ö+|sq|Gjermania|f}} *alemanniska: {{ö|als|Dytschland|n}} *amhariska: {{ö|am|ጀርመን|tr=ǧärmän}} *arabiska: {{ö+|ar|أَلْمَانِيَا|tr=ʾalmāniyā|f}} *aragonska: {{ö|an|Alemanya}} *armeniska: {{ö+|hy|Գերմանիա}} (Germania) *arumänska: {{ö|roa-rup|Ghermãnia}} *assamesiska: {{ö|as|জাৰ্মানী}} *asturiska: {{ö+|ast|Alemaña}} *avariska: {{ö|av|Алмания|tr=Almanija}} *aymara: {{ö|ay|Alimaña}} *azerbajdzjanska: {{ö+|az|Almaniya}} *bambara: {{ö|bm|Alimaɲi}} *basjkiriska: {{ö|ba|Германия|tr=Germaniya}} *baskiska: {{ö+|eu|Alemania}} *bayerska: {{ö|bar|Deitschland|n}} *belarusiska: {{ö|be|Герма́нія|tr=Hjermánija|f}}, {{ö|be|Няме́ччына|f|tr=Njamjéččyna}} *bengali: {{ö+|bn|জার্মানি|tr=jarmani}} *bishnupriya manipuri: {{ö|bpy|জার্মানি}} *bislama: {{ö|bi|Jemani}} *bosniska: {{ö+|bs|Njemačka|f}} *bretonska: {{ö+|br|Alamagn}} *bokmål: {{ö+|no|Tyskland|n}} *buginesiska: {{ö|bug|Jerman}} *bulgariska: {{ö+|bg|Герма́ния|f|tr=Germánija}} *burmesiska: {{ö|my|ဂျာမနီ|tr=gyama.ni}} *central bikol: {{ö|bcl|Alemanya}} *cherokesiska: {{ö+|chr|ᎠᏛᏥ|tr=advtsi}} *chuukesiska: {{ö|chk|Toowis}}, {{ö|chk|Ttooyis}}, {{ö|chk|Séémén}} *danska: {{ö+|da|Tyskland}} *divehi: {{ö|dv|ޖަރުމަނުވިލާތް|tr=jarumanuvilāt}} *dzongkha: {{ö|dz|ཇཱར་མ་ནི|tr=jār ma ni}} *engelska: {{ö+|en|Germany}} *esperanto: {{ö+|eo|Germanio}}, {{ö+|eo|Germanujo}} *estniska: {{ö+|et|Saksamaa}} *extremaduriska: {{ö|ext|Alemaña}} *finska: {{ö+|fi|Saksa}} *fornengelska: {{ö|ang|Þēodiscland}} *fornfranska: {{ö|fro|Alemaigne|f}} *fornkyrkoslaviska: {{ö|cu|Нѣмьци|p|tr=Němĭci}} *fornoccitanska: {{ö|pro|Alamagna}} *franska: {{ö+|fr|Allemagne|f}} *frisiska: {{ö+|fy|Dútslân|n}} *friuliska: {{ö|fur|Gjermanie|f}} *futuniska: {{ö|fud|Siamani}} *färöiska: {{ö+|fo|Týskland|n}} *galiciska: {{ö+|gl|Alemaña|f}} *georgiska: {{ö+|ka|გერმანია|tr=germania}} *gotiska: {{ö|got|𐌲𐌰𐌹𐍂𐌼𐌰𐌽𐌾𐌰|tr=gairmanja}} *grekiska: {{ö+|el|Γερμανία|f}} (Germanía) *grönländska: {{ö+|kl|Tyskit Nunaat}} *guaraní: {{ö|gn|Alemaña}} *haitisk kreol: {{ö|ht|Alemay}} *hausa: {{ö|ha|Jāmùs|f}} *hawaiiska: {{ö|haw|Kelemānia}}, {{ö|haw|Koekelana}} *hebreiska: {{ö+|he|גֶּרְמַנְיָה|f}} (germánya) *hindi: {{ö+|hi|जर्मनी|m|tr=jarmanī}} *högsorbiska: {{ö+|hsb|Němska|f}} *ido: {{ö+|io|Germania}} *igbo: {{ö|ig|Jémanị}} *ilokano: {{ö|ilo|Alemania}} *indonesiska: {{ö+|id|Jerman}} *interlingua: {{ö+|ia|Germania}} *interlingue: {{ö|ie|Germania}} *inuktitut: {{ö|iu|ᔮᒪᓂ}} *iriska: {{ö+|ga|Gearmáin|f|text=an Ghearmáin}} *isländska: {{ö+|is|Þýskaland|n}} *italienska: {{ö+|it|Germania|f}} *japanska: {{ö+|ja|ドイツ}} (Doitsu) *javanesiska: {{ö+|jv|Jerman}} *jiddisch: {{ö|yi|דײַטשלאַנד|n|tr=daytshland}} *kabyliska: {{ö|kab|Lalman}} *kannada: {{ö+|kn|ಜರ್ಮನಿ|tr=jarmani}} *karakalpakiska: {{ö|kaa|Germaniya}} *kasjubiska: {{ö+|csb|Miemieckô}} *katalanska: {{ö+|ca|Alemanya}}, {{ö+|ca|Alemània|f}} *kazakiska: {{ö|kk|Германия|tr=Germanïya}} *khmer: {{ö+|km|អាល្លឺម៉ង់}} (āllīmang) *kinesiska: {{ö+|zh|德国}} (déguó), {{ö+|zh|德意志}} (déyìzhì) *kirgiziska: {{ö+|ky|Германия|tr=Germaniya}} *koreanska: {{ö+|ko|독일}} (dogil), {{ö|ko|독일국}} (dok-il-guk), {{ö+|ko|도이췰란드|tr=Doichwillandeu|not=Nordkorea}} *korniska: {{ö+|kw|Almayn}} *korsikanska: {{ö|co|Ghjermania}}, {{ö|co|Germania}} *krimtatariska: {{ö|crh|Almaniya}} *kroatiska: {{ö+|hr|Njemačka|f}} *kurdiska: {{ö+|ku|Almanya}} *kvänska: {{ö|fkv|Tuiska}} *kymriska: {{ö+|cy|Almaen|f|text=Yr Almaen}} *ladino: {{ö|lad|Almania}} *lao: {{ö+|lo|ເຢຍລະມັນ}} (yīa la man), {{ö|lo|ເຢັຽລະມັນ|tr=yīa la man}}, {{ö|lo|ເຢຍຣະມັນ|tr=yīa ra man}}, {{ö|lo|ເຢັຍຣະມັນ|tr=yia ra man}} *latin: {{ö+|la|Germānia|f}} *lettgalliska: {{ö|ltg|Vuoceja|f}} *lettiska: {{ö+|lv|Vācija|f}} *lezginska: {{ö|lez|Германия|tr=Germaniä}} *liguriska: {{ö|lij|Germania|f}} *limburgiska: {{ö|li|Duutsjlandj}}, {{ö|li|Duutsland}} *lingala: {{ö|ln|Alémani}} *litauiska: {{ö+|lt|Vokietija|f}} *liviska: {{ö|liv|Saksāmō}} *lombardiska: {{ö|lmo|Germania}} *luganda: {{ö|lg|Girimane}} *luhya: {{ö|luy|Jamani}} *luxemburgiska: {{ö+|lb|Däitschland|n}} *lågsorbiska: {{ö|dsb|Nimska|f}}, {{ö|dsb|Nimce|p}} *lågtyska: {{ö+|nds|Düütschland|n}}, {{ö|nds|Düüdschland|n}}, {{ö+|nds|Dietschlaund|n}}, {{ö+|nds|Dietschlaunt|n}} *maithili: {{ö|mai|जर्मनी}} *makedonska: {{ö+|mk|Германија|f|tr=Germanija}} *malajiska: {{ö+|ms|Jerman}} *malayalam: {{ö|ml|ജര്മനി|tr=jarmani}} *maltesiska: {{ö|mt|Ġermanja|f|text=il-Ġermanja}} *manx: {{ö|gv|Giarmaan|f}} *maori: {{ö|mi|Tiamana}} *marshallesiska: {{ö|mh|Jāmne}} *medelhögtyska: {{ö|gmh|Tiutschlant}} *mongoliska: {{ö|mn|Герма́н|tr=Germán}} *nahuatl: {{ö+|nah|Teutontlālpan}} *norfuk: {{ö|pih|Doichland}} *navajo: {{ö|nv|Béésh Bichʼahii bikéyah}} *nederländska: {{ö+|nl|Duitsland|n}} *nepali: {{ö|ne|जर्मनी|tr=jarmanī}} *nordfrisiska: {{ö|frr|Sjiisklun}}, {{ö|frr|Tjüschlönj}} *nordsamiska: {{ö|se|Duiska}} *normandiska: {{ö|nrm|Allémangne|f}} *nynorska: {{ö+|nn|Tyskland|n}} *occitanska: {{ö+|oc|Alemanha|f}} *oriya: {{ö+|or|ଜର୍ମାନୀ|tr=jôrmānī}} *palauiska: {{ö|pau|Dois}} *pashto: {{ö|ps|آلمان|tr=âlmân}} *pennsylvaniatyska: {{ö|pdc|Deitschland|n}} *persiska: {{ö+|fa|آلمان}} (âlmân) *piedmontesiska: {{ö|pms|Gërmania}} *polska: {{ö+|pl|Niemcy}} *portugisiska: {{ö+|pt|Alemanha|f}} *punjabi: {{ö|pa|ਜਰਮਨੀ|tr=jarmanī}} *quechua: {{ö|qu|Alimanya}} *rumänska: {{ö+|ro|Germania|f}} *rusinska: {{ö|rue|Нїмецько|n|tr=Njimécʹko}} *ryska: {{ö+|ru|Герма́ния|tr=Germánija|f}} *saterfrisiska: {{ö|stq|Düütsklound}} *schlesiska: {{ö|szl|Mjymcy|p}} *schwabiska: {{ö|swg|Deidschland}} *serbiska: {{ö|sr|Њемачка}} *sicilianska: {{ö|scn|Girmania|f}} *singalesiska: {{ö|si|ජර්මනිය|tr=jarmaniya}} *skotsk gäliska: {{ö|gd|Gearmailt|f}} *slovakiska: {{ö+|sk|Nemecko|n}} *slovenska: {{ö+|sl|Nemčija|f}} *spanska: {{ö+|es|Alemania|f}} *swahili: {{ö+|sw|Ujerumani}} *sydsamiska: {{ö|sma|Tysklaante}} *tadzjikiska: {{ö+|tg|Олмон|tr=Olmon}} *tagalog: {{ö+|tl|Alemanya}} *tai lü: {{ö|khb|ᦵᦑᦲᧉᦷᦅᧉ|tr=teii2ko2}} *tamil: {{ö|ta|ஜர்மனி|tr=jarmaṉi}} *tatariska: {{ö|tt|Алмания|tr=Almaniya}} *telugu: {{ö+|te|జర్మనీ|tr=jarmanī}} *thai: {{ö+|th|ประเทศเยอรมนี}} (bprà-têet yəə-rá-má-nii), {{ö+|th|เยอรมนี}} (yəə-rá-má-nii) *tibetanska: {{ö|bo|འཇར་མན|tr='jar man}} *tigrinska: {{ö|ti|ጀርመን|tr=ǧärmän}} *tjeckiska: {{ö+|cs|Německo|n}} *tjetjenska: {{ö|ce|Германи|tr=Germani}} *tjuvasjiska: {{ö|cv|Германи|tr=Germani}} *turkiska: {{ö+|tr|Almanya}} *tyska: {{ö+|de|Deutschland|n}} *uiguriska: {{ö|ug|گېرمانىيە|tr=gërmaniye}} *ukrainska: {{ö+|uk|Німеччина|f}} *ungerska: {{ö+|hu|Németország}} *urdu: {{ö|ur|جرمنی|m|tr=jarmanī}} *uzbekiska: {{ö+|uz|Olmoniya}}, {{ö+|uz|Germaniya}} *vallonska: {{ö+|wa|Almagne|f}} *venetianska: {{ö+|vec|Germania}} *vepsiska: {{ö|vep|Saksanma}} *vietnamesiska: {{ö|vi|nước Đức}} *vilamoviska: {{ö|wym|Daojćłaond}} *volapük: {{ö+|vo|Deutän}}, {{ö|vo|Deut|not=obsolet}} *võro: {{ö|fiu-vro|S'aksamaa}} *walliska: {{ö|wls|Siamani}} *waray-waray: {{ö|war|Alemanya}} *wolof: {{ö+|wo|Almaañ}} *xhosa: {{ö|xh|iJamani}} *yoruba: {{ö|yo|Jẹ́mánì}} *zeeländska: {{ö|zea|Duutsland}} *zhuang: {{ö+|za|Dwzgoz}} *žemaitiska: {{ö|sgs|Vuokītėjė}} {{ö-botten}} ==Danska== ===Substantiv=== {{subst|da}} '''Tyskland''' #{{tagg|kat=länder|språk=da}} [[#Svenska|Tyskland]] la2pldesor3gpcy2aee42x2ex3kgluv Egypten 0 7981 4157332 4115260 2026-10-24T01:46:53Z Frodlekis 762 4157332 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} '''Egypten''' *{{uttal|sv|ipa=ejỵp:ten}} #{{tagg|kat=länder}} [[stat]] i nordöstra [[Afrika]] #:''Har du någonsin varit i '''Egypten'''?'' #:{{besläktade ord|[[egyptier]], [[egyptiska]], [[egyptisk]]}} ====Översättningar==== {{ö-topp}} *afrikaans: {{ö+|af|Egipte}} *akan: {{ö|ak|Igyipt}} *alemanniska: {{ö|als|Ägypte}} *arabiska: {{ö+|ar|مِصْرُ|f}} (Miʂr) *aragonska: {{ö|an|Echipto}} *armeniska: {{ö+|hy|Եգիպտոս}} (Jeiptos) *asturiska: {{ö+|ast|Exiptu}} *azerbajdzjanska: {{ö+|az|Misir}} *bambara: {{ö|bm|Misra}} *banjaresiska: {{ö|bjn|Mesir}} *baskiska: {{ö|eu|Egipto}} *bayerska: {{ö|bar|Ägypten}} *bosniska: {{ö|bs|Egipat}} *bretonska: {{ö+|br|Egipt}} *cebuano: {{ö|ceb|Ehipto}} *central bikol: {{ö|bcl|Ehipto}} *cheyenne: {{ö|chy|Egypt}} *danska: {{ö+|da|Egypten}} *engelska: {{ö+|en|Egypt}} *esperanto: {{ö+|eo|Egiptio}}, {{ö+|eo|Egiptujo}} *estniska: {{ö+|et|Egiptus}} *ewe: {{ö|ee|Egipte}} *extremaduriska: {{ö|ext|Egitu}} *finska: {{ö+|fi|Egypti}} *franska: {{ö+|fr|Égypte}} *frisiska: {{ö|fy|Egypte}} *grekiska: {{ö+|el|Αίγυπτος}} (Aígyptos) *hebreiska: {{ö+|he|מִצְרַיִם|f|tr=mitsráyim}} *ido: {{ö+|io|Egiptia}} *indonesiska: {{ö+|id|Mesir}} *interlingua: {{ö|ia|Egypto}} *iriska: {{ö+|ga|Éigipt}} *isländska: {{ö+|is|Egyptaland|n}} *italienska: {{ö+|it|Egitto}} *japanska: {{ö+|ja|エジプト}}, {{ö+|ja|埃及}} (Ejiputo) *jiddisch: {{ö|yi|מצרים|tr=mitsrayem}} *kasjubiska: {{ö|csb|Egipt}} *katalanska: {{ö+|ca|Egipte}} *kazakiska: {{ö+|kk|Мысыр}} *kinesiska: {{ö+|zh|埃及}} (Āijí) *kirgiziska: {{ö+|ky|Мисир}} *koreanska: {{ö+|ko|이집트}} (Ijipteu) *krimtatariska: {{ö|crh|Mısır}} *kroatiska: {{ö+|hr|Egipat}} *kurdiska: {{ö+|ku|Misir}} *latin: {{ö+|la|Aegyptus}} *liguriska: {{ö|lij|Egitto}} *lågsorbiska: {{ö|dsb|Egyptojska}} *malajiska: {{ö+|ms|Mesir}} *maltesiska: {{ö|mt|Eġittu}} *nederländska: {{ö+|nl|Egypte}} *nordfrisiska: {{ö|frr|Egypten}} *occitanska: {{ö+|oc|Egipte}} *polska: {{ö+|pl|Egipt}} *portugisiska: {{ö+|pt|Egipto}} ''(Portugal)'', {{ö+|pt|Egito}} ''(Brasilien)'' *rumänska: {{ö+|ro|Egipt}} *ryska: {{ö+|ru|Египет}} (Egípet) *serbiska: {{ö+|sr|Египат}}, {{ö|sr|Egipat}} *slovakiska: {{ö+|sk|Egypt}} *slovenska: {{ö+|sl|Egipt}} *spanska: {{ö+|es|Egipto}} *sydsamiska: {{ö|sma|Egypte}} *thai: ''general'' {{ö|th|อิยิปต์}} (Īyip), ''literary'' {{ö+|th|ไอยคุปต์}} (Aiyakup) *tjeckiska: {{ö+|cs|Egypt}} *turkiska: {{ö+|tr|Mısır}} *tyska: {{ö+|de|Ägypten}} *ungerska: {{ö+|hu|Egyiptom}} *uzbekiska: {{ö+|uz|Misr}} *zazaiska: {{ö+|diq|Mısır}} {{ö-botten}} ==Danska== ===Substantiv=== {{subst|da}} '''Egypten''' #{{tagg|kat=länder|språk=da}} [[#Svenska|Egypten]] ==Nordfrisiska== ===Substantiv=== {{subst|frr}} '''Egypten''' #{{tagg|kat=länder|språk=frr}} [[#Svenska|Egypten]] gsi2baidmy49ys2y85963axlfr57drk Israel 0 10477 4157333 4087549 2026-10-24T01:47:42Z Frodlekis 762 4157333 wikitext text/x-wiki {{wikipedia}} {{se även|Israël|Ísrael|israel}} ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} '''Israel''' #{{tagg|kat=länder}} stat i sydvästra [[Asien]] #:{{besläktade ord|[[israelisk]], [[israelit]]}} #{{tagg|kat=mansnamn}} ett [[mansnamn]] ====Översättningar==== {{ö-topp}} *acehnesiska: {{ö|ace|Israèl}} *afrikaans: {{ö|af|Israel}}, {{ö|af|Israël}} *alemanniska: {{ö|als|Israel}} *arabiska: {{ö+|ar|إسرائيل}} *aragonska: {{ö|an|Israel}} *armeniska: {{ö+|hy|Իսրայել}} (Israjel) *asturiska: {{ö+|ast|Israel}} *azerbajdzjanska: {{ö+|az|İsrail}} *bambara: {{ö|bm|Israil}} *baskiska: {{ö|eu|Israel}} *bayerska: {{ö|bar|Israel}} *belarusiska: {{ö|be|Ізраіль|m}} *bokmål: {{ö+|no|Israel}} *bosniska: {{ö|bs|Izrael}} *bretonska: {{ö|br|Israel}} *cebuano: {{ö|ceb|Israel}} *central bikol: {{ö|bcl|Israel}} *danska: {{ö+|da|Israel}} *engelska: {{ö+|en|Israel}} *esperanto: {{ö+|eo|Israelo}} *estniska: {{ö+|et|Iisrael}} *extremaduriska: {{ö|ext|Israel}} *fiji: {{ö|fj|Isireli}} *fijiansk hindi: {{ö|hif|Israel}} *finska: {{ö+|fi|Israel}} *fornengelska: {{ö|ang|Israhēl}} *frankoprovensalska: {{ö|frp|Israèl}} *franska: {{ö+|fr|Israël}} *frisiska: {{ö+|fy|Israel}} *färöiska: {{ö|fo|Ísrael}} *gagauziska: {{ö|gag|İsrail}} *galiciska: {{ö+|gl|Israel}} *grekiska: {{ö+|el|Ισραήλ}} *haitisk kreol: {{ö|ht|Izrayèl}} *hausa: {{ö|ha|Isra'ila}} *hebreiska: {{ö+|he|יִשְׂרָאֵל}} (Yisra'el) *högsorbiska: {{ö|hsb|Israel}} *ido: {{ö+|io|Israel}} *igbo: {{ö|ig|Israel}} *ilokano: {{ö|ilo|Israel}} *indonesiska: {{ö+|id|Israel}} *interlingua: {{ö|ia|Israel}} *interlingue: {{ö|ie|Israel}} *iriska: {{ö+|ga|Iosrael}} *isländska: {{ö+|is|Ísrael}} *italienska: {{ö+|it|Israele}} *japanska: {{ö+|ja|イスラエル}} (isuraeru) *javanesiska: {{ö|jv|Israèl}} *jiddisch: {{ö|yi|ישׂראל|n|tr=yisroel}} *kasjubiska: {{ö|csb|Izrael}} *katalanska: {{ö+|ca|Israel}} *kinesiska: {{ö+|zh|以色列}} *korsikanska: {{ö|co|Israele}} *krimtatariska: {{ö|crh|İsrail}} *kroatiska: {{ö+|hr|Izrael}} *kurdiska: {{ö|ku|Îsraêl}} *kymriska: {{ö|cy|Israel}} *lågsorbiska: {{ö|dsb|Israel}} *maltesiska: {{ö|mt|Iżrael}} *manx: {{ö|gv|Israel}} *nederländska: {{ö+|nl|Israël}} *nordfrisiska: {{ö|frr|Israel}} *occitanska: {{ö|oc|Israèl}} *polska: {{ö+|pl|Izrael}} *portugisiska: {{ö+|pt|Israel}} *rumänska: {{ö+|ro|Israel}} *ryska: {{ö+|ru|Израиль}} (Izrail') *serbiska: {{ö|sr|Израел}} *skotsk gäliska: {{ö|gd|Iosrael}} *slovenska: {{ö+|sl|Izrael}} *spanska: {{ö+|es|Israel}} *sydsamiska: {{ö|sma|Israele}} *tjeckiska: {{ö+|cs|Izrael}} *turkiska: {{ö+|tr|İsrail}} *tyska: {{ö+|de|Israel}} *ukrainska: {{ö+|uk|Ізраїль|m}} *ungerska: {{ö+|hu|Izrael}} *uzbekiska: {{ö+|uz|Isroil}} *võro: {{ö|fiu-vro|Iisrael}} *zazaiska: {{ö|diq|İsrail}} {{ö-botten}} ==Aragonska== ===Substantiv=== {{subst|an}} '''Israel''' #{{tagg|kat=länder|språk=an}} [[#Svenska|Israel]] ==Asturiska== ===Substantiv=== {{subst|ast}} '''Israel''' #{{tagg|kat=länder|språk=ast}} [[#Svenska|Israel]] ==Bokmål== ===Substantiv=== {{subst|no}} '''Israel''' #{{tagg|kat=länder|språk=no}} [[#Svenska|Israel]] ==Bretonska== ===Substantiv=== {{subst|br}} '''Israel''' #{{tagg|kat=länder|språk=br}} [[#Svenska|Israel]] ==Central bikol== ===Substantiv=== {{subst|bcl}} '''Israel''' #{{tagg|kat=länder|språk=bcl}} [[#Svenska|Israel]] ==Danska== ===Substantiv=== {{subst|da}} '''Israel''' #{{tagg|kat=länder|språk=da}} [[#Svenska|Israel]] ==Engelska== ===Substantiv=== {{en-subst-namn}} '''Israel''' #{{tagg|kat=länder|språk=en}} [[#Svenska|Israel]] #:{{besläktade ord|[[Israeli]], [[Israelite]]}} ==Extremaduriska== ===Substantiv=== {{subst|ext}} '''Israel''' #{{tagg|kat=länder|språk=ext}} [[#Svenska|Israel]] ==Finska== ===Substantiv=== {{subst|fi}} '''Israel''' #{{tagg|kat=länder|språk=fi}} [[#Svenska|Israel]] #:{{besläktade ord|israelilainen}} ==Indonesiska== ===Substantiv=== {{subst|id}} '''Israel''' #{{tagg|kat=länder|språk=id}} [[#Svenska|Israel]] ==Interlingua== ===Substantiv=== {{subst|ia}} '''Israel''' #{{tagg|kat=länder|språk=ia}} [[#Svenska|Israel]] ==Katalanska== ===Substantiv=== {{subst|ca}} '''Israel''' #{{tagg|kat=länder|språk=ca}} [[#Svenska|Israel]] ==Ladino== ===Substantiv=== {{subst|lad}} '''Israel''' #{{tagg|kat=länder|språk=lad}} [[#Svenska|Israel]] ==Nordfrisiska== ===Substantiv=== {{subst|frr}} '''Israel''' #{{tagg|kat=länder|språk=frr}} [[#Svenska|Israel]] ==Portugisiska== ===Substantiv=== {{subst|pt}} '''Israel''' #{{tagg|kat=länder|språk=pt}} [[#Svenska|Israel]] #:{{besläktade ord|[[israelense]], [[israelita]]}} ==Rumänska== ===Substantiv=== {{subst|ro}} '''Israel''' #{{tagg|kat=länder|språk=ro}} [[#Svenska|Israel]] ==Spanska== ===Substantiv=== {{subst|es}} '''Israel''' #{{tagg|kat=länder|språk=es}} [[#Svenska|Israel]] #{{tagg|kat=mansnamn|språk=es}} ett mansnamn (motsvarande svenska [[#Svenska|Israel]]) :{{avgränsare}} :{{besläktade ord|[[israelí]]}} ==Tyska== ===Substantiv=== {{subst|de}} '''Israel''' #{{tagg|kat=länder|språk=de}} [[#Svenska|Israel]] iylayb17f1ouryrn7or0ths47vor2n0 Ecuador 0 11750 4157334 4013207 2026-10-24T01:48:21Z Frodlekis 762 /* Översättningar */ 4157334 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} '''Ecuador''' #{{tagg|kat=länder}} stat i [[Sydamerika]] #:{{besläktade ord|[[ecuadorian]], [[ecuadoriansk]]}} ====Översättningar==== {{ö-topp}} *acehnesiska: {{ö|ace|Èkuador}} *afrikaans: {{ö|af|Ecuador}} *alemanniska: {{ö|als|Ecuador}} *aragonska: {{ö|an|Ecuador}} *armeniska: {{ö+|hy|Էկվադոր}} (Ekvador) *asturiska: {{ö+|ast|Ecuador}} *bayerska: {{ö|bar|Ecuador}} *bokmål: {{ö|no|Ecuador}} *bosniska: {{ö|bs|Ekvador}} *bretonska: {{ö|br|Ecuador}} *cebuano: {{ö|ceb|Ecuador}} *central bikol: {{ö|bcl|Ekwador}} *danska: {{ö+|da|Ecuador}} *engelska: {{ö+|en|Ecuador}} *esperanto: {{ö+|eo|Ekvadoro}} *extremaduriska: {{ö|ext|Ecuadol}} *finska: {{ö+|fi|Ecuador}} *franska: {{ö+|fr|Équateur}} *grekiska: {{ö+|el|Ισημερινός}}, {{ö+|el|Εκουαδόρ}} *indonesiska: {{ö+|id|Ekuador}} *interlingua: {{ö|ia|Ecuador}} *iriska: {{ö|ga|Eacuadór}} *isländska: {{ö+|is|Ekvador}} *italienska: {{ö+|it|Ecuador}} *japanska: {{ö+|ja|エクアドル}} (Ekuadoru) *katalanska: {{ö+|ca|Equador}} *kinesiska: {{ö+|zh|厄瓜多尔}} (Eguaduo'er) *krimtatariska: {{ö|crh|Ekvador}} *kurdiska: {{ö|ku|Ekuador}} *latin: {{ö|la|Aequatoria}} *maltesiska: {{ö|mt|Ekwador}} *nederländska: {{ö+|nl|Ecuador}} *nynorska: {{ö+|nn|Ecuador}} *occitanska: {{ö+|oc|Eqüator}} *polska: {{ö+|pl|Ekwador}} *portugisiska: {{ö+|pt|Equador}} *quechua: {{ö|qu|Ikwadur}} *rumänska: {{ö+|ro|Ecuador}} *ryska: {{ö+|ru|Эквадор}} *slovakiska: {{ö+|sk|Ekvádor}} *slovenska: {{ö+|sl|Ekvadór}} *spanska: {{ö+|es|Ecuador}} *tjeckiska: {{ö+|cs|Ekvádor}} *turkiska: {{ö+|tr|Ekvador}} *tyska: {{ö+|de|Ecuador}} *ungerska: {{ö+|hu|Ecuador}} {{ö-botten}} ==Alemanniska== ===Substantiv=== {{subst|als}} '''Ecuador''' #{{tagg|kat=länder|språk=als}} [[#Svenska|Ecuador]] ==Aragonska== ===Substantiv=== {{subst|an}} '''Ecuador''' #{{tagg|kat=länder|språk=an}} [[#Svenska|Ecuador]] #:{{kohyponymer|[[Archentina]], [[Bolivia]], [[Brasil]], [[Chile]], [[Colombia]], [[Guyana]], [[Paraguai]], [[Perú]], [[Surinam]], [[Uruguai]], [[Venezuela]]}} ==Asturiska== ===Substantiv=== {{subst|ast}} '''Ecuador''' #{{tagg|kat=länder|språk=ast}} [[#Svenska|Ecuador]] ==Bokmål== ===Substantiv=== {{subst|no}} '''Ecuador''' #{{tagg|kat=länder|språk=no}} [[#Svenska|Ecuador]] ==Bretonska== ===Substantiv=== {{subst|br}} '''Ecuador''' #{{tagg|kat=länder|språk=br}} [[#Svenska|Ecuador]] ==Cebuano== ===Substantiv=== {{subst|ceb}} '''Ecuador''' #{{tagg|kat=länder|språk=ceb}} [[#Svenska|Ecuador]] ==Danska== ===Substantiv=== {{subst|da}} '''Ecuador''' #{{tagg|kat=länder|språk=da}} [[#Svenska|Ecuador]] ==Engelska== ===Substantiv=== {{subst|en}} '''Ecuador''' #{{tagg|kat=länder|språk=en}} [[#Svenska|Ecuador]] ==Finska== ===Substantiv=== {{subst|fi}} '''Ecuador''' #{{tagg|kat=länder|språk=fi}} [[#Svenska|Ecuador]] ==Interlingua== ===Substantiv=== {{subst|ia}} '''Ecuador''' #{{tagg|kat=länder|språk=ia}} [[#Svenska|Ecuador]] ==Italienska== ===Substantiv=== {{subst|it}} '''Ecuador''' #{{tagg|kat=länder|språk=it}} [[#Svenska|Ecuador]] ==Nederländska== ===Substantiv=== {{subst|nl}} '''Ecuador''' #{{tagg|kat=länder|språk=nl}} [[#Svenska|Ecuador]] ==Nynorska== ===Substantiv=== {{subst|nn}} '''Ecuador''' #{{tagg|kat=länder|språk=nn}} [[#Svenska|Ecuador]] ==Rumänska== ===Substantiv=== {{subst|ro}} '''Ecuador''' #{{tagg|kat=länder|språk=ro}} [[#Svenska|Ecuador]] ==Spanska== ===Substantiv=== {{subst|es}} '''Ecuador''' #{{tagg|kat=länder|språk=es}} [[#Svenska|Ecuador]] ==Tyska== ===Substantiv=== {{subst|de}} '''Ecuador''' #{{tagg|kat=länder|språk=de}} [[#Svenska|Ecuador]] ==Ungerska== ===Substantiv=== {{subst|hu}} '''Ecuador''' #{{tagg|kat=länder|språk=hu}} [[#Svenska|Ecuador]] ssuu156dkmnfdf3wsu3179xlye8zuzr Ekwador 0 11758 4157321 3542491 2026-10-24T01:41:44Z Frodlekis 762 4157321 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''Ekwador''' #{{tagg|kat=länder|språk=bcl}} [[Ecuador]] ==Maltesiska== ===Substantiv=== {{subst|mt}} '''Ekwador''' #{{tagg|kat=länder|språk=mt}} [[Ecuador]] ==Polska== ===Substantiv=== {{subst|pl}} '''Ekwador''' {{m}} #{{tagg|kat=länder|språk=pl}} [[Ecuador]] #:{{besläktade ord|[[Ekwadorczyk]], [[Ekwadorka]], [[ekwadorski]]}} ==Turkmeniska== ===Substantiv=== {{subst|tk}} '''Ekwador''' #{{tagg|kat=länder|språk=tk}} [[Ecuador]] 1bf6tit37h95g1ri167at352faov7is Myanmar 0 14198 4157335 3971101 2026-10-24T01:48:38Z Frodlekis 762 /* Översättningar */ 4157335 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} '''Myanmar''' #{{tagg|kat=länder}} en [[stat]] i sydöstra [[Asien]] #:{{synonymer|[[Burma]]}} #:{{besläktade ord|[[myanmarier]], [[myanmarisk]]}} ====Översättningar==== {{ö-topp}} *acehnesiska: {{ö|ace|Myanmar}} *afrikaans: {{ö+|af|Mianmar}} *alemanniska: {{ö|als|Myanmar}} *amhariska: {{ö|am|በርማ}} (Barmā) *arabiska: {{ö|ar|ميانمار}} (Miyānmār), {{ö|ar|برمانيا}} (Birmānya) *aragonska: {{ö|an|Myanmar}} *armeniska: {{ö|hy|Մյանմար}} (Mjanmar), {{ö+|hy|Բիրմա}} (Birma) *asturiska: {{ö+|ast|Myanmar}} *azerbajdzjanska: {{ö+|az|Myanma}} *bayerska: {{ö|bar|Myanmar}} *belarusiska: {{ö|be|М'янмар}} (M’janmar), {{ö|be|М'янма}} (M’janma) *bengali: {{ö+|bn|ব্রহ্মদেশ}} (Brôhmôdeš) *bislama: {{ö|bi|Burma}} *bokmål: {{ö+|no|Myanmar}}, {{ö|no|Burma}} *bosniska: {{ö|bs|Mijanmar}} *bretonska: {{ö|br|Myanmar}} *burmesiska: {{ö|my|ရန္မာ}} (Myanmā) *cebuano: {{ö|ceb|Birmanya}} *central bikol: {{ö|bcl|Myanmar}} *danska: {{ö|da|Myanmar}} *engelska: {{ö+|en|Myanmar}}, {{ö+|en|Burma}} *esperanto: {{ö|eo|Mjanmao}}, {{ö+|eo|Birmo}} *ewe: {{ö|ee|Myanmar}} *finska: {{ö+|fi|Myanmar}}, {{ö+|fi|Burma}} *fornengelska: {{ö|ang|Burma}} *franska: {{ö+|fr|Myanmar}}, {{ö+|fr|Birmanie}} *frisiska: {{ö|fy|Birma}}, {{ö|fy|Myanmar}} *georgiska: {{ö+|ka|მიანმარი}} (Mianmari) *grekiska: {{ö+|el|Μιανμάρ}} (Mianmár), {{ö|el|Μυανμάρ}} (Myanmár) *hausa: {{ö|ha|Bama}} *hebreiska: {{ö|he|מיאנמר}} (Myanmar) *hindi: {{ö+|hi|म्यानमार}} (Myānmār), {{ö|hi|ब्रह्मदेश}} (Brahmadeš), {{ö+|hi|बरमा}} (Barmā) *interlingua: {{ö|ia|Myanmar}}, {{ö|ia|Birmania}} *isländska: {{ö+|is|Mjanmar|n}}, {{ö+|is|Mjanmar|n}} *italienska: {{ö+|it|Myanmar}}, {{ö+|it|Birmania}} *japanska: {{ö+|ja|ミャンマー}} (Myanmā), {{ö+|ja|ビルマ}} (Biruma) *kannada: {{ö+|kn|ಬರ್ಮ}} (Barma) *kasjubiska: {{ö|csb|Myanmar}} *katalanska: {{ö|ca|Myanmar}} *kinesiska: {{ö+|zh|缅甸}} / {{ö+|zh|緬甸}} (Miǎndiàn) *koreanska: {{ö+|ko|미얀마}} (Miyanma) *krimtatariska: {{ö|crh|Myanmar}} *kurdiska: {{ö+|ku|Myanmar}}, {{ö+|ku|Birmanya}}, {{ö+|ku|Burma}} *kymriska: {{ö|cy|Myanmar}} *lågsorbiska: {{ö|dsb|Myanmar}} *maltesiska: {{ö|mt|Mjanmar}} *nederländska: {{ö+|nl|Myanmar}}, {{ö+|nl|Birma}} *occitanska: {{ö|oc|Birmania}} *persiska: {{ö|fa|میانمار}} (Myanmâr) *piedmontesiska: {{ö|pms|Myanmar}} *polska: {{ö+|pl|Myanmar}}, {{ö+|pl|Birma}} *portugisiska: {{ö+|pt|Birmânia}} *punjabi: {{ö|pa|ਬਰ੍ਮਾ}} (Barmā) *rumänska: {{ö+|ro|Myanmar}} *ryska: {{ö+|ru|Мьянма}} (M’janmá), {{ö+|ru|Бирма}} (Bírma) *serbiska: {{ö|sr|Мијанмар}}, {{ö|sr|Бурма}}, {{ö|sr|Mijanmar}} *slovakiska: {{ö|sk|Mjanmarsko}} *slovenska: {{ö+|sl|Mjanmar}} *spanska: {{ö+|es|Myanmar}}, {{ö+|es|Birmania}} *tagalog: {{ö|tl|Birmanya}} *tamil: {{ö+|ta|மியான்மார்}}, (Miyānmār) {{ö+|ta|பர்மா}} (Parmā) *telugu: {{ö+|te|బర్మా}} (Barmā) *thai: {{ö+|th|พม่า}} (Pamā) *tjeckiska: {{ö+|cs|Myanmar}} *turkiska: {{ö+|tr|Myanmar}}, {{ö+|tr|Birmanya}} *tyska: {{ö+|de|Myanmar}} *uiguriska: {{ö|ug|ﺑﯩﺮﻣﺎ}} *ukrainska: {{ö|uk|М'янмар}} (M’janmár) *ungerska: {{ö+|hu|Mianmar}} *urdu: {{ö|ur|میانمار}} (Myanmâr) *vietnamesiska: {{ö+|vi|Miến Điện}} *zazaiska: {{ö|diq|Myanmar}} {{ö-botten}} ==Acehnesiska== ===Substantiv=== {{subst|ace}} '''Myanmar''' #{{tagg|kat=länder|språk=ace}} [[#Svenska|Myanmar]] ==Alemanniska== ===Substantiv=== {{subst|als}} '''Myanmar''' #{{tagg|kat=länder|språk=als}} [[#Svenska|Myanmar]] ==Aragonska== ===Substantiv=== {{subst|an}} '''Myanmar''' #{{tagg|kat=länder|språk=an}} [[#Svenska|Myanmar]] ==Asturiska== ===Substantiv=== {{subst|ast}} '''Myanmar''' #{{tagg|kat=länder|språk=ast}} [[#Svenska|Myanmar]] ==Bretonska== ===Substantiv=== {{subst|br}} '''Myanmar''' #{{tagg|kat=länder|språk=br}} [[#Svenska|Myanmar]] ==Danska== ===Substantiv=== {{subst|da}} '''Myanmar''' #{{tagg|kat=länder|språk=da}} [[#Svenska|Myanmar]] ==Engelska== ===Substantiv=== {{subst|en}} '''Myanmar''' #{{tagg|språk|språk=en}} [[burmesiska]] #:{{synonymer|[[Burmese]]}} #{{tagg|kat=länder|språk=en}} [[#Svenska|Myanmar]] #:{{synonymer|[[Burma]]}} :{{avgränsare}} ==Extremaduriska== ===Substantiv=== {{subst|ext}} '''Myanmar''' #{{tagg|kat=länder|språk=ext}} [[#Svenska|Myanmar]] ==Finska== ===Substantiv=== {{subst|fi}} '''Myanmar''' #{{tagg|kat=länder|språk=fi}} [[#Svenska|Myanmar]] #:{{synonymer|[[Burma]]}} ==Franska== ===Substantiv=== {{subst|fr}} '''Myanmar''' #{{tagg|kat=länder|språk=fr}} [[#Svenska|Myanmar]] #:{{synonymer|[[Birmanie]]}} ==Interlingua== ===Substantiv=== {{subst|ia}} '''Myanmar''' #{{tagg|kat=länder|språk=ia}} [[#Svenska|Myanmar]] #:{{synonymer|[[Birmania]]}} ==Italienska== ===Substantiv=== {{subst|it}} '''Myanmar''' #{{tagg|kat=länder|språk=it}} [[#Svenska|Myanmar]] #:{{synonymer|[[Birmania]]}} ==Katalanska== ===Substantiv=== {{subst|ca}} '''Myanmar''' #{{tagg|kat=länder|språk=ca}} [[#Svenska|Myanmar]] ==Nederländska== ===Substantiv=== {{subst|nl}} '''Myanmar''' #{{tagg|kat=länder|språk=nl}} [[#Svenska|Myanmar]] #:{{synonymer|[[Birma]]}} ==Bokmål== ===Substantiv=== {{subst|no}} '''Myanmar''' #{{tagg|kat=länder|språk=no}} [[#Svenska|Myanmar]] #:{{synonymer|[[Burma]]}} ==Piedmontesiska== ===Substantiv=== {{subst|pms}} '''Myanmar''' #{{tagg|kat=länder|språk=pms}} [[#Svenska|Myanmar]] ==Polska== ===Substantiv=== {{subst|pl}} '''Myanmar''' #{{tagg|kat=länder|språk=pl}} [[#Svenska|Myanmar]] #:{{synonymer|[[Birma]]}} ==Rumänska== ===Substantiv=== {{subst|ro}} '''Myanmar''' #{{tagg|kat=länder|språk=ro}} [[#Svenska|Myanmar]] ==Spanska== ===Substantiv=== {{subst|es}} '''Myanmar''' #{{tagg|kat=länder|språk=es}} [[#Svenska|Myanmar]] #:{{synonymer|[[Birmania]]}} ==Tjeckiska== ===Substantiv=== {{subst|cs}} '''Myanmar''' #{{tagg|kat=länder|språk=cs}} [[#Svenska|Myanmar]] ==Turkiska== ===Substantiv=== {{subst|tr}} '''Myanmar''' #{{tagg|kat=länder|språk=tr}} [[#Svenska|Myanmar]] #:{{synonymer|[[Birmanya]]}} ==Tyska== ===Substantiv=== {{subst|de}} '''Myanmar''' #{{tagg|kat=länder|språk=de}} [[#Svenska|Myanmar]] qb5khapapd6fepd8g9en3hbgtmcq33d chilla 0 14667 4157137 3706696 2026-10-23T15:50:55Z ~2026-56702-21 62364 4157137 wikitext text/x-wiki ==Svenska== ===Verb=== {{sv-verb-ar|rot=chill|perfpart=-}} '''chilla''' #{{tagg|slang}} [[ta det lugnt]], [[slappna av]] #:''Jag '''chillar''' framför tv:n och äter chips.'' #:''Men '''chilla''', jag har inte gjort något, än.'' #:''Efter jobbet gillade hon att '''chilla''' med kompisar.'' #:{{etymologi|{{belagt|sv|1998}}<ref>{{källa-so}}</ref> Av {{härledning|sv|en|chill out|lugna sig, ta det lugnt; kyla ner, kyla av}}.}} ====Översättningar==== {{ö-topp|ta det lugnt, slappna av}} *bokmål: {{ö+|no|chille}} *engelska: {{ö+|en|chill out}} *tyska: {{ö+|de|chillen}} {{ö-botten}} ==Bokmål== ===Verb=== '''chilla''' #{{böjning|no|verb|chille}} ==Spanska== ===Substantiv=== {{es-subst-f-s}} '''chilla''' {{f}} #{{tagg|kat=däggdjur|kat2=däggdjursarter|språk=es}} [[pampasräv]], [[argentinsk gråräv]] #:{{synonymer|[[zorro gris]]}} ===Verb=== '''chilla''' #{{böjning|es|verb|chillar}} ==Källor== <references/> 1slcibtoqx978dq1oyohygybsey21c5 4157138 4157137 2026-10-23T15:51:37Z ~2026-56702-21 62364 4157138 wikitext text/x-wiki ==Svenska== ===Verb=== {{sv-verb-ar|rot=chill|perfpart=-}} '''chilla''' #{{tagg|slang}} [[ta det lugnt]], [[slappna av]] #:''Jag '''chillar''' framför tv:n och äter chips.'' #:''Men '''chilla''', jag har inte gjort något, än.'' #:''Efter jobbet gillade hon att '''chilla''' med kompisar.'' #:{{etymologi|{{belagt|sv|1998}}<ref>{{källa-so}}</ref> Av {{härledning|sv|en|chill out|lugna sig, ta det lugnt; kyla ner, kyla av}}.}} ====Översättningar==== {{ö-topp|ta det lugnt, slappna av}} *bokmål: {{ö+|no|chille}} *engelska: {{ö+|en|chill out}} *tyska: {{ö+|de|chillen}} {{ö-botten}} ===Adjektiv=== '''chilla''' #{{böjning|sv|adj|chill}} ==Bokmål== ===Verb=== '''chilla''' #{{böjning|no|verb|chille}} ==Spanska== ===Substantiv=== {{es-subst-f-s}} '''chilla''' {{f}} #{{tagg|kat=däggdjur|kat2=däggdjursarter|språk=es}} [[pampasräv]], [[argentinsk gråräv]] #:{{synonymer|[[zorro gris]]}} ===Verb=== '''chilla''' #{{böjning|es|verb|chillar}} ==Källor== <references/> cbz3pyz9vuhzj22y3u11rrt5sndnlrc tack 0 14745 4157122 4095673 2026-10-23T15:25:10Z ~2026-56702-21 62364 /* Översättningar */ 4157122 wikitext text/x-wiki ==Svenska== ===Interjektion=== {{interj|sv}} '''tack''' #fras som används för att besvara en hjälpsam handling #:'''''Tack''' för presenten mormor!'' #:''Åh, '''tack''' så mycket!'' #:{{konstr|tack för hjälpen, tack för maten, tack så mycket, tack ska du ha}} #:{{etymologi|{{belagt|sv|1400|t}}<ref>{{källa-so}}</ref> Av {{härledning|sv|gmq-fsv|þak}}, runsvenska ''[[þakk]]'', "[[nåd]]", "[[välbehag]]", av {{härledning|sv|non|þǫkk}}, av {{härledning|sv|gem-ugm|*þankō, *þankaz}}. Rotbesläktat med ''[[tänka]]''. Jämför engelska ''[[thank]]'', tyska ''[[danke]]''.}} #:{{användning|Kan förstärkas med ''så (hemskt/väldigt) mycket'' efterföljt.}} #:{{besläktade ord|[[tacka]], [[tacksam]]}} #:{{fraser|[[hjärtligt tack]], [[stort tack]], [[tack så mycket]], [[tack för senast]], [[tack så hjärtligt]], [[tusen tack]]}} #:{{sammansättningar|[[tacksägelse]]}} ====Översättningar==== {{ö-topp|}} *afrikaans: {{ö+|af|dankie}} *albanska: {{ö|sq|faleminderit}} *amhariska: {{ö|am|ኣመሰገናልሎ}} (amesegenallo) *arabiska: {{ö|ar|شكرًا|tr=shúkran|skrift=Arab}} *belarusiska: {{ö|be|дзякую|tr=dzjákuju|skrift=Cyrl}} *bengali: {{ö+|bn|ধনবাদ}} (dhonnobad) *bokmål: {{ö+|no|takk}} *bosniska: {{ö|bs|hvala}} *bretonska: {{ö+|br|trugarez}}, {{ö+|br|bennozh}}, {{ö+|br|Doue}} *bulgariska: {{ö+|bg|благодаря|tr=blagodarjá|skrift=Cyrl}}, {{ö+|bg|мерси|tr=mersí|skrift=Cyrl}} *danska: {{ö+|da|tak}} *engelska: {{ö+|en|thank you}}, {{ö+|en|thanks}} *esperanto: {{ö+|eo|dankon}} *estniska: {{ö+|et|aitäh}}, {{ö|et|aitüma}} *fiji: {{ö|fj|vinaka}} *finska: {{ö+|fi|kiitos}}, {{ö+|fi|kiitoksia}} *franska: {{ö+|fr|merci}} *färöiska: {{ö|fo|takk}} *grekiska: {{ö+|el|ευχαριστώ}} *gujarati: {{ö|gu|આભાર}} (aabhaar) *haitisk kreol: {{ö|ht|mèsi}} *hausa: {{ö|ha|na gode}} *hawaiiska: {{ö|haw|mahalo}} *hebreiska: {{ö+|he|תודה}} (toda) *hiligaynon: {{ö|hil|salamat}} *isländska: {{ö+|is|takk}} *italienska: {{ö+|it|grazie}} *japanska: {{ö+|ja|ありがとう}} ({{ö|ja|arigatou}}) *jiddisch: {{ö|yi|אַ דאַנק‎|tr=a dank}} *katalanska: {{ö+|ca|gràcies}}, {{ö+|ca|mercès}}, {{ö+|ca|merci}} *kikai: {{ö|kzg|うふくんでーた}} *kinesiska: {{ö+|zh|謝謝}} (xièxie) *korniska: {{ö|kw|meur ras}} *kroatiska: {{ö|hr|hvala}}, {{ö|hr|veoma hvala}}, {{ö|hr|mnogo hvala}}, {{ö|hr|zahvaljujem}}, {{ö|hr|mnogo Vam hvala}} *kurdiska: {{ö+|ku|spas}}, {{ö+|ku|sipas}}, {{ö+|ku|supas}} *latin: {{ö+|la|gratia}} *lettiska: {{ö+|lv|paldies}} *litauiska: {{ö+|lt|ačiū}} *makedonska: {{ö|mk|благодарам}}, {{ö|mk|фала}} *malagassiska: {{ö+|mg|misaotra}} *malajiska: {{ö+|ms|terima kasih}} *maltesiska: {{ö+|mt|grazzi}} *maori: {{ö+|mi|kia ora}} *marshallesiska: {{ö|mh|kom̧m̧ool}} *min nan: {{ö+|zh-min-nan|感謝|tr=kám-siā}} *nederländska: {{ö+|nl|dank}}, {{ö+|nl|dank u}}, {{ö|nl|dank je}}, {{ö+|nl|dankjewel}}, {{ö+|nl|bedankt}} *nordsamiska: {{ö|se|giitu}} *ojibwe: {{ö|oj|miigwech}} *oromo: {{ö|om|maharaba}} *ossetiska: {{ö|os|бузныг}} *pashto: {{ö|ps|مہربانی}} (mehrbani) *persiska: {{ö+|fa|ممنون}} (mamnôn), {{ö+|fa|مرسی}} (mérsi) *polska: {{ö+|pl|dziękuję}} *portugisiska: {{ö+|pt|obrigado|m}}, {{ö+|pt|obrigada|f}} *punjabi: {{ö|pa|ਸ਼ੁਕਰਿਆ}} (shukriya) *romani: {{ö|rom|nais}} *rumänska: {{ö+|ro|mulţumesc}}, {{ö+|ro|mersi}} *ryska: {{ö+|ru|спасибо}} *serbiska: {{ö|sr|хвала}} ({{ö+|sr|hvala}}) *slovenska: {{ö+|sl|hvala}} *spanska: {{ö+|es|gracias}} *svensk romani: {{ö|rmu|pakkrepa}} *sydsamiska: {{ö|sma|aelties}} *tadzjikiska: {{ö|tg|рахмат|tr=raxmat}} *tagalog: {{ö+|tl|salamat}} *tahitiska: {{ö|ty|māuruuru}} *tamil: {{ö+|ta|நன்றி|tr=nandri}} *tatariska: {{ö+|tt|рәхмәт|tr=räxmät}} *telugu: {{ö+|te|ధన్యవాదాలు|tr=dhanyavaadaalu}} *thai: {{ö+|th|ขอบคุณ|tr=kòp-kuun}} **isan: {{ö+|th|ขอบใจ|tr=khawp jai}} *tjeckiska: {{ö+|cs|děkuji}}, {{ö|cs|děkuji vám}}, {{ö|cs|děkuji ti}} *tok pisin: {{ö|tpi|tenkyu}} *tonganska: {{ö|to|mālō}} *tswana: {{ö|tn|ke a leboga}} *turkiska: {{ö+|tr|teşekkür ederim}}, {{ö+|tr|teşekkürler}}, {{ö+|tr|mersi}} *tyska: {{ö+|de|danke}} *ukrainska: {{ö|uk|дякую}}, {{ö+|uk|спасибі}} *ungerska: {{ö+|hu|köszönöm}} *vepsiska: {{ö|vep|kitän}} *zulu: {{ö+|zu|ngiyabonga}} *älvdalska: {{ö|ovd|tokk}} {{ö-botten}} ===Substantiv=== {{sv-subst-t-0}} {{sv-subst-n-0|4=tacken|8=tackens}} '''tack''' #[[besvarande]] av en hjälpsam eller god handling #:''Han lagade mat åt henne som '''tack''' för att hon vattnat hans krukväxter medan han var på semester.'' #:{{grammatik|Vanligen neutrum, ibland dock utrum, särskilt i vissa betydelser och fraser. Plural har nolländelse (historiskt har dock både -ar, -er och -or förekommit).}} #:{{användning|tack så mycket; tack ska du ha}} #:{{sammansättningar|[[otack]], [[tackkort]], [[tacktal]]}} #:{{besläktade ord|[[tacka]]}} #:{{fraser|[[tack så mycket]]; [[tack ska du ha]]}} ====Översättningar==== {{ö-topp|}} *bokmål: {{ö+|no|takk}} *danska: {{ö+|da|tak}} *finska: {{ö+|fi|kiitos}} *japanska: {{ö+|ja|感謝|tr=かんしゃ, kansha}} *jiddisch: {{ö|yi|דאַנק|m|tr=dank}} *katalanska: {{ö+|ca|mercè|f}} *portugisiska: {{ö+|pt|agradecimento|m}} *turkiska: {{ö+|tr|şükür}} *tyska: {{ö+|de|Dank|m}} {{ö-botten}} ==Engelska== ===Substantiv=== {{en-subst}} '''tack''' #[[nubb]], [[spik]], [[stift]] ===Verb=== {{en-verb}} '''tack''' #[[nubba]], [[spika]], [[stifta]] t7evld6tmu7cn29hcyrp7nhh94p1zia 4157123 4157122 2026-10-23T15:25:46Z ~2026-56702-21 62364 +so: [[mahadsanid]] (assisterat) 4157123 wikitext text/x-wiki ==Svenska== ===Interjektion=== {{interj|sv}} '''tack''' #fras som används för att besvara en hjälpsam handling #:'''''Tack''' för presenten mormor!'' #:''Åh, '''tack''' så mycket!'' #:{{konstr|tack för hjälpen, tack för maten, tack så mycket, tack ska du ha}} #:{{etymologi|{{belagt|sv|1400|t}}<ref>{{källa-so}}</ref> Av {{härledning|sv|gmq-fsv|þak}}, runsvenska ''[[þakk]]'', "[[nåd]]", "[[välbehag]]", av {{härledning|sv|non|þǫkk}}, av {{härledning|sv|gem-ugm|*þankō, *þankaz}}. Rotbesläktat med ''[[tänka]]''. Jämför engelska ''[[thank]]'', tyska ''[[danke]]''.}} #:{{användning|Kan förstärkas med ''så (hemskt/väldigt) mycket'' efterföljt.}} #:{{besläktade ord|[[tacka]], [[tacksam]]}} #:{{fraser|[[hjärtligt tack]], [[stort tack]], [[tack så mycket]], [[tack för senast]], [[tack så hjärtligt]], [[tusen tack]]}} #:{{sammansättningar|[[tacksägelse]]}} ====Översättningar==== {{ö-topp|}} *afrikaans: {{ö+|af|dankie}} *albanska: {{ö|sq|faleminderit}} *amhariska: {{ö|am|ኣመሰገናልሎ}} (amesegenallo) *arabiska: {{ö|ar|شكرًا|tr=shúkran|skrift=Arab}} *belarusiska: {{ö|be|дзякую|tr=dzjákuju|skrift=Cyrl}} *bengali: {{ö+|bn|ধনবাদ}} (dhonnobad) *bokmål: {{ö+|no|takk}} *bosniska: {{ö|bs|hvala}} *bretonska: {{ö+|br|trugarez}}, {{ö+|br|bennozh}}, {{ö+|br|Doue}} *bulgariska: {{ö+|bg|благодаря|tr=blagodarjá|skrift=Cyrl}}, {{ö+|bg|мерси|tr=mersí|skrift=Cyrl}} *danska: {{ö+|da|tak}} *engelska: {{ö+|en|thank you}}, {{ö+|en|thanks}} *esperanto: {{ö+|eo|dankon}} *estniska: {{ö+|et|aitäh}}, {{ö|et|aitüma}} *fiji: {{ö|fj|vinaka}} *finska: {{ö+|fi|kiitos}}, {{ö+|fi|kiitoksia}} *franska: {{ö+|fr|merci}} *färöiska: {{ö|fo|takk}} *grekiska: {{ö+|el|ευχαριστώ}} *gujarati: {{ö|gu|આભાર}} (aabhaar) *haitisk kreol: {{ö|ht|mèsi}} *hausa: {{ö|ha|na gode}} *hawaiiska: {{ö|haw|mahalo}} *hebreiska: {{ö+|he|תודה}} (toda) *hiligaynon: {{ö|hil|salamat}} *isländska: {{ö+|is|takk}} *italienska: {{ö+|it|grazie}} *japanska: {{ö+|ja|ありがとう}} ({{ö|ja|arigatou}}) *jiddisch: {{ö|yi|אַ דאַנק‎|tr=a dank}} *katalanska: {{ö+|ca|gràcies}}, {{ö+|ca|mercès}}, {{ö+|ca|merci}} *kikai: {{ö|kzg|うふくんでーた}} *kinesiska: {{ö+|zh|謝謝}} (xièxie) *korniska: {{ö|kw|meur ras}} *kroatiska: {{ö|hr|hvala}}, {{ö|hr|veoma hvala}}, {{ö|hr|mnogo hvala}}, {{ö|hr|zahvaljujem}}, {{ö|hr|mnogo Vam hvala}} *kurdiska: {{ö+|ku|spas}}, {{ö+|ku|sipas}}, {{ö+|ku|supas}} *latin: {{ö+|la|gratia}} *lettiska: {{ö+|lv|paldies}} *litauiska: {{ö+|lt|ačiū}} *makedonska: {{ö|mk|благодарам}}, {{ö|mk|фала}} *malagassiska: {{ö+|mg|misaotra}} *malajiska: {{ö+|ms|terima kasih}} *maltesiska: {{ö+|mt|grazzi}} *maori: {{ö+|mi|kia ora}} *marshallesiska: {{ö|mh|kom̧m̧ool}} *min nan: {{ö+|zh-min-nan|感謝|tr=kám-siā}} *nederländska: {{ö+|nl|dank}}, {{ö+|nl|dank u}}, {{ö|nl|dank je}}, {{ö+|nl|dankjewel}}, {{ö+|nl|bedankt}} *nordsamiska: {{ö|se|giitu}} *ojibwe: {{ö|oj|miigwech}} *oromo: {{ö|om|maharaba}} *ossetiska: {{ö|os|бузныг}} *pashto: {{ö|ps|مہربانی}} (mehrbani) *persiska: {{ö+|fa|ممنون}} (mamnôn), {{ö+|fa|مرسی}} (mérsi) *polska: {{ö+|pl|dziękuję}} *portugisiska: {{ö+|pt|obrigado|m}}, {{ö+|pt|obrigada|f}} *punjabi: {{ö|pa|ਸ਼ੁਕਰਿਆ}} (shukriya) *romani: {{ö|rom|nais}} *rumänska: {{ö+|ro|mulţumesc}}, {{ö+|ro|mersi}} *ryska: {{ö+|ru|спасибо}} *serbiska: {{ö|sr|хвала}} ({{ö+|sr|hvala}}) *slovenska: {{ö+|sl|hvala}} *somaliska: {{ö|so|mahadsanid}} *spanska: {{ö+|es|gracias}} *svensk romani: {{ö|rmu|pakkrepa}} *sydsamiska: {{ö|sma|aelties}} *tadzjikiska: {{ö|tg|рахмат|tr=raxmat}} *tagalog: {{ö+|tl|salamat}} *tahitiska: {{ö|ty|māuruuru}} *tamil: {{ö+|ta|நன்றி|tr=nandri}} *tatariska: {{ö+|tt|рәхмәт|tr=räxmät}} *telugu: {{ö+|te|ధన్యవాదాలు|tr=dhanyavaadaalu}} *thai: {{ö+|th|ขอบคุณ|tr=kòp-kuun}} **isan: {{ö+|th|ขอบใจ|tr=khawp jai}} *tjeckiska: {{ö+|cs|děkuji}}, {{ö|cs|děkuji vám}}, {{ö|cs|děkuji ti}} *tok pisin: {{ö|tpi|tenkyu}} *tonganska: {{ö|to|mālō}} *tswana: {{ö|tn|ke a leboga}} *turkiska: {{ö+|tr|teşekkür ederim}}, {{ö+|tr|teşekkürler}}, {{ö+|tr|mersi}} *tyska: {{ö+|de|danke}} *ukrainska: {{ö|uk|дякую}}, {{ö+|uk|спасибі}} *ungerska: {{ö+|hu|köszönöm}} *vepsiska: {{ö|vep|kitän}} *zulu: {{ö+|zu|ngiyabonga}} *älvdalska: {{ö|ovd|tokk}} {{ö-botten}} ===Substantiv=== {{sv-subst-t-0}} {{sv-subst-n-0|4=tacken|8=tackens}} '''tack''' #[[besvarande]] av en hjälpsam eller god handling #:''Han lagade mat åt henne som '''tack''' för att hon vattnat hans krukväxter medan han var på semester.'' #:{{grammatik|Vanligen neutrum, ibland dock utrum, särskilt i vissa betydelser och fraser. Plural har nolländelse (historiskt har dock både -ar, -er och -or förekommit).}} #:{{användning|tack så mycket; tack ska du ha}} #:{{sammansättningar|[[otack]], [[tackkort]], [[tacktal]]}} #:{{besläktade ord|[[tacka]]}} #:{{fraser|[[tack så mycket]]; [[tack ska du ha]]}} ====Översättningar==== {{ö-topp|}} *bokmål: {{ö+|no|takk}} *danska: {{ö+|da|tak}} *finska: {{ö+|fi|kiitos}} *japanska: {{ö+|ja|感謝|tr=かんしゃ, kansha}} *jiddisch: {{ö|yi|דאַנק|m|tr=dank}} *katalanska: {{ö+|ca|mercè|f}} *portugisiska: {{ö+|pt|agradecimento|m}} *turkiska: {{ö+|tr|şükür}} *tyska: {{ö+|de|Dank|m}} {{ö-botten}} ==Engelska== ===Substantiv=== {{en-subst}} '''tack''' #[[nubb]], [[spik]], [[stift]] ===Verb=== {{en-verb}} '''tack''' #[[nubba]], [[spika]], [[stifta]] om3os68qoof9f0xj3rbq3kwx5k75fyc växt 0 18931 4157287 4150403 2026-10-24T01:24:38Z Frodlekis 762 /* Översättningar */ 4157287 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-er}} '''växt''' {{u}} *{{uttal|sv|ipa=ˈvɛkːst}} #{{tagg|kat=botanik|kat2=riken och domäner}} organism tillhörande [[växtriket]] #:{{citat|år=1917|förf=[[w:C. A. M. Lindman|C. A. M. Lindman]]|titel=[https://runeberg.org/nordflor/310.html Bilder ur Nordens Flora]|Denna '''växt''' är vår minsta och spensligaste, men säkert också sirligaste Rubus-art.}} #:{{citat|år=2000|titel=[http://spraakbanken.gu.se/cgi-bin/konk/konk2art.cgi?plats=12616596&korpus=svd00&kontext=1000&grad=2 Kemikalieutredningen]|publ=[[w:Svenska Dagbladet|Svenska Dagbladet]]|Utredningen föreslår på sikt också förbud mot särskilt långlivade kemiska ämnen som riskerar att lagras i människor, djur och '''växter'''.}} #:{{antonymer|[[djur]] (motsatspar)}} #:{{sammansättningar|[[baljväxt]], [[balkongväxt]], [[blomväxt]], [[dvärgväxt]], [[fetbladsväxter]], [[fjällväxt]], [[fjärilsväxt]], [[foderväxt]], [[fröväxter]], [[gagnväxt]], [[hanväxt]], [[honväxt]], [[hårdbladsväxt]], [[industriväxt]], [[jätteväxt]], [[kantväxt]], [[kiselväxt]], [[klängväxt]], [[krukväxt]], [[kulturväxt]], [[kärlväxt]], [[köksväxt]], [[ljungväxt]], [[långdagsväxt]], [[läkeväxt]], [[lökväxt]], [[medicinalväxt]], [[nitratväxt]], [[nyttoväxt]], [[oljeväxt]], [[parasitväxt]], [[påväxt]], [[ruderatväxt]], [[rumsväxt]], [[salpeterväxt]], [[saltväxt]], [[skuggväxt]], [[slideväxter]], [[slingerväxt]], [[snyltväxt]], [[solväxt]], [[sporväxt]], [[spånadsväxt]], [[stamväxt]], [[stråväxter]], [[surjordsväxt]], [[säsongsväxt]], [[textilväxt]], [[trädgårdsväxt]], [[vallväxt]], [[vattenväxt]], [[vedväxt]], [[värdväxt]], [[växtanatomi]], [[växtart]], [[växtcell]], [[växtdrog]], [[växtfett]], [[växtfiber]], [[växtfärg]], [[växtfärgning]], [[växtföljd]], [[växtförädling]], [[växtgift]], [[växtgräns]], [[växthormon]], [[växthus]], [[växthuseffekt]], [[växthusgas]], [[växtmargarin]], [[växtnäring]], [[växtodling]], [[växtplankton]], [[växtpress]], [[växtriket]], [[växtrörelse]], [[växtsaft]], [[växtsamhälle]], [[växtsamlare]], [[växtsilke]], [[växtsjukdom]], [[växtskydd]], [[växtslem]], [[växtstekel]], [[växtsystematik]], [[växttråd]], [[växtämne]], [[växtätare]], [[ärtväxt]], [[ökenväxt]]}} #:{{fraser|[[köttätande växt]]}} #{{tagg|kat=växtfysiologi|kat2=växtmorfologi}} form erhållen genom växande #:{{citat|år=1884|förf=[[w:Victoria Benedictsson|Victoria Benedictsson]]|titel=[https://runeberg.org/pengar/04.html Pengar]|Hög var hon till '''växt''', med breda axlar, långa armar och stora händer.}} #:{{citat|år=1910|[[w:Pontus Wikner|Pontus Wikner]]|titel=[https://runeberg.org/vittrskr/0255.html Vittra skrifter]|Detta är sant i den mening, att [trädet] fått en ovanlig '''växt''', och i den mening, att dess '''växt''' i vårt tycke icke är vacker [...]}} #:{{sammansättningar|[[efterväxt]], [[framväxt]], [[girväxt]], [[missväxt]], [[tillväxt]], [[uppväxt]], [[växthormon]], [[växtkraft]], [[växtliv]], [[växtperiod]], [[växtvärk]], [[växtzon]], [[årsväxt]], [[återväxt]]}} #:{{seäven|[[planta]], [[telning]]}} :{{avgränsare}} :{{etymologi|Av {{härledning|sv|gmq-fsv|væxter, vaxter}}, av {{härledning|sv|non|vöxtr, vǫxtr}}, av {{härledning|sv|gem-ugm|*wahstuz}}.}} :{{besläktade ord|[[växtlighet]]}} ====Översättningar==== {{ö-topp|organism}} *afrikaans: {{ö+|af|plant}} *arabiska: {{ö+|ar|نَبْتَة|f|tr=nabta}} *banjaresiska: {{ö|bjn|tumbuhan}} *baskiska: {{ö|eu|landare}} *bokmål: {{ö+|no|plante|f}}, {{ö|no|vekst|m}} *central bikol: {{ö|bcl|pananom}} *danska: {{ö+|da|plante|u}}, {{ö|da|vækst|u}} *engelska: {{ö+|en|plant}} *estniska: {{ö+|et|taim}} *finska: {{ö+|fi|kasvi}} *franska: {{ö+|fr|plante|f}} *georgiska: {{ö|ka|მცენარე}} *hebreiska: {{ö+|he|צֶמַח|m|tr=tsémakh}} *indonesiska: {{ö+|id|tumbuhan}} *isländska: {{ö+|is|planta}}, {{ö+|is|jurt}} *italienska: {{ö+|it|pianta}} *japanska: {{ö+|ja|植物|tr=しょくぶつ, shokubutsu}} *jiddisch: {{ö|yi|געוויקס|n|tr=geviks}}, {{ö|yi|פֿלאַנץ|tr=flants}} *kinesiska: {{ö+|zh|植物}} *malajiska: {{ö+|ms|tumbuhan}} *nederländska: {{ö+|nl|plant}} *nordsamiska: {{ö|se|šaddu}} *nynorska: {{ö|nn|plante|mf}}, {{ö|nn|vekst|m}}, {{ö|nn|vokster|m}} *polska: {{ö+|pl|roślina}} *portugisiska: {{ö+|pt|planta}} *rumänska: {{ö+|ro|plantă}} *ryska: {{ö+|ru|растение|n}} *slovakiska: {{ö+|sk|rastlina}} *slovenska: {{ö+|sl|rastlina}} *spanska: {{ö+|es|planta|f}} *tjeckiska: {{ö+|cs|rostlina|f}} *turkiska: {{ö+|tr|bitki}} *tyska: {{ö+|de|Pflanze|f}}, {{ö+|de|Gewächs|n}} *ungerska: {{ö+|hu|növény}} {{ö-botten}} {{ö-topp|form genom utveckling}} *bokmål: {{ö|no|vekst|m}} *danska: {{ö|da|vækst|u}} *engelska: {{ö+|en|growth}} *estniska: {{ö|et|kasv}} *finska: {{ö+|fi|kasvu}}, {{ö+|fi|kehitys}} *franska: {{ö+|fr|croissance|f}} *indonesiska: {{ö+|id|perkembangan}} *isländska: {{ö|is|vöxtur}} *italienska: {{ö+|it|crescita}} *nederländska: {{ö|nl|groeivorm}} *nynorska: {{ö|nn|vekst|m}}, {{ö|nn|vokster|m}} *polska: {{ö+|pl|wzrost}} *portugisiska: {{ö+|pt|crescimento}} *rumänska: {{ö|ro|creştere}} *slovakiska: {{ö|sk|rast}} *slovenska: {{ö+|sl|rast}} *turkiska: {{ö+|tr|büyüme}} *tyska: {{ö+|de|Wuchs|m}} *ungerska: {{ö|hu|kifejlődés}} {{ö-botten}} ===Verb=== '''växt''' #{{böjning|sv|verb|växa}} ===Adjektiv=== {{sv-adj-alt-peri|pers=}} '''växt''' #{{avledning|sv|växa|ordform=perfpart}} #:{{sammansättningar|[[dvärgväxt]], [[fastväxt]], [[förväxt]], [[högväxt]], [[igenväxt]], [[ihopväxt]], [[lågväxt]], [[outväxt]], [[småväxt]], [[storväxt]], [[uppväxt]], [[utväxt]], [[välväxt]]}} apfwvha7q31qkdwdnxh5uai3lpvhw21 eld 0 20480 4157329 4141841 2026-10-24T01:45:28Z Frodlekis 762 4157329 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} {{media|Fire02.jpg|flammande '''eld''' ''(område)''}} '''eld''' #{{tagg|kemi}} [[kemisk reaktion]] där gaserna från ett bränsle [[oxidation|oxideras]], varvid [[ljus]] och [[värme]] samtidigt avges #:''Har du '''eld'''?'' #:{{synonymer|[[jald]] ''(orsamål)''}} #:{{sammansättningar|[[eldbeständig]], [[eldfara]], [[eldfarlig]], [[eldfarlighet]], [[eldfest]], [[eldslukare]], [[eldsläckare]], [[eldpelare]], [[eldsvåda]], [[eldsäker]], [[löpeld]]}} #det område där den kemiska reaktionen sker #:''Det gör ont när man rör vid '''elden'''.'' #:{{synonymer|[[låga]], [[flamma]]}} #:{{sammansättningar|[[eldhav]], [[eldhärd]], [[eldkastare]], [[eldklot]], [[eldgaffel]], [[eldgaller]], [[eldgata]], [[eldstad]], [[eldvakt]], [[eldslåga]], [[eldflamma]], [[lägereld]]}} #:{{fraser|[[fatta eld]], [[ha många järn i elden]], [[ta eld]]}} #:{{seäven|[[brand]]}} #{{tagg|alkemi}} benämning på ett av [[de fyra elementen]] #{{tagg|filosofi}} benämning på ett av [[de fem elementen]] i [[kinesisk filosofi]] #{{tagg|vapen}} avfyrande av [[skjutvapen]] #:{{sammansättningar|[[eldgivning]], [[eldkraft]], [[eldrör]], [[eldupphör]], [[eldvapen]], [[verkanseld]]}} #:{{fraser|[[ge eld]], [[fientlig eld]]}} :{{avgränsare}} :{{etymologi|Av fornsvenska ''[[elder]]'', av fornnordiska ''[[eldr]]'' (varav även isländska och färöiska ''[[eldur]]'', danska ''[[ild]]'' och norska ''[[#Norska|eld]]''). Gemensamt germanskt ord med dunkla släktskaps- och ursprungsförhållanden.}} :{{sammansättningar|[[eldbegängelse]], [[elddon]], [[eldfarlig]], [[eldfast]], [[eldfluga]], [[eldfängd]], [[eldhåg]], [[eldprov]], [[eldsjäl]], [[eldstrid]], [[eldstål]], [[eldöverfall]], [[pärteld]]}} :{{besläktade ord|[[elda]], [[eldare]], [[eldig]], [[eldighet]]}} :{{seäven-bring|Helvete|Anfall|Uttrycksfullhet|Orange|Ljuskälla|Ljus|Värmeapparat|Uppvärmning|Värme}} ====Översättningar==== {{ö-topp|kemisk reaktion}} *acehnesiska: {{ö|ace|apuy}} *arabiska: {{ö+|ar|نَار|f|tr=nār}} *aragonska: {{ö|an|fuego}} *baskiska: {{ö+|eu|su}} *belarusiska: {{ö|be|агонь|m}} *bokmål: {{ö+|no|ild}}, {{ö+|no|fyr}} *burmesiska: {{ö+|my|မီး|tr=mi:}} *cebuano: {{ö|ceb|kalayo}} *central bikol: {{ö+|bcl|kalayo}} *danska: {{ö+|da|ild}} *engelska: {{ö+|en|fire}} *esperanto: {{ö+|eo|fajro}} *estniska: {{ö+|et|tuli}} *finska: {{ö+|fi|tuli}} *franska: {{ö+|fr|feu|m}} *frisiska: {{ö+|fy|fjoer|n}} *grönländska: {{ö|kl|inneq}} *haitisk kreol: {{ö|ht|dife}} *hausa: {{ö+|ha|wuta}} *hawaiiska: {{ö|haw|ahi}} *hebreiska: {{ö+|he|אֵשׁ‎|f|tr=esh}} *hettitiska: {{ö|hit|𒉺𒀪𒄯|n|tr=paḫḫur}} *hiligaynon: {{ö|hil|kalayo}} *indonesiska: {{ö+|id|api}} *isländska: {{ö+|is|eldur|m}}, {{ö+|is|bál|n}}, {{ö+|is|brenna|f}} *italienska: {{ö+|it|fuoco|m}} *jiddisch: {{ö|yi|פֿײַער|m|tr=fayer}} *kashmiri: {{ö|ks|اۆگُن|m|tr=ogun}} *khmer: {{ö+|km|ភ្លើង|tr=phləəng}} *klassisk grekiska: {{ö|grc|πῦρ|n|tr=pûr}} *korsikanska: {{ö+|co|focu|m}} *kymriska: {{ö+|cy|tân|m}} *lao: {{ö+|lo|ໄຟ|tr=fai}} *latin: {{ö+|la|ignis|m}} *maltesiska: {{ö|mt|nar|f}} *nordsamiska: {{ö|se|dolla}} *occitanska: {{ö+|oc|fuòc}} *persiska: {{ö+|fa|آتش|tr=âtaš}} *polska: {{ö+|pl|ogień|m}} *portugisiska: {{ö+|pt|fogo|m}} *rohingya: {{ö|rhg|ooin}} *rumänska: {{ö+|ro|foc|n}} *ryska: {{ö+|ru|огонь}} *sanskrit: {{ö+|sa|अग्नि|m|tr=agni}} *sicilianska: {{ö+|scn|focu|m}} *slovenska: {{ö+|sl|ogenj|m}} *spanska: {{ö+|es|fuego|m}} *swahili: {{ö+|sw|moto}} *sydsamiska: {{ö|sma|dålle}} *thai: {{ö+|th|ไฟ|tr=fai}} *tibetanska: {{ö|bo|མེ|tr=me}} *tjeckiska: {{ö+|cs|oheň|m}} *turkiska: {{ö+|tr|ateş}} *tyska: {{ö+|de|Feuer|n}} *uiguriska: {{ö|ug|ئوت|tr=ot}} *ukrainska: {{ö|uk|вогонь|m}}, {{ö+|uk|ватра|f}} *ungerska: {{ö+|hu|tűz}} *uzbekiska: {{ö+|uz|oʻt}}, {{ö+|uz|otash}} *vietnamesiska: {{ö+|vi|lửa}} *waray-waray: {{ö|war|kalayo}} {{ö-botten}} {{ö-topp|område där den kemiska reaktionen sker}} *afrikaans: {{ö+|af|vuur}} *albanska: {{ö+|sq|zjarr|m}} *bokmål: {{ö+|no|ild}}, {{ö+|no|fyr}} *danska: {{ö+|da|ild}} *engelska: {{ö+|en|fire}} *esperanto: {{ö+|eo|fajro}} *finska: {{ö+|fi|liekki}} *franska: {{ö+|fr|feu|m}} *frisiska: {{ö+|fy|fjoer|n}} *färöiska: {{ö+|fo|eldur|m}} *indonesiska: {{ö+|id|api}} *isländska: {{ö+|is|eldur|m}}, {{ö+|is|bál|n}} *italienska: {{ö+|it|fuoco|m}} *kymriska: {{ö+|cy|tân|m}} *latin: {{ö+|la|ignis|m}} *nederländska: {{ö+|nl|vuur|n}} *nordsamiska: {{ö|se|dolla}} *nynorska: {{ö|nn|eld}} *occitanska: {{ö+|oc|fuòc}} *polska: {{ö+|pl|ogień|m}} *portugisiska: {{ö+|pt|fogo|m}} *rumänska: {{ö+|ro|foc|n}} *ryska: {{ö+|ru|огонь}} *slovenska: {{ö+|sl|ogenj|m}} *spanska: {{ö+|es|fuego|m}} *tjeckiska: {{ö+|cs|oheň|m}} *turkiska: {{ö+|tr|ateş}} *tyska: {{ö+|de|Feuer|n}} {{ö-botten}} {{ö-topp|ett av de fyra elementen}} *bokmål: {{ö+|no|ild|n}} *danska: {{ö+|da|ild}} *engelska: {{ö+|en|fire}} *esperanto: {{ö+|eo|fajro}} *finska: {{ö+|fi|tuli}} *franska: {{ö+|fr|feu|m}} *frisiska: {{ö+|fy|fjoer|n}} *isländska: {{ö+|is|eldur|m}} *italienska: {{ö+|it|fuoco|m}} *latin: {{ö+|la|ignis|m}} *nederländska: {{ö+|nl|vuur|n}} *nordsamiska: {{ö|se|dolla}} *occitanska: {{ö+|oc|fuòc}} *polska: {{ö+|pl|ogień|m}} *portugisiska: {{ö+|pt|fogo|m}} *rumänska: {{ö+|ro|foc|n}} *ryska: {{ö+|ru|огонь}} *spanska: {{ö+|es|fuego|m}} *tjeckiska: {{ö+|cs|oheň|m}} *turkiska: {{ö+|tr|ateş}} *tyska: {{ö+|de|Feuer|n}} {{ö-botten}} {{ö-topp|ett av de fem elementen (kinesisk filosofi)}} *bokmål: {{ö+|no|ild|n}} *danska: {{ö+|da|ild}} *engelska: {{ö+|en|fire}} *estniska: {{ö+|et|tuli}} *finska: {{ö+|fi|tuli}} *franska: {{ö+|fr|feu|m}} *frisiska: {{ö+|fy|fjoer|n}} *italienska: {{ö+|it|fuoco|m}} *japanska: {{ö+|ja|火}} *katalanska: {{ö+|ca|foc}} *koreanska: {{ö+|ko|화}} *litauiska: {{ö+|lt|ugnis}} *makedonska: {{ö|mk|оган}} *malajiska: {{ö+|ms|kayu}} *nederländska: {{ö+|nl|vuur|n}} *nynorska: {{ö|nn|eld}} *polska: {{ö+|pl|ogień|m}} *portugisiska: {{ö+|pt|fogo|m}} *rumänska: {{ö+|ro|foc|n}} *ryska: {{ö+|ru|огонь}} *slovenska: {{ö+|sl|ogenj|m}} *spanska: {{ö+|es|fuego|m}} *tjeckiska: {{ö+|cs|oheň|m}} *turkiska: {{ö+|tr|ateş}} *tyska: {{ö+|de|Feuer|n}} *ungerska: {{ö+|hu|tűz}} *vietnamesiska: {{ö|vi|Hỏa}} {{ö-botten}} {{ö-topp|avfyrande av skjutvapen}} *afrikaans: {{ö+|af|vuur}} *albanska: {{ö+|sq|zjarr|m}} *bokmål: {{ö+|no|ild}}, {{ö+|no|fyr}} *engelska: {{ö+|en|fire}} *finska: {{ö+|fi|tuli}} *frisiska: {{ö+|fy|fjoer|n}} *ryska: {{ö+|ru|огонь}} *turkiska: {{ö+|tr|ateş}} *tyska: {{ö+|de|Feuer|n}} {{ö-botten}} {{ö-topp|Översättningar som behöver flyttas till rätt betydelse/betydelser}} *bretonska: {{ö+|br|tan|m}} {{?}} *gujarati: {{ö+|gu|અગ્નિ}} {{?}} *iriska: {{ö|ga|tine|f}} {{?}} *japanska: (eld) {{ö+|ja|火}} ({{ö+|ja|ひ}}, ''hi''), (en eld) {{ö+|ja|火事}} ({{ö+|ja|かじ}}, ''kaji'') {{?}} *korniska: {{ö|kw|tan|m}} {{?}} *maori: {{ö+|mi|ahi}} {{?}} *skotsk gäliska: {{ö|gd|teine|m}} {{?}} {{ö-botten}} ===Verbpartikel=== {{verbpartikel|sv}} #i [[brand]] #:''Tutta '''eld''' på vedträna nu!'' ==Forndanska== ===Substantiv=== {{subst|gmq-fda}} '''eld''' {{m}} #[[#Svenska|eld]] #:{{etymologi|Av {{härledning|gmq-fda|non|eldr}}.}} ==Älvdalska== ===Konjunktion=== {{konj|ovd}} '''eld''' #[[eller]] ef7tegijutt4sm5rn5pn2f0640fxshc Kategori:Fornsvenska 14 21656 4157374 2982062 2026-10-24T04:23:04Z Frodlekis 762 4157374 wikitext text/x-wiki {{kategorinavigering|Fornsvenska}} {{faktaruta språk}} 2b5nyjiygj6kj6iw930wfs37ffva5m4 hallon 0 22192 4157181 3862433 2026-10-23T20:16:42Z Frodlekis 762 +yi: [[מאַלינע]] (assisterat) 4157181 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-t-oräkn|betydelser=1.}} {{sv-subst-t-0|betydelser=2-3.}} {{media|Raspberries_%28Rubus_Idaeus%29.jpg|hallon}} '''hallon''' *{{uttal|sv|ipa=ˈhàlɔn}} #{{tagg|växter}} ''[[Rubus idaeus]]''; [[art]] inom familjen Rosväxter #{{tagg|växter}} [[individ]] av arten ovan #{{tagg|frukter}} [[frukt]] av arten ovan (botaniskt en hel hop av [[stenfrukt]]er) #:'''''Hallon''' är röda.'' :{{avgränsare}} :{{etymologi|Troligen besläktat med ''[[häll]]'' i den ungefärliga betydelsen "bär som växer på stenig mark"; med avledningssuffixet ''-on'' som används allmänt för bär.}} :{{sammansättningar|[[geléhallon]], [[hallonbåt]], [[hallonbuske]], [[hallongelé]], [[hallonkräm]], [[hallonmask]], [[hallonröd]], [[hallonsaft]], [[hallonsnår]], [[hallonsylt]], [[hallontårta]], [[vildhallon]]}} ====Översättningar==== {{ö-topp|art}} *aragonska: {{ö|an|chordón}} *bokmål: {{ö|no|bringebær|n}} *bulgariska: {{ö+|bg|малина}} *danska: {{ö|da|almindelig hindbær}} *engelska: {{ö+|en|raspberry}} *finska: {{ö+|fi|vadelma}} *franska: {{ö+|fr|framboisier}} *katalanska: {{ö|ca|gerdera}} *lågtyska: {{ö+|nds|Himbeer|f}} *nederländska: {{ö+|nl|framboos}} *nordsamiska: {{ö|se|lávet}}, {{ö|se|váran}} *nynorska: {{ö|nn|bringebær|n}} *polska: {{ö+|pl|malina|f}} *portugisiska: {{ö+|pt|framboesa|f}} *ryska: {{ö+|ru|малина}} *spanska: {{ö|es|frambueso|m}} *turkiska: {{ö+|tr|ahududu}} *tyska: {{ö+|de|Himbeere}} *älvdalska: {{ö|ovd|follber|n}} {{ö-botten}} {{ö-topp|frukt}} *armeniska: {{ö+|hy|ազնվամորի|tr=aznvamori}} *azerbajdzjanska: {{ö+|az|moruq}} *baskiska: {{ö|eu|mugurdi}} *belarusiska: {{ö|be|маліна|f}} *bokmål: {{ö|no|bringebær|n}} *bulgariska: {{ö+|bg|малина}} *danska: {{ö+|da|hindbær}} *engelska: {{ö+|en|raspberry}} *estniska: {{ö|et|vaarikas}} *finska: {{ö+|fi|vadelma}}, {{ö+|fi|vattu}} *franska: {{ö+|fr|framboise}} *grekiska: {{ö+|el|σμέουρο}} *grönländska: {{ö|kl|hindbæri}} *haitisk kreol: {{ö|ht|franbwaz}} *hebreiska: {{ö+|he|פטל|m|tr=pétel}} *hindi: {{ö+|hi|रसभरी|tr=rasabhrī}} *italienska: {{ö+|it|lampone|m}}, {{ö+|it|lampone|m}} *japanska: {{ö+|ja|ラズベリー|tr=razuberī}}, {{ö|ja|木苺|tr=きいちご, kiichigo}}, {{ö+|ja|フランボワーズ|tr=furanbowāzu}} *jiddisch: {{ö|yi|מאָלענע|f|tr=malene}}, {{ö|yi|מאַלינע|f|tr=maline}} *katalanska: {{ö+|ca|gerd}} *kurdiska: {{ö+|ku|tûşêmî}} *latin: {{ö|la|rubus|m}} *lettiska: {{ö+|lv|avene}} *litauiska: {{ö+|lt|avietė}} *luxemburgiska: {{ö|lb|Hambier}} *lågtyska: {{ö+|nds|Himbeer|f}} *nederländska: {{ö+|nl|framboos}} *nynorska: {{ö|nn|bringebær|n}} *polska: {{ö+|pl|malina|f}} *portugisiska: {{ö+|pt|framboesa}} *rumänska: {{ö+|ro|zmeură}} *ryska: {{ö+|ru|малина}} *slovakiska: {{ö+|sk|malina|f}} *spanska: {{ö+|es|frambuesa|f}} *swahili: {{ö|sw|rasiberi}} *turkiska: {{ö+|tr|ahududu}}, {{ö+|tr|frambuaz}} *tyska: {{ö+|de|Himbeere|f}} *ukrainska: {{ö|uk|малина|f}} *ungerska: {{ö+|hu|málna}} *vallonska: {{ö+|wa|ampône|f}} *vepsiska: {{ö|vep|babarm}} *älvdalska: {{ö|ovd|follber|n}} {{ö-botten}} {{ö-topp-granska}} *esperanto: {{ö+|eo|frambo}} *japanska: {{ö|ja|木苺}} ({{ö|ja|きいちご}}, ''{{ö|ja|kiichigo}}'') {{ö-botten}} 1wzp6rjutro47e7jlixefwn7fjj7nx5 födelse 0 41626 4157130 4076134 2026-10-23T15:36:25Z ~2026-56702-21 62364 +am: [[ልደት]] (assisterat) 4157130 wikitext text/x-wiki {{wikipedia|förlossning}} ==Svenska== ===Substantiv=== {{sv-subst-n-r}} '''[[föda|föd]][[-else|else]]''' #{{tagg|text=fokus på den som föds}} det att födas, det att komma till liv, det att börja leva #{{tagg|biologi}} [[tillfälle]] då ett eller flera [[foster]] kommer ut ur moderns [[livmoder]] :{{avgränsare}} :{{synonymer|[[födsel]], [[förlossning]]}} :{{besläktade ord|[[föda]]}} :{{sammansättningar|[[födelseannons]], [[födelseattest]], [[födelsebok]], [[födelsedag]], [[födelsedatum]], [[födelsemärke]], [[födelseort]], [[födelseplats]], [[födelsestad]], [[födelseår]]}} :{{seäven-bring|Början|Alstring|Liv}} ====Översättningar==== {{ö-topp|det att födas}} *amhariska: {{ö|am|ልደት|tr=lədät}} *bokmål: {{ö+|no|fødsel|m}} *engelska: {{ö+|en|birth}} *esperanto: {{ö|eo|naskiĝo}} *finska: {{ö+|fi|syntymä}} *fornsvenska: {{ö|gmq-fsv|födhilse}} *franska: {{ö+|fr|naissance|f}} *isländska: {{ö+|is|barnsburður|m}}, {{ö|is|barnsfæðing|f}}, {{ö+|is|burður|m}} *katalanska: {{ö+|ca|naixement|m}} *polska: {{ö+|pl|urodzenie|n}}, {{ö+|pl|narodzenie|n}}, {{ö+|pl|narodziny|p}} *portugisiska: {{ö+|pt|nascimento|m}} *ryska: {{ö+|ru|рождение}} *spanska: {{ö+|es|nacimiento|m}} *tyska: {{ö+|de|Geburt|f}} *älvdalska: {{ö|ovd|fyöðels|f}} {{ö-botten}} {{ö-se|(biologi) tillfälle då ett eller flera foster kommer ur moderns livmoder|födsel}} dmi0ehh9cx50buzz4rv03m4103lag8t 4157131 4157130 2026-10-23T15:40:14Z ~2026-56702-21 62364 +tr: [[doğum]] (assisterat) 4157131 wikitext text/x-wiki {{wikipedia|förlossning}} ==Svenska== ===Substantiv=== {{sv-subst-n-r}} '''[[föda|föd]][[-else|else]]''' #{{tagg|text=fokus på den som föds}} det att födas, det att komma till liv, det att börja leva #{{tagg|biologi}} [[tillfälle]] då ett eller flera [[foster]] kommer ut ur moderns [[livmoder]] :{{avgränsare}} :{{synonymer|[[födsel]], [[förlossning]]}} :{{besläktade ord|[[föda]]}} :{{sammansättningar|[[födelseannons]], [[födelseattest]], [[födelsebok]], [[födelsedag]], [[födelsedatum]], [[födelsemärke]], [[födelseort]], [[födelseplats]], [[födelsestad]], [[födelseår]]}} :{{seäven-bring|Början|Alstring|Liv}} ====Översättningar==== {{ö-topp|det att födas}} *amhariska: {{ö|am|ልደት|tr=lədät}} *bokmål: {{ö+|no|fødsel|m}} *engelska: {{ö+|en|birth}} *esperanto: {{ö|eo|naskiĝo}} *finska: {{ö+|fi|syntymä}} *fornsvenska: {{ö|gmq-fsv|födhilse}} *franska: {{ö+|fr|naissance|f}} *isländska: {{ö+|is|barnsburður|m}}, {{ö|is|barnsfæðing|f}}, {{ö+|is|burður|m}} *katalanska: {{ö+|ca|naixement|m}} *polska: {{ö+|pl|urodzenie|n}}, {{ö+|pl|narodzenie|n}}, {{ö+|pl|narodziny|p}} *portugisiska: {{ö+|pt|nascimento|m}} *ryska: {{ö+|ru|рождение}} *spanska: {{ö+|es|nacimiento|m}} *turkiska: {{ö+|tr|doğum}} *tyska: {{ö+|de|Geburt|f}} *älvdalska: {{ö|ovd|fyöðels|f}} {{ö-botten}} {{ö-se|(biologi) tillfälle då ett eller flera foster kommer ur moderns livmoder|födsel}} 2ar72f01q1vivfck6dom3t1kw92ycgo panna 0 41978 4157328 4138486 2026-10-24T01:45:08Z Frodlekis 762 4157328 wikitext text/x-wiki {{se även|pannå}} {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-or}} '''panna''' #{{tagg|anatomi}} del av huvudet mellan [[ögonbryn]]en och upp till [[hårfäste]]t (eller där hårfästet skulle vara) #:{{synonymer|[[änne]]}} #:{{sammansättningar|[[pannband]], [[pannben]], [[pannmuskel]], [[pannlugg]]}} #{{tagg|kat=köksredskap}} köksredskap i vilket man kan [[steka]] eller [[ugnsbaka]] #:{{citat|Innan '''pannan''' skall användas, bör den upphettas, smörjas med smör och gnidas med en linnelapp, tills den är blank.|titel=[https://runeberg.org/idunskok/0017.html Iduns kokbok]|förf=Elisabeth Östman|år=1911}} #:{{synonymer|[[stekplåt]], [[plåt]]}} #:{{sammansättningar|[[långpanna]] (''för ugnsbak''), [[pyttipanna]], [[pytt i panna]], [[stekpanna]]}} #{{tagg|byggnadsteknik|kat2=teknik}} ''förkortning av'' [[värmepanna]], teknisk anordning som värmer upp vatten (eller annan vätska) och levererar varmare flytande vatten eller ånga #:{{sammansättningar|[[gaspanna]], [[elpanna]], [[oljepanna]], [[pannrum]], [[pelletspanna]], [[vedpanna]], [[värmepanna]]}} #{{tagg|byggnadsteknik|kat2=teknik}} takbeklädnad, oftast av tegel eller betong #:{{sammansättningar|[[takpanna]], [[tegelpanna]], [[betongpanna]]}} #{{tagg|Stockholmsslang}} [[kilo]] #:{{citat|år=2006|datum=21 okt|titel=[https://www.skidforum.se/topic/721-styrketr%C3%A4ning/ skidforum.se: Styrketräning]|Vid 16års ålder var jag en lång (188cm) och mycket tanig kille (63kg). Bestämde mig då för att bygga upp mig. Läste allt och körde hårt i 7-8 år och blev till slut en hyggligt rossig lirare på '''90 pannor'''. Nu är ju inte ditt mål att bli någon ross utan att bli en lite tyngre och mycket starkare skidåkare.}} #{{tagg|Stockholmsslang}} [[helrör]] (75-centilitersflaska sprit eller vin omkring 1 kilo) #:''en '''helpanna''' vodka'' #:{{sammansättningar|[[halvpanna]], [[helpanna]]}} #{{tagg|slang}} en sprutdos knark #:''ta en '''panna''''' ====Översättningar==== {{ö-topp|1. del av huvudet}} *arabiska: {{ö|ar|جبهة}}, {{ö|ar|جبين}} *azerbajdzjanska: {{ö+|az|alın}} *bokmål: {{ö+|no|panne}} *central bikol: {{ö+|bcl|angog}} *chamorro: {{ö|ch|ha'i}} *danska: {{ö+|da|pande}} *engelska: {{ö+|en|forehead}} *esperanto: {{ö+|eo|frunto}} *estniska: {{ö+|et|otsaesine}} *fiji: {{ö|fj|yadre}} *finska: {{ö+|fi|otsa}} *franska: {{ö+|fr|front|m}} *frisiska: {{ö|fy|foarholle}} *grekiska: {{ö+|el|μέτωπο}} *indonesiska: {{ö+|id|dahi}} *isländska: {{ö|is|enni}} *italienska: {{ö+|it|fronte|f}} *japanska: {{ö+|ja|額}} ({{ö+|ja|ひたい}}, hitai), {{ö|ja|お凸|tr=おでこ, odeko}} *kvänska: {{ö|fkv|otta}} *lettiska: {{ö|lv|piere}} *litauiska: {{ö|lt|kakta}} *malajiska: {{ö+|ms|dahi}} *maori: {{ö|mi|rae}} *nederländska: {{ö+|nl|voorhoofd}} *polska: {{ö+|pl|czoło}} *portugisiska: {{ö+|pt|testa|f}} *rumänska: {{ö+|ro|frunte}} *ryska: {{ö+|ru|лоб}} *slovakiska: {{ö+|sk|čelo}} *slovenska: {{ö+|sl|čelo}} *spanska: {{ö+|es|frente|f}} *tahitiska: {{ö|ty|rae}} *tjeckiska: {{ö+|cs|čelo}} *turkiska: {{ö+|tr|alın}} *tyska: {{ö+|de|Stirn|f}} *ungerska: {{ö+|hu|homlok}} {{ö-botten}} {{ö-topp|2. köksredskap}} *engelska: {{ö+|en|pan}} *finska: {{ö+|fi|pannu}} *isländska: {{ö+|is|panna|f}} *kvänska: {{ö|fkv|pannu}} *tyska: {{ö+|de|Pfanne|f}} {{ö-botten}} {{ö-topp|3. teknisk anordning som värmer upp vatten}} *arabiska: {{ö|ar|مرجل}} *bokmål: {{ö|no|kjele|m}}, {{ö|no|kjel|m}}, {{ö+|no|panne|m}} *danska: {{ö|da|kedel|u}}, {{ö+|da|fyr|n}} *engelska: {{ö+|en|boiler}} *finska: {{ö|fi|lämpökattila}} *nynorska: {{ö|nn|kjel|m}}, {{ö|nn|kjêl|m}}, {{ö|nn|kjêle|m}}, {{ö|nn|kjele|m}}, {{ö|nn|panne|f}} *tyska: {{ö+|de|Kessel|f}}, {{ö|de|Heizkessel|f}} {{ö-botten}} {{ö-topp|4. takbeklädnad}} *tyska: {{ö+|de|Dachpfanne|f}}, {{ö+|de|Dachziegel|m}} {{ö-botten}} ==Finska== ===Verb=== {{verb|fi}} '''panna''' #[[lägga]], [[sätta]], [[placera]] #[[brygga]], framställa [[jäsa|jästa]] drycker, som [[öl]] och [[mjöd]] #{{tagg|kat=vulgärt|språk=fi|text=vulgärt}} [[knulla]] ===Substantiv=== '''panna''' #{{tagg|historia|språk=fi}} [[bannlysning]] #{{tagg|ålderdomligt|språk=fi}} [[förbud]], [[banna]] ==Isländska== ===Substantiv=== {{is-subst-f-a|rot=pann|omljudsrot=pönn}} '''panna''' #{{tagg|kat=köksredskap|språk=is}} [[panna#Svenska|panna]] #:{{sammansättningar|[[pönnukaka]]}} ==Polska== ===Substantiv=== {{subst|pl}} '''panna''' #[[fröken]] #:{{synonymer|[[kobieta]], [[wolna]], [[niewiasta]] och [[pani]]}} #:{{antonymer|[[białogłowa]], [[mężatka]] och [[zamężna]]}} #[[flicka]] #:{{synonymer|[[niewiasta]], [[dziewoja]], [[dziewica]] och [[dziewczyna]]}} #[[flickvän]] #:{{synonymer|[[sympatia]] och [[partnerka]]}} e7ro6mhezqanfsjikhjoecb58b49zts grammatik 0 42512 4157293 4087783 2026-10-24T01:28:21Z Frodlekis 762 /* Översättningar */ 4157293 wikitext text/x-wiki {{se även|Grammatik}} ==Svenska== ===Substantiv=== {{sv-subst-n-er}} '''grammatik''' #{{tagg|kat=lingvistik}} beskrivning av hur ett språk är uppbyggt, hur satsdelar, ord, ändelser och andra element relaterar till varandra för att uttrycka betydelser #:{{citat|En för svenskar afsedd lärobok i dansk och norsk '''grammatik''' har hittills helt och hållet saknats.|titel=[https://runeberg.org/svlartid/1894/0425.html Svensk Läraretidning]|år=1894}} #:{{besläktade ord|[[grammatika]], [[grammatiker]], [[grammatisk]]}} #:{{sammansättningar|{{länk|sv|grammatikfel, grammatikregel, grammatikövning, skolgrammatik, valensgrammatik}}}} ====Översättningar==== {{ö-topp|språks uppbyggnad}} *aragonska: {{ö|an|gramatica}} *asturiska: {{ö|ast|gramática|f}} *belarusiska: {{ö|be|граматыка|f}} *bokmål: {{ö+|no|grammatikk}} *bretonska: {{ö+|br|yezhadur}} *central bikol: {{ö|bcl|balanghayan}} *danska: {{ö+|da|grammatik|u}} *engelska: {{ö+|en|grammar}} *esperanto: {{ö|eo|gramatiko}} *extremaduriska: {{ö|ext|gramática|f}} *finska: {{ö+|fi|kielioppi}} *franska: {{ö+|fr|grammaire|f}} *frisiska: {{ö+|fy|grammatika}} *färöiska: {{ö+|fo|málfrøði}} *galiciska: {{ö|gl|gramática}} *grönländska: {{ö|kl|oqaasilerineq}} *isländska: {{ö+|is|málfræði|f}} *japanska: {{ö+|ja|文法}} ({{ö+|ja|ぶんぽう}}, ''([[bunpou]]'') *jiddisch: {{ö+|yi|גראַמאַטיק|f|tr=gramatik}}, {{ö|yi|דיקדוק‎|tr=dikdek}} *katalanska: {{ö+|ca|gramàtica|f}} *kinesiska: {{ö+|zh|语法|tr=yǔfǎ}} *kurdiska: {{ö+|ku|rêziman}} *ladino: {{ö|lad|gramátika|f}} *lakota: {{ö|lkt|iyápi wóopȟe}} *meänkieli: {{ö|fit|kramatiikki}} *nordsamiska: {{ö|se|giellaoahppa}} *nynorska: {{ö|nn|grammatikk|m}} *polska: {{ö+|pl|gramatyka|f}} *ryska: {{ö+|ru|грамматика|f}} *spanska: {{ö+|es|gramática|f}} *sydsamiska: {{ö|sma|grammatihke}} *tyska: {{ö+|de|Grammatik|f}} *ukrainska: {{ö|uk|граматика|f}} {{ö-botten}} nyzypqhot09gsa4juo67sknlyg1z477 Alabama 0 46120 4157276 4138740 2026-10-24T01:16:15Z Frodlekis 762 4157276 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} '''Alabama''' #{{tagg|kat=amerikanska delstater}} en [[delstat]] i [[USA]] ====Översättningar==== {{ö-topp|delstat}} *afrikaans: {{ö|af|Alabama}} *albanska: {{ö+|sq|Alabama}} *arabiska: {{ö|ar|ألاباما|f|tr=ʾalābāmā}} *aragonska: {{ö|an|Alabama}} *asturiska: {{ö|ast|Alabama}} *azerbajdzjanska: {{ö+|az|Alabama}} *bayerska: {{ö|bar|Alabama}} *bikol: {{ö|bcl|Alabama}} *bislama: {{ö|bi|Alabama}} *bokmål: {{ö+|no|Alabama}} *bosniska: {{ö|bs|Alabama}} *bretonska: {{ö|br|Alabama}} *engelska: {{ö+|en|Alabama}} *fornengelska: {{ö|ang|Alabama}} *frankoprovensalska: {{ö|frp|Alabama}} *guaraní: {{ö|gn|Alavama}} *hindi: {{ö|hi|अलाबामा|tr=alābāmā}} *isländska: {{ö+|is|Alabama}} *jiddisch: {{ö|yi|אַלאַבאַמאַ|tr=Alabama}} *kapampangan: {{ö|pam|Alabama}} *katalanska: {{ö|ca|Alabama}} *kinesiska: {{ö+|zh|亞拉巴馬州|not=traditionellt}}, {{ö|zh|阿拉巴马州|not=förenklat}}, {{ö+|zh|阿拉巴馬州|not=Taiwan}} *lågskotska: {{ö|sco|Alabama}} *makedonska: {{ö|mk|Алабама|tr=Alabama}} *nederländska: {{ö+|nl|Alabama}} *nordsamiska: {{ö|se|Alabama}} *novial: {{ö|nov|Alabama}} *occitanska: {{ö+|oc|Alabama}} *papiamento: {{ö|pap|Alabama}} *persiska: {{ö+|fa|آلاباما|tr=âlâbâmâ}} *piedmontesiska: {{ö|pms|Alabama}} *polska: {{ö+|pl|Alabama}} *portugisiska: {{ö+|pt|Alabama}} *quechua: {{ö|qu|Alabama}} *rumänska: {{ö+|ro|Alabama}} *ryska: {{ö+|ru|Алабама|tr=Alabáma|f}} *rätoromanska: {{ö|rm|Alabama}} *samoanska: {{ö|sm|Alabama}} *sardiska: {{ö|sc|Alabama}} *schlesiska: {{ö|szl|Alabama}} *serbiska: {{ö|sr|Алабама|f}}, {{ö+|sr|Alabama|f}} *sicilianska: {{ö|scn|Alabama}} *slovakiska: {{ö|sk|Alabama}} *slovenska: {{ö|sl|Alabáma}} *somaliska: {{ö|so|Alabama}} *swahili: {{ö|sw|Alabama}} *tagalog: {{ö|tl|Alabama}} *thai: {{ö|th|แอละแบมา|tr=ɛɛ-lá-bɛɛ-mâa}} *turkiska: {{ö+|tr|Alabama}} *turkmeniska: {{ö|tk|Alabama}} *tyska: {{ö+|de|Alabama}} *urdu: {{ö|ur|الاباما}} *uzbekiska: {{ö|uz|Alabama}} *vietnamesiska: {{ö|vi|Alabama}} *volapük: {{ö|vo|Lalabamän}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=af}} [[#Svenska|Alabama]] ==Albanska== ===Substantiv=== '''Alabama''' #{{böjning|sq|subst|Alabamë}} ==Aragonska== ===Substantiv=== {{subst|an}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=an}} [[#Svenska|Alabama]] ==Asturiska== ===Substantiv=== {{subst|ast}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=ast}} [[#Svenska|Alabama]] ==Azerbajdzjanska== ===Substantiv=== {{subst|az}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=az}} [[#Svenska|Alabama]] ==Bayerska== ===Substantiv=== {{subst|bar}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bar}} [[#Svenska|Alabama]] ==Bislama== ===Substantiv=== {{subst|bi}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bi}} [[#Svenska|Alabama]] ==Bokmål== ===Substantiv=== {{subst|no}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=no}} [[#Svenska|Alabama]], en [[delstat]] i [[USA]] ==Bosniska== ===Substantiv=== {{subst|bs}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bs}} [[#Svenska|Alabama]] ==Bretonska== ===Substantiv=== {{subst|br}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=br}} [[#Svenska|Alabama]] ==Central bikol== ===Substantiv=== {{subst|bcl}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bcl}} [[#Svenska|Alabama]] ==Engelska== ===Substantiv=== {{en-subst-namn}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=en}} [[#Svenska|Alabama]], en [[delstat]] i [[USA]] ==Fornengelska== ===Substantiv=== {{subst|ang}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=ang}} [[#Svenska|Alabama]] ==Isländska== ===Substantiv=== {{subst|is}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=is}} [[#Svenska|Alabama]] ==Kapampangan== ===Substantiv=== {{subst|pam}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=pam}} [[#Svenska|Alabama]] ==Katalanska== ===Substantiv=== {{subst|ca}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=ca}} [[#Svenska|Alabama]] ==Nederländska== ===Substantiv=== {{subst|nl}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=nl}} [[#Svenska|Alabama]] ==Occitanska== ===Substantiv=== {{subst|oc}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=oc}} [[#Svenska|Alabama]] ==Serbiska== ===Substantiv=== {{subst|sr}} '''Alabàma''' {{f}} ([[Алабама|Алаба̀ма]]) #{{tagg|kat=amerikanska delstater|språk=sr}} [[#Svenska|Alabama]] ==Spanska== ===Substantiv=== {{subst|es}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=es}} [[#Svenska|Albama]] ==Tyska== ===Substantiv=== {{subst|de}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=de}} [[#Svenska|Albama]] ==Vietnamesiska== ===Substantiv=== {{subst|vi}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=vi}} [[#Svenska|Alabama]] ofqvicjswbwzhqpz72hcbuyfnzjxlvh 4157325 4157276 2026-10-24T01:43:28Z Frodlekis 762 4157325 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-t-namn}} '''Alabama''' #{{tagg|kat=amerikanska delstater}} en [[delstat]] i [[USA]] ====Översättningar==== {{ö-topp|delstat}} *afrikaans: {{ö|af|Alabama}} *albanska: {{ö+|sq|Alabama}} *arabiska: {{ö|ar|ألاباما|f|tr=ʾalābāmā}} *aragonska: {{ö|an|Alabama}} *asturiska: {{ö|ast|Alabama}} *azerbajdzjanska: {{ö+|az|Alabama}} *bayerska: {{ö|bar|Alabama}} *bislama: {{ö|bi|Alabama}} *bokmål: {{ö+|no|Alabama}} *bosniska: {{ö|bs|Alabama}} *bretonska: {{ö|br|Alabama}} *central bikol: {{ö|bcl|Alabama}} *engelska: {{ö+|en|Alabama}} *fornengelska: {{ö|ang|Alabama}} *frankoprovensalska: {{ö|frp|Alabama}} *guaraní: {{ö|gn|Alavama}} *hindi: {{ö|hi|अलाबामा|tr=alābāmā}} *isländska: {{ö+|is|Alabama}} *jiddisch: {{ö|yi|אַלאַבאַמאַ|tr=Alabama}} *kapampangan: {{ö|pam|Alabama}} *katalanska: {{ö|ca|Alabama}} *kinesiska: {{ö+|zh|亞拉巴馬州|not=traditionellt}}, {{ö|zh|阿拉巴马州|not=förenklat}}, {{ö+|zh|阿拉巴馬州|not=Taiwan}} *lågskotska: {{ö|sco|Alabama}} *makedonska: {{ö|mk|Алабама|tr=Alabama}} *nederländska: {{ö+|nl|Alabama}} *nordsamiska: {{ö|se|Alabama}} *novial: {{ö|nov|Alabama}} *occitanska: {{ö+|oc|Alabama}} *papiamento: {{ö|pap|Alabama}} *persiska: {{ö+|fa|آلاباما|tr=âlâbâmâ}} *piedmontesiska: {{ö|pms|Alabama}} *polska: {{ö+|pl|Alabama}} *portugisiska: {{ö+|pt|Alabama}} *quechua: {{ö|qu|Alabama}} *rumänska: {{ö+|ro|Alabama}} *ryska: {{ö+|ru|Алабама|tr=Alabáma|f}} *rätoromanska: {{ö|rm|Alabama}} *samoanska: {{ö|sm|Alabama}} *sardiska: {{ö|sc|Alabama}} *schlesiska: {{ö|szl|Alabama}} *serbiska: {{ö|sr|Алабама|f}}, {{ö+|sr|Alabama|f}} *sicilianska: {{ö|scn|Alabama}} *slovakiska: {{ö|sk|Alabama}} *slovenska: {{ö|sl|Alabáma}} *somaliska: {{ö|so|Alabama}} *swahili: {{ö|sw|Alabama}} *tagalog: {{ö|tl|Alabama}} *thai: {{ö|th|แอละแบมา|tr=ɛɛ-lá-bɛɛ-mâa}} *turkiska: {{ö+|tr|Alabama}} *turkmeniska: {{ö|tk|Alabama}} *tyska: {{ö+|de|Alabama}} *urdu: {{ö|ur|الاباما}} *uzbekiska: {{ö|uz|Alabama}} *vietnamesiska: {{ö|vi|Alabama}} *volapük: {{ö|vo|Lalabamän}} {{ö-botten}} ==Afrikaans== ===Substantiv=== {{subst|af}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=af}} [[#Svenska|Alabama]] ==Albanska== ===Substantiv=== '''Alabama''' #{{böjning|sq|subst|Alabamë}} ==Aragonska== ===Substantiv=== {{subst|an}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=an}} [[#Svenska|Alabama]] ==Asturiska== ===Substantiv=== {{subst|ast}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=ast}} [[#Svenska|Alabama]] ==Azerbajdzjanska== ===Substantiv=== {{subst|az}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=az}} [[#Svenska|Alabama]] ==Bayerska== ===Substantiv=== {{subst|bar}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bar}} [[#Svenska|Alabama]] ==Bislama== ===Substantiv=== {{subst|bi}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bi}} [[#Svenska|Alabama]] ==Bokmål== ===Substantiv=== {{subst|no}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=no}} [[#Svenska|Alabama]], en [[delstat]] i [[USA]] ==Bosniska== ===Substantiv=== {{subst|bs}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bs}} [[#Svenska|Alabama]] ==Bretonska== ===Substantiv=== {{subst|br}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=br}} [[#Svenska|Alabama]] ==Central bikol== ===Substantiv=== {{subst|bcl}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=bcl}} [[#Svenska|Alabama]] ==Engelska== ===Substantiv=== {{en-subst-namn}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=en}} [[#Svenska|Alabama]], en [[delstat]] i [[USA]] ==Fornengelska== ===Substantiv=== {{subst|ang}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=ang}} [[#Svenska|Alabama]] ==Isländska== ===Substantiv=== {{subst|is}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=is}} [[#Svenska|Alabama]] ==Kapampangan== ===Substantiv=== {{subst|pam}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=pam}} [[#Svenska|Alabama]] ==Katalanska== ===Substantiv=== {{subst|ca}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=ca}} [[#Svenska|Alabama]] ==Nederländska== ===Substantiv=== {{subst|nl}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=nl}} [[#Svenska|Alabama]] ==Occitanska== ===Substantiv=== {{subst|oc}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=oc}} [[#Svenska|Alabama]] ==Serbiska== ===Substantiv=== {{subst|sr}} '''Alabàma''' {{f}} ([[Алабама|Алаба̀ма]]) #{{tagg|kat=amerikanska delstater|språk=sr}} [[#Svenska|Alabama]] ==Spanska== ===Substantiv=== {{subst|es}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=es}} [[#Svenska|Albama]] ==Tyska== ===Substantiv=== {{subst|de}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=de}} [[#Svenska|Albama]] ==Vietnamesiska== ===Substantiv=== {{subst|vi}} '''Alabama''' #{{tagg|kat=amerikanska delstater|språk=vi}} [[#Svenska|Alabama]] 7d21igdmbj1q0tkmkrw2mfagirs8u4x tacka 0 48675 4157145 4082232 2026-10-23T16:08:38Z Frodlekis 762 +am: [[በግት]] (assisterat) 4157145 wikitext text/x-wiki {{wikipedia|Tacka (gjutning)}} {{se även|täcka}} ==Svenska== ===Substantiv=== {{sv-subst-n-or|fog=|pluralrot=tack}} '''tacka''' {{u}} #{{tagg|kat=djurhonor}} [[hona]] av däggdjuret [[får]] #:{{synonymer|[[fårhona]]}} #:{{kohyponymer|[[bagge]], [[lamm]]}} #:{{sammansättningar|[[skvallertacka]]}} #:{{seäven-bring|Kvinnokön||Djur}} #[[gjuta|gjutet]] stycke av [[metall]] eller annat [[material]] för fortsatt [[bearbetning]] #:{{sammansättningar|[[bronstacka]], [[guldtacka]], [[järntacka]], [[koppartacka]], [[tackjärn]]}} ====Översättningar==== {{ö-topp|fårhona}} *afrikaans: {{ö+|af|ooi}}, {{ö+|af|skaapooi}} *amhariska: {{ö|am|በግት|f|tr=bägit}} *bokmål: {{ö|no|søye|mf}}, {{ö|no|tikke|mf}}, {{ö|no|hunnsau|m}} *engelska: {{ö+|en|ewe}} *finska: {{ö+|fi|uuhi}}, {{ö|fi|emälammas}} *fornengelska: {{ö|ang|ēowu}} *franska: {{ö+|fr|brebis|f}} *färöiska: {{ö|fo|ær|f}} *isländska: {{ö+|is|ær|f}} *italienska: {{ö+|it|pecora|f}} *japanska: {{ö|ja|雌羊|tr=めひつじ, mehitsuji}}, {{ö|ja|牝羊|tr=めひつじ, mehitsuji}} *katalanska: {{ö+|ca|ovella|f}} *kroatiska: {{ö+|hr|ovca|f}} *latin: {{ö+|la|ovis|f}} *lågskotska: {{ö|sco|yowe}} *nederländska: {{ö+|nl|ooi|f}} *nynorska: {{ö|nn|tikke|f}}, {{ö|nn|søye|f}} *portugisiska: {{ö+|pt|ovelha|f}} *romani: {{ö|rom|bakri|f}} *rumänska: {{ö+|ro|oaie|f}} *ryska: {{ö+|ru|овца́|f}} *spanska: {{ö+|es|borrega|f}}, {{ö|es|cordera|f}} *tyska: {{ö+|de|Mutterschaf|n}}, {{ö+|de|Aue|f}} {{ö-botten}} {{ö-topp|gjutet stycke av metall}} *engelska: {{ö+|en|bullion}}, {{ö+|en|ingot}} *finska: {{ö+|fi|harkko}} *japanska: {{ö|ja|インゴット|tr=ingotto}}, {{ö|ja|鋳塊|tr=ちゅうかい, chūkai}} *portugisiska: {{ö|pt|lingote|m}} *rumänska: {{ö+|ro|lingou|n}} *spanska: {{ö+|es|lingote|m}} *tjeckiska: {{ö+|cs|ingot|m}} *tyska: {{ö+|de|Barren|m}} {{ö-botten}} ===Verb=== {{sv-verb-ar|rot=tack|perfpart=}} '''tacka''' #kort berätta för annan att man uppskattar något denna givit, eller gjort för, en; säga [[tack]] #:''Han '''tackade''' för maten och gick sedan hem.'' #:''Har du '''tackat''' mormor för presenterna?'' #:{{besläktade ord|[[avtacka]], [[betacka]], [[tack]], [[tacksam]], [[tacksamhet]]}} #:{{fraser|[[tacka ja]], [[tacka nej]]}} ====Översättningar==== {{ö-topp}} *engelska: {{ö+|en|thank}} *finska: {{ö+|fi|kiittää}} *franska: {{ö+|fr|remercier}} *isländska: {{ö+|is|þakka}} *japanska: {{ö+|ja|感謝|text=感謝する|tr=かんしゃする, kansha suru}} *polska: {{ö+|pl|dziękować}} *portugisiska: {{ö+|pt|agradecer}} *ryska: {{ö+|ru|благодарить}} *sydsamiska: {{ö|sma|gudtsiestidh}} *tyska: {{ö+|de|danken}}, {{ö+|de|bedanken}} {{ö-botten}} 4bum7patup8htts0cwhvhsj4b0izyp6 häck 0 51231 4157189 4144413 2026-10-23T20:55:27Z Tapio Toola 59668 +tr: [[çalı çit]]; +tr: [[siyeç]] (assisterat) 4157189 wikitext text/x-wiki {{se även|hack}} {{wikipedia|Häck (trädgård)}} {{wikipedia|häcklöpning|häck (sport)}} ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} {{media|Hecke Liguster hc.JPG|'''häck''' (1) av liguster}} {{media|Fotothek df roe-neg 0006574 017 Bilder Sechs Läuferinnen beim Nehmen einer Hürde.jpg|ta '''häcken''' (sport)}} {{media|Jimbo i Bergen - 14.jpg|häck [8], om än ganska kort}} '''häck''' #{{tagg|trädgård}} en tätt växande rad med [[buske|buskar]] eller vissa typer av [[träd]]; vanligen för att avgränsa ett område eller markstycke #:''Den magnifika franska stilen, med klippta '''häckar'''.'' #:{{sammansättningar|[[buxbomshäck]], [[cypresshäck]], [[granhäck]], [[grannhäck]], [[häckbuske]], [[häckhöjd]], [[häckklippning]], [[häcksax]], [[häcktrimmer]], [[häckväxt]], [[ligusterhäck]], [[syrenhäck]]}} #{{tagg|friidrott|text=kortform för '''[[häcklöpning]]'''}} en [[friidrott]]s[[gren]] med [[tio]] hinder (som skall hoppas över) utplacerade på en [[löparbana]], i regel inom en löpdistans av 100 meter (för damer) eller 110 meter (för herrar) #:''Jamaikanen segrade i korta '''häcken'''.'' #:{{sammansättningar|[[häcklöpare]]}} #{{tagg|friidrott}} ett av de [[hinder]] som används i ovanstående sport #:''Det händer snabbt att man river en '''häck'''.'' #{{tagg|slang}} [[stuss]], en människas [[ändalykt]] #:{{synonymer|[[bak]], [[stjärt]], [[ända]], [[ändalykt]]}} #:{{fraser|[[jobba häcken av sig]], [[ta dig i häcken]]}} #föremål som utgörs av [[spjälvärk]] eller [[gallervärk]], t.ex. foderbehållare med spjälor, bur e.d. av spjälverk för förvaring eller transport #:''Ovanför krubban (vid vilken hästen bindes) lägges höet innanför en häck av spjälar, foder'''häck'''.'' #:{{fraser|[[ha häcken full]] - ''vara överlastad med arbete''}} #den flata, stundom något utåtbuktade (konvexa) del av aktern på vissa träfartyg #[[fågelhäck]] #:''Vi tro ej att man vinner något genom att släppa fåglarna in i '''häcken''' alltför tidigt.'' #dubbel [[rad]] av [[soldat]]er (med lyfta svärd) #:{{synonymer|[[spaljé]]}} :{{avgränsare}} :{{etymologi|Betydelse 1 är den ursprungliga, släkt med [[hage]] och [[inhägna]], motsvarande tyska [[Hecke]] (f) och engelska [[hedge]]. Av betydelse 5 (föremål av spjälverk) kommer olika byggnadskonstruktioner, burar, fordon, även aktern på fartyg (betydelse 6), som på tyska heter Heck (n). Betydelse 7 kommer av verbet [[häcka]], men påminner också om en bur (spjälkonstruktion).}} ====Översättningar==== {{ö-topp|1. rad med buskar}} *engelska: {{ö+|en|hedge}} *finska: {{ö+|fi|pensasaita}}, {{ö+|fi|kuusiaita|not=granhäck}} *franska: {{ö+|fr|haie|f}} *isländska: {{ö|is|hekk}}, {{ö+|is|limgerði|n}} *italienska: {{ö+|it|siepe|f}} *japanska: {{ö|ja|生け垣|tr=いけがき, ikegaki}}, {{ö|ja|垣根|tr=かきね, kakine}} *nederländska: {{ö+|nl|heg}} *polska: {{ö+|pl|żywopłot|m}} *turkiska: {{ö|tr|çalı çit}}, {{ö|tr|siyeç}} *tyska: {{ö+|de|Hecke|f}} *ungerska: {{ö+|hu|sövény}} {{ö-botten}} {{ö-topp|2. idrottsgren}} *engelska: {{ö+|en|hurdling}} *finska: {{ö+|fi|aitajuoksu}}, {{ö+|fi|aidat|p}} *nederländska: {{ö+|nl|hordelopen|n}} *polska: {{ö|pl|płotki|p}} *tyska: {{ö|de|Hürdenlauf|m}} {{ö-botten}} {{ö-topp|3. hinder i denna idrottsgren}} *engelska: {{ö+|en|hurdle}} *finska: {{ö+|fi|aita}} *nederländska: {{ö+|nl|horde}} *polska: {{ö|pl|płotki|p}} *tyska: {{ö+|de|Hürde|f}} {{ö-botten}} {{ö-topp|4. stuss}} *engelska: {{ö+|en|bum}} *finska: {{ö+|fi|ahteri}} *franska: {{ö+|fr|fesses|f|p}} *nederländska: {{ö+|nl|achterste|n}}, {{ö+|nl|achterwerk|n}} *polska: {{ö+|pl|tyłek|m}}, {{ö+|pl|pupa|f}} *ryska: {{ö|ru|попа, жопа|tr=popa, zhopa}} *tyska: {{ö+|de|Hintern|m}} {{ö-botten}} {{ö-topp|5. föremål som utgöras av spjälvärk eller gallervärk}} {{ö-botten}} {{ö-topp|6. akterskepp}} *tyska: {{ö+|de|Heck|n}}, {{ö+|de|Achterschiff|n}} {{ö-botten}} {{ö-topp|7. fågelhäck}} {{ö-botten}} {{ö-topp|8. dubbel rad av soldater}} *bokmål: {{ö|no|espalier|n}}, {{ö|no|spalier|n}} *danska: {{ö|da|espalier|n}}, {{ö|da|spalier|n}} *nynorska: {{ö|nn|espalier|n}}, {{ö|nn|spalier|n}} *tyska: {{ö+|de|Hecke|f}}, {{ö+|de|Spalier}} {{ö-botten}} qpywf7vwpxxsn55dp9dkeqjqs264fsw Wiktionary:Teknikvinden 4 70631 4157187 4150843 2026-10-23T20:37:11Z Frodlekis 762 /* Ännu en bugg (om än oviktig) */ nytt avsnitt 4157187 wikitext text/x-wiki {{genväg|[[WT:TV]]}} {{meddelande | 1 = Välkommen till Teknikvinden! | 2 = <span style="font-weight:normal;">Detta är samlingsplatsen för diskussioner som rör de mer tekniska aspekterna bakom Wiktionary-projektet, såsom mallar och moduler. Känn dig välkommen att delta!</span> '''<span class="plainlinks">[http://sv.wiktionary.org/wiki/Wiktionary:Teknikvinden?&action=edit&section=new Skapa ett nytt stycke för ditt meddelande]</span>''' Gå till '''[[Wiktionary:Fikarummet|Fikarummet]]''' om du vill diskutera något som har med språk att göra, eller '''[[Wiktionary:Bybrunnen|Bybrunnen]]''' om du har mer allmänna frågor om Wiktionary. <small>När teknikvinden börjar bli orimligt stor kan en äldre del diskussioner arkiveras. Men töm aldrig helt den här sidan.</small> }}<br> {{arkiv-under|*[[/Arkiv00]] <small>2008-01-18...2016-08-29</small> *[[/Arkiv01]] <small>2017-01-16...2018-06-12</small> *[[/Arkiv02]] <small>2018-11-12...2021-01-09</small> *[[/Arkiv03]] <small>2021-01-02...2023-11-26</small>}} __NEWSECTIONLINK__ __TOC__ == Teknisk lösning för att undvika osynliga tecken i artikeltitel? == Som jag nämnt ett par gånger tidigare, angående de vanligen osynliga tecknen som uppstår vid kopiering av skrift som skrivs från höger till vänster - dessa tecken ställer till det. Nu inte bara för mig. Dessa tecken som kan visas som röda pluppar i redigeringsgranskaren om man trycker på pennan, kan vi på något sätt göra så att de inte kan infogas i översättningsmallen? Och ännu viktigare, så att de inte därifrån osynligt ingår i ett nyskapat uppslags titel och adress? Jag har gjort många ändringar likt [https://sv.wiktionary.org/w/index.php?title=%D9%88%D8%AB%D9%82&diff=4005917&oldid=4005888 denna], och det enda sättet att uppmärksamma det är att inte interwikilänkarna visas till t.ex. en, he, ar Wiktionary. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 23 februari 2024 kl. 12.57 (CET) Se t.ex. {{länk|ar|وثق⁩}}. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 23 februari 2024 kl. 15.17 (CET) :Jag har [https://sv.wiktionary.org/w/index.php?title=MediaWiki%3ATitleblacklist&diff=4007057&oldid=3831376 fixat] så att man inte längre kan skapa sidor som innehåller vissa osynliga tecken. För att skapa [[وثق⁩]] måste man nu vara administratör. :Det här är lurigt, så jag hoppas att jag inte har blockerat nåt som inte bör blockeras. :Jag borde väl också försöka fixa skriptet där man lägger till översättningar, så att den varnar, blockerar eller autofixar. Osäker på vad som blir bäst. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 27 februari 2024 kl. 21.52 (CET) == Kategorilistenavigering svarar inte korrekt? == Varför svarar inte uppslaget Kategori:Albanska/Alla uppslag korrekt på mallen {{mall|kategorilistenavigering|sq}}? 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 26 februari 2024 kl. 12.10 (CET) :Vad är problemet? Jag tycker att det ser rätt ut. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 26 februari 2024 kl. 21.29 (CET) :: Frodlekis har under tiden upptäckt att mallen är ynkligt konstruerat och kräver ca 10'000 undersidor. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 26 februari 2024 kl. 23.18 (CET) :::{{=)}} Lite så var det, ja. Har fått en del hjälp av ChatGPT så slipper peta in bokstav efter bokstav i alla fall. Dock får jag inte mallen att hitta rätt för dubbelbokstäver som t.ex. dh för albanska. Det är iofs ett mindre problem. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 26 februari 2024 kl. 23.30 (CET) ::::Mallen fixad. För att det ska fungera, så måste man uppfylla sorteringsreglerna som står specade på [[Modul:lang/data]]. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 27 februari 2024 kl. 21.29 (CET) :::::Ah, tack, det var där reglerna står. Jag utgick från Appendix alfabet samt engelska ''Category:Language lemmas''. Ska se över resterande nu, men tror jag inte hittade sorteringsfel i övrigt. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 27 februari 2024 kl. 21.42 (CET) == Lua 101 == Hej! Har försökt sätta mig in i kodning mer och mer, men blir inte klok för varför test 05 inte fungerar på [[Modul:ca-subst/test]]? I synnerhet baserat på att test 04 går bra? 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 19 april 2024 kl. 18.39 (CEST) :På rad 70 i [[Modul:ca-subst]] anropas funktionen <code>removeAccent</code> med den odefinierade variabeln <code>second_last_1</code> som argument. Argument används sedan i ett anrop till funktionen <code>mw.ustring.gsub</code> som förväntar sig en textsträng i den positionen, därav felet "Script error during testing: bad argument #1 to 'gsub' (string expected, got nil)" (odefinierade variabler är nil). Lösningen skulle vara att definiera <code>second_last_1</code>, baserat på namnet förmodar jag att den ska vara sidnamnets näst sista bokstav (på samma sätt som <code>last_1</code> är sista och <code>last_2</code> är de två sista). Det kan även vara bra att se över resten av rad 70, just nu står det <code>plur = removeAccent(second_last_1) .. "os"</code>, i de andra elseif-blocken konkateneras <code>pagename</code>, <code>without_last_1</code> eller <code>without_last_2</code> till början av <code>plur</code>, jag misstänker att detsamma ska göras här (troligen <code>without_last_2</code> men det har nog du bättre koll på). [[Användare:Andreasl01|Andreasl01]] ([[Användardiskussion:Andreasl01|diskussion]]) 19 april 2024 kl. 20.32 (CEST) ::Parallellt med detta har jag [https://sv.wiktionary.org/w/index.php?title=Modul%3Aca-subst&diff=4017939&oldid=4017256 fixat] problemet. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 19 april 2024 kl. 20.34 (CEST) :::Glömde säga att jag tycker att det är jättebra att du experimenterar och fixar! [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 19 april 2024 kl. 20.35 (CEST) ::::{{=)}} [[Användare:Andreasl01|Andreasl01]] ([[Användardiskussion:Andreasl01|diskussion]]) 19 april 2024 kl. 21.01 (CEST) == Översättningsmallen trasig == Jag får numera följande meddelande när jag klickar på grönlänkade översättningar för att skapa ny sida: <nowiki><strong class="error"><span class="scribunto-error" id="mw-scribunto-error-3346f18d">Luafel i Modul:entry på rad 95: parameter &quot;h3&quot; missing for entry_type = &quot;translation&quot;.</span></strong></nowiki> Testat inloggad och utloggad, på två enheter i Safari, bägge med Sonoma 14.5. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 7 juni 2024 kl. 16.06 (CEST) :Kanske relaterat till detta: https://www.mediawiki.org/wiki/Heading_HTML_changes ? :Tänkte precis skriva att någon behöver uppdatera rubrikreglerna i [[MediaWiki:Common.css]]. (se t.ex. [[sula#Verb]], där översättningsrubriken inte längre ligger vid översättningsavsnittet) [[Användare:Andreasl01|Andreasl01]] ([[Användardiskussion:Andreasl01|diskussion]]) 7 juni 2024 kl. 16.52 (CEST) ::Om vi bara tar bort rad 66 (".find('.mw-headline')") i [[MediaWiki:Gadget-green_links.js]] tror jag det ska fungera. Men det är nog bäst att låta {{@|Skalman}} titta på det. [[Användare:Andreasl01|Andreasl01]] ([[Användardiskussion:Andreasl01|diskussion]]) 7 juni 2024 kl. 17.51 (CEST) :::Toppen, tack för svar @[[Användare:Andreasl01|Andreasl01]]. Du väntar vi på det helt enkelt. Inga bekymmer för egen del. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 7 juni 2024 kl. 18.02 (CEST) ::::Tack båda två för buggrapporten och för hänvisningen till HTML-ändringarna. Tyvärr bestämmer användarens valda tema huruvida den gamla HTML-syntaxen eller den nya ska användas, så jag har anpassat så att bägge stöds. När den gamla syntaxen är helt borttagen från alla teman (om några veckor?), så ska jag förenkla koden så att bara den nya syntaxen stöds. ::::Ändringar gjorda hittills: ::::* [https://sv.wiktionary.org/w/index.php?title=MediaWiki:Gadget-green_links.js&curid=651117&diff=4035225&oldid=3944053 MediaWiki:Gadget-green links.js] ::::* [https://sv.wiktionary.org/w/index.php?title=MediaWiki:Gadget-prominent_interwikis.js&curid=942611&diff=4035235&oldid=3855980 MediaWiki:Gadget-prominent interwikis.js] ::::* [https://sv.wiktionary.org/w/index.php?title=MediaWiki:Common.css&curid=18417&diff=4035230&oldid=4008576 MediaWiki:Common.css] ::::Om ni hittar nåt mer som verkar buggigt, säg till så ska jag försöka fixa det också! [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 7 juni 2024 kl. 18.45 (CEST) Har nya svenska artiklar (som [[olja på duk]]) slutat att visa "Översättningar..."? {{@|Skalman}} --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 15 juni 2024 kl. 16.25 (CEST) :Tack för buggrapporten. Den här var lite krångligare att fixa, men jag tror att det ska funka nu. Om du ändå hittar nåt specialfall som inte funkar, säg till! [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 15 juni 2024 kl. 22.34 (CEST) ::Och för att jag ska kunna förenkla när alla teman använder den nya HTML-strukturen - här är ändringen: [https://sv.wiktionary.org/w/index.php?title=MediaWiki:Gadget-translation_editor_add_section.js&diff=prev&oldid=4039314 MediaWiki:Gadget-translation editor add section.js]. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 15 juni 2024 kl. 22.36 (CEST) == Funktioner för svenska i wikifunctions == Hej, jag är intresserat av att förbättra svenska och danska lexikaliska data på Wikidata. Jag tänker börja skapa lite funktioner likt [https://wikifunctions.org/w/index.php?search=noun] och [https://wikifunctions.org/w/index.php?search=deklination] för olika typer av svenska substantiver så det går att böja dem maskinellt. Jag tänker försöka mig på att skapa en funktion för varje av de sex deklinationerna som finns beskrivna här: [[:w:Substantiv#Böjning]] Är nån här intresserat av att hänga på och skapa funktioner för svenska? Se även [[Wiktionarydiskussion:Stilguide/Grammatik/Svenska/Substantiv]] [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 14 juli 2024 kl. 17.43 (CEST) : OK, det finns funktioner att hita ... men jag blir för närvarande mindre klok av dem. Plus som du skrev på annat ställe går det för närvarande '''EJ''' at anropa dessa från andra wikier. Fortsätt gärna diskussionen uteslutande här. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 14 juli 2024 kl. 17.53 (CEST) :: @[[Användare:So9q|So9q]]: [https://wikifunctions.org/view/en/Z13013] [[f:Z13013]] Det verkar att vanliga dödliga användare inte kan redigera funktioner. Men kan en inte ens se källkoden? [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 14 juli 2024 kl. 18.05 (CEST) :::Jag minns inte hur, men det går att efterfråga rätt att skapa och ändra funktioner. [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 14 juli 2024 kl. 22.38 (CEST) :Uppdatering: Nu har jag skapat ett gäng funktioner för svenska substantiv. :Jag hittade oregelbundna substantiv som inte passade in i Svenska Akademins klassificering så jag skapade två egna klasser. Målet är att det ska vara busenkelt för användaren att välja den funktion som ger rätt böjningsmönster. Se [[f:User:So9q]] för en översikt. Jag har testat med alla substantiverna på [[:Kategori:Svenska/Oregelbundna substantiv]] och vad jag kan se klarar mina 8 pluralfunktioner av alla förekommande fall nu :) :Jag välkomnar återkoppling och hjälp från er, låt oss skapa funktioner tillsammans som täcker alla former av alla svenska ordklasser, det är kul! :) [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 17 juli 2024 kl. 04.49 (CEST) ::Fast kan valet av rätt funktion (hos oss: rätt mall) någonsin bli busenkelt? För ryska, ukrainska, belarusiska har vi (jag) i princip gett upp och räknar upp alla böjningsformer i stället för att försöka välja rätt mall (funktion) och utvärdera om det blev rätt. Man måste nog vara infödd modersmålstalare för att kunna bedöma det utan att sitta och detaljkolla mot en pålitlig källa. Om valet vore busenkelt, skulle vi se en massa misstag i stil med pojkerna och ekerarna, när någon som kan språket halvbra har gissat vilken som är rätt böjning. --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 17 juli 2024 kl. 13.59 (CEST) ::: Modellen med 4 böjningsmönster för substantiv är ett skämt. Det finns ca 20 till 50, beroende på hur många en vill ha i klassen "övriga". Katten [[:Kategori:Svenska/Oregelbundna substantiv]] används tyvärr inte konsequent: [[afton]], [[fängelse]], [[täckelse]], [[öra]], [[öga]], [[hammare]], [[plektrum]] och många fler. [https://www.wikifunctions.org/view/en/Z17826 Z17826] koden syns nu och går även att redigera. Vad blir av "[[glädje]]", "[[musik]]" eller "[[humus]]" eller "[[hummus]]"? [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 17 juli 2024 kl. 17.10 (CEST) ::::Jag är benägen att hålla med. Tack för listan. Jag fixade https://www.wikifunctions.org/view/en/Z17721 så den kan hantera afton. [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 19 juli 2024 kl. 10.17 (CEST) ::::Fängelse funkar nu. Täckelse ok. Öra & öga ok. ::::hammer och plektrum har flera pluralformer så jag skapade [[wikifunctions:Z18002|Z18002]]. Jag skulle vilja varna användaren när den anges som input, men det går inte än att kalla funktioner mellan WF funktioner. ::::För singulare tantrum som musik, m.fl. skapade jag [[wikifunctions:Z18006|Z18006]] ::::Lägg gärna till lämpliga testar om ni hittar ord som funktionerna borde klara av. [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 19 juli 2024 kl. 15.41 (CEST) :Uppdatering: endast två funktioner kvar tills alla svenska substantiver täcks! :Svenska substantiver är de mest komplicerade av alla språk som det finns funktioner för än så länge i Wikifunctions vad jag kan se i katalogen. Mycket mera komplicerade av svenska verb som bara har 4 grupper för böjning om jag förstått rätt. :Nu kanske ni undrar: hur vet användaren vilken funktion som ger rätt böjningsmönster för ett givet substantiv? Det går att skapa en funktion för det om man vill också. Det tänker jag dock inte göra utan lämnar det till en modig och kanske ännu lite mera grammatisk kunnig själ 😀 :Jag tänker använda funktionerna till Wikidata Lexeme Forms där vi behöver skapa nya former för alla nio klasser plus en form for singulare tantrum. [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 20 juli 2024 kl. 07.34 (CEST) :: Ungefär samma gäller för verb. Det blir ca 20 till 50 mönster, beroende på hur många en vill ha i klassen "övriga". Några jobbiga verb: [[bli]], [[stjäla]], [[gala]], [[heta]], [[vara]] (två betydelser), [[sticka]] (två betydelser), [[måste]], [[sluta]], [[be]]. Och kom på ett jobbigt substantiv till: [[vimmel]]. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 21 juli 2024 kl. 22.18 (CEST) :::Jag la till två uttalanden på [[wikidata:Lexeme:L473175]]. Dessa behövs när vi skapar funktioner på Wikifunctions framledes så systemet vet hur substantiven funkar i meningar när text ska genereras. :::Mina substantivfunktioner är förresten bara för att hjälpa folk som skapar eller redigerar lexem på Wikidata, inte för att generera text. De måste således inte nödvändigtvis hantera alla udda fall. Jag skapade 3 nya klasser mest för att visa att Svenska Akademien inte gjort klasser som täcker alla vanliga substantiv. :::Jag ogillar personligen när folk utger sig för att vara experter och sakkunniga och sen inte håller måttet. :::Svenska Akademien ligger långt efter när det gäller öppna data om svenskan. Det drabbar dagligen alla som försöker lära sig svenska och saknar bra data och APIer så är pålitliga och lättanvända. :::Danskarna ligger steget före och har skapat öppna data om språket som gagnar samhället. [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 23 juli 2024 kl. 09.07 (CEST) :::Ditt exempel sticka är intressant. Som syns här finns två lexem redan https://ordia.toolforge.org/search?q=sticka :::Frågan är då hur ett system som skapar meningar ska veta vilken som används? :::Jag har inget bra svar på den frågan. :::Kanske kan systemet fråga om vilken betydelse av sticka som avses av användaren, kanske kan det själv deducere det från input. I dagsläget har vi AIer som chatgpt som endast är byggt på statistik, inte på bra och tillförlitlig språkdata och funktioner skapade av människor med output som går att lita på. [[Användare:So9q|So9q]] ([[Användardiskussion:So9q|diskussion]]) 23 juli 2024 kl. 09.15 (CEST) == User:Ba(by)bel_AutoCreate == Boten är [[:m:Special:CentralAuth/Babel_AutoCreate|blockerad på bara ca 32 wikier]]. Knepet med <nowiki>{{!}}</nowiki> slutade fungera under år 2022, och sedan dess skapade boten trasiga kategorier. Nu har jag minimalfixat problemet inom [[Mall:kategorinavigering-användare]]. Någon lösning som skulle kunna appliceras på [[MediaWiki:Babel-autocreate-text-main]] och [[MediaWiki:Babel-autocreate-text-levels]] har jag inte hittat, exakt alla försök slog fel. [[:eo:Template:kat|På eo wikitionary finns en bättre mall]] som inte kräver några parametrar alls. Tyvärr måste även den testa för ns 8. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 9 november 2024 kl. 16.59 (CET) == Mera kompletta och korrekta konjugationstabeller == Jag har inte lyckats hitta in i redigeringen av konjugationstabellerna, där jag har upptäckt felaktigheter och brister som behöver korrigeras, och där hela modi saknas. Ett exempel: under "ta" finns talspråksformen "tatt", vilket väl är ok, antar jag, då den är markerad som sådan, men även "tagandes" under presens particip; varför stoppar man in genitivformen av ett substantiverat adjektiv - eller substantiverad presens particip, om man så vill - i en tabell över verbformer? Däremot saknas såväl "tage" som "toge", samt för den delen även "tagom", som gärna finge förses med tag "åld", men icke desto mindre borde, eller bör, finnas med för referens i sin egenskap av en obsolet, men dock historisk aspekt på det svenska språket. Jämför t.ex. franskan, som oförskräckt tar med ålderdomliga, litterära verbformer, såvitt jag med mina begränsade kunskaper i detta språk kan se. Vad referenser till baskiska och andra obesläktade språk har med saken att göra skulle jag också gärna vilja ha redaktörernas hjälp med att förstå. [[Användare:Tochar|Tochar]] ([[Användardiskussion:Tochar|diskussion]]) 11 november 2024 kl. 08.51 (CET) :> har inte lyckats hitta in i redigeringen av konjugationstabellerna :: {{mall|sv-verb-ar}} :> upptäckt felaktigheter och brister som behöver korrigeras : ... :> hela modi saknas. Ett exempel: under "ta" finns talspråksformen : ... :> saknas såväl "tage" som "toge", samt för den delen även "tagom" : Jag kan inte se några felaktigheter eller brister. Fornsvenska former tas väl med flit inte med. :> varför stoppar man in genitivformen av ett substantiverat adjektiv - eller substantiverad presens particip : Det är en obskyr verbform, ej ett substantiverat adjektiv. : [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 11 november 2024 kl. 17.14 (CET) ::@[[Användare:Taylor 49|Taylor 49]] Bara en kort inflik, pluralformer var i bruk både i tal (dialektalt) och skrift (riksspråkligt) in på mitten av 1900-talet. Det är alltså svenska vi talar om, inte fornsvenska. Se för referens [https://www.uu.se/nyheter/2022/2022-03-15-darfor-forsvann-verbens-pluralformer Uppsala Universitets korta artikel här]. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 11 november 2024 kl. 17.32 (CET) ::...skriftligen var verbens pluralböjning norm fram tills 1945. Se [https://spraktidningen.se/artiklar/sa-dogo-svenskans-pluralformer/ Språktidningen]. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 11 november 2024 kl. 17.36 (CET) :På tal om presensparticip med ''-s'' så beskrivs det mer ingående i Svenska Akademiens Grammatik ([https://svenska.se/SAG_Volym_2.pdf#page=618 Volym 2, Particip § 31]). Det kan naturligtvis diskuteras om det borde vara en del av mallarna. Själv tycker jag det är onödigt, men det är inte direkt en kulle jag är villig att dö på, om jag säger så. [[Användare:Gabbe|Gabbe]] ([[Användardiskussion:Gabbe|diskussion]]) 17 november 2024 kl. 05.28 (CET) == Layout kring "se artikel på en:wikt" == Rutan gör att rubriken bara går plats med en bokstav på rad. Den skrivs på vertikalen. Var kan dela bild enkelt? –[[User_talk:Moberg|d]][[User:Moberg|Moberg]] 26 november 2024 kl. 16.23 (CET) : Varför nämner du inte åtminstone en drabbad sida? Skärmdump kan laddas upp till Wikimedia Commons eller "imgbb.com". [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 27 november 2024 kl. 20.53 (CET) == Alt+Shift+E för redigering == Hej! Jag ser att det nya temat nu har kommit till Wiktionary. Det fungerar över lag bra, men det finns några saker som stör mig, i synnerhet det här: Jag kan inte längre redigera en sida genom att trycka Alt+Shift+E. Nu måste jag följa upp kommandot med Enter (vilket alltså är dubbelt så många kortkommandon för samma åtgärd). Alt+Shift+E flyttar nämligen fokus till knappen "Redigera", men klickar inte på den. Kan detta åtgärdas? --[[Användare:Andreas Rejbrand|Andreas Rejbrand]] ([[Användardiskussion:Andreas Rejbrand|diskussion]]) 26 november 2024 kl. 23.52 (CET) :Jag har också stört mig på det här, men kanske inte lika mycket som du. Det är tyvärr en [https://bugzilla.mozilla.org/show_bug.cgi?id=1797214 bugg i Firefox]. Om vi vill lösa det här på sv-wikt, så skulle man nog ta bort attributet <code>accesskey</code> från alla element som är osynliga. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 28 november 2024 kl. 22.58 (CET) ::@[[Användare:Andreas Rejbrand|Andreas Rejbrand]], jag har nu fixat detta i finessen "Fixa kortkommandon i Firefox (t.ex. Alt+Shift+E för redigering)". Kika gärna! [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 28 november 2024 kl. 23.29 (CET) :::Strålande, det fungerar! Tack. --[[Användare:Andreas Rejbrand|Andreas Rejbrand]] ([[Användardiskussion:Andreas Rejbrand|diskussion]]) 29 november 2024 kl. 15.53 (CET) == Nya temat - bugg nya artiklar == När jag trycker på en grönlänkad översättning för att skapa uppslaget, så genereras inte det nya uppslaget automatiskt längre. Inte heller kan jag generera koden genom att fylla i fälten Definition, Språk, Ordklass ifall jag vill ha ''Syntax'' aktivt. Jag föredrar att ha den, så att formateringen blir mer lättöverskådlig. Det går fortfarande att generera kod om jag avaktiverar Syntax. Jag kör Safari på senaste Mac OS (Safari version 18.2 (20620.1.16.11.6) och Mac OS 15.2 Beta (24C5089c)). 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 30 november 2024 kl. 12.52 (CET) :Buggen försvann från grönlänkar om jag avaktiverar att visa ''Syntax'', så det verkar vara just där skon klämmer. Kör på i svartvitt tills vidare, men ser gärna en lösning. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 30 november 2024 kl. 13.08 (CET) ::@[[Användare:Frodlekis|Frodlekis]], lurigt värre! Jag kan varken återskapa problemet med Firefox på Linux eller med Safari 18.1.1 på iPhone - på dessa enheter funkar allt som vanligt för mig. ::Har du nån annan webbläsare installerad på datorn? Kan du kika om problemet finns där också? [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 1 december 2024 kl. 00.39 (CET) :::Jag ska försöka kika på det imorgon! 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 27 december 2024 kl. 03.28 (CET) == technical problems in the Swedish Wiktionary == :''Discussion moved to [[WT:BB#technical problems in the Swedish Wiktionary]].'' == Special:Uppladdning == [[Special:Uppladdning]] --> "Uppladdningsfunktionen är avstängd" Varifrån kommer texten? Går det att redigera den? [[phab:T9977]] [[Wiktionary:Bybrunnen/Arkiv9#Bilder]]. [[Hjälp:Ladda upp filer]] [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 21 december 2024 kl. 00.42 (CET) :Text i gui:t kan hittas genom att lägga till <code>?uselang=qqx</code> i url:en, i det här fallet [https://sv.wiktionary.org/wiki/Special:Uppladdning?uselang=qqx]. Där framgår att texten kommer från [[MediaWiki:wikimedia-upload-nolicenses]]. Denna sida har inte definierats explicit på sv-wikt, så då kommer texten från dom inbyggda MediaWiki-texterna eller andra inbyggda tillägg till MediaWiki. Dessa texter definieras [https://translatewiki.net/wiki/MediaWiki:Wikimedia-upload-nolicenses/sv på TranslateWiki], och gör man en ändring där, så slår det igenom till sv-wikt och andra Wikimedia-wikier inom några dagar (tror jag). :Om du ska fixa nåt specifikt för sv-wikt så kan du ändra/skapa [[MediaWiki:wikimedia-upload-nolicenses]], om du ska fixa stavfel/grammatik så gör du det på [https://translatewiki.net/wiki/MediaWiki:Wikimedia-upload-nolicenses/sv TranslateWiki], och om du vill få den ursprungliga engelska texten ändrad (så att också den svenska texten så småningom kan ändras) så måste du be om det på [[phab:|Phabricator]]. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 27 december 2024 kl. 21.46 (CET) :: @[[User:Skalman]] Tack. Jag har lite tagit bort olämpliga tips. Men jag skulle gärna visa sådant: [https://commons.wikimedia.org/w/index.php?title=File:OACA_Arena_in_December_2024.jpg&action=edit]. Går det att få tag på filnamnet? [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 27 december 2024 kl. 22.12 (CET) :::Jag förstår inte riktigt vad du menar, men kanske är du ute efter <code><nowiki>{{FULLPAGENAME}}/{{PAGENAME}}</nowiki></code>? Om inte, kan du förklara på vilken url du vill visa vilken text? [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 27 december 2024 kl. 23.21 (CET) :::: Efter test: <code><nowiki>{{FULLPAGENAME}}/{{PAGENAME}}</nowiki></code> funkar inte (ger "Special:Uppladdning"), och <code><nowiki>$1</nowiki></code> funkar inte (ger "$1" bokstavligen). Efter att ha klickat på en icke-existerande fil, kommer jag till <code><nowiki>https://sv.wiktionary.org/w/index.php?title=Special:Uppladdning&wpDestFile=finnsej.gif</nowiki></code>. Hur kan jag få ut det som står efter "wpDestFile="? Som skrivet ovan, vill jag visa länkar [https://commons.wikimedia.org/w/index.php?title=File:finnsej.gif&action=edit] eller [https://commons.wikimedia.org/w/index.php?title=File:OACA_Arena_in_December_2024.jpg&action=edit] och [https://sv.wiktionary.org/w/index.php?title=File:finnsej.gif&action=edit] så att det går att enkelt kolla ifall filen kanske hade funnits men har raderats (när, av vem, varför, till förmån för vad, ...). [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 27 december 2024 kl. 23.50 (CET) :::::Det finns nog inget sätt att få tag i <code>wpDestFile</code> utan att använda en finess. :::::Jag tolkar det som att [[mw:Manual:$wgUploadMissingFileUrl]] styr vart rödlänkar går. Kanske vore det bättre att be Wikimedia om att rödlänkar ska gå till t.ex. [https://commons.wikimedia.org/w/index.php?title=Special:Upload&wpDestFile=OACA_Arena_in_December_2024.jpg] (användarens språk eller engelska) eller [https://commons.wikimedia.org/w/index.php?title=Special:Upload&uselang=sv&wpDestFile=OACA_Arena_in_December_2024.jpg] (för svenska)? Vad tycker du? [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 2 januari 2025 kl. 09.56 (CET) :::::: Då går det väl inte att lösa detta lokalt (utan krånglig finess), men att redigera [[mw:Manual:$wgUploadMissingFileUrl|$wgUploadMissingFileUrl]] som visat ovan för "användarens språk eller engelska" är exakt det som jag har varit ute efter sedan början. [[Special:Bidrag/CommonsDelinker|döda filer]] [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 3 januari 2025 kl. 00.40 (CET) == Phabricator request: Please edit "$wgUploadMissingFileUrl" for sv wiktionary == Proposal: Edit "$wgUploadMissingFileUrl" for sv wiktionary changing it to <code><nowiki>https://commons.wikimedia.org/w/index.php?title=Special:Upload</nowiki></code>. Purpose: show a more useful message when a user clicks a non-existent file. The task at phabricator will get created later when there is consensus here. @[[User:Skalman]], @[[User:LA2]], @[[User:Andreas Rejbrand]], @[[User:Frodlekis]], @[[User:Tommy Kronkvist]] [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 3 januari 2025 kl. 00.40 (CET) :: Begäran skapad: [[phab:T383452]] @[[User:LA2]], @[[User:Andreas Rejbrand]], @[[User:Frodlekis]], @[[User:Tommy Kronkvist]] Vill någon yttra sig? [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 11 januari 2025 kl. 00.35 (CET) ::: Jag har nu testat med mitt alternativa konto (icke-admin). Icke-administratörer ser följnade "Permission error You do not have permission to upload this file, for the following reason: The action you have requested is limited to users in the group: Administrators." medan administratörer ser följnade: "Uppladdningsfunktionen är avstängd Lokal uppladdning av filer till denna wiki är avaktiverad. Vänligen ladda upp till Wikimedia Commons. Se Hjälp:Ladda upp filer. Tillbaka till Wiktionary:Huvudsida." [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 11 januari 2025 kl. 16.07 (CET) : '''Support''' as the proposer. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 3 januari 2025 kl. 00.40 (CET) :'''Support'''. För att förtydliga för övriga, så är detta fortsättning på diskussionen ovan ([[#Special:Uppladdning]]). Resultatet skulle vara att rödlänken på [https://sv.wiktionary.org/w/index.php?title=l%C3%B6pband&oldid=2431671] skulle leda till [https://commons.wikimedia.org/w/index.php?title=Special:Upload&wpDestFile=Treadmill2.jpeg] ist.f. [https://sv.wiktionary.org/w/index.php?title=Special:Uppladdning&wpDestFile=Treadmill2.jpeg]. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 4 januari 2025 kl. 21.50 (CET) :'''Support'''. Jag kan inte se Skalmans länk [https://sv.wiktionary.org/w/index.php?title=Special:Uppladdning&wpDestFile=Treadmill2.jpeg] enligt ovan (eftersom jag inte är administratör) men på det stora hela verkar det vara en enkel och bra lösning. –[[Användare:Tommy Kronkvist|Tommy Kronkvist]] ([[Användardiskussion:Tommy Kronkvist|diskussion]]), 11 januari 2025 kl. 15.56 (CET). : '''Support'''. Hela föregående diskussionen var för mig i princip obegriplig, så jag vill tacka Skalman för förtydligandet. Det verkar logiskt att användaren hänvisas till denna plats istället. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 11 januari 2025 kl. 16.00 (CET) :: {{klar}} (med viss fördröjning ...) [https://sv.wiktionary.org/w/index.php?title=l%C3%B6pband&oldid=2431671 test: klicka på rödlänken] [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 8 februari 2025 kl. 00.14 (CET) == Alfabetisk ordning ÅÄÖ == Hur kan jag rätta till den alfabetiska ordningen för kategorier som ''[[:Kategori:Svenska/Termer belagda sedan 1400-talet]]''? För just svenska är det ÅÄÖ som hamnar fel, för andra språk har jag ibland upptäckt motsvarande problematik, men minns inte i vilken kategori detta var (men tror inte det var dateringskategorierna). 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 9 februari 2025 kl. 16.49 (CET) :{{modul|belagt}} behöver använda {{modul|sort}}. @[[Användare:Taylor 49|Taylor 49]], är det här nåt du kan fixa? [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 9 februari 2025 kl. 22.05 (CET) :: @[[User:Skalman]] Jo jag aka fixa det (men ej idag). Förresten, på {{modul|sort}} står det " ''Exempelvis sorteras ä och ö framför å, vilket blir fel för svenska'' " vilket inte verkar stämma. <big>ä $C3,$A4 å $C3,$A5 ö $C3,$B6</big>. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 9 februari 2025 kl. 23.04 (CET) :::@[[Användare:Taylor 49|Taylor 49]], bra hittat, jag har fixat formuleringen. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 9 februari 2025 kl. 23.49 (CET) :::: @[[User:Skalman]] @[[User:Frodlekis]] {{klar}} '''b''' och '''sort''' (lite småaktigt med öåä men gjort ändå/åndä) [https://linkcount.toolforge.org/?project=sv.wiktionary.org&page=Mall:belagt bara 2'853 transklusioner] [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 23 februari 2025 kl. 19.51 (CET) == Önskelista "Modul:belagt" == @[[User:Frodlekis]] * använd "Modul:sort" * parmetervärde "b" för att börja med versal men ingen punkt i slutet * ändra kategoriseringsschemat ?? (detta kan göras, men påverkar existerande kategorier, och bör därför inte ändras ofta eller godtycligt, dvs en ändring måste vara väl övervägd och precis beskriven) [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 9 februari 2025 kl. 23.13 (CET) == <span lang="en" dir="ltr">Migration to Parsoid</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Hello everyone! I am glad to inform you that as the next step in the [[mw:Special:MyLanguage/Parsoid/Parser Unification|Parser Unification]] project, Parsoid will soon be turned on as the default article renderer on your Wiktionary. We are gradually increasing the number of wikis using Parsoid, with the intention of making it the default wikitext parser for MediaWiki's next long-term support release. This will make our wikis more reliable and consistent for editors, readers, and tools to use, as well as making the development of future wikitext features easier. If this transition disrupts your workflow, don’t worry! You can still opt out through a user preference or turn Parsoid off on the current page using the Tools submenu, as described in the [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]] documentation. There is [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Confidence_Framework|more information about our roll-out strategy]] available, including the testing done before we turn on Parsoid for a new wiki. To report bugs and issues, please look at our [[mw:Special:MyLanguage/Parsoid/Parser Unification/Known Issues|known issues]] documentation and if you found a new bug please create a phab ticket and tag the [[phab:project/view/5846|Content Transform Team in Phabricator]]. <section end="announcement-content" /> </div> <em>[[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Parsoid Read Views/Wiktionary Announcement|{{MediaWiki:Please-translate}}]]</em> <bdi lang="en" dir="ltr">[[mw:User:CAnanian (WMF)|C. Scott Ananian]] (Parsoid technical lead)</bdi> 12 februari 2025 kl. 21.48 (CET) <!-- Meddelande skickades av User:CAnanian (WMF)@metawiki med hjälp av listan på https://meta.wikimedia.org/w/index.php?title=Wikimedia_Foundation/Product_and_Technology/Parsoid_Read_Views/2025-02-12_Wiktionaries&oldid=28256121 --> == Översättningar == Länken dyker inte längre upp för att skapa ett avsnitt för Översättningar. [[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 19 februari 2025 kl. 12.10 (CET) :Tack för felrapporten. Detta har inträffat pga ovanstående ändring, [[#Migration to Parsoid]]. Jag fixar förhoppningsvis finessen senare idag, alternativt senare i veckan. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 19 februari 2025 kl. 12.56 (CET) ::[https://sv.wiktionary.org/w/index.php?title=MediaWiki:Gadget-translation_editor_add_section.js&diff=prev&oldid=4100825 Fixat]. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 19 februari 2025 kl. 21.08 (CET) ::: Inte helt. Nu syns länken <code>Lägg till översättningar...</code> även då sådana redan finns ([[röv|till exempel här]]). [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 21 februari 2025 kl. 00.51 (CET) ::::Hmm, det där hade jag missat. Det var tydligen en massa fler ändringar som gjorts än vad jag först såg. Jag har tills vidare avaktiverat den här finessen. Jag ska försöka fixa det igen inom några dagar. [[Användare:Skalman|Skalman]] ([[Användardiskussion:Skalman|diskussion]]) 22 februari 2025 kl. 00.40 (CET) == Grönlänkar för böjningar skapar tomma sidor == När jag klickar på en grön länk för en böjning av ett ord, får jag en ny sida utan innehåll. Exempel: [[гармата]]. (Kanske relaterat till ovanstående?) [[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 27 februari 2025 kl. 15.37 (CET) : Troligast ja. Funkar för svenska verb, trasigt för svenska substantiv, engelska substantiv, engelska verb. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 27 februari 2025 kl. 16.46 (CET) ::Det är trasigt för {{mall|sv-subst-n-ar}}, t.ex. [[snäckbank]], men fungerar för {{mall|sv-subst-n-oräkn}}, t.ex. [[klimatförsämring]]. Detta kanske kan vara en ledtråd i felsökningen? --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 5 mars 2025 kl. 23.24 (CET) :Jag har haft samma problem. Men när jag valde ''never (opt-out)'' i mina användarinställningar > redigering > utvecklarverktyg för Parsoid så fungerade det igen. [[Användare:Pontianejtack|Pontianejtack]] ([[Användardiskussion:Pontianejtack|diskussion]]) 26 september 2025 kl. 11.19 (CEST) ::Tack! --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 26 september 2025 kl. 13.06 (CEST) Det har gått två månader och inget händer. Hur svårt är det att få detta att fungera? Ska vi ropa in hjälp från ... ja, från vem? Wikimedia Foundation? --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 7 maj 2025 kl. 12.32 (CEST) == ''[[-bordare]]'', hårt bindestreck == Om vi tittar i böjningsmallen för ''[[-bordare]]'' ser vi att vi får en radbrytning mellan bindestrecket och "bordarens" i bestämd form singular genitiv (åtminstone i Firefox, Windows 11 på min dator). Detta är väl egentligen inte fel av webbläsaren, utan snarare är det så att vi borde använda U+2011: NON-BREAKING HYPHEN i stället för U+002D: HYPHEN-MINUS det här sammanhanget. Finns det möjlighet att göra så att böjningsmallen i artiklar med H3-rubriken ''Efterled'' som inleds med 002D automatiskt byter ut tecknet mot 2011? --[[Användare:Andreas Rejbrand|Andreas Rejbrand]] ([[Användardiskussion:Andreas Rejbrand|diskussion]]) 15 mars 2025 kl. 13.45 (CET) == Fel datum på huvudsidan == Den senaste månaden eller så har jag noterat att datumet på huvudsidan oftast är fel. T.ex. i dag, söndagen den 30 mars 2025, står det "tisdagen den 25 mars 2025" längst uppe till höger. Det här ser inte särskilt bra ut. Händer det här bara mig? --[[Användare:Andreas Rejbrand|Andreas Rejbrand]] ([[Användardiskussion:Andreas Rejbrand|diskussion]]) 30 mars 2025 kl. 14.30 (CEST) :Samma för mig, ser ''25 mars''. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 30 mars 2025 kl. 15.24 (CEST) :: Ser dagens datum, ingen bugg. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 30 mars 2025 kl. 21.09 (CEST) :::Idag är 3 april och förstasidan visade mig 26 mars, tills jag lade ?action=purge efter URLen, och då uppdaterades datumet. Vad är tanken med att lägga datumvisning på förstasidan? Är vi en datumkalender eller en ordbok? Alla siffror, som antalet uppslag kan ju lida av inaktualitet, eftersom sidan cachas, men detta är knappast en orsak till att också lägga dagens datum till inaktuella uppgifter. Vänligen, ta bort datumet från förstasidan. --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 3 april 2025 kl. 07.40 (CEST) :::: '''Vote neutral'''. Ifall ingen protesterar då tar jag bort datumet. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 4 april 2025 kl. 00.30 (CEST) :::::Jag ser fortfarande fel datum, och säkert fler med mig. Är av åsikten att i detta fall är ''inget datum'' är bättre felaktigt datum, som ger ett oprofessionellt intryck. Röstar för tillsvidare avlägsnande av dagens datum. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 14 april 2025 kl. 00.44 (CEST) ::::::Jag ser också fel datum. Men det här har inte varit något problem tidigare. Vad är det som har ändrats? Vet @[[Användare:Skalman|Skalman]]? --[[Användare:Andreas Rejbrand|Andreas Rejbrand]] ([[Användardiskussion:Andreas Rejbrand|diskussion]]) [[Användare:Andreas Rejbrand|Andreas Rejbrand]] ([[Användardiskussion:Andreas Rejbrand|diskussion]]) 21 april 2025 kl. 13.09 (CEST) == Bugg: Ligaturen և i översättningsmallen ändras till klassisk stavning == Hej! Jag har upptäckt ett litet men viktigt problem i systemet, när man klickar på grönlänkar i översättningsmallen. När man klickar på en grönlänk som innehåller den moderna armeniska ligaturen [[և]] (t.ex. i ordet [[արևադարձ]]), så omvandlas den automatiskt till klassisk stavning med två tecken: ե + ւ = եւ. Det innebär alltså att länken leder till ett annat uppslagsord än det är tänkt, ett som inte existerar i modern armeniska, vilket kan vara förvirrande eller leda till onödiga omdirigeringar. Jag misstänker att detta är nåt som ligger i modulen bakom översättningsmallen, där man inte hanterar Unicode-ligaturen և i det här sammanhanget. 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 13 april 2025 kl. 14.00 (CEST) :PS. jag har alltså lagt in korrekt stavning i översättningsmallen för "solros" som ''արևածաղիկ'', men trots att uppslaget redan existerar i identisk och korrekt form så blir det en grönlänk som automatiskt skapar den obsoleta stavningen. 🫠 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 13 april 2025 kl. 14.03 (CEST) ::: '''FEL''' [[արեւադարձ]] {{#invoke:utf8debug|ek|outctl=1101|արեւադարձ}} <br> :::: vs <br> ::: '''RÄTT''' [[արևադարձ]] {{#invoke:utf8debug|ek|outctl=1101|արևադարձ}} <br> ::: U+$0587 strular. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 13 april 2025 kl. 23.29 (CEST) :::: [https://sv.wiktionary.org/w/index.php?title=Modul%3Alang%2Fdata&diff=4109569&oldid=4086452] {{klar}} [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 13 april 2025 kl. 23.51 (CEST) :::::Du löste det! Tack, @[[Användare:Taylor 49|Taylor 49]]! 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 14 april 2025 kl. 00.40 (CEST) == Böjningsuppslag skapas inte per automatik == Hej! Jag läste på någon sida (minns tyvärr inte vilken och nu kan jag inte hitta det) att man ''aldrig'' behöver skapa uppslag för böjningsformer manuellt, eftersom robotar sköter det automatiskt. Detta stämmer bevisligen dock inte, eftersom det finns åtskilliga uppslag där hela böjningstabellen är grön, trots att uppslaget i fråga ibland är flera år gammalt. Hur kommer detta sig? [[Användare:TheHidoo|TheHidoo]] ([[Användardiskussion:TheHidoo|diskussion]]) 16 maj 2025 kl. 17.17 (CEST) : Det var för länge sedan botar gjorde detta. Sedan kom "finessen", men den är sönder nu pga Parsoid. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 26 maj 2025 kl. 16.33 (CEST) ::Okej, tack för info! Finns det någon plan på att lösa det? [[Användare:TheHidoo|TheHidoo]] ([[Användardiskussion:TheHidoo|diskussion]]) 30 maj 2025 kl. 21.07 (CEST) :::Det är en skandal att det har fått vara trasigt så länge. Vi borde överväga att skaffa en bot som skapar böjningsuppslagen. Finns det någon vilande, som kan startas upp? Jag har bara gjort det på en.wikt för 15 år sedan, aldrig på sv.wikt. --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 9 juni 2025 kl. 00.31 (CEST) ::::Eftersom grönlänkar fungerar i {{mall|sv-subst-t-0}} men inte i {{mall|da-subst-t-0}}, är det möjligt att skriva om den senare till att använda samma mekanismer som den förra? Bäst vore förstås att fixa de mekanismer som används i danska mallen, men ingen verkar ju veta hur det ska gå till. --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 13 augusti 2025 kl. 22.16 (CEST) ::::: Det går säkert, i princip. Mall da använder "g-cell" medan sv använder "länka-b". [[Special:Användare/interface-admin]] [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 14 augusti 2025 kl. 17.55 (CEST) :::::: Eller kan man skriva om g-cell så att den anropar länka-b? Då slipper man ändra i väldigt många andra mallar. --[[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 14 augusti 2025 kl. 18.00 (CEST) :::::::[[Användare:Skalman]] anropas i brist på lösningar av grönlänksproblematiken! Kanske något för [[Användare:Skalbot]] att ta sig an? (Vet inte om man kan "@:a" folk så här på Wiktionary men värt ett försök!) [[Användare:TheHidoo|TheHidoo]] ([[Användardiskussion:TheHidoo|diskussion]]) 25 februari 2026 kl. 10.46 (CET) :::::::: Inget botarbete, utan det ligger på Parsoid och JawaScript. Ping fungerar på alla wikier på samma sätt. Prova <code>&useparsoid=0</code>. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 25 februari 2026 kl. 23.24 (CET) :::::::::Nu hänger jag inte riktigt med ... skulle det åligga Parsoid (som väl bara renderar webbsidan?) att skapa nya uppslag på svenska Wiktionary? Jag är helt okunnig inom webbutveckling men vi verkar vara överens om att böjningsuppslag tidigare skapades automatiskt med hjälp av botar men att så inte längre är fallet. Så varför inte låta en bot göra det igen? [[Användare:TheHidoo|TheHidoo]] ([[Användardiskussion:TheHidoo|diskussion]]) 10 mars 2026 kl. 13.31 (CET) == Ny mindre bugg (finess "Källor") == När man skriver <nowiki>==Källor== kommer det väldigt hjälpsamt direkt radbyte + <references/>, men sedan idag har jag märkt att den i stället lägger till radbyte + "<references/>="</nowiki> 𐏐[[Användare:Frodlekis|Frodlekis]] ([[Användardiskussion:Frodlekis|✍]]) 26 maj 2025 kl. 15.12 (CEST) : Kan inte reproducera detta. Inget extra likhetstecken <code><nowiki>=</nowiki></code> dyker upp. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 26 maj 2025 kl. 16.33 (CEST) == Internationellt mest önskade == I [[Special:Önskade sidor|listan över mest önskade sidor]] (med flest rödlänkar till sig) vore det användbart att lägga till hur många språklänkar som den nya artikel skulle få. Är detta något som någon redan har gjort? Det krävs att man tar antalet språklänkar för varje ord ur Wikidata och lägger till siffran i dagens lista. [[Användare:LA2|LA2]] ([[Användardiskussion:LA2|diskussion]]) 10 augusti 2025 kl. 14.08 (CEST) : Håller med att detta skulle vara till nytta, men måste rätta att antalet språklänkar för uppslag skulle hämtas från [[:mw:Extension:Cognate|Cognate]], ej från WikiData. [[Användare:Taylor 49|Taylor 49]] ([[Användardiskussion:Taylor 49|diskussion]]) 27 augusti 2025 kl. 18.11 (CEST) == Källmallar == Hej, läste sidan Mallar/källmallar och fastande. Finns det ingen mall för källor/referenser till verk som inte är böcker? Kan man få in en referens i ett stycke utan att använda en källmall? [[Användare:Pontianejtack|Pontianejtack]] ([[Användardiskussion:Pontianejtack|diskussion]]) 21 mars 2026 kl. 15.24 (CET) : Hej Pontianejtack! Det skulle absolut gå att skapa fler källmallar, om det finns ett behov. De som finns i dag har tillkommit efter hand när någon velat förenkla hänvisningar till en viss källa – i mitt fall har det framför allt varit olika ordböcker och lexikon på nätet. För andra typer av källor går det bra att skriva referensen direkt i <nowiki><ref>Språktidningen, 2025, ”Rubrrik"...</ref></nowiki> utan att använda en mall. Någon generell mall för exempelvis tidskrifts- eller tidningsreferenser har vi t.ex. inte haft behov av hittills. Vad var det för typ av källmall du saknade? Om du känner att en viss typ av källa används ofta är du också varmt välkommen att skapa en ny källmall. ᛫⟣[[Användare:Frodlekis|Frodlekis]]⟣᛫ ([[Användardiskussion:Frodlekis|✍]]) 2 juli 2026 kl. 01.31 (CEST) == Tidy-funktion trasig == Jag upptäckte just nu runt midnatt att en av de bästa funktionerna i ''Tidy'' har gått sönder. Jag hoppas jag inte orsakat detta när jag uppdaterade några grammatikmallar ikväll. Den fiffiga funktionen att rätta eller lägga till parametern "språk=XX" i {{mall|tagg}} är nu plötsligt borta. Jag hoppas det inte var något som skedde i och med det jag skrev i mallarna {{mall|es-subst-f-es}}, {{mall|it-adj-e}} eller {{mall|it-subst-m}}... ᛫⟣[[Användare:Frodlekis|Frodlekis]]⟣᛫ ([[Användardiskussion:Frodlekis|✍]]) 2 juli 2026 kl. 01.21 (CEST) :@[[Användare:Frodlekis|Frodlekis]] Alla uppslag med {{mall|tagg}} visas felaktigt. Den första definitionen har ingen etta innan sig utan den första mallen nedanför har istället en etta innan sig. Helt felaktigt. Är det relaterat till det? [[Användare:Jonteemil|Jonteemil]] ([[Användardiskussion:Jonteemil|diskussion]]) 9 augusti 2026 kl. 19.59 (CEST) ::Den här buggen har vi haft i många år, men tyvärr har den inte lösts. Det ser fult ut, men jag begriper mig inte på att ändra det. Tror att det beror på vilket operativsystem man har, men jag använder bara Mac/iOS och där ser det som du säkert vet ut som fan, haha. Skämt åsido, det är två separata buggar. ᛫⟣[[Användare:Frodlekis|Frodlekis]]⟣᛫ ([[Användardiskussion:Frodlekis|✍]]) 9 augusti 2026 kl. 20.25 (CEST) == Ännu en bugg (om än oviktig) == Sedan ett tag tillbaka visas på förstasidan attspråken ungerska (0) · älvdalska (0) som om de inte har några uppslag. Varför blir det så? ᛫⟣[[Användare:Frodlekis|Frodlekis]]⟣᛫ ([[Användardiskussion:Frodlekis|✍]]) 23 oktober 2026 kl. 22.37 (CEST) kr1cu6z9hab6939gnx2o0os31q54m28 ama 0 102935 4157309 4146471 2026-10-24T01:36:43Z Frodlekis 762 4157309 wikitext text/x-wiki ==Baskiska== ===Substantiv=== {{subst|eu}} '''ama''' #{{tagg|släktingar|kat=palindrom|språk=eu}} [[mor]], [[moder]], [[mamma]] #:{{synonymer|[[amatxo]] ''(informellt)''}} ==Central bikol== ===Substantiv=== {{subst|bcl}} '''ama''' #{{tagg|släktingar|kat=palindrom|språk=bcl}} [[far]], [[fader]], [[pappa]] #:{{synonymer|[[papa]], [[tatay]], [[papay]]}} ==Ladino== ===Konjunktion=== {{konj|lad}} '''ama''' #{{tagg|kat=palindrom|språk=lad}} [[men]] #:{{synonymer|[[pero]], [[ma]]}} #:{{etymologi|Av {{härledning|lad|tr|ama}}, av {{härledning|lad|ar|أَمَّا|tr=ʾammā}}.}} ==Somaliska== ===Konjunktion=== {{konj|so}} '''ama''' #{{tagg|kat=palindrom|språk=so}} [[eller]] ==Spanska== ===Substantiv=== {{es-subst-f-s}} '''ama''' #[[husfru]], [[husmor]] #[[husmor]], [[hushållerska]] #:{{synonymer|[[ama de casa]]}} #[[ägarinna]] #:{{synonymer|[[dueña]]}} #kvinnlig [[hyresvärd]] :{{avgränsare}} :{{besläktade ord|[[amo]]}} :{{sammansättningar|[[ama de cría]], [[ama de llaves]]}} ===Verb=== '''ama''' #{{tagg|kat=palindrom|språk=es}} {{böjning|es|verb|amar}} ==Turkiska== ===Konjunktion=== {{konj|tr}} '''ama''' #{{tagg|kat=palindrom|språk=tr}} [[men]] 4gsyrh24fsyh0cab55pvmvmtoix3i9t Kategori:Svenska 14 108236 4157205 4132358 2026-10-23T21:55:32Z Frodlekis 762 4157205 wikitext text/x-wiki {{kategorinavigering|Svenska}} {{faktaruta språk}} lqj7yq969i9q555anq7il49a6egaj1e Kategori:Finska 14 108246 4157380 2981961 2026-10-24T04:32:01Z Frodlekis 762 4157380 wikitext text/x-wiki {{kategorinavigering|Finska}} {{faktaruta språk}} jpdwexn8nk3w1ncvowszj9e47rgxxf0 Kategori:Afrikaans 14 108260 4157226 2981088 2026-10-23T23:00:27Z Frodlekis 762 4157226 wikitext text/x-wiki {{kategorinavigering|Afrikaans}} {{faktaruta språk}} ==Källor== <references/> 7snnw03snx8n7kbf8rmezl5hyis67sv Kategori:Ainu 14 108261 4157227 2981137 2026-10-23T23:01:35Z Frodlekis 762 4157227 wikitext text/x-wiki {{kategorinavigering|Ainu}} {{faktaruta språk}} ==Källor== <references/> clyxf2537tkbuvx446iwxemcjr4bura Kategori:Albanska 14 108262 4157231 2981149 2026-10-23T23:06:20Z Frodlekis 762 4157231 wikitext text/x-wiki {{kategorinavigering|Albanska}} {{faktaruta språk}} ==Källor== <references/> 7ir1wd1vrigvby8x4z3r4f1z8zktlgy Kategori:Altaiska 14 108263 4157235 2981231 2026-10-23T23:12:24Z Frodlekis 762 4157235 wikitext text/x-wiki {{kategorinavigering|Altaiska}} {{faktaruta språk}} ==Källor== <references/> k34te8smwktxf8frza5eqkeq6ybmo22 Kategori:Amhariska 14 108264 4157236 2981234 2026-10-23T23:14:27Z Frodlekis 762 4157236 wikitext text/x-wiki {{kategorinavigering|Amhariska}} {{faktaruta språk}} ==Källor== <references/> o9l2usyukiszn3c7e301qy2p9jvcokn Kategori:Arabiska 14 108265 4157241 2981257 2026-10-23T23:23:40Z Frodlekis 762 4157241 wikitext text/x-wiki {{kategorinavigering|Arabiska}} {{faktaruta språk}} ==Källor== <references/> q8tpwrin6l7q8hospdwo1oj24z9f6jj Kategori:Aragonska 14 108266 4157246 2981289 2026-10-23T23:43:32Z Frodlekis 762 4157246 wikitext text/x-wiki {{kategorinavigering|Aragonska}} {{faktaruta språk}} ==Källor== <references/> nm6xtyxc0qwqs5ms94r71zc294jfvcz Kategori:Armeniska 14 108267 4157249 2981313 2026-10-23T23:50:30Z Frodlekis 762 4157249 wikitext text/x-wiki {{kategorinavigering|Armeniska}} {{faktaruta språk}} ==Källor== <references/> c146x0z3aaeoas8i298q9dg2we1xk5z Kategori:Asturiska 14 108268 4157252 2981363 2026-10-23T23:56:17Z Frodlekis 762 4157252 wikitext text/x-wiki {{kategorinavigering|Asturiska}} {{faktaruta språk}} ==Källor== <references/> fviz7ywz24wndudanvprd0nnt7lpaol 4157254 4157252 2026-10-24T00:01:42Z Frodlekis 762 /* Källor */ 4157254 wikitext text/x-wiki {{kategorinavigering|Asturiska}} {{faktaruta språk}} 2va4krz809wcrbc6v3b52f664iakttb Kategori:Avariska 14 108269 4157257 2981385 2026-10-24T00:11:45Z Frodlekis 762 4157257 wikitext text/x-wiki {{kategorinavigering|Avariska}} {{faktaruta språk}} ak0595dn9a4x6vzr7cn6af1fufcsmdp Kategori:Azerbajdzjanska 14 108270 4157256 2981393 2026-10-24T00:05:02Z Frodlekis 762 4157256 wikitext text/x-wiki {{kategorinavigering|Azerbajdzjanska}} {{faktaruta språk}} g3hhfm1a0pi78w7thbfmn4yom6qm1nz Kategori:Bambara 14 108271 4157261 2981415 2026-10-24T00:24:13Z Frodlekis 762 4157261 wikitext text/x-wiki {{kategorinavigering|Bambara}} {{faktaruta språk}} 99ut8pvyrcjqc1o81qdz8kra2v4mzrz Kategori:Basjkiriska 14 108272 4157263 2981425 2026-10-24T00:31:05Z Frodlekis 762 4157263 wikitext text/x-wiki {{kategorinavigering|Basjkiriska}} {{faktaruta språk}} q3t91ssz8xn1wnx4u1a6avymxh5syuj Kategori:Baskiska 14 108273 4157264 2981436 2026-10-24T00:35:11Z Frodlekis 762 4157264 wikitext text/x-wiki {{kategorinavigering|Baskiska}} {{faktaruta språk}} 9twr975vcts7vw6cf7t0ih0nwxqn4gn Kategori:Bengali 14 108274 4157271 2981498 2026-10-24T00:59:49Z Frodlekis 762 4157271 wikitext text/x-wiki {{kategorinavigering|Bengali}} {{faktaruta språk}} a5tq699vcyii592lxl2e40aacm7cs10 Kategori:Bidjara 14 108275 4157272 466860 2026-10-24T01:03:55Z Frodlekis 762 4157272 wikitext text/x-wiki {{kategorinavigering|Bidjara}} {{faktaruta språk}} 6r062umzpuawu7izwc3leqyxdx9jfp9 Kategori:Bokmål 14 108276 4157343 2981528 2026-10-24T01:55:46Z Frodlekis 762 4157343 wikitext text/x-wiki {{kategorinavigering|Bokmål}} {{faktaruta språk}} sojc6158qs4pz559y3z7n8hxhmqdp3i Kategori:Bosniska 14 108277 4157346 2981559 2026-10-24T02:00:19Z Frodlekis 762 4157346 wikitext text/x-wiki {{kategorinavigering|Bosniska}} {{faktaruta språk}} sdf8opsu9eky2rmqcu9av1sz88gdme1 Kategori:Bretonska 14 108278 4157352 2981597 2026-10-24T02:13:51Z Frodlekis 762 4157352 wikitext text/x-wiki {{kategorinavigering|Bretonska}} {{faktaruta språk}} lnq54u7iy6hce3hggbolmd10snkecn7 Kategori:Bulgariska 14 108279 4157353 2981633 2026-10-24T02:20:41Z Frodlekis 762 4157353 wikitext text/x-wiki {{kategorinavigering|Bulgariska}} {{faktaruta språk}} emjaroxiu7gkrmhjs8lqwjoqpn25y56 Kategori:Burmesiska 14 108280 4157355 2981663 2026-10-24T02:24:27Z Frodlekis 762 4157355 wikitext text/x-wiki {{kategorinavigering|Burmesiska}} {{faktaruta språk}} ooz6qfkol73z30tb27wwosuewrd05ug Kategori:Cheyenne 14 108281 4157402 2981692 2026-10-24T11:22:21Z Frodlekis 762 4157402 wikitext text/x-wiki {{kategorinavigering|Cheyenne}} {{faktaruta språk}} f1az62xj9zs11lr5o5hxut5mw881dbw Kategori:Divehi 14 108283 4157412 2981753 2026-10-24T11:38:20Z Frodlekis 762 4157412 wikitext text/x-wiki {{kategorinavigering|Divehi}} {{faktaruta språk}} 0kmf9hq5a3ilpgso6k5eqzi4l9nxr2f Kategori:Enaresamiska 14 108284 4157387 2981768 2026-10-24T04:45:22Z Frodlekis 762 4157387 wikitext text/x-wiki {{kategorinavigering|Enaresamiska}} {{faktaruta språk}} s0kn6kzgqsozcgotgn4c96g3jgh6w3m Kategori:Engelska 14 108285 4157416 2981771 2026-10-24T11:46:13Z Frodlekis 762 4157416 wikitext text/x-wiki {{kategorinavigering|Engelska}} {{faktaruta språk}} a1341g1rm6q08rjmi9sqe9wupg4ddt4 Kategori:Fornnordiska 14 108291 4157377 2982043 2026-10-24T04:28:16Z Frodlekis 762 4157377 wikitext text/x-wiki {{kategorinavigering|Fornnordiska}} {{faktaruta språk}} nmcd8puwvr1fbxweo4v33nph6jnjlxo Kategori:Frankoprovensalska 14 108292 4157369 2982067 2026-10-24T04:16:32Z Frodlekis 762 4157369 wikitext text/x-wiki {{kategorinavigering|Frankoprovensalska}} {{faktaruta språk}} eap31aw0f1tij6p6rvnj6k92bl01n1c Kategori:Franska 14 108293 4157370 2982071 2026-10-24T04:17:39Z Frodlekis 762 4157370 wikitext text/x-wiki {{kategorinavigering|Franska}} {{faktaruta språk}} i3rdoywreibla2dzq16226bvwu0h3x8 Kategori:Frisiska 14 108294 4157373 2982144 2026-10-24T04:22:09Z Frodlekis 762 4157373 wikitext text/x-wiki {{kategorinavigering|Frisiska}} {{faktaruta språk}} 1mo64kidu3b82zro57z006okddnze6d Kategori:Friuliska 14 108295 4157372 2982168 2026-10-24T04:20:14Z Frodlekis 762 4157372 wikitext text/x-wiki {{kategorinavigering|Friuliska}} {{faktaruta språk}} hsl7e0rcfswnhk1rpaektl2fk6oagfx Kategori:Färöiska 14 108296 4157371 2982177 2026-10-24T04:18:53Z Frodlekis 762 4157371 wikitext text/x-wiki {{kategorinavigering|Färöiska}} {{faktaruta språk}} oefkbwl7d5ty7jjm50ou2n9gj3ohxpb Kategori:Georgiska 14 108298 4157396 2976842 2026-10-24T11:06:52Z Frodlekis 762 4157396 wikitext text/x-wiki {{kategorinavigering|Georgiska}} {{faktaruta språk}} ng6eutq0tw0kdc7arpnnnkzel7v7ci4 Kategori:Gotiska 14 108299 4157398 2976013 2026-10-24T11:16:41Z Frodlekis 762 4157398 wikitext text/x-wiki {{kategorinavigering|Gotiska}} {{faktaruta språk}} 497tds5r4etjrltr0r1h564svfcg04j Kategori:Grekiska 14 108300 4157399 2975987 2026-10-24T11:17:05Z Frodlekis 762 4157399 wikitext text/x-wiki {{kategorinavigering|Grekiska}} {{faktaruta språk}} 74335d9ynrpuj2j4pfd7ew7czf6lr9z Kategori:Grönländska 14 108301 4157401 2982307 2026-10-24T11:20:00Z Frodlekis 762 4157401 wikitext text/x-wiki {{kategorinavigering|Grönländska}} {{faktaruta språk}} qxemejts2vgwapy5sy0vkcdldc6yubi Kategori:Guaraní 14 108302 4157415 2982323 2026-10-24T11:44:40Z Frodlekis 762 4157415 wikitext text/x-wiki {{kategorinavigering|Guaraní}} {{faktaruta språk}} 3e59a95fy1t6443xnn26g8sebvssu2x Kategori:Belarusiska 14 108408 4157268 3616167 2026-10-24T00:50:29Z Frodlekis 762 4157268 wikitext text/x-wiki {{kategorinavigering|Belarusiska}} {{faktaruta språk}} nvchwdld8ui4an431fguzfh4auhvz2q Kategori:Abazinska 14 108412 4157218 2981063 2026-10-23T22:41:48Z Frodlekis 762 4157218 wikitext text/x-wiki {{kategorinavigering|Abazinska}} {{faktaruta språk}} rtwz951e81974tzgu3evqmt55jw4meu 4157219 4157218 2026-10-23T22:42:04Z Frodlekis 762 4157219 wikitext text/x-wiki {{kategorinavigering|Abazinska}} {{faktaruta språk}} ==Källor== <references/> bgp0polau5q5o2pont4f043k4yjjamy Kategori:Galiciska 14 112479 4157345 2976515 2026-10-24T01:56:38Z Frodlekis 762 4157345 wikitext text/x-wiki {{kategorinavigering|Galiciska}} {{faktaruta språk}} i3u8iiib433m2ft8votdx20t8ln441f Kategori:Alemanniska 14 112488 4157233 2981220 2026-10-23T23:09:23Z Frodlekis 762 4157233 wikitext text/x-wiki {{kategorinavigering|Alemanniska}} {{faktaruta språk}} ==Källor== <references/> kp2mehpkxrubg292rb0wh74ua55d0qk Kategori:Cebuano 14 112489 4157356 2981675 2026-10-24T02:25:42Z Frodlekis 762 4157356 wikitext text/x-wiki {{kategorinavigering|Cebuano}} {{faktaruta språk}} ewgudu65vxqt2g136d5s3r9dz51cr6k Kategori:Arameiska 14 112490 4157247 2981304 2026-10-23T23:47:40Z Frodlekis 762 4157247 wikitext text/x-wiki {{kategorinavigering|Arameiska}} {{faktaruta språk}} ==Källor== <references/> oxg5nzs4if6shqliouz7tn0q0bkhvfg Kategori:Bayerska 14 112495 4157267 2981490 2026-10-24T00:47:36Z Frodlekis 762 4157267 wikitext text/x-wiki {{kategorinavigering|Bayerska}} {{faktaruta språk}} l6rf1lolodg22uq54szif6ej06w05lo bagge 0 113976 4157149 4082231 2026-10-23T16:10:28Z Frodlekis 762 +am: [[በግ]] (assisterat) 4157149 wikitext text/x-wiki {{se även|bägge}} ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} '''bagge''' #{{tagg|kat=djurhanar}} [[hane]] av däggdjuret [[får]] #:{{synonymer|[[fårhane]], [[gumse]], [[vädur]]}} #:{{antonymer|[[tacka]]}} #:{{hyperonymer|[[får]]}} #:{{kohyponymer|[[tacka]], [[lamm]]}} #{{tagg|insekter}} benämning på flertalet insekter som bär skal #{{tagg|vardagligt|text=potentiellt nedsättande}} [[norrman]] #:{{synonymer|[[norrbagge]]}} :{{avgränsare}} :{{seäven-bring|Mankön|Djur}} ====Översättningar==== {{ö-topp|fårhanne}} *amhariska: {{ö|am|በግ|m|tr=bäg}} *bokmål: {{ö+|no|vær|m}}, {{ö|no|saubukk|m}}, {{ö|no|sauebukk|m}}, {{ö+|no|bukk|m}} *engelska: {{ö+|en|ram}} *finska: {{ö+|fi|pässi}} *franska: {{ö+|fr|bélier|m}} *isländska: {{ö+|is|hrútur|m}} *jiddisch: {{ö|yi|ווידער|m|tr=vider}} *nederländska: {{ö+|nl|ram|m}} *polska: {{ö+|pl|baran|m}} *portugisiska: {{ö+|pt|carneiro|m}} *ryska: {{ö+|ru|баран}} (barán) *spanska: {{ö+|es|carnero|m}}, {{ö|es|morueco|m}}, {{ö+|es|ariete|m}} *tjeckiska: {{ö+|cs|beran|m}} *turkiska: {{ö+|tr|koç}} *tyska: {{ö+|de|Widder|m}}, {{ö+|de|Schafbock|m}} *ukrainska: {{ö+|uk|баран}} (barán) {{ö-botten}} 51et6mrrfedpaam5dy0f01kjne0oyp3 Kategori:Dari 14 114856 4157410 2981752 2026-10-24T11:35:51Z Frodlekis 762 4157410 wikitext text/x-wiki {{kategorinavigering|Dari}} {{faktaruta språk}} otn1bfz4vjq8suxkm2nk0wd25pl107k Kategori:Cherokesiska 14 114857 4157389 2981688 2026-10-24T04:46:25Z Frodlekis 762 4157389 wikitext text/x-wiki {{kategorinavigering|Cherokesiska}} {{faktaruta språk}} 8j7d3peqsbj50ed07m525nefvmgasvb Kategori:Aymara 14 114858 4157259 2981390 2026-10-24T00:18:46Z Frodlekis 762 4157259 wikitext text/x-wiki {{kategorinavigering|Aymara}} {{faktaruta språk}} 0ncf1p6d4bjwbn1gie6i0w0c6ywnovv grattis på födelsedagen 0 121442 4157128 3872518 2026-10-23T15:32:26Z ~2026-56702-21 62364 +am: [[መልካም ልደት]] (assisterat) 4157128 wikitext text/x-wiki ==Svenska== ===Interjektion=== {{interj|sv}} '''[[grattis]] [[på]] [[födelsedagen]]''' #sägs eller skrivs till en person som firar sin födelsedag i syfte att visa sin välönskan #:{{jämför|[[har den äran]]}} ====Översättningar==== {{ö-topp|till person som firar sin födelsedag}} *amhariska: {{ö|am|መልካም ልደት|tr=mälkam lədät}} *bokmål: {{ö+|no|gratulerer med dagen}} *bosniska: {{ö|bs|sretan rođendan}} *bretonska: {{ö+|br|deiz-ha-bloaz laouen}} *danska: {{ö+|da|tillykke med fødselsdagen}} *engelska: {{ö+|en|happy birthday}} *finska: {{ö|fi|hyvää syntymäpäivää}} *franska: {{ö+|fr|joyeux anniversaire}}, {{ö+|fr|bon anniversaire}} *hebreiska: {{ö|he|יום הולדת שמח}} *isländska: {{ö+|is|til hamingju með afmælið}}, {{ö+|is|til hamingju með daginn}} *italienska: {{ö+|it|buon compleanno}} *jiddisch: {{ö|yi|מזל־טובֿ צו דײַן געבוירנטאָג‎|tr=mazl-tov tsu dayn geboyrntog}} *latin: {{ö|la|felicem natalem}} *lulesamiska: {{ö|smj|mån ärrodav duv riegádimbiejvev}} *persiska: {{ö|fa|تولدت مبارک|tr=tavallodat mobarak|skrift=fa-Arab}} *polska: {{ö|pl|wszystkiego najlepszego z okazji urodzin}}, {{ö|pl|wszystkiego najlepszego}}, {{ö|pl|sto lat}} *portugisiska: {{ö+|pt|feliz aniversário}}, {{ö+|pt|parabéns}} *rumänska: {{ö|ro|la mulți ani}}, {{ö|ro|aniversare fericită}} *ryska: {{ö+|ru|с днём рождения|tr=s dnjom roždénija|skrift=Cyrl}}, {{ö|ru|поздравляю с днём рождения|tr=pozdravljáju s dnjom roždénija|skrift=Cyrl}} *sanskrit: {{ö|sa|शुभं जन्मदिनम्|tr=śubhaṃ janmadinam|skrift=Deva}} *skotsk gäliska: {{ö|gd|co-latha breith sona}} *spanska: {{ö|es|feliz cumpleaños}} *tyska: {{ö+|de|alles Gute zum Geburtstag}}, {{ö|de|herzlichen Glückwunsch zum Geburtstag}} *ukrainska: {{ö|uk|з днем народження}} {{ö-botten}} 3lu65zlynr7yyiu5bxbptq26709vdfo Aina 0 128457 4157165 3874395 2026-10-23T19:41:55Z InternetArchiveBot 48068 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 4157165 wikitext text/x-wiki {{se även|aina}} ==Svenska== ===Substantiv=== {{sv-subst-n-namn}} '''Aina''' #{{tagg|kat=kvinnonamn}} ett [[kvinnonamn]]<ref>SCB, Statistikdatabasen: [https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0001__BE0001G/BE0001T07AR/table/tableViewLayout1/ De 100 vanligaste förnamnen bland kvinnor folkbokförda i Sverige den 31 december respektive år. År 1980 - 2021] År 1980 låg Aina på plats nummer 90 bland de vanligaste kvinnonamnen hos Sveriges befolkning.</ref> ==Katalanska== ===Substantiv=== {{subst|ca}} '''Aina''' #{{tagg|kat=kvinnonamn|språk=ca}} ett [[kvinnonamn]]<ref>[https://web.archive.org/web/20141112162341/http://www.nancy.cc/2013/11/12/most-popular-baby-names-catalonia-2012/ Nancy.cc - Lista över de populäraste namnen på nyfödda i Katalonien 2012] (läst 12 januari 2015)</ref> ==Källor== <references/> bhm3uo81xhgm92p6c6lunrn5imv4zkv nunnestenskvätta 0 129664 4157166 3864075 2026-10-23T19:44:41Z Tapio Toola 59668 +fi: [[nunnatasku]]; +tr: [[alaca kuyrukkakan]] (assisterat) 4157166 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-n-or}} '''[[nunna|nunne]][[stenskvätta]]''' #{{tagg|kat=fågelarter|kat2=fåglar}} en [[art]] ''([[Oenanthe pleschanka]])'' inom [[fågelfamilj]]en [[flugsnappare]] ([[Muscicapidae]]); [[individ]] av arten nunnestenskvätta ====Översättningar==== {{ö-topp}} *engelska: {{ö+|en|pied wheatear}} *finska: {{ö+|fi|nunnatasku}} *turkiska: {{ö+|tr|alaca kuyrukkakan}} {{ö-botten}} pgbw1h0fu5ppwp0gnq4ligqcdl9htvf 4157172 4157166 2026-10-23T19:52:14Z Frodlekis 762 +ca: [[còlit pitnegre]]; +ca: [[còlit de pit negre]] (assisterat) 4157172 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-n-or}} '''[[nunna|nunne]][[stenskvätta]]''' #{{tagg|kat=fågelarter|kat2=fåglar}} en [[art]] ''([[Oenanthe pleschanka]])'' inom [[fågelfamilj]]en [[flugsnappare]] ([[Muscicapidae]]); [[individ]] av arten nunnestenskvätta ====Översättningar==== {{ö-topp}} *engelska: {{ö+|en|pied wheatear}} *finska: {{ö+|fi|nunnatasku}} *katalanska: {{ö|ca|còlit pitnegre|m}}, {{ö|ca|còlit de pit negre|m}} *turkiska: {{ö+|tr|alaca kuyrukkakan}} {{ö-botten}} a6gfanj15idu919ajf87vnavzlv2m4d ökenstenskvätta 0 129736 4157176 3864137 2026-10-23T19:59:46Z Tapio Toola 59668 +tr: [[çöl kuyrukkakanı]] (assisterat) 4157176 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-n-or}} '''[[öken]][[stenskvätta]]''' #{{tagg|kat=fågelarter|kat2=fåglar}} en [[art]] ''([[Oenanthe deserti]])'' inom [[fågelfamilj]]en [[flugsnappare]] ([[Muscicapidae]]); [[individ]] av arten ökenstenskvätta ====Översättningar==== {{ö-topp}} *bokmål: {{ö|no|ørkensteinskvett}} *engelska: {{ö+|en|desert wheatear}} *estniska: {{ö|et|kõrbe-kivitäks}} *finska: {{ö+|fi|aavikkotasku}} *franska: {{ö+|fr|traquet du désert|m}} *turkiska: {{ö+|tr|çöl kuyrukkakanı}} *tyska: {{ö|de|Wüsten-Steinschmätzer}} {{ö-botten}} 2njcw5q5zgw8kbgui5hilc3bt1r4wb5 4157178 4157176 2026-10-23T20:14:44Z Frodlekis 762 +eo: [[dezertsaksikolo]] (assisterat) 4157178 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-n-or}} '''[[öken]][[stenskvätta]]''' #{{tagg|kat=fågelarter|kat2=fåglar}} en [[art]] ''([[Oenanthe deserti]])'' inom [[fågelfamilj]]en [[flugsnappare]] ([[Muscicapidae]]); [[individ]] av arten ökenstenskvätta ====Översättningar==== {{ö-topp}} *bokmål: {{ö|no|ørkensteinskvett}} *engelska: {{ö+|en|desert wheatear}} *esperanto: {{ö|eo|dezertsaksikolo}} *estniska: {{ö|et|kõrbe-kivitäks}} *finska: {{ö+|fi|aavikkotasku}} *franska: {{ö+|fr|traquet du désert|m}} *turkiska: {{ö+|tr|çöl kuyrukkakanı}} *tyska: {{ö|de|Wüsten-Steinschmätzer}} {{ö-botten}} 6xyhllrqjyc7blyf9r1kl2t9iyrykjy munkorg 0 137815 4157361 4087542 2026-10-24T03:41:27Z Tapio Toola 59668 +tr: [[köpek ağızlığı]] (assisterat) 4157361 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} {{media|German Shepherd with Muzzle cropped.JPG|En munkorg på en hund.}} '''[[mun]][[korg]]''' #[[anordning]] som används för att stoppa ett [[djur]] från [[bita]] någon eller något #:{{seäven-bring|Ljudlöshet|Oförmåga|Förstummande|Fängelse|Inskränkning}} ====Översättningar==== {{ö-topp|anordning för att stoppa ett djur från att bita}} *bokmål: {{ö|no|munnkurv|m}} *engelska: {{ö+|en|muzzle}} *estniska: {{ö|et|suukorv}} *finska: {{ö+|fi|kuonokoppa}} *franska: {{ö+|fr|muselière|f}} *nederländska: {{ö+|nl|muilkorf}} *polska: {{ö+|pl|kaganiec}} *portugisiska: {{ö+|pt|focinheira|f}} *turkiska: {{ö|tr|köpek ağızlığı}} *tyska: {{ö+|de|Maulkorb|m}} {{ö-botten}} 12a8nma4jh0k53gycdq6nu96274xcf2 pit 0 138285 4157175 3986148 2026-10-23T19:54:16Z Frodlekis 762 /* Engelska */ 4157175 wikitext text/x-wiki ==Svenska== ===Substantiv=== '''pit''' #{{böjning|sv|subst|pi}} ==Engelska== ===Substantiv=== {{en-subst}} '''pit''' 1 #[[grop]], [[avgrund]], [[grav]], [[dike]] #:''the '''pit''' is a fighting area for gamecocks or dogs'' #[[fallgrop]] #:{{synonymer|[[pitfall]]}} #djupt och smalt hål, [[schakt]] #:{{synonymer|[[shaft]]}} #[[gupp]] #:{{synonymer|[[bump]]}} #[[depå]] #[[gruva]], [[gruvschakt]], [[gruvhål]] #:{{synonymer|[[mine shaft]]}} #bortre [[parkett]] #''(med bestämd artikel)'' [[helvetet]], [[avgrunden]] #[[koppärr]] #:{{synonymer|[[pockmark]]}} #{{tagg|vardagligt|språk=en}} ''(oftast i plural)'' [[armhåla]] #[[orkesterdike]] #{{tagg|humoristiskt|språk=en}} [[säng]] '''pit''' 2 #ensam central [[kärna]] i en frukt (t.ex. persika eller körsbär); [[fruktkärna]] #:{{synonymer|[[stone]], [[kernel]]}} ===Verb=== {{en-verb|fog=t}} '''pit''' 1 #göra full av [[hål]]; göra [[gropig]] #bli gropig #:{{synonymer|[[stone]]}} #placera eller begrava i en grop #sätta i kamp eller i motsats (till varandra) #:''a war that pitted brother against brother'' #göra ett depåstopp '''pit''' 2 #kärna ur ==Katalanska== ===Substantiv=== {{ca-subst-m}} '''pit''' {{m}} #{{tagg|anatomi|språk=ca}} [[bröst]] e5t29jcwuxjiz6gnfqr7ol37ae46x4z fyrhjuling 0 139396 4157391 4149210 2026-10-24T05:58:37Z Tapio Toola 59668 +tr: [[ATV]] (assisterat) 4157391 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} '''[[fyr-|fyr]][[hjul]][[-ing|ing]]''' #{{tagg|kat=fordon}} (huvudsakligen) [[terrängmotorfordon]] med [[fyra]] [[hjul]] (använt för [[terrängkörning]]) #:{{synonymer|terränghjuling}} #:{{hyperonymer|terrängskoter}} #:{{seäven|[[snöskoter]], [[enhjuling]], [[tvåhjuling]], [[trehjuling]]}} ====Översättningar==== {{ö-topp|motorfordon med fyra hjul, huvudsakligen använt för terrängkörning}} *engelska: {{ö+|en|ATV}}, {{ö+|en|all-terrain vehicle}} *finska: {{ö+|fi|mönkijä}} *isländska: {{ö|is|fjórhjól|n}} *ryska: {{ö+|ru|мотовездехо́д|m}} *turkiska: {{ö+|tr|ATV}} {{ö-botten}} tvpi5dnffd12qg05wmsr2uabzigg4rd papa 0 143072 4157336 4146473 2026-10-24T01:49:21Z Frodlekis 762 /* Bikol */ 4157336 wikitext text/x-wiki {{se även|papá|papà|pápa|papă|păpa|Papa}} ==Tvärspråkligt== ===Interjektion=== {{interj|--}} '''papa''' #{{tagg|bokstavering|språk=--}} bokstaven [[P]] (gement: [[p]]) i ICAO:s [[bokstaveringsalfabet]] #:{{seäven|Appendix:ICAO:s bokstaveringsalfabet}} ==Central bikol== ===Substantiv=== {{subst|bcl}} '''papa''' #{{tagg|släktingar|språk=bcl}} [[far]], [[fader]], [[pappa]] #:{{synonymer|[[ama]], [[tatay]], [[papay]]}} ==Bosniska== ===Substantiv=== {{subst|bs}} '''papa''' {{m}} #{{tagg|kat=kristendom|språk=bs}} [[påve]] ==Engelska== ===Substantiv=== {{en-subst}} '''papa''' #{{tagg|kat=släktingar|text=främst barnspråk|språk=en}} [[pappa]] #:{{synonymer|[[dad]], [[daddy]]}} #:{{besläktade ord|[[father]], [[pa]], [[pappy]], [[pater]], [[paw]], [[pop]], [[poppa]]}} #{{tagg|kat=släktingar|vardagligt|språk=en}} [[farfar]], [[morfar]] #{{tagg|kat=kristendom|språk=en}} [[påve]] #:{{synonymer|[[pope]]}} ==Ewe== ===Substantiv=== {{subst|ee}} '''papa''' #{{tagg|kat=släktingar|språk=ee}} [[pappa]] ==Ido== ===Substantiv=== {{subst|io}} '''papa''' #{{tagg|kat=släktingar|språk=io}} [[pappa]] #:{{synonymer|[[patro]]}} ==Italienska== ===Substantiv=== {{subst|it}} '''papa''' {{m}} #{{tagg|kat=kristendom|språk=it}} [[påve]] #:{{synonymer|[[pontefice]]}} #:{{seäven|[[papà]]}} ==Kroatiska== ===Substantiv=== {{subst|hr}} '''papa''' {{m}} #{{tagg|kat=kristendom|språk=hr}} [[påve]] ==Kurdiska== ===Substantiv=== {{subst|ku}} '''papa''' {{m}} #{{tagg|kat=kristendom|språk=ku}} [[påve]] ==Nederländska== ===Substantiv=== {{subst|nl}} '''papa''' {{m}} #{{tagg|kat=släktingar|text=främst barnspråk|språk=nl}} [[pappa]] ==Pitjantjatjara== ===Substantiv=== {{subst|pjt}} '''papa''' #{{tagg|kat=däggdjur|språk=pjt}} [[hund]] ==Polska== ===Substantiv=== {{subst|pl}} '''papa''' {{f}} #{{tagg|kat=material|språk=pl}} [[tjärpapp]] ==Portugisiska== ===Substantiv=== {{subst|pt}} '''papa''' {{m}} #{{tagg|kat=kristendom|språk=pt}} [[påve]] ==Quechua== ===Substantiv=== {{subst|qu}} '''papa''' #{{tagg|kat=grönsaker|språk=qu}} [[potatis]] ==Serbiska== ===Substantiv=== {{subst|sr}} '''papa''' ([[папа]]) {{m}} #{{tagg|kat=kristendom|språk=sr}} [[påve]] ==Spanska== ===Substantiv=== {{es-subst-m-s|betydelser=1}} {{es-subst-f-s|betydelser=2}} '''papa''' {{f}} #{{tagg|kat=kristendom|språk=es}} [[påve]] #:{{besläktade ord|[[antipapa]], [[papista]], [[papado]], [[papal]]}} #:{{fraser|[[más papista que el papa]]}} #{{tagg|latinamerikansk spanska|språk=es}} [[potatis]] #:{{synonymer|(spansk spanska) [[patata]]}} :{{avgränsare}} :{{seäven|papá}} ==Swahili== ===Substantiv=== {{subst|sw}} '''papa''' *{{uttal|sw|region=Kenya|ljud=Sw-ke-papa.flac}} #{{tagg|kat=fiskar|språk=sw}} [[haj]] ==Turkiska== ===Substantiv=== {{subst|tr}} '''papa''' #{{tagg|kat=kristendom|språk=tr}} [[påve]] mjiv75keflrzod5zt27ayqs8j354csu Kategori:Abchaziska 14 153125 4157220 2981066 2026-10-23T22:42:57Z Frodlekis 762 4157220 wikitext text/x-wiki {{kategorinavigering|Abchaziska}} {{faktaruta språk}} ==Källor== <references/> ecsd4eamb3y1pvovgg1ug1r9sbobjwa Kategori:Groningska 14 153129 4157400 2982304 2026-10-24T11:18:31Z Frodlekis 762 4157400 wikitext text/x-wiki {{kategorinavigering|Groningska}} {{faktaruta språk}} bv6s84ntag27fzv1lia9bh4lemxn1jb Kategori:Arumänska 14 153146 4157250 2981356 2026-10-23T23:51:52Z Frodlekis 762 4157250 wikitext text/x-wiki {{kategorinavigering|Arumänska}} {{faktaruta språk}} ==Källor== <references/> dqga8ia2xk0dk740js91ffpjkb1f320 unless 0 158430 4157392 3030616 2026-10-24T06:31:31Z Peloñe 24459 4157392 wikitext text/x-wiki ==Engelska== ===Konjunktion=== {{konj|en}} '''unless''' *{{uttal|en|ipa=ənˈlɛs|ljud=en-us-unless.ogg}} #[[såvida]] ej/inte/icke, [[om]] inte, [[så länge]] [[inte]] #:''I won't go '''unless''' you pay me''. #::''Jag kommer inte gå '''såvida''' du '''inte''' betalar mig''. d5jgsckdr4dojq171wpzvfpa0xzogd0 Kategori:Fornsaxiska 14 160680 4157376 2977520 2026-10-24T04:26:37Z Frodlekis 762 4157376 wikitext text/x-wiki {{kategorinavigering|Fornsaxiska}} {{faktaruta språk}} bkzd7dsrfcq1nknujq1ug7rex6yibsy Kategori:Anglo-normandiska 14 171135 4157240 2981255 2026-10-23T23:21:04Z Frodlekis 762 4157240 wikitext text/x-wiki {{kategorinavigering|Anglo-normandiska}} {{faktaruta språk}} ==Källor== <references/> hy1yph1w2vi2soggv256799me142jba Kategori:Adygeiska 14 283856 4157223 2981074 2026-10-23T22:55:50Z Frodlekis 762 4157223 wikitext text/x-wiki {{kategorinavigering|Adygeiska}} {{faktaruta språk}} ==Källor== <references/> nyk5naluc3h2wdoyghfzp5yr5kta0uo pits 0 326528 4157177 2785982 2026-10-23T20:13:50Z Frodlekis 762 /* Svenska */ 4157177 wikitext text/x-wiki ==Svenska== ===Substantiv=== '''pits''' #{{böjning|sv|subst|pi}} ==Engelska== ===Substantiv=== '''pits''' #{{böjning|en|subst|pit}} ==Katalanska== ===Substantiv=== '''pits''' #{{böjning|ca|subst|pit}} mier7oayaqcbn8tjea59fbex2fh4hjj capped 0 353753 4157180 3609727 2026-10-23T20:15:41Z LA2 544 /* Engelska */ 4157180 wikitext text/x-wiki ==Engelska== ===Adjektiv=== {{adj|en}} '''capped''' #[[begränsad]], som har ett [[tak]] (en övre gräns); {{avledning|en|cap|ordform=perfpart}} #:'' The speed is still '''capped'''.'' #::''Hastigheten är fortfarande '''begränsad'''.'' ===Verb=== '''capped''' #{{böjning|en|verb|cap}} km1jiby0omq28nvjn8sfipl01o2fnz8 pananom 0 361226 4157288 3547108 2026-10-24T01:24:52Z Frodlekis 762 4157288 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''pananom''' #{{tagg|kat=botanik|språk=bcl}} [[växt]] 21bz7k7x3xvrnah1zr8tu6419kh4yjf Kategori:Central bikol/Substantiv 14 369101 4157277 2988650 2026-10-24T01:16:34Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Substantiv]] till [[Kategori:Central bikol/Substantiv]] 2988650 wikitext text/x-wiki {{kategorinavigering|Bikol|Substantiv|Index|nyckel=2}} 9wodi0j2397bo1u8yh1tevipstn6siz 4157279 4157277 2026-10-24T01:17:19Z Frodlekis 762 4157279 wikitext text/x-wiki {{kategorinavigering|Central bikol|Substantiv|Index|nyckel=2}} ajmi70ktfi1tfqhn06oq76lnidhgx2d Kategori:Central bikol/Botanik 14 369160 4157306 1482674 2026-10-24T01:36:10Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Botanik]] till [[Kategori:Central bikol/Botanik]] 1482674 wikitext text/x-wiki {{kategorinavigering|Bikol|Botanik|Biologi}} nxb4qx5xj30x83jyw5w1l68blbn11um 4157308 4157306 2026-10-24T01:36:21Z Frodlekis 762 4157308 wikitext text/x-wiki {{kategorinavigering|Central bikol|Botanik|Biologi}} rwhoahn4r1jigfpng6z78dg34xzr2th Kategori:Central bikol/Alla uppslag 14 369217 4157275 2988648 2026-10-24T01:15:38Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Alla uppslag]] till [[Kategori:Central bikol/Alla uppslag]] utan att lämna en omdirigering 2988648 wikitext text/x-wiki {{kategorinavigering|Bikol|Alla uppslag|Index|nyckel=1}} cf00a0ib44u19v4rk8to8v98fz5pdf5 4157285 4157275 2026-10-24T01:23:24Z Frodlekis 762 4157285 wikitext text/x-wiki {{kategorinavigering|Central bikol|Alla uppslag|Index|nyckel=1}} tbo9rqanezniyncfwjwfftvaxgbtzw8 Kategori:Central bikol/Biologi 14 369463 4157305 2988649 2026-10-24T01:35:13Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Biologi]] till [[Kategori:Central bikol/Biologi]] utan att lämna en omdirigering 2988649 wikitext text/x-wiki {{kategorinavigering|Bikol|Biologi|Naturvetenskap}} 7bq7ejnwpsqr6ugyyx7b8zybzwev3ov Kategori:Central bikol/Naturvetenskap 14 369555 4157316 1483078 2026-10-24T01:40:08Z Frodlekis 762 4157316 wikitext text/x-wiki {{kategorinavigering|Central bikol|Naturvetenskap|Index|nyckel=6}} 49ung740kpik9tx77f2yho69cply78q 4157317 4157316 2026-10-24T01:40:25Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Naturvetenskap]] till [[Kategori:Central bikol/Naturvetenskap]] utan att lämna en omdirigering 4157316 wikitext text/x-wiki {{kategorinavigering|Central bikol|Naturvetenskap|Index|nyckel=6}} 49ung740kpik9tx77f2yho69cply78q Kategori:Fornpersiska 14 388333 4157382 2982058 2026-10-24T04:37:24Z Frodlekis 762 4157382 wikitext text/x-wiki {{kategorinavigering|Fornpersiska}} {{faktaruta språk}} dogjr8xltpi184ieeqafndwi38coerg Kategori:Fornkyrkoslaviska 14 395906 4157393 2982040 2026-10-24T11:01:30Z Frodlekis 762 4157393 wikitext text/x-wiki {{kategorinavigering|Fornkyrkoslaviska}} {{faktaruta språk}} k3ne0oen3lge1tvek81edi4fduvj3eu labyrint 0 419488 4157088 4085649 2026-10-23T12:29:00Z ~2026-56702-21 62364 +yi: [[לאַבירינט]] (assisterat) 4157088 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-er}} '''labyrint''' #[[ställe]] med [[invecklad|invecklat]] [[nät]] av [[gång]]ar; stor [[byggnad]] där det kan vara [[svår]]t att [[hitta]] [[rätt]] #:{{etymologi|Av {{härledning|sv|grc|λαβύρινθος|tr=laburinthos}}.}} #{{tagg|anatomi}} [[inneröra]] ====Översättningar==== {{ö-topp|ställe med invecklat nät av gångar}} *engelska: {{ö+|en|labyrinth}}, {{ö+|en|maze}} *finska: {{ö+|fi|labyrintti}}, {{ö+|fi|sokkelo}} *franska: {{ö+|fr|labyrinthe|m}} *jiddisch: {{ö|yi|לאַבירינט|m|tr=labirint}} *katalanska: {{ö+|ca|laberint|m}} *spanska: {{ö+|es|laberinto|m}} *turkiska: {{ö+|tr|labirent}} *tyska: {{ö+|de|Labyrinth|n}} {{ö-botten}} {{ö-topp|inneröra}} *tyska: {{ö+|de|Labyrinth|n}}, {{ö+|de|Innenohr|n}} {{ö-botten}} bx2tns478rsw6zq3t3zlg7pjzlxy3x1 4157095 4157088 2026-10-23T12:34:49Z ~2026-56702-21 62364 +pl: [[labirynt]] (assisterat) 4157095 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-er}} '''labyrint''' #[[ställe]] med [[invecklad|invecklat]] [[nät]] av [[gång]]ar; stor [[byggnad]] där det kan vara [[svår]]t att [[hitta]] [[rätt]] #:{{etymologi|Av {{härledning|sv|grc|λαβύρινθος|tr=laburinthos}}.}} #{{tagg|anatomi}} [[inneröra]] ====Översättningar==== {{ö-topp|ställe med invecklat nät av gångar}} *engelska: {{ö+|en|labyrinth}}, {{ö+|en|maze}} *finska: {{ö+|fi|labyrintti}}, {{ö+|fi|sokkelo}} *franska: {{ö+|fr|labyrinthe|m}} *jiddisch: {{ö|yi|לאַבירינט|m|tr=labirint}} *katalanska: {{ö+|ca|laberint|m}} *polska: {{ö+|pl|labirynt}} *spanska: {{ö+|es|laberinto|m}} *turkiska: {{ö+|tr|labirent}} *tyska: {{ö+|de|Labyrinth|n}} {{ö-botten}} {{ö-topp|inneröra}} *tyska: {{ö+|de|Labyrinth|n}}, {{ö+|de|Innenohr|n}} {{ö-botten}} 48r2gjlwl8i49ijpuez07vkivufknw8 4157097 4157095 2026-10-23T12:35:32Z ~2026-56702-21 62364 4157097 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-er}} {{media|Labyrinth 2 (from Nordisk familjebok).png|en '''labyrint''' (1)}} '''labyrint''' {{u}} #[[ställe]] med [[invecklad|invecklat]] [[nät]] av [[gång]]ar; stor [[byggnad]] där det kan vara [[svår]]t att [[hitta]] [[rätt]] #:{{etymologi|Av {{härledning|sv|grc|λαβύρινθος|tr=laburinthos}}.}} #{{tagg|anatomi}} [[inneröra]] ====Översättningar==== {{ö-topp|ställe med invecklat nät av gångar}} *engelska: {{ö+|en|labyrinth}}, {{ö+|en|maze}} *finska: {{ö+|fi|labyrintti}}, {{ö+|fi|sokkelo}} *franska: {{ö+|fr|labyrinthe|m}} *jiddisch: {{ö|yi|לאַבירינט|m|tr=labirint}} *katalanska: {{ö+|ca|laberint|m}} *polska: {{ö+|pl|labirynt}} *spanska: {{ö+|es|laberinto|m}} *turkiska: {{ö+|tr|labirent}} *tyska: {{ö+|de|Labyrinth|n}} {{ö-botten}} {{ö-topp|inneröra}} *tyska: {{ö+|de|Labyrinth|n}}, {{ö+|de|Innenohr|n}} {{ö-botten}} 1ggwz2vn4c4pqrtgtil0bqhzdm9d8e8 4157098 4157097 2026-10-23T12:35:55Z ~2026-56702-21 62364 4157098 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-er}} {{media|Labyrinth 2 (from Nordisk familjebok).png|en '''labyrint''' (1)}} '''labyrint''' {{u}} #[[ställe]] med [[invecklad|invecklat]] [[nät]] av [[gång]]ar; stor [[byggnad]] där det kan vara [[svår]]t att [[hitta]] [[rätt]] #{{tagg|anatomi}} [[inneröra]] :{{avgränsare}} :{{etymologi|Av {{härledning|sv|grc|λαβύρινθος|tr=laburinthos}}.}} ====Översättningar==== {{ö-topp|ställe med invecklat nät av gångar}} *engelska: {{ö+|en|labyrinth}}, {{ö+|en|maze}} *finska: {{ö+|fi|labyrintti}}, {{ö+|fi|sokkelo}} *franska: {{ö+|fr|labyrinthe|m}} *jiddisch: {{ö|yi|לאַבירינט|m|tr=labirint}} *katalanska: {{ö+|ca|laberint|m}} *polska: {{ö+|pl|labirynt}} *spanska: {{ö+|es|laberinto|m}} *turkiska: {{ö+|tr|labirent}} *tyska: {{ö+|de|Labyrinth|n}} {{ö-botten}} {{ö-topp|inneröra}} *tyska: {{ö+|de|Labyrinth|n}}, {{ö+|de|Innenohr|n}} {{ö-botten}} 09a2056jt87rs1doehsjyrp2u714k6t 4157100 4157098 2026-10-23T12:37:16Z ~2026-56702-21 62364 4157100 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-er}} {{media|Labyrinth 2 (from Nordisk familjebok).png|en '''labyrint''' (1)}} '''labyrint''' {{u}} #[[ställe]] med [[invecklad|invecklat]] [[nät]] av [[gång]]ar; stor [[byggnad]] där det kan vara [[svår]]t att [[hitta]] [[rätt]] #{{tagg|anatomi}} [[inneröra]] :{{avgränsare}} :{{etymologi|Av {{härledning|sv|grc|λαβύρινθος|tr=laburinthos}}.}} :{{seäven-bring|Svårhet|Hemlighet|Kroklinje|Slingring|Oordning}} ====Översättningar==== {{ö-topp|ställe med invecklat nät av gångar}} *engelska: {{ö+|en|labyrinth}}, {{ö+|en|maze}} *finska: {{ö+|fi|labyrintti}}, {{ö+|fi|sokkelo}} *franska: {{ö+|fr|labyrinthe|m}} *jiddisch: {{ö|yi|לאַבירינט|m|tr=labirint}} *katalanska: {{ö+|ca|laberint|m}} *polska: {{ö+|pl|labirynt}} *spanska: {{ö+|es|laberinto|m}} *turkiska: {{ö+|tr|labirent}} *tyska: {{ö+|de|Labyrinth|n}} {{ö-botten}} {{ö-topp|inneröra}} *tyska: {{ö+|de|Labyrinth|n}}, {{ö+|de|Innenohr|n}} {{ö-botten}} 7mzl9qzp0vzd209ruecxewkvp5o2f6h Kategori:Cree 14 430427 4157409 2981695 2026-10-24T11:34:13Z Frodlekis 762 4157409 wikitext text/x-wiki {{kategorinavigering|Cree}} {{faktaruta språk}} 5j6ajm3p3ozbfep0ibhsz9122hhe0le Kategori:Chichewa 14 430429 4157406 2981694 2026-10-24T11:26:21Z Frodlekis 762 4157406 wikitext text/x-wiki {{kategorinavigering|Chichewa}} {{faktaruta språk}} 6ekwvpwhdxta1zwhqei89yj29q32do2 Kategori:Bislama 14 430432 4157342 2981524 2026-10-24T01:54:47Z Frodlekis 762 4157342 wikitext text/x-wiki {{kategorinavigering|Bislama}} {{faktaruta språk}} swofu4xi74yr5fj41tqdgv6z176n7rx Kategori:Central bikol 14 430434 4157274 2988647 2026-10-24T01:12:17Z Frodlekis 762 4157274 wikitext text/x-wiki {{kategorinavigering|Bikol}} {{faktaruta språk}} 29uxe406t6ihseke8293v56dqic30d8 4157280 4157274 2026-10-24T01:17:52Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol]] till [[Kategori:Central bikol]] utan att lämna en omdirigering 4157274 wikitext text/x-wiki {{kategorinavigering|Bikol}} {{faktaruta språk}} 29uxe406t6ihseke8293v56dqic30d8 4157284 4157280 2026-10-24T01:23:08Z Frodlekis 762 4157284 wikitext text/x-wiki {{kategorinavigering|Central bikol}} {{faktaruta språk}} je3pv3smrnb060kgzvijljs9cm9pes9 Kategori:Bihari 14 430436 4157273 2981515 2026-10-24T01:11:02Z Frodlekis 762 4157273 wikitext text/x-wiki {{kategorinavigering|Bihari}} {{faktaruta språk}} sohfvy4ip5u22ccuwqrgpru7a76iytc Kategori:Erzya 14 430440 4157388 2981850 2026-10-24T04:45:54Z Frodlekis 762 4157388 wikitext text/x-wiki {{kategorinavigering|Erzya}} {{faktaruta språk}} o6qfcvbmbo6hqac7v06p08ec5ng0fyk Kategori:Dinka 14 430445 4157411 2988822 2026-10-24T11:36:42Z Frodlekis 762 4157411 wikitext text/x-wiki {{kategorinavigering|Dinka}} {{faktaruta språk}} 8la8ar332trr7tye2rx8e2fgqyk9zzj Kategori:Banjaresiska 14 430448 4157262 2981422 2026-10-24T00:29:05Z Frodlekis 762 4157262 wikitext text/x-wiki {{kategorinavigering|Banjaresiska}} {{faktaruta språk}} fc8ilrcwl6gt8gjxg4ysfsy43d4osfe Kategori:Baluchiska 14 430453 4157260 2981414 2026-10-24T00:19:05Z Frodlekis 762 4157260 wikitext text/x-wiki {{kategorinavigering|Baluchiska}} {{faktaruta språk}} 7q6ms06qen0rlzmft47ulhewhlnmj3x Kategori:Akkalasamiska 14 430461 4157230 2981148 2026-10-23T23:05:28Z Frodlekis 762 4157230 wikitext text/x-wiki {{kategorinavigering|Akkalasamiska}} {{faktaruta språk}} ==Källor== <references/> 1ncnvr8lng61wnv12cumzubvffm5ks5 Kategori:Akan 14 430463 4157228 2981145 2026-10-23T23:02:36Z Frodlekis 762 4157228 wikitext text/x-wiki {{kategorinavigering|Akan}} {{faktaruta språk}} ==Källor== <references/> he1hbvurkl52qc8xyyop4mxksdjfaox Kategori:Chantiska 14 430466 4157364 2981686 2026-10-24T04:09:49Z Frodlekis 762 4157364 wikitext text/x-wiki {{kategorinavigering|Chantiska}} {{faktaruta språk}} 5x3cpg3mm8dcsale6m9y5hsbttjzt8q Kategori:Chamorro 14 430468 4157360 2981684 2026-10-24T02:38:57Z Frodlekis 762 4157360 wikitext text/x-wiki {{kategorinavigering|Chamorro}} {{faktaruta språk}} 7glhzwyyvympqmgo8ngvzb3nfkqzoea Kategori:Burjatiska 14 430469 4157354 2981662 2026-10-24T02:23:28Z Frodlekis 762 4157354 wikitext text/x-wiki {{kategorinavigering|Burjatiska}} {{faktaruta språk}} jlep7549s2lym0238z46n74d887kjdz Kategori:Bishnupriya manipuri 14 430470 4157341 2981519 2026-10-24T01:53:26Z Frodlekis 762 4157341 wikitext text/x-wiki {{kategorinavigering|Bishnupriya manipuri}} {{faktaruta språk}} etmnigmbvbg6g3z5gq19v35zrj74wex Kategori:Afar 14 430471 4157224 2981082 2026-10-23T22:59:38Z Frodlekis 762 4157224 wikitext text/x-wiki {{kategorinavigering|Afar}} {{faktaruta språk}} 7zxi43dgpljrjivrs4l65d00ync0823 4157225 4157224 2026-10-23T23:00:12Z Frodlekis 762 4157225 wikitext text/x-wiki {{kategorinavigering|Afar}} {{faktaruta språk}} ==Källor== <references/> bj5ej8yfgg7ydtfu1xk584az1i1m1nu Kategori:Fornhögtyska 14 430481 4157404 2982034 2026-10-24T11:23:48Z Frodlekis 762 4157404 wikitext text/x-wiki {{kategorinavigering|Fornhögtyska}} {{faktaruta språk}} km5xsh70b1freu6micmo1o6znc4z26a Kategori:Dzongkha 14 430484 4157413 2977493 2026-10-24T11:39:24Z Frodlekis 762 4157413 wikitext text/x-wiki {{kategorinavigering|Dzongkha}} {{faktaruta språk}} tj7vlv6nmc3a51jye8fhmtxdjwgbk0z Kategori:Assamesiska 14 430512 4157251 2981359 2026-10-23T23:52:50Z Frodlekis 762 4157251 wikitext text/x-wiki {{kategorinavigering|Assamesiska}} {{faktaruta språk}} ==Källor== <references/> 95v2sz1qx50ezk9vx48gbm9zlm2bh76 Kategori:Gagauziska 14 430525 4157362 2982214 2026-10-24T04:05:31Z Frodlekis 762 4157362 wikitext text/x-wiki {{kategorinavigering|Gagauziska}} {{faktaruta språk}} meem6p6jpc0htgu3z25fub03zwngevf Kategori:Forniriska 14 430850 4157403 2982038 2026-10-24T11:23:27Z Frodlekis 762 4157403 wikitext text/x-wiki {{kategorinavigering|Forniriska}} {{faktaruta språk}} 7zslifu9om5as35h9suif4xcqzzdf5q Kategori:Fornkymriska 14 432433 4157386 2982039 2026-10-24T04:44:22Z Frodlekis 762 4157386 wikitext text/x-wiki {{kategorinavigering|Fornkymriska}} {{faktaruta språk}} 46oqqmcbxdhsi9zf2n7ru723hvr1nms Kategori:Avestiska 14 432444 4157258 2981388 2026-10-24T00:17:23Z Frodlekis 762 4157258 wikitext text/x-wiki {{kategorinavigering|Avestiska}} {{faktaruta språk}} jrm32e4ntjiqf0wv1hm9fetqqoulths Kategori:Aleutiska 14 432451 4157234 2981225 2026-10-23T23:10:40Z Frodlekis 762 4157234 wikitext text/x-wiki {{kategorinavigering|Aleutiska}} {{faktaruta språk}} ==Källor== <references/> h0jqoawn94espnsvjxl2e2ccc21lksm Kategori:Fornlågfrankiska 14 432453 4157390 1643377 2026-10-24T04:47:08Z Frodlekis 762 4157390 wikitext text/x-wiki {{kategorinavigering|Fornlågfrankiska}} {{faktaruta språk}} 80m042sjert03cgwkki8j5tpodgx0v7 Suesya 0 443591 4157322 3541889 2026-10-24T01:41:53Z Frodlekis 762 4157322 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''Suesya''' #{{tagg|kat=länder|språk=bcl}} [[Sverige]] 5xv1x9h2r6wkgk60sl3wvi5kfsk3wsd Kategori:Centralnahuatl 14 446577 4157357 3145304 2026-10-24T02:30:13Z Frodlekis 762 4157357 wikitext text/x-wiki {{kategorinavigering|Centralnahuatl}} {{faktaruta språk}} [[Kategori:Nahuatl]] 9fa2yyb0go0bs358ud088xsmilouo74 Kategori:Central bikol/Länder 14 518035 4157319 2981516 2026-10-24T01:41:22Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Länder]] till [[Kategori:Central bikol/Länder]] utan att lämna en omdirigering 2981516 wikitext text/x-wiki {{kategorinavigering|Bikol|Länder|Toponymer}} 4cqib9y7chu1dakuuwl1bqclni0z2rs 4157320 4157319 2026-10-24T01:41:33Z Frodlekis 762 4157320 wikitext text/x-wiki {{kategorinavigering|Central bikol|Länder|Toponymer}} 581e6xc3zm6der0ey70bmu0ixpqasd3 Kategori:Fornturkiska 14 518176 4157367 2982064 2026-10-24T04:15:27Z Frodlekis 762 4157367 wikitext text/x-wiki {{kategorinavigering|Fornturkiska}} {{faktaruta språk}} 4gqmp3rspawtrii8lxml2gt1608mooi Kategori:Central bikol/Toponymer 14 518556 4157289 2030781 2026-10-24T01:25:16Z Frodlekis 762 4157289 wikitext text/x-wiki {{kategorinavigering|Central bikol|Toponymer|Geografi|Egennamn}} h00054kjb7vtsxkucowyjl8snbig5hs 4157290 4157289 2026-10-24T01:25:36Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Toponymer]] till [[Kategori:Central bikol/Toponymer]] 4157289 wikitext text/x-wiki {{kategorinavigering|Central bikol|Toponymer|Geografi|Egennamn}} h00054kjb7vtsxkucowyjl8snbig5hs Kategori:Egyptiska 14 519374 4157414 2981765 2026-10-24T11:43:13Z Frodlekis 762 4157414 wikitext text/x-wiki {{kategorinavigering|Egyptiska}} {{faktaruta språk}} 77x3trau1cizp5yer09gzl860x8rkz1 Kategori:Central bikol/Geografi 14 519386 4157300 2034305 2026-10-24T01:32:43Z Frodlekis 762 4157300 wikitext text/x-wiki {{kategorinavigering|Central bikol|Geografi|Diverse}} 0xfmru68kiqepeli9zdriu7714djlto 4157301 4157300 2026-10-24T01:32:55Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Geografi]] till [[Kategori:Central bikol/Geografi]] utan att lämna en omdirigering 4157300 wikitext text/x-wiki {{kategorinavigering|Central bikol|Geografi|Diverse}} 0xfmru68kiqepeli9zdriu7714djlto Kategori:Forndanska 14 519389 4157378 2982015 2026-10-24T04:29:59Z Frodlekis 762 4157378 wikitext text/x-wiki {{kategorinavigering|Forndanska}} {{faktaruta språk}} 56agp3mdrun70dajpf405op91900mrr Kategori:Central bikol/Egennamn 14 519397 4157313 2034317 2026-10-24T01:38:52Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Egennamn]] till [[Kategori:Central bikol/Egennamn]] 2034317 wikitext text/x-wiki {{kategorinavigering|Bikol|Egennamn|Index|nyckel=6}} lyliecjbxujtxo0n7zydjzzhuzg1qaa 4157315 4157313 2026-10-24T01:39:28Z Frodlekis 762 4157315 wikitext text/x-wiki {{kategorinavigering|Central bikol|Egennamn|Index|nyckel=6}} gms0rlftie6rnd6tlzgdbdxxqjnaea6 Kategori:Central bikol/Diverse 14 520986 4157298 2040645 2026-10-24T01:32:10Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Diverse]] till [[Kategori:Central bikol/Diverse]] utan att lämna en omdirigering 2040645 wikitext text/x-wiki {{kategorinavigering|Bikol|Diverse|Index|nyckel=6}} thnezum0x8w2ubfskafrf06vlncitpy 4157299 4157298 2026-10-24T01:32:22Z Frodlekis 762 4157299 wikitext text/x-wiki {{kategorinavigering|Central bikol|Diverse|Index|nyckel=6}} q4e1au8bxtkg4figafba1vc453zga70 chill 0 529950 4157139 3813818 2026-10-23T15:52:39Z ~2026-56702-21 62364 /* Svenska */ 4157139 wikitext text/x-wiki ==Svenska== ===Adjektiv=== {{sv-adj}} '''chill''' #{{tagg|vardagligt}} [[lugn]], inte [[jobbig]], [[skön]] att [[ha och göra med]] #:''Min engelskalärare är fett '''chill''', hon ger oss typ aldrig läxor.'' #:{{etymologi|Av {{härledning|sv|en|chill}}.}} #:{{besläktade ord|chilla}} ===Adverb=== {{adv|sv}} '''chill''' #{{tagg|vardagligt}} [[lugnt]] #:''Här ligger jag och har det '''chill'''.'' #:''Men ta det lite '''chill''' jaow.'' #:{{etymologi|Av {{härledning|sv|en|chill}}.}} #:{{besläktade ord|chilla}} ==Engelska== ===Substantiv=== {{en-subst}} '''chill''' #svagare [[kyla]] #:{{fraser|[[wind chill]]}} #:''There was a '''chill''' in the air.'' #::''Det var lite '''kyligt''' i luften.'' #plötslig [[kalluft]] #känsla av [[oro]] eller [[obehag]], [[obehangskänsla]], [[oroskänsla]] #:''Despite the heat, he felt a '''chill''' as he entered the crime scene.'' #::''Hettan till trots började han kallsvettas när han kom till brottsplatsen.'' ===Adjektiv=== {{adj|en}} '''chill''' {{peri|more|most}} #[[småkylig]], lite [[kall]] #{{tagg|slang|språk=en}} [[lugn]], [[avslappnad]], [[tillbakalutad]] #{{tagg|slang|språk=en}} [[okej]], ingen fara, lugn, inga problem #:''It's '''chill'''.'' #::''Det är '''lugnt'''.'' ===Verb=== {{en-verb}} '''chill''' #[[kyla]] #[[kallna]] #{{tagg|slang|språk=en}} [[slappna av]], luta sig tillbaka #{{tagg|slang|språk=en}} [[ta det lugnt]], [[chilla]] #{{tagg|slang|språk=en}} [[hänga]], [[umgås]] på ett avslappnat sätt #:{{varianter|[[chill out]]}} #{{tagg|slang|språk=en}} [[röka på]], röka marijuana #[[sänka]] eller [[minska]] genom att [[avskräcka]] 83n3kw0uhqrdnfl4uq3lgql9cofrs32 4157140 4157139 2026-10-23T15:53:13Z ~2026-56702-21 62364 4157140 wikitext text/x-wiki ==Svenska== ===Adjektiv=== {{sv-adj}} '''chill''' #{{tagg|vardagligt}} [[lugn]], inte [[jobbig]], [[skön]] att [[ha och göra med]] #:''Min engelskalärare är fett '''chill''', hon ger oss typ aldrig läxor.'' #:{{etymologi|{{belagt|sv|1998}}<ref>{{källa-so}}</ref> Av {{härledning|sv|en|chill}}.}} #:{{besläktade ord|chilla}} ===Adverb=== {{adv|sv}} '''chill''' #{{tagg|vardagligt}} [[lugnt]] #:''Här ligger jag och har det '''chill'''.'' #:''Men ta det lite '''chill''' jaow.'' #:{{etymologi|Av {{härledning|sv|en|chill}}.}} #:{{besläktade ord|chilla}} ==Engelska== ===Substantiv=== {{en-subst}} '''chill''' #svagare [[kyla]] #:{{fraser|[[wind chill]]}} #:''There was a '''chill''' in the air.'' #::''Det var lite '''kyligt''' i luften.'' #plötslig [[kalluft]] #känsla av [[oro]] eller [[obehag]], [[obehangskänsla]], [[oroskänsla]] #:''Despite the heat, he felt a '''chill''' as he entered the crime scene.'' #::''Hettan till trots började han kallsvettas när han kom till brottsplatsen.'' ===Adjektiv=== {{adj|en}} '''chill''' {{peri|more|most}} #[[småkylig]], lite [[kall]] #{{tagg|slang|språk=en}} [[lugn]], [[avslappnad]], [[tillbakalutad]] #{{tagg|slang|språk=en}} [[okej]], ingen fara, lugn, inga problem #:''It's '''chill'''.'' #::''Det är '''lugnt'''.'' ===Verb=== {{en-verb}} '''chill''' #[[kyla]] #[[kallna]] #{{tagg|slang|språk=en}} [[slappna av]], luta sig tillbaka #{{tagg|slang|språk=en}} [[ta det lugnt]], [[chilla]] #{{tagg|slang|språk=en}} [[hänga]], [[umgås]] på ett avslappnat sätt #:{{varianter|[[chill out]]}} #{{tagg|slang|språk=en}} [[röka på]], röka marijuana #[[sänka]] eller [[minska]] genom att [[avskräcka]] ==Källor== <references/> lyw6iv8ekzaof8iwkekj7oppzngbpo4 4157141 4157140 2026-10-23T15:54:39Z ~2026-56702-21 62364 4157141 wikitext text/x-wiki ==Svenska== ===Adjektiv=== {{sv-adj}} '''chill''' #{{tagg|vardagligt}} [[lugn]], inte [[jobbig]], [[skön]] att [[ha och göra med]] #:''Min engelskalärare är fett '''chill''', hon ger oss typ aldrig läxor.'' #:{{etymologi|{{belagt|sv|1998}}<ref>{{källa-so}}</ref> Av {{härledning|sv|en|chill}}.}} #:{{besläktade ord|chilla}} ===Adverb=== {{adv|sv}} '''chill''' #{{tagg|vardagligt}} [[lugnt]] #:''Här ligger jag och har det '''chill'''.'' #:''Men ta det lite '''chill''' jaow.'' #:{{etymologi|Av {{härledning|sv|en|chill}}.}} #:{{besläktade ord|chilla}} ===Substantiv=== {{sv-subst-t-0}} '''chill''' {{n}} #{{tagg|vardagligt}} lugn och avslappnad aktivitet #:{{etymologi|{{belagt|sv|2005}}<ref>{{källa-so}}</ref> Av {{härledning|sv|en|chill}}.}} ==Engelska== ===Substantiv=== {{en-subst}} '''chill''' #svagare [[kyla]] #:{{fraser|[[wind chill]]}} #:''There was a '''chill''' in the air.'' #::''Det var lite '''kyligt''' i luften.'' #plötslig [[kalluft]] #känsla av [[oro]] eller [[obehag]], [[obehangskänsla]], [[oroskänsla]] #:''Despite the heat, he felt a '''chill''' as he entered the crime scene.'' #::''Hettan till trots började han kallsvettas när han kom till brottsplatsen.'' ===Adjektiv=== {{adj|en}} '''chill''' {{peri|more|most}} #[[småkylig]], lite [[kall]] #{{tagg|slang|språk=en}} [[lugn]], [[avslappnad]], [[tillbakalutad]] #{{tagg|slang|språk=en}} [[okej]], ingen fara, lugn, inga problem #:''It's '''chill'''.'' #::''Det är '''lugnt'''.'' ===Verb=== {{en-verb}} '''chill''' #[[kyla]] #[[kallna]] #{{tagg|slang|språk=en}} [[slappna av]], luta sig tillbaka #{{tagg|slang|språk=en}} [[ta det lugnt]], [[chilla]] #{{tagg|slang|språk=en}} [[hänga]], [[umgås]] på ett avslappnat sätt #:{{varianter|[[chill out]]}} #{{tagg|slang|språk=en}} [[röka på]], röka marijuana #[[sänka]] eller [[minska]] genom att [[avskräcka]] ==Källor== <references/> sf3tbhddk2hqa52u3mk4mnpkple8tqo Kategori:Fornspanska 14 584954 4157375 2274067 2026-10-24T04:23:24Z Frodlekis 762 4157375 wikitext text/x-wiki {{kategorinavigering|Fornspanska}} {{faktaruta språk}} eh3uvnnqp2905ai98eygrqan1yp1hmi Kategori:Cora 14 588855 4157408 2290972 2026-10-24T11:30:01Z Frodlekis 762 4157408 wikitext text/x-wiki {{kategorinavigering|Cora}} {{faktaruta språk}} q1uurm9xchblnsthfm94lm7e34fy0is ökensångare 0 598048 4157152 3870212 2026-10-23T18:49:59Z Tapio Toola 59668 +fi: [[kääpiökerttu]] (assisterat) 4157152 wikitext text/x-wiki {{wikipedia}} ==Svenska== ===Substantiv=== {{sv-subst-n-0|are=|rot=ökensångar}} '''[[öken]][[sångare]]''' #{{tagg|kat=fågelarter|kat2=fåglar}} en fågelart ''([[Sylvia nana]])'' inom familjen [[sylvider]] ''([[Sylviidae]])'' inom ordningen [[tättingar]] ''([[Passeriformes]])''; individ av den art ====Översättningar==== {{ö-topp|en fågelart inom familjen sylvider inom ordningen tättingar}} *engelska: {{ö+|en|Asian desert warbler}} *finska: {{ö+|fi|kääpiökerttu}} *franska: {{ö|fr|fauvette naine|f}} *nederländska: {{ö|nl|woestijngrasmus}} *turkiska: {{ö+|tr|çöl ötleğeni}} *tyska: {{ö|de|Wüstengrasmücke|f}} {{ö-botten}} muqbzzsw24jrwa9bs1vyantccbf7ouj Kategori:Central bikol/Amerikanska delstater 14 623215 4157323 2518117 2026-10-24T01:42:42Z Frodlekis 762 4157323 wikitext text/x-wiki {{kategorinavigering|Central bikol|Amerikanska delstater|Toponymer}} t3wvirebc54c1klrloxjgzv5jsbp8yb 4157324 4157323 2026-10-24T01:42:54Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Amerikanska delstater]] till [[Kategori:Central bikol/Amerikanska delstater]] utan att lämna en omdirigering 4157323 wikitext text/x-wiki {{kategorinavigering|Central bikol|Amerikanska delstater|Toponymer}} t3wvirebc54c1klrloxjgzv5jsbp8yb Modul:lang/data 828 650602 4157282 4155339 2026-10-24T01:21:52Z Frodlekis 762 4157282 Scribunto text/plain local data = {} local u = mw.ustring.char -- UTF-8 encoded strings for some commonly-used diacritics local GRAVE = u(0x0300) local ACUTE = u(0x0301) local CIRC = u(0x0302) local TILDE = u(0x0303) local MACRON = u(0x0304) local BREVE = u(0x0306) local DOTABOVE = u(0x0307) local DIAER = u(0x0308) local CARON = u(0x030C) local DGRAVE = u(0x030F) local INVBREVE = u(0x0311) local DOTBELOW = u(0x0323) local RINGBELOW = u(0x0325) local CEDILLA = u(0x0327) local OGONEK = u(0x0328) local RSQUO = u(0x2019) local PSILI = u(0x1FBD) local CORONIS = u(0x1FBF) -- possible attributes: name, nolemma, (script), sort_rules, source, entry_name data["--"] = { name = "tvärspråkligt", source = "Wiktionary" } data["abq"] = { name = "abazinska", source = "ISO 639-3" } data["ab"] = { name = "abchaziska", source = "Wiktionary", entry_name = { from = {GRAVE, ACUTE}, to = {} } } data["abe"] = { name = "abenakiska", source = "ISO 639-3" } data["ace"] = { name = "acehnesiska", source = "Wikimedia" } data["ady"] = { name = "adygeiska", source = "ISO 639-3" } data["aa"] = { name = "afar", source = "Wiktionary", sort_rules = {"t>b~", "s>b¡", "e>b°", "k>c~", "x>c¡", "i>c°", "q>d~", "r>d¡", "o>g~", "h>w~"} } data["af"] = { name = "afrikaans", source = "Wiktionary" } data["ain"] = { name = "ainu", source = "ISO 639-3" } data["ak"] = { name = "akan", source = "Wiktionary" } data["akk"] = { name = "akkadiska", source = "ISO 639-3" } data["sia"] = { name = "akkalasamiska", source = "ISO 639-3" } data["sq"] = { name = "albanska", source = "Wiktionary", sort_rules = {"ç>c~", "dh>d~", "ë>e~", "gj>g~", "ll>l~", "nj>n~", "rr>r~", "sh>s~", "th>t~", "xh>x~", "zh>z~"} } data["als"] = { -- enwikt och ISO 639-3 "gsw" name = "alemanniska", source = "Wiktionary" } data["ale"] = { name = "aleutiska", source = "ISO 639-3" } data["tut"] = { name = "altaiska", source = "ISO 639-2" } data["am"] = { name = "amhariska", source = "Wiktionary" } data["xaa"] = { name = "andalusisk arabiska", source = "ISO 639-3" } data["xno"] = { name = "anglo-normandiska", source = "ISO 639-3" } data["ar"] = { name = "arabiska", source = "Wiktionary", entry_name = { from = {u(0x0671), u(0x064B), u(0x064C), u(0x064D), u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652), u(0x0670), u(0x0640)}, to = {u(0x0627)} } } data["an"] = { name = "aragonska", source = "Wiktionary" } data["arc"] = { name = "arameiska", source = "Wikimedia" } data["hy"] = { name = "armeniska", source = "Wiktionary", entry_name = { from = {"՞", "՜", "՛", "՟", "<sup>յ</sup>", "<sup>ի</sup>"}, to = {"", "", "", "", "յ", "ի"} } } data["roa-rup"] = { name = "arumänska", source = "Wiktionary" } data["as"] = { name = "assamesiska", source = "Wiktionary" } data["ast"] = { name = "asturiska", source = "Wiktionary", sort_rules = {"ñ>n~"} } data["av"] = { name = "avariska", source = "Wiktionary", entry_name = { from = {GRAVE, ACUTE}, to = {} } } data["ave"] = { name = "avestiska", source = "ISO 639-3" } data["ay"] = { name = "aymara", source = "Wiktionary" } data["az"] = { name = "azerbajdzjanska", source = "Wiktionary", sort_rules = {"ç>c~", "ə>e~", "ğ>g~", "x>h~", "ı>h¡", "q>k~", "ö>o~", "ş>s~", "ü>u~"} } data["ban"] = { name = "balinesiska", source = "ISO 639-3" } data["bal"] = { name = "baluchiska", source = "ISO 639-2" } data["bm"] = { name = "bambara", source = "Wiktionary" } data["bjn"] = { name = "banjaresiska", source = "ISO 629-3" } data["ba"] = { name = "basjkiriska", source = "Wiktionary" } data["eu"] = { name = "baskiska", source = "Wiktionary", sort_rules = {"ñ>n~"} } data["bbl"] = { name = "bats", source = "ISO 639-3", entry_name = { from = {"̃", "<sup>ნ</sup>", MACRON, BREVE}, to = {"", "ნ"} } } data["bar"] = { name = "bayerska", source = "ISO 639-3" } data["be"] = { name = "belarusiska", source = "Wiktionary", sort_rules = {"ć>c~", "č>¡", "dz>d~", "dź>d¡", "dž>d°", "ch>h~", "ł>l~", "ń>n~", "ś>s~", "š>¡", "ŭ>u~", "ź>z~", "ž>z¡"}, entry_name = { from = {"Ѐ", "ѐ", GRAVE, ACUTE}, to = {"Е", "е"} } } data["bem"] = { name = "bemba", source = "ISO 639-3" } data["bn"] = { name = "bengali", source = "Wiktionary" } data["ber"] = { name = "berberspråk", source = "ISO 639-2" } data["bym"] = { name = "bidjara", source = "ISO 639-3" } data["bh"] = { name = "bihari", source = "Wiktionary" } data["bcl"] = { name = "central bikol", source = "Wikimedia" } data["bpy"] = { name = "bishnupriya manipuri", source = "Wikimedia" } data["bi"] = { name = "bislama", source = "Wiktionary" } data["no"] = { name = "bokmål", source = "Wiktionary", sort_rules = {"æ>æ", "ä>æ", "ø>ø", "å>ø~", "œ>ø", "ö>ø"} } data["bs"] = { name = "bosniska", source = "Wiktionary", sort_rules = {"č>c~", "ć>c¡", "dž>d~", "đ>d¡", "lj>l~", "nj>n~", "š>s~", "ž>z~", "ð>d¡"}, entry_name = { from = {"[ȀÀȂÁĀÃ]", "[ȁàȃáāã]", "[ȄÈȆÉĒẼ]", "[ȅèȇéēẽ]", "[ȈÌȊÍĪĨ]", "[ȉìȋíīĩ]", "[ȌÒȎÓŌÕ]", "[ȍòȏóōõ]", "[ȐȒŔ]", "[ȑȓŕ]", "[ȔÙȖÚŪŨ]", "[ȕùȗúūũ]", "Ѐ", "ѐ", "[ӢЍ]", "[ӣѝ]", "[Ӯ]", "[ӯ]", GRAVE, ACUTE, DGRAVE, INVBREVE, MACRON, TILDE}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "R" , "r" , "U" , "u" , "Е", "е", "И" , "и", "У", "у" } } } data["br"] = { name = "bretonska", source = "Wiktionary" } data["bug"] = { name = "buginesiska", source = "Wikimedia" } data["bg"] = { name = "bulgariska", source = "Wiktionary", entry_name = { from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE}, to = {"Е", "е", "И", "и"} } } data["btx"] = { name = "batak karo", source = "ISO 639-3" } data["bxr"] = { name = "burjatiska", source = "Wikimedia", sort_rules = {"ç>c~", "ө>o~", "ş>s~", "ƶ>z~"} } data["my"] = { name = "burmesiska", source = "Wiktionary" } data["cps"] = { name = "capiznon", source = "ISO 639-3" } data["ceb"] = { name = "cebuano", source = "Wikimedia" } data["nhn"] = { name = "centralnahuatl", source = "ISO 639-3" } data["ch"] = { name = "chamorro", source = "Wiktionary" } data["kca"] = { name = "chantiska", source = "ISO 639-3", sort_rules = {"ә>e~", "һ>h~", "ļ>l~", "ł>l¡", "ņ>n~", "ŋ>n¡", "ş>s~", "s̷>s¡", "ƶ>z~", "ƅ>ƅ"} } data["cbk"] = { name = "chavacano", source = "ISO 639-3" } data["chr"] = { name = "cherokesiska", source = "Wiktionary" } data["chy"] = { name = "cheyenne", source = "Wikimedia" } data["ny"] = { name = "chichewa", source = "Wikimedia", entry_name = { from = {"ŵ", "Ŵ", "á", "Á", "é", "É", "í", "Í", "ó", "Ó", "ú", "Ú", "ń", "Ń", "ḿ", "Ḿ"}, to = {"w", "W", "a", "A", "e", "E", "i", "I", "o", "O", "u", "U", "n", "N", "m", "M"} } } data["chn"] = { name = "chinook jargon", source = "ISO 639-3" } data["chk"] = { name = "chuukesiska", source = "ISO 639-3" } data["cia"] = { name = "cia-cia", source = "ISO 639-3" } data["crn"] = { name = "cora", source = "ISO 639-3" } data["cr"] = { name = "cree", source = "Wiktionary" } data["dag"] = { name = "dagbanli", source = "ISO 639-3" } data["btd"] = { name = "dairi batak", source = "ISO 639-3" } data["da"] = { name = "danska", source = "Wiktionary", sort_rules = {"æ>æ", "ä>æ", "ø>ø", "å>ø~", "œ>ø", "ö>ø"} } data["prs"] = { name = "dari", source = "ISO 639-3" } data["egy-dem"] = { name = "demotiska", source = "ISO 639-2 / konstruerad" } data["din"] = { name = "dinka", source = "ISO 639-3", sort_rules = {"ä>a~", "dh>d~", "ë>e~", "ɛ>e¡", "ɛ̈>e°", "ɣ>g~", "ï>i~", "nh>n~", "ny>n¡", "ŋ>n°", "ö>o~", "ɔ>o¡", "ɔ̈>o°", "th>t~"} } data["dv"] = { name = "divehi", source = "Wikimedia" } data["dz"] = { name = "dzongkha", source = "Wiktionary" } data["smn"] = { name = "enaresamiska", source = "ISO 639-3" } data["en"] = { name = "engelska", source = "Wiktionary", sort_rules = {} -- no special rules } data["egy"] = { name = "egyptiska", source = "ISO 639-3" } data["myv"] = { name = "erzya", source = "Wikimedia" } data["eo"] = { name = "esperanto", source = "Wiktionary", sort_rules = {"ĉ>c~", "ĝ>g~", "ĥ>h~", "ĵ>j~", "ŝ>s~", "ŭ>u~"} } data["et"] = { name = "estniska", source = "Wiktionary", sort_rules = {"š>s~", "z>s¡", "ž>s°", "õ>w~", "ä>w¡", "ö>w°", "ü>w²"} } data["ett"] = { name = "etruskiska", source = "ISO 639-3" } data["evn"] = { name = "evenki", source = "ISO 639-3" } data["ee"] = { name = "ewe", source = "ISO 639-3", sort_rules = {"ɖ>d~", "dz>d~", "ɛ>e~", "ƒ>f~", "gb>g~", "ɣ>g¡", "kp>k~", "ny>n~", "ŋ>n¡", "ts>t~", "ʋ>v~"} } data["ext"] = { name = "extremaduriska", source = "ISO 639-3", sort_rules = {"ñ>n~"} } data["fan"] = { name = "fang", source = "ISO 639-3" } data["phn"] = { name = "feniciska", source = "ISO 639-3" } data["fj"] = { name = "fiji", source = "Wiktionary" } data["hif"] = { name = "fijiansk hindi", source = "Wikimedia" } data["fil"] = { name = "filipino", source = "ISO 639-3", sort_rules = {"ñ>n~", "ng>n¡"} } data["fi"] = { name = "finska", source = "Wiktionary", sort_rules = {"š>s", "ž>z", "å>z~", "ä>ä", "ö>ö"}, entry_name = { from = {"ˣ"}, -- Used to indicate gemination of the next consonant to = {} } } data["rmf"] = { name = "finsk romani", source = "ISO 639-3" } data["gmq-fda"] = { --enwikt gmq-oda name = "forndanska", source = "ISO 639-5 / konstruerad", entry_name = { from = {"Ā", "ā", "Ē", "ē", "Ī", "ī", "Ō", "ō", "Ū", "ū", "Ȳ", "ȳ", "Ǣ", "ǣ", "Ø̄", "ø̄", MACRON}, to = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "Y", "y", "Æ", "æ", "Ø", "ø"} } } data["ang"] = { name = "fornengelska", source = "Wiktionary", entry_name = { from = {"[ĀÁ]", "[āá]", "[ǢǼ]", "[ǣǽ]", "Ċ", "ċ", "[ĒÉ]", "[ēé]", "Ġ", "ġ", "[ĪÍ]", "[īí]", "[ŌÓ]", "[ōó]", "[ŪÚ]", "[ūú]", "[ȲÝ]", "[ȳý]", MACRON, ACUTE, DOTABOVE}, to = {"A", "a", "Æ", "æ", "C", "c", "E", "e", "G", "g", "I", "i", "O", "o", "U", "u", "Y", "y"} }, sort_rules = {} -- no special rules } data["frk"] = { name = "fornfrankiska", source = "ISO 639-3" } data["fro"] = { name = "fornfranska", source = "ISO 639-3" } data["ofs"] = { name = "fornfrisiska", source = "ISO 639-3", entry_name = { from = {"[ĀÂ]", "[āâ]", "[ĒÊ]", "[ēê]", "[ĪÎ]", "[īî]", "[ŌÔ]", "[ōô]", "[ŪÛ]", "[ūû]"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u"} } } data["oge"] = { name = "forngeorgiska", source = "ISO 639-3", entry_name = { from = {"̂"}, to = {""} } } data["goh"] = { name = "fornhögtyska", source = "ISO 639-3", entry_name = { from = {"[ĀÂ]", "[āâ]", "[ĒÊË]", "[ēêë]", "[ĪÎ]", "[īî]", "[ŌÔ]", "[ōô]", "[ŪÛ]", "[ūû]", "ʒ"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u" , "z" } } } data["sga"] = { name = "forniriska", source = "ISO 639-3", entry_name = { from = {"ḟ", "ṡ", "Ḟ", "Ṡ", "ä", "ë", "ï", "ö", "ü", "·"}, to = {"f", "s", "F", "S", "a", "e", "i", "o", "u"} } } data["owl"] = { name = "fornkymriska", source = "ISO 639-3" } data["cu"] = { name = "fornkyrkoslaviska", source = "Wikipedia", entry_name = { from = {u(0x0484)}, -- kamora to = {} } } data["odt"] = { name = "fornlågfrankiska", source = "ISO 639-3", entry_name = { from = {"[ĀÂ]", "[āâ]", "[ĒÊ]", "[ēê]", "[ĪÎ]", "[īî]", "[ŌÔ]", "[ōô]", "[ŪÛ]", "[ūû]"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u"} } } data["non"] = { name = "fornnordiska", source = "ISO 639-2" } data["pro"] = { name = "fornoccitanska", source = "ISO 639-3" } data["peo"] = { name = "fornpersiska", source = "ISO 639-3" } data["roa-fpt"] = { name = "fornportugisiska", source = "ISO 639-5 / konstruerad" } data["osx"] = { name = "fornsaxiska", source = "ISO 639-3", entry_name = { from = {"[ĀÂ]", "[āâ]", "[ĒÊ]", "[ēê]", "[ĪÎ]", "[īî]", "[ŌÔ]", "[ōô]", "[ŪÛ]", "[ūû]"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u"} } } data["osp"] = { name = "fornspanska", source = "ISO 639-3" } data["gmq-fsv"] = { --enwikt gmq-osw name = "fornsvenska", source = "ISO 639-5 / konstruerad", sort_rules = {"þ>d~", "z>s~", "æ>y~", "ø>y¡"}, entry_name = { from = {"Ā", "ā", "Ē", "ē", "Ī", "ī", "Ō", "ō", "Ū", "ū", "Ȳ", "ȳ", "Ǣ", "ǣ", "Ø̄", "ø̄", MACRON}, to = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "Y", "y", "Æ", "æ", "Ø", "ø"} } } data["otk"] = { name = "fornturkiska", source = "ISO 639-3" } data["frp"] = { name = "frankoprovensalska", source = "Wikimedia" } data["fr"] = { name = "franska", source = "Wiktionary", sort_rules = {"æ>ae", "œ>oe"} } data["fy"] = { name = "frisiska", source = "Wiktionary" } data["fur"] = { name = "friuliska", source = "ISO 639-3" } data["fud"] = { name = "futuniska", source = "ISO 639-3" } data["fo"] = { name = "färöiska", source = "Wiktionary", sort_rules = {"á>a~", "ð>d~", "Ð>d~", "í>i~", "ó>o~", "ú>u~", "ý>y~", "æ>æ", "ø>ø"} } data["gag"] = { name = "gagauziska", source = "ISO 639-3", sort_rules = {"ä>a~", "ç>c~", "ı>h~", "I>h~", "i>i", "İ>i", "ö>o~", "ş>s~", "ţ>t~", "ü>u~"} } data["gl"] = { name = "galiciska", source = "Wiktionary" } data["gez"] = { name = "ge'ez", source = "ISO 639-3" } data["ka"] = { name = "georgiska", source = "Wiktionary", entry_name = { from = {"̂"}, to = {""} } } data["got"] = { name = "gotiska", source = "Wikimedia", entry_name = { from = {"Ā", "ā", "Ē", "ē", "Ī", "ī", "Ō", "ō", "Ū", "ū"}, to = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u"} } } data["el"] = { name = "grekiska", source = "Wiktionary" } data["gos"] = { name = "groningska", source = "ISO 639-3" } data["kl"] = { name = "grönländska", source = "Wiktionary" } data["gnc"] = { name = "guanche", source = "ISO 639-3" } data["gn"] = { name = "guaraní", source = "Wiktionary", sort_rules = {"ã>a~", "ch>a¡", "ẽ>e~", "g̃>g~", "ĩ>i~", "mb>m~", "nd>n~", "nt>n¡", "ñ>n°", "õ>o~", "rr>r~", "ũ>u~", "ỹ>y~"} } data["ngu"] = { name = "guerreronahuatl", source = "ISO 639-3", } data["gu"] = { name = "gujarati", source = "Wiktionary" } data["guz"] = { name = "gusii", source = "ISO 639-3" } data["h-nor"] = { -- enbart etymologi name = "norska", nolemma = true, source = "ISO 639-5" } data["h-smi"] = { -- enbart etymologi name = "samiska", nolemma = true, source = "ISO 639-5" } data["ht"] = { name = "haitisk kreol", source = "Wikimedia" } data["hak"] = { name = "hakka", source = "Wikimedia" } data["ha"] = { name = "hausa", source = "Wiktionary", sort_rules = {"ɓ>b~", "ɗ>d~", "ƙ>k~", "sh>s~", "ts>t~", "ƴ>y~"}, entry_name = { from = {"R̃", "r̃", "À", "à", "È", "è", "Ì", "ì", "Ò", "ò", "Ù", "ù", "Â", "â", "Ê", "ê", "Î", "î", "Ô", "ô", "Û", "û", "Ā", "ā", "Ē", "ē", "Ī", "ī", "Ō", "ō", "Ū", "ū", "Á", "á", "É", "é", "Í", "í", "Ó", "ó", "Ú", "ú", "Ā̀", "ā̀", "Ḕ", "ḕ", "Ī̀", "ī̀", "Ṑ", "ṑ", "Ū̀", "ū̀", GRAVE, ACUTE}, to = {"R", "r", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "I", "i", "O", "o", "U", "u"} } } data["haw"] = { name = "hawaiiska", source = "Wikimedia", sort_rules = {"i>e~", "o>e¡", "u>e°"} } data["he"] = { name = "hebreiska", source = "Wiktionary", entry_name = { from = {"[" .. u(0x0591) .. "-" .. u(0x05BD) .. u(0x05BF) .. "-" .. u(0x05C5) .. u(0x05C7) .. "]"}, to = {} } } data["xed"] = { name = "hedi", source = "ISO 639-3" } data["hit"] = { name = "hettitiska", source = "ISO 639-3" } data["hil"] = { name = "hiligaynon", source = "ISO 639-2", entry_name = { from = {"Á", "á", "É", "é", "Í", "í", "Ó", "ó", "Ú", "ú", MACRON}, to = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u"} } } data["hi"] = { name = "hindi", source = "Wiktionary" } data["hnd"] = { name = "hindko", source = "ISO 639-3" } data["mww"] = { name = "hmong daw", source = "ISO 639-3" } data["xhu"] = { name = "hurritiska", source = "ISO 639-3" } data["hsb"] = { name = "högsorbiska", source = "Wiktionary", sort_rules = {"č>c~", "ć>c¡", "ě>e~", "ł>k~", "ń>n~", "ó>o~", "ř>r", "š>s~", "ž>z~", "ch>h"} } data["rmq"] = { name = "iberisk romani", source = "ISO 639-3" } data["io"] = { name = "ido", source = "Wiktionary" } data["ig"] = { name = "igbo", source = "Wikimedia", sort_rules = {"gb>b~", "gh>g~", "ị>i~", "ṅ>n~", "ọ>o~", "kp>p~", "sh>sh~", "ụ>u~", "ch>z~", "gw>z¡", "kw>z°", "nw>z²", "ny>n³"} } data["ilo"] = { name = "ilokano", source = "Wikimedia", entry_name = { from = {"[áàâ]", "[éèê]", "[íìî]", "[óòô]", "[úùû]", ACUTE, GRAVE, CIRC}, to = {"a" , "e" , "i" , "o" , "u" } } } data["id"] = { name = "indonesiska", source = "Wiktionary" } data["ia"] = { name = "interlingua", source = "Wiktionary" } data["ie"] = { name = "interlingue", source = "Wiktionary" } data["iu"] = { name = "inuktitut", source = "Wiktionary" } data["ik"] = { name = "iñupiaq", source = "Wiktionary" } data["ga"] = { name = "iriska", source = "Wiktionary", sort_rules = {"á>a~", "é>e~", "í>i~", "ó>o~", "ú>u~"} } data["is"] = { name = "isländska", source = "Wiktionary", sort_rules = {"á>a~", "ð>d~", "í>i~", "ó>o~", "ú>u~", "ý>y~", "þ>y¡", "æ>æ", "ö>ö"} } data["ist"] = { name = "istriotiska", source = "ISO 639-3" } data["it"] = { name = "italienska", source = "Wiktionary" } data["sah"] = { name = "jakutiska", source = "ISO 639-3" } data["ja"] = { name = "japanska", source = "Wiktionary" } data["jv"] = { name = "javanesiska", source = "Wiktionary", sort_rules = {"é>e~", "è>e¡"} } data["yi"] = { name = "jiddisch", source = "Wiktionary" } data["kbd"] = { name = "kabardinska", source = "ISO 639-3" } data["kab"] = { name = "kabyliska", source = "ISO 639-3" } data["xal"] = { name = "kalmuckiska", source = "Wikimedia" } data["kam"] = { name = "kamba", source = "ISO 639-3" } data["xmu"] = { name = "kammu", source = "ISO 639-3" } data["kjb"] = { name = "kanjobal", source = "ISO 639-3" } data["kn"] = { name = "kannada", source = "Wiktionary" } data["yue"] = { name = "kantonesiska", source = "Wikimedia" } data["pam"] = { name = "kapampangan", source = "Wikimedia" } data["kaa"] = { name = "karakalpakiska", source = "ISO 639-3" } data["kr"] = { name = "kanuri", source = "Wikimedia", entry_name = { from = {"À", "à", "È", "è", "Ǝ̀", "ǝ̀", "Ì", "ì", "Ò", "ò", "Ù", "ù", "Â", "â", "Ê", "ê", "Ǝ̂", "ǝ̂", "Î", "î", "Ô", "ô", "Û", "û", "Ă", "ă", "Ĕ", "ĕ", "Ǝ̆", "ǝ̆", "Ĭ", "ĭ", "Ŏ", "ŏ", "Ŭ", "ŭ", "Á", "á", "É", "é", "Ǝ́", "ǝ́", "Í", "í", "Ó", "ó", "Ú", "ú", GRAVE, ACUTE}, to = {"A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u", "A", "a", "E", "e", "Ǝ", "ǝ", "I", "i", "O", "o", "U", "u"} } } data["krc"] = { name = "karatjajbalkariska", source = "Wikimedia" } data["krl"] = { name = "karelska", source = "ISO 639-3" } data["ks"] = { name = "kashmiri", source = "Wiktionary" } data["csb"] = { name = "kasjubiska", source = "Wiktionary", sort_rules = {"ą>a~", "ã>a¡", "é>e~", "ë>e¡", "ł>l~", "ń>n~", "ò>o~", "ó>o¡", "ô>o°", "ù>u~", "ż>z~"} } data["ca"] = { name = "katalanska", source = "Wiktionary" } data["kk"] = { name = "kazakiska", source = "Wiktionary" } data["kjh"] = { name = "khakasiska", source = "ISO 639-3" } data["km"] = { name = "khmer", source = "Wiktionary" } data["kzg"] = { name = "kikai", source = "ISO 639-3" } data["kg"] = { name = "kikongo", source = "Wikimedia" } data["ki"] = { name = "kikuyu", source = "Wikimedia" } data["sjd"] = { name = "kildinsamiska", source = "ISO 639-3" } data["zh"] = { name = "kinesiska", source = "Wiktionary" } data["ky"] = { name = "kirgiziska", source = "Wiktionary" } data["rn"] = { name = "kirundi", source = "Wiktionary" } data["ktu"] = { name = "kituba", source = "ISO 639-3" } data["grc"] = { name = "klassisk grekiska", source = "ISO 639-3", entry_name = { from = {"[ᾸᾹ]", "[ᾰᾱ]", "[ῘῙ]", "[ῐῑ]", "[ῨῩ]", "[ῠῡ]", "µ", "["..RSQUO..PSILI..CORONIS.."]", "["..MACRON..BREVE.."]" }, to = {"Α", "α", "Ι", "ι", "Υ", "υ", "μ", "'", ""} } } data["nci"] = { name = "klassisk nahuatl", source = "ISO 639-3", entry_name = { from = {"Ā", "ā", "Ē", "ē", "Ī", "ī", "Ō", "ō", "Ū", "ū", "Ȳ", "ȳ"}, to = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "Y", "y"} } } data["syc"] = { name = "klassisk syriska", source = "ISO 639-3", } data["tlh"] = { name = "klingonska", source = "ISO 639-3" } data["kpv"] = { name = "komi", source = "ISO 639-3" } data["cop"] = { name = "koptiska", source = "ISO 639-3", entry_name = { from = { "ˋ", GRAVE, MACRON, }, to = {}, } } data["ko"] = { name = "koreanska", source = "Wiktionary" } data["kpy"] = { name = "korjakiska", source = "ISO 639-3" } data["kw"] = { name = "korniska", source = "Wiktionary" } data["co"] = { name = "korsikanska", source = "Wiktionary", sort_rules = {"chj>c~", "ghj>g~"} } data["avk"] = { name = "kotava", source = "ISO 639-3", } data["crh"] = { name = "krimtatariska", source = "Wikimedia", sort_rules = {"ç>c~", "ı>h~", "ö>o~", "ş>s~", "ü>u~"} } data["jct"] = { name = "krimtjakiska", source = "ISO 639-3", } data["hr"] = { name = "kroatiska", source = "Wiktionary", sort_rules = {"č>c~", "ć>c¡", "dž>d~", "đ>d¡", "lj>l~", "nj>n~", "š>s~", "ž>z~", "ð>d¡"}, entry_name = { from = {"[ȀÀȂÁĀÃ]", "[ȁàȃáāã]", "[ȄÈȆÉĒẼ]", "[ȅèȇéēẽ]", "[ȈÌȊÍĪĨ]", "[ȉìȋíīĩ]", "[ȌÒȎÓŌÕ]", "[ȍòȏóōõ]", "[ȐȒŔ]", "[ȑȓŕ]", "[ȔÙȖÚŪŨ]", "[ȕùȗúūũ]", "Ѐ", "ѐ", "[ӢЍ]", "[ӣѝ]", "[Ӯ]", "[ӯ]", GRAVE, ACUTE, DGRAVE, INVBREVE, MACRON, TILDE}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "R" , "r" , "U" , "u" , "Е", "е", "И" , "и", "У", "у" } } } data["kum"] = { name = "kumykiska", source = "ISO 639-3" } data["xug"] = { name = "kunigami", source = "ISO 639-3" } data["ku"] = { name = "kurdiska", source = "Wiktionary", sort_rules = {"ç>c~", "ê>e~", "î>i~", "ş>s~", "û>u~"} } data["fkv"] = { name = "kvänska", source = "ISO 639-3" } data["cy"] = { name = "kymriska", source = "Wiktionary", sort_rules = {"ch>c~", "dd>c~", "ff>f~", "ng>g~", "ll>l~", "ph>p~", "rh>r~"} } data["lad"] = { name = "ladino", source = "Wikimedia" } data["lld"] = { name = "ladinska", source = "ISO 639-3", sort_rules = {"ese>e~"} } data["lbe"] = { name = "lak", source = "ISO 639-3" } data["lac"] = { name = "lakandonska", source = "ISO 639-3" } data["lkt"] = { name = "lakota", source = "ISO 639-3", sort_rules = {"aŋ>a~", "č>b~", "čh>b¡", "č’>b°", "ǧ>g~", "ȟ>h~", "iŋ>i~", "kh>k~", "kȟ>k¡", "k’>k°", "ph>p~", "pȟ>p¡", "p’>p°", "š>s~", "th>t~", "tȟ>t¡", "t’>t°", "uŋ>u~", "ž>z~"} } data["lo"] = { name = "lao", source = "Wiktionary" } data["la"] = { name = "latin", source = "Wiktionary", entry_name = { from = {"[ĀĂ]", "[āă]", "[ĒĔ]", "[ēĕë]", "[ĪĬÏ]", "[īĭï]", "[ŌŎ]", "[ōŏ]", "[ŪŬÜ]", "[ūŭü]", "Ȳ", "ȳ", MACRON, BREVE, DIAER}, to = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "Y", "y"} } } data["lzz"] = { name = "laziska", source = "ISO 639-3", entry_name = { from = {"̂", GRAVE, ACUTE}, to = {} } } data["ltg"] = { name = "lettgalliska", source = "ISO 639-3", sort_rules = {"ā>a~", "č>c~", "ē>e~", "ģ>g~", "ī>i~", "ķ>k~", "ļ>l~", "ņ>n~", "š>s~", "ū>u~", "ž>z~"} } data["lv"] = { name = "lettiska", source = "Wiktionary", sort_rules = {"ā>a~", "č>c~", "ē>e~", "ģ>g~", "ī>i~", "ķ>k~", "ļ>l~", "ņ>n~", "š>s~", "ū>u~", "ž>z~"}, entry_name = { -- This attempts to convert vowels with tone marks to vowels either with -- or without macrons. Specifically, there should be no macrons if the -- vowel is part of a diphthong (including resonant diphthongs such -- pìrksts -> pirksts not #pīrksts). What we do is first convert the -- vowel + tone mark to a vowel + tilde in a decomposed fashion, -- then remove the tilde in diphthongs, then convert the remaining -- vowel + tilde sequences to macroned vowels, then delete any other -- tilde. We leave already-macroned vowels alone: Both e.g. ar and ār -- occur before consonants. FIXME: This still might not be sufficient. from = {"Ȩ", "ȩ", "[ÂÃÀ]", "[âãà]", "[ÊẼÈ]", "[êẽè]", "[ÎĨÌ]", "[îĩì]", "[ÔÕÒ]", "[ôõò]", "[ÛŨÙ]", "[ûũù]", "[ÑǸ]", "[ñǹ]", "[" .. CIRC .. TILDE ..GRAVE .."]", "([aAeEiIoOuU])" .. TILDE .."?([lrnmuiLRNMUI])" .. TILDE .. "?([^aAeEiIoOuUāĀēĒīĪūŪ])", "([aAeEiIoOuU])" .. TILDE .."?([lrnmuiLRNMUI])" .. TILDE .."?$", "([iI])" .. TILDE .. "?([eE])" .. TILDE .. "?", "A" .. TILDE, "a" .. TILDE, "E" .. TILDE, "e" .. TILDE, "I" .. TILDE, "i" .. TILDE, "U" .. TILDE, "u" .. TILDE, TILDE}, to = {"E", "e", "A" .. TILDE, "a" .. TILDE, "E" .. TILDE, "e" .. TILDE, "I" .. TILDE, "i" .. TILDE, "O", "o", "U" .. TILDE, "u" .. TILDE, "N", "n", TILDE, "%1%2%3", "%1%2", "%1%2", "Ā", "ā", "Ē", "ē", "Ī", "ī", "Ū", "ū", ""} } } data["lez"] = { name = "lezginska", source = "ISO 639-3", entry_name = { from = {GRAVE, ACUTE}, to = {} } } data["lij"] = { name = "liguriska", source = "Wikimedia" } data["li"] = { name = "limburgiska", source = "Wiktionary", sort_rules = {"äö>a~", "è>e~", "ó>o~", "ö>o¡", "ô>o°", "q>z~", "x>z¡"} } data["ln"] = { name = "lingala", source = "Wiktionary" } data["lt"] = { name = "litauiska", source = "Wiktionary", sort_rules = {"ą>a~", "ch>c~", "č>c¡", "ę>e~", "ė>e¡", "į>i~", "y>i¡", "š>s~", "ų>u~", "ū>u¡", "ž>z~"}, entry_name = { from = {"[áãà]", "[ÁÃÀ]", "[éẽè]", "[ÉẼÈ]", "[íĩì]", "[ÍĨÌ]", "[ýỹ]", "[ÝỸ]", "ñ", "[óõò]", "[ÓÕÒ]", "[úũù]", "[ÚŨÙ]", ACUTE, GRAVE, TILDE}, to = {"a", "A", "e", "E", "i", "I", "y", "Y", "n", "o", "O", "u", "U"} } } data["liv"] = { name = "liviska", source = "ISO 639-3", sort_rules = {"ā>a~", "ä>a¡", "ǟ>a°", "ḑ>d~", "ē>e~", "ī>i~", "ļ>l~", "ņ>n~", "ō>o~", "ȯ>o¡", "ȱ>o°", "õ>o²", "ȭ>o³", "ŗ>r~", "š>s~", "ț>t~", "ū>u~", "ž>z~"} } data["olo"] = { name = "livvi", source = "ISO 639-3" } data["jbo"] = { name = "lojban", source = "Wiktionary" } data["lmo"] = { name = "lombardiska", source = "Wikimedia" } data["lg"] = { name = "luganda", source = "Wikimedia", entry_name = { from = {"á", "Á", "é", "É", "í", "Í", "ó", "Ó", "ú", "Ú", "ń", "Ń", "ḿ", "Ḿ", "â", "Â", "ê", "Ê", "î", "Î", "ô", "Ô", "û", "Û"}, to = {"a", "A", "e", "E", "i", "I", "o", "O", "u", "U", "n", "N", "m", "M", "a", "A", "e", "E", "i", "I", "o", "O", "u", "U"} } } data["smj"] = { name = "lulesamiska", source = "ISO 639-3" } data["lb"] = { name = "luxemburgiska", source = "Wiktionary" } data["luy"] = { name = "luhya", source = "ISO 639-3" } data["sco"] = { name = "lågskotska", source = "Wikimedia" } data["dsb"] = { name = "lågsorbiska", source = "Wikimedia", sort_rules = {"č>c~", "ć>c¡", "ě>e~", "ł>k~", "ń>n~", "ó>o~", "ŕ>r~", "š>s~", "ś>s¡", "ž>z~", "ź>z¡", "ch>h"} } data["nds"] = { name = "lågtyska", source = "Wiktionary" } data["mas"] = { name = "maa", source = "ISO 639-3" } data["mad"] = { name = "maduresiska", source = "ISO 639-3" } data["mai"] = { name = "maithili", source = "Wikimedia" } data["mak"] = { name = "makassariska", source = "ISO 639-3" } data["mk"] = { name = "makedonska", source = "Wiktionary", entry_name = { from = {ACUTE}, to = {} } } data["mg"] = { name = "malagassiska", source = "Wiktionary" } data["ms"] = { name = "malajiska", source = "Wiktionary" } data["ml"] = { name = "malayalam", source = "Wiktionary" } data["mt"] = { name = "maltesiska", source = "Wiktionary", sort_rules = {"ġ>f~", "għ>g~", "ħ>h~", "ie>i~", "ż>y~"} } data["mnc"] = { name = "manchu", source = "ISO 639-3" } data["mns"] = { name = "mansiska", source = "ISO 639-3" } data["gv"] = { name = "manx", source = "Wiktionary" } data["mi"] = { name = "maori", source = "Wiktionary" } data["arn"] = { name = "mapudungun", source = "Wikimedia" } data["mrh"] = { name = "mara", source = "ISO 639-3" } data["mr"] = { name = "marathi", source = "Wiktionary" } data["mh"] = { name = "marshallesiska", source = "Wiktionary" } data["mfe"] = { name = "mauritisk kreol", source = "ISO 639-3" } data["enm"] = { name = "medelengelska", source = "ISO 639-3", entry_name = { from = {"[ĀÁ]", "[āá]", "[ǢǼ]", "[ǣǽ]", "Ċ", "ċ", "[ĒÉĖ]", "[ēéė]", "Ġ", "ġ", "[ĪÍ]", "[īí]", "[ŌÓ]", "[ōó]", "[ŪÚ]", "[ūú]", "[ȲÝ]", "[ȳý]", MACRON, ACUTE, DOTABOVE}, to = {"A", "a", "Æ", "æ", "C", "c", "E", "e", "G", "g", "I", "i", "O", "o", "U", "u", "Y", "y"} } } data["frm"] = { name = "medelfranska", source = "ISO 639-3" } data["gmh"] = { name = "medelhögtyska", source = "ISO 639-3", entry_name = { from = {"[ĀÂ]", "[āâ]", "[ĒÊË]", "[ēêë]", "[ĪÎ]", "[īî]", "[ŌÔ]", "[ōô]", "[ŪÛ]", "[ūû]"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u" }, } } data["gml"] = { name = "medellågtyska", source = "ISO 639-3", entry_name = { from = {"[ĀÂÄǞ]", "[āâäǟ]", "[ĒÊ]", "[ēê]", "[ĪÎ]", "[īî]", "[ŌÔÖȪ]", "[ōôöȫ]", "[ŪÛÜǕ]", "[ūûüǖ]", "[̂]"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u" , "" }, } } data["dum"] = { name = "medelnederländska", source = "ISO 639-3", entry_name = { from = {"[ĀÂ]", "[āâ]", "[ĒÊË]", "[ēêë]", "[ĪÎ]", "[īî]", "[ŌÔ]", "[ōô]", "[ŪÛ]", "[ūû]"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u"} } } data["pal"] = { name = "medelpersiska", source = "ISO 639-3" } data["fit"] = { name = "meänkieli", source = "ISO 639-3", sort_rules = {"š>s", "ž>z", "å>z~", "ä>ä", "ö>ö"} } data["min"] = { name = "minangkabau", source = "Wikimedia" } data["zh-min-nan"] = { name = "min nan", source = "Wiktionary" } data["mwl"] = { name = "mirandesiska", source = "ISO 629-3" } data["miq"] = { name = "miskito", source = "ISO 629-3", entry_name = { from = {"Â", "â", "Î", "î", "Û", "û"}, to = {"A", "a", "I", "i", "U", "u"} } } data["mvi"] = { name = "miyako", source = "ISO 639-3" } data["mdf"] = { name = "moksja", source = "ISO 639-3" } data["mdh"] = { name = "magindanao", source = "ISO 639-3" } data["mo"] = { name = "moldaviska", source = "Wiktionary" } data["mn"] = { name = "mongoliska", source = "Wiktionary" } data["mos"] = { name = "mossi", source = "ISO 639-3" } data["mrw"] = { name = "maranao", source = "ISO 639-3" } data["gmy"] = { name = "mykensk grekiska", source = "ISO 639-3" } data["nah"] = { name = "nahuatl", source = "Wiktionary", sort_rules = {"ch>c~", "cu>c¡", "hu>h~", "qu>q~", "tl>t~", "tz>t¡", "ā>ā", "ē>ē", "ī>ī", "ō>ō", "ll>ō~", "h>ō¡"} } data["pih"] = { name = "norfuk", source = "ISO 639-3", sort_rules = {"aa>a~", "ee>e~", "ii>i~", "oo>o~", "uu>u~"} } data["na"] = { name = "nauruanska", source = "Wiktionary" } data["nv"] = { name = "navajo", source = "Wikimedia" } data["ng"] = { name = "ndonga", source = "Wikimedia" } data["nap"] = { name = "neapolitanska", source = "Wikimedia" } data["nl"] = { name = "nederländska", source = "Wiktionary" } data["ne"] = { name = "nepali", source = "Wiktionary" } data["nij"] = { name = "ngaju dayak", source = "ISO 639-3" } data["ryn"] = { name = "nordamami", source = "ISO 639-3" } data["frr"] = { name = "nordfrisiska", source = "ISO 639-3" } data["kmr"] = { name = "nordkurdiska", source = "ISO 639-3", entry_name = { from = {"'"}, to = {"’"} } } data["nd"] = { name = "nordndebele", source = "ISO 639-1", entry_name = { from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON}, to = {"a" , "e" , "i" , "o" , "u" , "m", "n" } } } data["se"] = { name = "nordsamiska", source = "Wikimedia", sort_rules = {"á>a~", "č>c~", "đ>d~", "ŋ>n~", "š>s~", "ŧ>t~", "ž>z~", "ð>d~"}, entry_name = { from = {"([đflmnŋrsšŧv])'%1"}, to = {"%1%1"} } } data["nrm"] = { name = "normandiska", source = "Wiktionary" } data["nrn"] = { name = "norn", source = "ISO 639-3" } data["nov"] = { name = "novial", source = "Wikimedia" } data["nn"] = { name = "nynorska", source = "Wiktionary", sort_rules = {"æ>æ", "ä>æ", "ø>ø", "å>ø~", "œ>ø", "ö>ø"} } data["aii"] = { name = "nyöstsyriska", source = "ISO 639-3" } data["oc"] = { name = "occitanska", source = "Wiktionary" } data["oj"] = { name = "ojibwe", source = "ISO 639-1" } data["ryu"] = { name = "okinawianska", source = "ISO 639-3" } data["okn"] = { name = "okinoerabu", source = "ISO 639-3" } data["or"] = { name = "oriya", source = "Wiktionary" } data["om"] = { name = "oromo", source = "Wiktionary" } data["orv"] = { name = "fornöstslaviska", source = "ISO 639-3", entry_name = { from = {u(0x0484)}, -- kamora to = {} } } data["ota"] = { name = "osmanska", source = "ISO 639-3" } data["os"] = { name = "ossetiska", source = "Wikimedia", entry_name = { from = {GRAVE, ACUTE}, to = {} } } data["pau"] = { name = "palauiska", source = "ISO 639-3" } data["pi"] = { name = "pali", source = "Wiktionary" } data["pag"] = { name = "pangasinan", source = "ISO 639-3", sort_rules = {"ng>n~"} } data["pap"] = { name = "papiamento", source = "Wikimedia" } data["ps"] = { name = "pashto", source = "Wiktionary" } data["jam"] = { name = "patwa", source = "ISO 639-3 (och Wikimedia)?" } data["pdc"] = { name = "pennsylvaniatyska", source = "ISO 639-3" } data["fa"] = { name = "persiska", source = "Wiktionary", sort_rules = {"á>a~"}, entry_name = { from = {u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652)}, to = {} } } data["pms"] = { name = "piedmontesiska", source = "Wikimedia" } data["pcd"] = { name = "pikardiska", source = "Wikimedia" } data["sje"] = { name = "pitesamiska", source = "ISO 639-3" } data["pjt"] = { name = "pitjantjatjara", source = "ISO 639-3", sort_rules = {"ly>l~", "ḻ>l¡", "ng>n~", "ny>n¡", "ṉ>n°", "ṟ>r~", "tj>t~", "ṯ>t¡"} } data["pl"] = { name = "polska", source = "Wiktionary", sort_rules = {"ą>a~", "ć>c~", "ę>e~", "ł>l~", "ń>n~", "ó>o~", "ś>s~", "ż>z~", "ź>z¡"} } data["pox"] = { name = "polabiska", source = "ISO 639-3" } data["pt"] = { name = "portugisiska", source = "Wiktionary" } data["pim"] = { name = "powhatan", source = "ISO 639-3" } data["prg"] = { name = "preussiska", source = "ISO 639-3" } data["pa"] = { name = "punjabi", source = "Wiktionary" } data["qu"] = { name = "quechua", source = "Wiktionary", sort_rules = {"p>a~", "t>b~", "ch>c~", "k>d~", "q>d¡", "p'>d°", "t'>e~", "ch'>e¡", "k'>e°", "q'>f~", "ph>f¡", "th>f°", "chh>g~", "kh>g¡", "qh>g°", "s>g²", "sh>g³", "m>h~", "n>h¡", "ll>l~", "ñ>y~", "a>y¡", "i>y°", "u>y²"} } data["rej"] = { name = "rejang", source = "ISO 639-3" } data["rhg"] = { name = "rohingya", source = "ISO 639-3" } data["rom"] = { name = "romani", source = "ISO 639-2" } data["dru"] = { name = "rukai", source = "ISO 639-3" } data["ro"] = { name = "rumänska", source = "Wiktionary", sort_rules = {"ă>a~", "â>a¡", "î>i~", "ş>s~", "ţ>t~"} } data["rue"] = { name = "rusinska", source = "ISO 639-3", entry_name = { from = {GRAVE, ACUTE}, to = {} } } data["rw"] = { name = "rwanda", source = "Wiktionary" } data["ru"] = { name = "ryska", source = "Wiktionary", entry_name = { from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE}, to = {"Е", "е", "И", "и"} } } data["rm"] = { name = "rätoromanska", source = "Wiktionary" } data["sm"] = { name = "samoanska", source = "Wiktionary" } data["sg"] = { name = "sango", source = "Wiktionary" } data["sa"] = { name = "sanskrit", source = "Wiktionary" } data["sc"] = { name = "sardiska", source = "Wiktionary" } data["sas"] = { name = "sasak", source = "ISO 639-3" } data["stq"] = { name = "saterfrisiska", source = "ISO 639-3" } data["szl"] = { name = "schlesiska", source = "Wikimedia" } data["swg"] = { name = "schwabiska", source = "ISO 639-3" } data["sel"] = { name = "selkupiska", source = "ISO 639-3" } data["nso"] = { name = "sepedi", source = "ISO 639-3" } data["sr"] = { name = "serbiska", source = "Wiktionary", sort_rules = {"č>c~", "ć>c¡", "dž>d~", "đ>d¡", "lj>l~", "nj>n~", "š>s~", "ž>z~", "ð>d¡"}, entry_name = { from = {"[ȀÀȂÁĀÃ]", "[ȁàȃáāã]", "[ȄÈȆÉĒẼ]", "[ȅèȇéēẽ]", "[ȈÌȊÍĪĨ]", "[ȉìȋíīĩ]", "[ȌÒȎÓŌÕ]", "[ȍòȏóōõ]", "[ȐȒŔ]", "[ȑȓŕ]", "[ȔÙȖÚŪŨ]", "[ȕùȗúūũ]", "Ѐ", "ѐ", "[ӢЍ]", "[ӣѝ]", "[Ӯ]", "[ӯ]", GRAVE, ACUTE, DGRAVE, INVBREVE, MACRON, TILDE}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "R" , "r" , "U" , "u" , "Е", "е", "И" , "и", "У", "у" } } } data["st"] = { name = "sesotho", source = "Wiktionary" } data["psu"] = { name = "shauraseni", source = "ISO 639-3" } data["shn"] = { name = "shan", source = "Wiktionary" } data["scz"] = { name = "shetländska", source = "ISO 639-3" } data["sn"] = { name = "shona", source = "Wiktionary" } data["scn"] = { name = "sicilianska", source = "Wiktionary" } data["sid"] = { name = "sidamo", source = "ISO 639-3" } data["sd"] = { name = "sindhi", source = "Wiktionary" } data["si"] = { name = "singalesiska", source = "Wiktionary" } data["ss"] = { name = "siswati", source = "Wiktionary", entry_name = { from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON}, to = {"a" , "e" , "i" , "o" , "u" , "m", "n" } } } data["cjs"] = { name = "sjoriska", source = "ISO 639-3" } data["sms"] = { name = "skoltsamiska", source = "ISO 639-3", sort_rules = {"â>a~", "č>c~", "ʒ>c¡", "ǯ>c°", "đ>d~", "ǧ>g~", "ǥ>g¡", "ǩ>k~", "ŋ>n~", "õ>o~", "š>s~", "ž>z~", "å>z¡", "ä>ä", "ð>d~"} } data["gd"] = { name = "skotsk gäliska", source = "Wiktionary" } data["sk"] = { name = "slovakiska", source = "Wiktionary", sort_rules = {"á>a~", "ä>a¡", "č>c~", "ď>d~", "dz>d¡", "dž>d°", "é>e~", "í>i~", "ľ>l~", "ĺ>l¡", "ň>n~", "ó>o~", "ô>o¡", "ŕ>r~", "š>s~", "ť>t~", "ú>u~", "ý>y~", "ž>z~"} } data["sl"] = { name = "slovenska", source = "Wiktionary", sort_rules = {"č>c~", "š>s~", "ž>z~"}, entry_name = { from = {"[ÁÀÂȂȀ]", "[áàâȃȁ]", "[ÉÈÊȆȄỆẸ]", "[éèêȇȅệẹə]", "[ÍÌÎȊȈ]", "[íìîȋȉ]", "[ÓÒÔȎȌỘỌ]", "[óòôȏȍộọ]", "[ŔȒȐ]", "[ŕȓȑ]", "[ÚÙÛȖȔ]", "[úùûȗȕ]", "ł", GRAVE, ACUTE, DGRAVE, INVBREVE, CIRC, DOTBELOW}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "R" , "r" , "U" , "u" , "l"} } } data["sla-usl"] = { -- enwikt sla-pro name = "urslaviska", source = "ISO 639-5 / konstruerad", entry_name = { from = {"[ÀÁÃĀȀȂ]", "[àáãāȁȃ]", "[ÈÉẼĒȄȆ]", "[èéẽēȅȇ]", "[ÌÍĨĪȈȊ]", "[ìíĩīȉȋ]", "[ÒÓÕŌȌȎ]", "[òóõōȍȏ]", "[ÙÚŨŪȔȖ]", "[ùúũūȕȗ]", "[ỲÝỸȲ]", "[ỳýỹȳ]", "[Ǭ]", "[ǭ]", GRAVE, ACUTE, TILDE, MACRON, DGRAVE, INVBREVE}, to = {"A", "a", "E", "e", "I", "i", "O", "o", "U", "u", "Y", "y", "Ǫ", "ǫ"} } } data["so"] = { name = "somaliska", source = "Wiktionary", entry_name = { from = {"[ÁÀÂ]", "[áàâ]", "[ÉÈÊ]", "[éèê]", "[ÍÌÎ]", "[íìî]", "[ÓÒÔ]", "[óòô]", "[ÚÙÛ]", "[úùû]", "[ÝỲ]", "[ýỳ]"}, to = {"A" , "a" , "E" , "e" , "I" , "i" , "O" , "o" , "U" , "u", "Y", "y"} } } data["ckb"] = { name = "centralkurdiska", source = "Wikimedia" } data["es"] = { name = "spanska", source = "Wiktionary", sort_rules = {"ñ>n~"} } data["sux"] = { name = "sumeriska", source = "ISO 639-3" } data["su"] = { name = "sundanesiska", source = "Wiktionary" } data["sul"] = { name = "surigaonon", source = "ISO 639-3" } data["srn"] = { name = "surinamesiska", source = "ISO 639-3" } data["sva"] = { name = "svanetiska", source = "ISO 639-3", } data["sv"] = { name = "svenska", source = "Wiktionary", sort_rules = {"å>z~", "ä>z¡", "ö>z°", "ü>y", "æ>z¡", "ø>z°"} } data["rmu"] = { name = "svensk romani", source = "ISO 639-3", sort_rules = {"å>z~", "ä>z¡", "ö>z°"} } data["swl"] = { name = "svenskt teckenspråk", source = "ISO 639-3" } data["sw"] = { name = "swahili", source = "Wiktionary" } data["ams"] = { name = "sydamami", source = "ISO 639-3" } data["azb"] = { name = "sydazerbajdzjanska", source = "ISO 639-3" } data["sdh"] = { name = "sydkurdiska", source = "ISO 639-3" } data["nr"] = { name = "sydndebele", source = "ISO 639-1", entry_name = { from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON}, to = {"a" , "e" , "i" , "o" , "u" , "m", "n" } } } data["sma"] = { name = "sydsamiska", source = "ISO 639-3", sort_rules = {"ï>i~", "æ>z", "ö>z~", "å>z¡"} } data["tg"] = { name = "tadzjikiska", source = "Wiktionary", sort_rules = {"ç>c~", "ƣ>g~", "ī>i~", "ş>s~", "ū>u~", "ƶ>z~"}, entry_name = { from = {ACUTE}, to = {} } } data["tl"] = { name = "tagalog", source = "Wiktionary", sort_rules = {"ng>n~"}, entry_name = { from = {"[áàâ]", "[éèê]", "[íìî]", "[óòô]", "[úùû]", ACUTE, GRAVE, CIRC}, to = {"a" , "e" , "i" , "o" , "u" } } } data["tsg"] = { name = "tausug", source = "ISO 639-3" } data["ty"] = { name = "tahitiska", source = "Wikimedia" } data["khb"] = { name = "tai lü", source = "ISO 639-3" } data["ta"] = { name = "tamil", source = "Wiktionary" } data["tt"] = { name = "tatariska", source = "Wiktionary", sort_rules = {"ä>a~", "ç>c~", "ğ>g~", "İ>i", "í>i~", "ı>i¡", "I>i¡", "ñ>n~", "ö>o~", "ş>s~", "ü>u~"} } data["te"] = { name = "telugu", source = "Wiktionary" } data["tio"] = { name = "teop", source = "ISO 639-3" } data["sjt"] = { name = "tersamiska", source = "ISO 639-3" } data["tet"] = { name = "tetum", source = "ISO 639-3", sort_rules = {"á>a~", "é>e~", "í>i~", "ñ>n~", "ó>o~", "ú>u~"} } data["th"] = { name = "thai", source = "Wiktionary" } data["bo"] = { name = "tibetanska", source = "Wiktionary" } data["tig"] = { name = "tigre", source = "Wikimedia" } data["ti"] = { name = "tigrinska", source = "Wiktionary" } data["tiw"] = { name = "tiwi", source = "ISO 639-3" } data["cs"] = { name = "tjeckiska", source = "Wiktionary", sort_rules = {"á>a~", "č>c~", "ď>d~", "é>e~", "ě>e¡", "ch>h~", "í>i~", "ň>n~", "ó>o~", "ř>r~", "š>s~", "ť>t~", "ú>u~", "ů>u¡", "ý>y~", "ž>z~"} } data["ce"] = { name = "tjetjenska", source = "ISO 639-1", entry_name = { from = {MACRON}, to = {} } } data["ckt"] = { name = "tjuktjiska", source = "ISO 639-3" } data["cv"] = { name = "tjuvasjiska", source = "ISO 639-1" } data["tli"] = { name = "tlingit", source = "ISO 639-1" } data["bbc"] = { name = "toba batak", source = "ISO 639-3" } data["tpi"] = { name = "tok pisin", source = "Wiktionary" } data["tkn"] = { name = "tokunoshima", source = "ISO 639-3" } data["to"] = { name = "tonganska", source = "Wiktionary", sort_rules = {"ng>n~"} } data["ts"] = { name = "tsonga", source = "Wiktionary" } data["tn"] = { name = "tswana", source = "Wiktionary" } data["tnq"] = { -- enbart etymologi name = "taino", nolemma = true, source = "ISO 639-3" } data["tum"] = { name = "tumbuka", source = "Wikimedia" } data["tpn"] = { name = "tupinambá", source = "ISO 639-3" } data["tr"] = { name = "turkiska", source = "Wiktionary", sort_rules = {"ç>c~", "ğ>g~", "ı>h~", "I>h~", "İ>i", "ö>o~", "ş>s~", "ü>u~"} } data["tk"] = { name = "turkmeniska", source = "Wiktionary", sort_rules = {"ç>b~", "ä>e~", "ž>j~", "ň>n~", "ö>o~", "ş>s~", "ü>u~", "ý>y~"}, entry_name = { from = {"ā", "ē", "ī", "ō", "ū", "ȳ", "ȫ", "ǖ", MACRON}, to = {"a", "e", "i", "o", "u", "y", "ö", "ü", ""} } } data["tyv"] = { name = "tuvinska", source = "ISO 639-3" } data["tw"] = { name = "twi", source = "Wiktionary" } data["de"] = { name = "tyska", source = "Wiktionary", sort_rules = {"ß>ss"} } data["udm"] = { name = "udmurtiska", source = "Wikimedia" } data["uga"] = { name = "ugaritiska", source = "ISO 639-3" } data["ug"] = { name = "uiguriska", source = "Wiktionary", sort_rules = {"ə>a~", "p>b~", "t>b¡", "j>b°", "q>b²", "h>b³", "r>d~", "z>d¡", "ⱬ>d°", "s>d²", "x>d³", "ƣ>e~", "ķ>f~", "ng>k~", "g>k¡", "h̡>n~", "ɵ>u~", "ü>u¡", "e>v~", "i>v¡"} } data["uk"] = { name = "ukrainska", source = "Wiktionary", entry_name = { from = {"Ѐ", "ѐ", "Ѝ", "ѝ", GRAVE, ACUTE}, to = {"Е", "е", "И", "и"} } } data["sju"] = { name = "umesamiska", source = "ISO 639-3" } data["hu"] = { name = "ungerska", source = "Wiktionary", sort_rules = {"cs>c~", "dz>d~", "dzs>d¡", "gy>g~", "ly>l~", "ny>n~", "ö>o~", "sz>s~", "ty>t~", "ü>u~", "zs>z~", "ő>o~", "ű>u~"} } data["sqj-usq"] = { name = "uralbanska", source = "ISO 639-5 / konstruerad" } data["ur"] = { name = "urdu", source = "Wiktionary", entry_name = { from = {u(0x064B), u(0x064C), u(0x064D), u(0x064E), u(0x064F), u(0x0650), u(0x0651), u(0x0652)}, to = {} } } data["gem-ugm"] = { name = "urgermanska", source = "ISO 639-5 / konstruerad" } data["gem-uno"] = { name = "urnordiska", source = "ISO 639-5 / konstruerad" } data["inc-uia"] = { name = "urindoariska", source = "ISO 639-5 / konstruerad" } data["ine-uie"] = { name = "urindoeuropeiska", source = "ISO 639-5 / konstruerad" } data["iir-uir"] = { name = "urindoiranska", source = "ISO 639-5 / konstruerad" } data["ira-uir"] = { name = "uriranska", source = "ISO 639-5 / konstruerad" } data["itc-uit"] = { name = "uritaliska", source = "ISO 639-5 / konstruerad" } data["cel-uce"] = { name = "urkeltiska", source = "ISO 639-5 / konstruerad" } data["smi-usm"] = { name = "ursamiska", source = "ISO 639-2 / konstruerad" } data["sem-use"] = { name = "ursemitiska", source = "ISO 639-5 / konstruerad" } data["trk-utr"] = { name = "urturkiska", source = "ISO 639-5 / konstruerad" } data["fiu-ufi"] = { name = "uröstersjöfinska", source = "ISO 639-5 / konstruerad" } data["uz"] = { name = "uzbekiska", source = "Wiktionary" } data["wa"] = { name = "vallonska", source = "Wiktionary" } data["ve"] = { name = "venda", source = "Wikipedia" } data["vec"] = { name = "venetianska", source = "Wikimedia" } data["vep"] = { name = "vepsiska", source = "ISO 639-3", sort_rules = {"č>c~", "š>s~", "z>s¡", "ž>s°", "õ>w~", "ü>w¡", "ä>w°", "ö>w²", "'>w³"} } data["vi"] = { name = "vietnamesiska", source = "Wiktionary", sort_rules = {"ă>a~", "â>a¡", "đ>d~", "ê>e~", "ô>o~", "ơ>o¡", "ư>u~", "ằ>a~", "ắ>a~", "ẳ>a~", "ẵ>a~", "ặ>a~", "ầ>a¡", "ấ>a¡", "ẩ>a¡", "ẫ>a¡", "ậ>a¡", "ề>e~", "ế>e~", "ể>e~", "ễ>e~", "ệ>e~", "ồ>o~", "ố>o~", "ổ>o~", "ỗ>o~", "ộ>o~", "ờ>o¡", "ớ>o¡", "ở>o¡", "ỡ>o¡", "ợ>o¡", "ừ>u~", "ứ>u~", "ử>u~", "ữ>u~", "ự>u~", "ð>d¡"} } data["wym"] = { name = "vilamoviska", source = "ISO 639-3", sort_rules = {"ao>a~", "ć>c~", "ł>l~", "ń>n~", "ö>o~", "ś>s~", "ü>u~", "ź>z~", "ż>z¡"} } data["vo"] = { name = "volapük", source = "Wiktionary", sort_rules = {"ä>a~", "ö>o~", "ü>u~"} } data["fiu-vro"] = { name = "võro", source = "Wikimedia" } data["vot"] = { name = "votiska", source = "ISO 639-3" } data["mrj"] = { name = "västmariska", source = "Wikimedia" } data["pnb"] = { name = "västpanjabi", source = "Wikimedia" } data["wls"] = { name = "walliska", source = "ISO 639-3" } data["war"] = { name = "waray-waray", source = "Wikimedia" } data["wo"] = { name = "wolof", source = "Wiktionary" } data["xh"] = { name = "xhosa", source = "Wiktionary", entry_name = { from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON}, to = {"a" , "e" , "i" , "o" , "u" , "m", "n" } } } data["yka"] = { name = "jakan", source = "ISO 639-3" } data["rys"] = { name = "yaeyama", source = "ISO 639-3" } data["kdd"] = { name = "yankunytjatjara", source = "ISO 639-3", sort_rules = {"ly>l~", "ḻ>l¡", "ng>n~", "ny>n¡", "ṉ>n°", "ṟ>r~", "tj>t~", "ṯ>t¡"} } data["ii"] = { name = "yi", source = "Wikimedia" } data["yoi"] = { name = "yonaguni", source = "ISO 639-3" } data["yox"] = { name = "yoron", source = "ISO 639-3" } data["yo"] = { name = "yoruba", source = "Wiktionary" } data["yua"] = { name = "yukatekiska", source = "ISO 639-3" } data["dje"] = { name = "zarma", source = "ISO 639-3" } data["diq"] = { name = "zazaiska", source = "Wikimedia" } data["zea"] = { name = "zeeländska", source = "ISO 639-3" } data["sgs"] = { name = "žemaitiska", source = "ISO 639-3" } data["za"] = { name = "zhuang", source = "Wiktionary" } data["zu"] = { name = "zulu", source = "Wiktionary", entry_name = { from = {"[āàáâǎ]", "[ēèéêě]", "[īìíîǐ]", "[ōòóôǒ]", "[ūùúûǔ]", "ḿ", "[ǹńň]", MACRON, ACUTE, GRAVE, CIRC, CARON}, to = {"a" , "e" , "i" , "o" , "u" , "m", "n" } } } data["ovd"] = { name = "älvdalska", source = "ISO 639-3", sort_rules = {"ą>a~", "ð>d~", "ę>e~", "į>i~", "ų>u~", "y̨>y~", "å>z~", "ą̊>z¡", "ä>ä", "ö>ö"} } data["mhr"] = { name = "östmariska", source = "Wikimedia" } local reverse_data = {} local name = '' for code, data_obj in pairs(data) do name = data_obj["name"] reverse_data[name] = code end return { data , reverse_data } hnfgc6krwpcww56o9yq773dt99oredf Kategori:Acehnesiska 14 652106 4157221 2976698 2026-10-23T22:43:44Z Frodlekis 762 4157221 wikitext text/x-wiki {{kategorinavigering|Acehnesiska}} {{faktaruta språk}} ==Källor== <references/> 3fi7ixrgxid6oefg7cmuftblfn2gy0v putoy 0 653177 4157337 3544829 2026-10-24T01:49:49Z Frodlekis 762 4157337 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''putoy''' #{{tagg|kat=anatomi|språk=bcl}} [[penis]] okgkpazjph3rwhug5u4t68gmje8gr6r Kategori:Fornoccitanska 14 668445 4157384 3043294 2026-10-24T04:42:10Z Frodlekis 762 4157384 wikitext text/x-wiki {{kategorinavigering|Fornoccitanska}} {{faktaruta språk}} mk68pzu4ky2lidzutqlpxn74g9sjw5z Ehipto 0 681497 4157318 3076448 2026-10-24T01:40:59Z Frodlekis 762 4157318 wikitext text/x-wiki ==Cebuano== ===Substantiv=== {{subst|ceb}} '''Ehipto''' #{{tagg|kat=länder|språk=ceb}} [[Egypten]] ==Central bikol== ===Substantiv=== {{subst|bcl}} '''Ehipto''' #{{tagg|kat=länder|språk=bcl}} [[Egypten]] f1a4wl284kn3tqxtl2tg4mobnwk9vmr Kategori:Extremaduriska 14 685788 4157383 3334227 2026-10-24T04:39:35Z Frodlekis 762 4157383 wikitext text/x-wiki {{kategorinavigering|Extremaduriska}} {{faktaruta språk}} 3m9bb5h2o3q5e6e3s6d6wffgflqfdkl Kategori:Balinesiska 14 759484 4157255 3269553 2026-10-24T00:03:12Z Frodlekis 762 4157255 wikitext text/x-wiki {{kategorinavigering|Balinesiska}} {{faktaruta språk}} nrdv2zmcu46jmgb6wcysafz095phfp4 Kategori:Cia-cia 14 759491 4157407 3269567 2026-10-24T11:29:02Z Frodlekis 762 4157407 wikitext text/x-wiki {{kategorinavigering|Cia-cia}} {{faktaruta språk}} at4gs5j5ny43sdnwrd6ryis2qgi21vy bonnig 0 784539 4157143 3818595 2026-10-23T15:59:55Z ~2026-56702-21 62364 /* Svenska */ 4157143 wikitext text/x-wiki ==Svenska== ===Adjektiv=== {{sv-adj|pers=}} '''bonnig''' #{{tagg|nedsättande|vardagligt}} något eller någon som relaterar till [[landsbygd]]en #{{tagg|nedsättande|vardagligt}} [[rustikt]], [[enkelt]], [[anspråkslöst]] #{{tagg|nedsättande|vardagligt}} [[trångsynt]], [[inskränkt]] #{{tagg|nedsättande|vardagligt}} [[sliten]], [[ovårdat]] #{{tagg|nedsättande|vardagligt}} okunnig eller ignorant om rådande [[trend]]er, [[töntig]] #:{{avgränsare}} #:''"Anders är trevlig, men han kan vara ganska '''bonnig''' av sig."'' #:{{citat|år=2009|titel=Svenska turistföreningens årsbok|publ=[[w:Svenska Turistföreningen|Svenska Turistföreningen]]|När dalahästen slog igenom som nationell symbol 1939 ansågs den för '''bonnig''' och gammeldags.}} #:{{antonymer|[[kulturell]], [[belevad]], [[världsvan]], [[prålig]]}} e7yf5yf606j4owmwnxvdv6pq73nq4r6 Kategori:Fornsvenska/Fjärde konjugationens verb 14 808780 4157394 3367736 2026-10-24T11:05:14Z Frodlekis 762 4157394 wikitext text/x-wiki {{kategorinavigering|Fornsvenska|Fjärde konjugationens verb}} [[Kategori:Fornsvenska/Verb]] bkvizlgutpz9dd4zgdii2sqko9mqu7l Kategori:Akkadiska 14 809860 4157229 3370442 2026-10-23T23:04:41Z Frodlekis 762 4157229 wikitext text/x-wiki {{kategorinavigering|Akkadiska}} {{faktaruta språk}} ==Källor== <references/> dux3o8u0ra9wavvx0n4e9rgtcfx2amy Kategori:Forngeorgiska 14 813299 4157385 3380026 2026-10-24T04:42:49Z Frodlekis 762 4157385 wikitext text/x-wiki {{kategorinavigering|Forngeorgiska}} {{faktaruta språk}} ammchk3mml3klbxf9zyanny852ahcq7 אָזשענע 0 831237 4157169 3639886 2026-10-23T19:47:01Z Frodlekis 762 4157169 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-f-s}} '''אָזשענע''' (ozhene) {{f}} #{{tagg|kat=frukter|språk=yi}} [[björnbär]] #:{{synonymer|{{länk|yi| אָזשעניצע'}} (''{{tr|yi|אָזשעניצע}}'')}} 23y9rv5fwswelxj4r7v6z2thyxxgz5g 4157170 4157169 2026-10-23T19:47:17Z Frodlekis 762 4157170 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-f-s}} '''אָזשענע''' (ozhene) {{f}} #{{tagg|kat=frukter|språk=yi}} [[björnbär]] #:{{synonymer|{{länk|yi|אָזשעניצע}} (''{{tr|yi|אָזשעניצע}}'')}} 26kr5xiwb8vkkf3vvy57eyvoxazxpd0 Kategori:Guanche 14 856348 4157405 3472570 2026-10-24T11:25:13Z Frodlekis 762 4157405 wikitext text/x-wiki {{kategorinavigering|Guanche}} {{faktaruta språk}} 2ye2ims21cz4czxmnpvzm5d59c13whh פּעליקאַן 0 887167 4157118 3607622 2026-10-23T15:10:15Z ~2026-56702-21 62364 /* Jiddisch */ 4157118 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-m-en}} '''פּעליקאַן''' (pelikan) {{m}} #{{tagg|kat=fåglar|språk=yi}} [[pelikan]] #:{{synonymer|{{länk|yi|קראָפּ־גאַנדז}} (''krop-gandz'')}} mhsrx2nwpts4a2fw28twj2d1k95hh56 pagong 0 897392 4157339 3637647 2026-10-24T01:51:10Z Frodlekis 762 4157339 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''pagong''' #{{tagg|kat=reptiler|språk=bcl}} [[sköldpadda]] ==Tagalog== ===Substantiv=== {{subst|tl}} '''pagong''' #{{tagg|kat=reptiler|språk=tl}} [[sköldpadda]] 2l1qgtqnggty55jjj2esp584yd406zx balanghayan 0 897393 4157310 3637650 2026-10-24T01:37:04Z Frodlekis 762 /* Bikol */ 4157310 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''balanghayan''' #{{tagg|kat=lingvistik|språk=bcl}} [[grammatik]] te1swidhlsnj5pmmbvjipj20z561xsf Kategori:Fornöstslaviska 14 913741 4157368 3671126 2026-10-24T04:16:10Z Frodlekis 762 4157368 wikitext text/x-wiki {{kategorinavigering|Fornöstslaviska}} {{faktaruta språk}} 8mjjm0em88nrpac8shbtinq2m9do9g9 inodoro 0 914774 4157303 3673467 2026-10-24T01:34:18Z Frodlekis 762 4157303 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''inodoro''' #[[toalett]] #:{{synonymer|[[kasilyasan]]}} ==Spanska== ===Substantiv=== {{es-subst-m-s}} '''inodoro''' {{m}} #[[toalett]] #:{{synonymer|[[aseo]], [[baño]], [[excusado]], [[retrete]], [[servicio]], [[sanitario]]}} f1psoxexwb1z6vp8vz3d4fzk5zppd4d kasilyasan 0 914775 4157302 3673469 2026-10-24T01:34:09Z Frodlekis 762 /* Bikol */ 4157302 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''kasilyasan''' *{{uttal|bcl|ljud=LL-Q33284_(bcl)-Kunokuno-kasilyasan.wav}} #[[toalett]] #:{{synonymer|[[inodoro]]}} jrteg8j6bq87k2suoe6gkgdgi07p7fi angog 0 914776 4157304 3673470 2026-10-24T01:34:38Z Frodlekis 762 /* Bikol */ 4157304 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''angog''' *{{uttal|bcl|ljud=LL-Q33284_(bcl)-Kunokuno-angog.wav}} #{{tagg|anatomi|språk=bcl}} [[panna]] qy3lio7ynj6ne7jbaehj0bif19u1uxc MediaWiki:Gadget-data-lang.json 8 934196 4157283 4155431 2026-10-24T01:22:32Z Frodlekis 762 Uppdatera utifrån [[Wiktionary:Finesser/Uppdatera data]] 4157283 json application/json { "main": { "abq": "Abazinska", "ab": "Abchaziska", "abe": "Abenakiska", "ace": "Acehnesiska", "ady": "Adygeiska", "aa": "Afar", "af": "Afrikaans", "ain": "Ainu", "ak": "Akan", "akk": "Akkadiska", "sia": "Akkalasamiska", "sq": "Albanska", "als": "Alemanniska", "ale": "Aleutiska", "tut": "Altaiska", "am": "Amhariska", "xaa": "Andalusisk arabiska", "xno": "Anglo-normandiska", "ar": "Arabiska", "an": "Aragonska", "arc": "Arameiska", "hy": "Armeniska", "roa-rup": "Arumänska", "as": "Assamesiska", "ast": "Asturiska", "av": "Avariska", "ave": "Avestiska", "ay": "Aymara", "az": "Azerbajdzjanska", "ban": "Balinesiska", "bal": "Baluchiska", "bm": "Bambara", "bjn": "Banjaresiska", "ba": "Basjkiriska", "eu": "Baskiska", "btx": "Batak karo", "bbl": "Bats", "bar": "Bayerska", "be": "Belarusiska", "bem": "Bemba", "bn": "Bengali", "ber": "Berberspråk", "bym": "Bidjara", "bh": "Bihari", "bpy": "Bishnupriya manipuri", "bi": "Bislama", "no": "Bokmål", "bs": "Bosniska", "br": "Bretonska", "bug": "Buginesiska", "bg": "Bulgariska", "bxr": "Burjatiska", "my": "Burmesiska", "cps": "Capiznon", "ceb": "Cebuano", "bcl": "Central bikol", "ckb": "Centralkurdiska", "nhn": "Centralnahuatl", "ch": "Chamorro", "kca": "Chantiska", "cbk": "Chavacano", "chr": "Cherokesiska", "chy": "Cheyenne", "ny": "Chichewa", "chn": "Chinook jargon", "chk": "Chuukesiska", "cia": "Cia-cia", "crn": "Cora", "cr": "Cree", "dag": "Dagbanli", "btd": "Dairi batak", "da": "Danska", "prs": "Dari", "egy-dem": "Demotiska", "din": "Dinka", "dv": "Divehi", "dz": "Dzongkha", "egy": "Egyptiska", "smn": "Enaresamiska", "en": "Engelska", "myv": "Erzya", "eo": "Esperanto", "et": "Estniska", "ett": "Etruskiska", "evn": "Evenki", "ee": "Ewe", "ext": "Extremaduriska", "fan": "Fang", "phn": "Feniciska", "fj": "Fiji", "hif": "Fijiansk hindi", "fil": "Filipino", "rmf": "Finsk romani", "fi": "Finska", "gmq-fda": "Forndanska", "ang": "Fornengelska", "frk": "Fornfrankiska", "fro": "Fornfranska", "ofs": "Fornfrisiska", "oge": "Forngeorgiska", "goh": "Fornhögtyska", "sga": "Forniriska", "owl": "Fornkymriska", "cu": "Fornkyrkoslaviska", "odt": "Fornlågfrankiska", "non": "Fornnordiska", "pro": "Fornoccitanska", "peo": "Fornpersiska", "roa-fpt": "Fornportugisiska", "osx": "Fornsaxiska", "osp": "Fornspanska", "gmq-fsv": "Fornsvenska", "otk": "Fornturkiska", "orv": "Fornöstslaviska", "frp": "Frankoprovensalska", "fr": "Franska", "fy": "Frisiska", "fur": "Friuliska", "fud": "Futuniska", "fo": "Färöiska", "gag": "Gagauziska", "gl": "Galiciska", "gez": "Ge'ez", "ka": "Georgiska", "got": "Gotiska", "el": "Grekiska", "gos": "Groningska", "kl": "Grönländska", "gnc": "Guanche", "gn": "Guaraní", "ngu": "Guerreronahuatl", "gu": "Gujarati", "guz": "Gusii", "ht": "Haitisk kreol", "hak": "Hakka", "ha": "Hausa", "haw": "Hawaiiska", "he": "Hebreiska", "xed": "Hedi", "hit": "Hettitiska", "hil": "Hiligaynon", "hi": "Hindi", "hnd": "Hindko", "mww": "Hmong daw", "xhu": "Hurritiska", "hsb": "Högsorbiska", "rmq": "Iberisk romani", "io": "Ido", "ig": "Igbo", "ilo": "Ilokano", "id": "Indonesiska", "ia": "Interlingua", "ie": "Interlingue", "iu": "Inuktitut", "ik": "Iñupiaq", "ga": "Iriska", "is": "Isländska", "ist": "Istriotiska", "it": "Italienska", "yka": "Jakan", "sah": "Jakutiska", "ja": "Japanska", "jv": "Javanesiska", "yi": "Jiddisch", "kbd": "Kabardinska", "kab": "Kabyliska", "xal": "Kalmuckiska", "kam": "Kamba", "xmu": "Kammu", "kjb": "Kanjobal", "kn": "Kannada", "yue": "Kantonesiska", "kr": "Kanuri", "pam": "Kapampangan", "kaa": "Karakalpakiska", "krc": "Karatjajbalkariska", "krl": "Karelska", "ks": "Kashmiri", "csb": "Kasjubiska", "ca": "Katalanska", "kk": "Kazakiska", "kjh": "Khakasiska", "km": "Khmer", "kzg": "Kikai", "kg": "Kikongo", "ki": "Kikuyu", "sjd": "Kildinsamiska", "zh": "Kinesiska", "ky": "Kirgiziska", "rn": "Kirundi", "ktu": "Kituba", "grc": "Klassisk grekiska", "nci": "Klassisk nahuatl", "syc": "Klassisk syriska", "tlh": "Klingonska", "kpv": "Komi", "cop": "Koptiska", "ko": "Koreanska", "kpy": "Korjakiska", "kw": "Korniska", "co": "Korsikanska", "avk": "Kotava", "crh": "Krimtatariska", "jct": "Krimtjakiska", "hr": "Kroatiska", "kum": "Kumykiska", "xug": "Kunigami", "ku": "Kurdiska", "fkv": "Kvänska", "cy": "Kymriska", "lad": "Ladino", "lld": "Ladinska", "lbe": "Lak", "lac": "Lakandonska", "lkt": "Lakota", "lo": "Lao", "la": "Latin", "lzz": "Laziska", "ltg": "Lettgalliska", "lv": "Lettiska", "lez": "Lezginska", "lij": "Liguriska", "li": "Limburgiska", "ln": "Lingala", "lt": "Litauiska", "liv": "Liviska", "olo": "Livvi", "jbo": "Lojban", "lmo": "Lombardiska", "lg": "Luganda", "luy": "Luhya", "smj": "Lulesamiska", "lb": "Luxemburgiska", "sco": "Lågskotska", "dsb": "Lågsorbiska", "nds": "Lågtyska", "mas": "Maa", "mad": "Maduresiska", "mdh": "Magindanao", "mai": "Maithili", "mak": "Makassariska", "mk": "Makedonska", "mg": "Malagassiska", "ms": "Malajiska", "ml": "Malayalam", "mt": "Maltesiska", "mnc": "Manchu", "mns": "Mansiska", "gv": "Manx", "mi": "Maori", "arn": "Mapudungun", "mrh": "Mara", "mrw": "Maranao", "mr": "Marathi", "mh": "Marshallesiska", "mfe": "Mauritisk kreol", "enm": "Medelengelska", "frm": "Medelfranska", "gmh": "Medelhögtyska", "gml": "Medellågtyska", "dum": "Medelnederländska", "pal": "Medelpersiska", "fit": "Meänkieli", "zh-min-nan": "Min nan", "min": "Minangkabau", "mwl": "Mirandesiska", "miq": "Miskito", "mvi": "Miyako", "mdf": "Moksja", "mo": "Moldaviska", "mn": "Mongoliska", "mos": "Mossi", "gmy": "Mykensk grekiska", "nah": "Nahuatl", "na": "Nauruanska", "nv": "Navajo", "ng": "Ndonga", "nap": "Neapolitanska", "nl": "Nederländska", "ne": "Nepali", "nij": "Ngaju dayak", "ryn": "Nordamami", "frr": "Nordfrisiska", "kmr": "Nordkurdiska", "nd": "Nordndebele", "se": "Nordsamiska", "pih": "Norfuk", "nrm": "Normandiska", "nrn": "Norn", "nov": "Novial", "nn": "Nynorska", "aii": "Nyöstsyriska", "oc": "Occitanska", "oj": "Ojibwe", "ryu": "Okinawianska", "okn": "Okinoerabu", "or": "Oriya", "om": "Oromo", "ota": "Osmanska", "os": "Ossetiska", "pau": "Palauiska", "pi": "Pali", "pag": "Pangasinan", "pap": "Papiamento", "ps": "Pashto", "jam": "Patwa", "pdc": "Pennsylvaniatyska", "fa": "Persiska", "pms": "Piedmontesiska", "pcd": "Pikardiska", "sje": "Pitesamiska", "pjt": "Pitjantjatjara", "pox": "Polabiska", "pl": "Polska", "pt": "Portugisiska", "pim": "Powhatan", "prg": "Preussiska", "pa": "Punjabi", "qu": "Quechua", "rej": "Rejang", "rhg": "Rohingya", "rom": "Romani", "dru": "Rukai", "ro": "Rumänska", "rue": "Rusinska", "rw": "Rwanda", "ru": "Ryska", "rm": "Rätoromanska", "sm": "Samoanska", "sg": "Sango", "sa": "Sanskrit", "sc": "Sardiska", "sas": "Sasak", "stq": "Saterfrisiska", "szl": "Schlesiska", "swg": "Schwabiska", "sel": "Selkupiska", "nso": "Sepedi", "sr": "Serbiska", "st": "Sesotho", "shn": "Shan", "psu": "Shauraseni", "scz": "Shetländska", "sn": "Shona", "scn": "Sicilianska", "sid": "Sidamo", "sd": "Sindhi", "si": "Singalesiska", "ss": "Siswati", "cjs": "Sjoriska", "sms": "Skoltsamiska", "gd": "Skotsk gäliska", "sk": "Slovakiska", "sl": "Slovenska", "so": "Somaliska", "es": "Spanska", "sux": "Sumeriska", "su": "Sundanesiska", "sul": "Surigaonon", "srn": "Surinamesiska", "sva": "Svanetiska", "rmu": "Svensk romani", "sv": "Svenska", "swl": "Svenskt teckenspråk", "sw": "Swahili", "ams": "Sydamami", "azb": "Sydazerbajdzjanska", "sdh": "Sydkurdiska", "nr": "Sydndebele", "sma": "Sydsamiska", "tg": "Tadzjikiska", "tl": "Tagalog", "ty": "Tahitiska", "khb": "Tai lü", "ta": "Tamil", "tt": "Tatariska", "tsg": "Tausug", "te": "Telugu", "tio": "Teop", "sjt": "Tersamiska", "tet": "Tetum", "th": "Thai", "bo": "Tibetanska", "tig": "Tigre", "ti": "Tigrinska", "tiw": "Tiwi", "cs": "Tjeckiska", "ce": "Tjetjenska", "ckt": "Tjuktjiska", "cv": "Tjuvasjiska", "tli": "Tlingit", "bbc": "Toba batak", "tpi": "Tok pisin", "tkn": "Tokunoshima", "to": "Tonganska", "ts": "Tsonga", "tn": "Tswana", "tum": "Tumbuka", "tpn": "Tupinambá", "tr": "Turkiska", "tk": "Turkmeniska", "tyv": "Tuvinska", "--": "Tvärspråkligt", "tw": "Twi", "de": "Tyska", "udm": "Udmurtiska", "uga": "Ugaritiska", "ug": "Uiguriska", "uk": "Ukrainska", "sju": "Umesamiska", "hu": "Ungerska", "sqj-usq": "Uralbanska", "ur": "Urdu", "gem-ugm": "Urgermanska", "inc-uia": "Urindoariska", "ine-uie": "Urindoeuropeiska", "iir-uir": "Urindoiranska", "ira-uir": "Uriranska", "itc-uit": "Uritaliska", "cel-uce": "Urkeltiska", "gem-uno": "Urnordiska", "smi-usm": "Ursamiska", "sem-use": "Ursemitiska", "sla-usl": "Urslaviska", "trk-utr": "Urturkiska", "fiu-ufi": "Uröstersjöfinska", "uz": "Uzbekiska", "wa": "Vallonska", "ve": "Venda", "vec": "Venetianska", "vep": "Vepsiska", "vi": "Vietnamesiska", "wym": "Vilamoviska", "vo": "Volapük", "fiu-vro": "Võro", "vot": "Votiska", "mrj": "Västmariska", "pnb": "Västpanjabi", "wls": "Walliska", "war": "Waray-waray", "wo": "Wolof", "xh": "Xhosa", "rys": "Yaeyama", "kdd": "Yankunytjatjara", "ii": "Yi", "yoi": "Yonaguni", "yox": "Yoron", "yo": "Yoruba", "yua": "Yukatekiska", "dje": "Zarma", "diq": "Zazaiska", "zea": "Zeeländska", "sgs": "Žemaitiska", "za": "Zhuang", "zu": "Zulu", "ovd": "Älvdalska", "mhr": "Östmariska" }, "onlyEtym": { "h-nor": "Norska", "h-smi": "Samiska", "tnq": "Taino" } } 5ogd4dls82tiv1qqwzj015ratlyc210 pulgada 0 939853 4157338 3835469 2026-10-24T01:50:44Z Frodlekis 762 4157338 wikitext text/x-wiki ==Cebuano== ===Substantiv=== {{subst|ceb}} '''pulgada''' #{{tagg|kat=måttenheter|språk=ceb}} [[tum]] ==Central bikol== ===Substantiv=== {{subst|bcl}} '''pulgada''' #{{tagg|kat=måttenheter|språk=bcl}} [[tum]] ==Galiciska== ===Substantiv=== {{gl-subst-f}} '''pulgada''' {{f}} #{{tagg|kat=måttenheter|språk=gl}} [[tum]] ==Spanska== ===Substantiv=== {{es-subst-f-s}} '''pulgada''' {{f}} #{{tagg|kat=måttenheter|språk=es}} [[tum]] d387it2857rs5t0qeu7e2jqfdfju69f elepante 0 942623 4157311 3856026 2026-10-24T01:37:31Z Frodlekis 762 4157311 wikitext text/x-wiki ==Cebuano== ===Substantiv=== {{subst|ceb}} '''elepante''' #{{tagg|däggdjur|språk=ceb}} [[elefant]] #:{{synonymer|[[gadya]]}} #:{{etymologi|Lånord från {{härledning|ceb|es|elefante}}.}} ==Central bikol== ===Substantiv=== {{subst|bcl}} '''elepante''' #{{tagg|däggdjur|språk=bcl}} [[elefant]] #:{{synonymer|[[gadya]]}} #:{{etymologi|Lånord från {{härledning|bcl|es|elefante}}.}} ==Hiligaynon== ===Substantiv=== {{subst|hil}} '''elepante''' #{{tagg|däggdjur|språk=hil}} [[elefant]] #:{{synonymer|[[gadyo]]}} #:{{etymologi|Lånord från {{härledning|hil|es|elefante}}.}} ==Tagalog== ===Substantiv=== {{subst|tl}} '''elepante''' #{{tagg|däggdjur|språk=tl}} [[elefant]] #:{{synonymer|[[gadya]] ''(ålderdomligt)''}} #:{{etymologi|Lånord från {{härledning|tl|es|elefante}}.}} #:{{seäven|[[bulalay]]}} ==Waray-waray== ===Substantiv=== {{subst|war}} '''elepante''' #{{tagg|däggdjur|språk=war}} [[elefant]] #:{{synonymer|[[gadya]]}} #:{{etymologi|Lånord från {{härledning|war|es|elefante}}.}} kb232qanj7fbyrhbe4l00fb9lydezu2 gadya 0 942624 4157312 3856016 2026-10-24T01:38:19Z Frodlekis 762 4157312 wikitext text/x-wiki ==Cebuano== ===Substantiv=== {{subst|ceb}} '''gadya''' #{{tagg|däggdjur|språk=ceb}} [[elefant]] #:{{synonymer|[[elepante]]}} #:{{etymologi|Av {{härledning|ceb|ms|gajah}}, av {{härledning|ceb|sa|गज|tr=gaja}}.}} ==Central bikol== ===Substantiv=== {{subst|bcl}} '''gadya''' #{{tagg|däggdjur|språk=bcl}} [[elefant]] #:{{synonymer|[[elepante]]}} #:{{etymologi|Av {{härledning|bcl|ms|gajah}}, av {{härledning|bcl|sa|गज|tr=gaja}}.}} ==Tagalog== ===Substantiv=== {{subst|tl}} '''gadya''' #{{tagg|ålderdomligt|däggdjur|språk=tl}} [[elefant]] #:{{synonymer|[[elepante]]}} #:{{etymologi|Av {{härledning|tl|ms|gajah}}, av {{härledning|tl|sa|गज|tr=gaja}}, i modernt språkbruk utfasat till förmån för ''[[elepante]]''.}} onn9pcvcl9wa3cyxw9arqcpcqioosag Kategori:Fornportugisiska 14 947643 4157381 3882737 2026-10-24T04:35:23Z Frodlekis 762 4157381 wikitext text/x-wiki {{kategorinavigering|Fornportugisiska}} {{faktaruta språk}} e8jvormyn5afcksmmqqgazecvxgf2gv gnälleröv 0 992206 4157142 3968930 2026-10-23T15:58:56Z ~2026-56702-21 62364 /* Svenska */ 4157142 wikitext text/x-wiki ==Svenska== ===Substantiv=== {{sv-subst-n-ar}} '''gnälleröv''' {{u}} #{{tagg|skånska|nedsättande}} person som är [[gnällig]], [[jobbig]], [[irriterande]] gbfgnlyerhppy8knyxbh19arsgso8wq Kategori:Andalusisk arabiska 14 1010783 4157237 4009555 2026-10-23T23:16:42Z Frodlekis 762 4157237 wikitext text/x-wiki {{kategorinavigering|Andalusisk arabiska}} {{faktaruta språk}} ==Källor== <references/> s0k45m2len2j4l65terpppit8ibx6ig Kategori:Chavacano 14 1010816 4157365 4009612 2026-10-24T04:11:11Z Frodlekis 762 4157365 wikitext text/x-wiki {{kategorinavigering|Chavacano}} {{faktaruta språk}} 544rcb6a9mo0pyvhi528klsvi95ahzh bulanan 0 1012409 4157295 4013226 2026-10-24T01:29:33Z Frodlekis 762 4157295 wikitext text/x-wiki ==Central bikol== ===Adjektiv=== {{adj|bcl}} '''bulanan''' #[[månatlig]] ==Indonesiska== ===Adjektiv=== {{adj|id}} '''bulanan''' #[[månatlig]] #:{{besläktade ord|[[bulan]]}} 9266coilvs895usoajys1j2xl5l5y5m Kategori:Central bikol/Adjektiv 14 1012410 4157294 4013227 2026-10-24T01:29:15Z Frodlekis 762 4157294 wikitext text/x-wiki {{kategorinavigering|Central bikol|Adjektiv|Index|nyckel=2}} 92e3lt7rrhnmwcqwp636pvvlhxiuwml 4157296 4157294 2026-10-24T01:29:45Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Adjektiv]] till [[Kategori:Central bikol/Adjektiv]] 4157294 wikitext text/x-wiki {{kategorinavigering|Central bikol|Adjektiv|Index|nyckel=2}} 92e3lt7rrhnmwcqwp636pvvlhxiuwml pangngaran 0 1049063 4157340 4074080 2026-10-24T01:51:21Z Frodlekis 762 4157340 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''pangngaran''' #{{tagg|ordklasser|språk=bcl}} [[substantiv]] i0h2ycb4bt7dpn1h9p23lkyjuvczdcg apripista 0 1068297 4157191 4134305 2026-10-23T21:26:16Z Frodlekis 762 4157191 wikitext text/x-wiki ==Italienska== ===Substantiv=== {{it-subst-m}} '''apripista''' {{m}} # [[schaktmaskin]] #:{{synonymer|[[bulldozer]]}} thixncnmlez16sptp063kigyr2ebdwj 4157192 4157191 2026-10-23T21:27:03Z Frodlekis 762 /* Italienska */ 4157192 wikitext text/x-wiki ==Italienska== ===Substantiv=== {{it-subst-m-0}} '''apripista''' {{m}} # [[schaktmaskin]] #:{{synonymer|[[bulldozer]]}} fuusrszo09bu2f4m7q3miqzy309tg4u Kategori:Fijiansk hindi 14 1069619 4157379 4139376 2026-10-24T04:30:50Z Frodlekis 762 4157379 wikitext text/x-wiki {{kategorinavigering|Fijiansk hindi}} {{faktaruta språk}} nj21u2rpd8r0ohoxnks9c1lu3oedhj8 אויטאָמאַטיש 0 1074956 4157086 4157082 2026-10-23T12:15:08Z ~2026-56702-21 62364 4157086 wikitext text/x-wiki ==Jiddisch== ===Adjektiv=== {{yi-adj-okomp}} '''אויטאָמאַטיש''' (oytomatish) #[[automatisk]] #:{{besläktade ord|{{länk|yi|אויטאָמאַטירן}} (''oytomatirn''), {{länk|yi|אויטאָמאַט}} (''oytomat''), {{länk|yi| אויטאָמאַציע}} (''oytomatsye''), {{länk|yi| אויטאָמירן}} (''oytomirn'')}} bajw64xuyyullc1z1vh2ctzvq2azvsf לאַבירינט 0 1074958 4157087 2026-10-23T12:28:21Z ~2026-56702-21 62364 nytt uppslag (jiddisch) 4157087 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-m-n}} '''לאַבירינט''' (labirint) {{m}} #[[labyrint]] kqe5uj312jfxpo4walzudcrbfcqi33p labirent 0 1074959 4157089 2026-10-23T12:29:23Z ~2026-56702-21 62364 nytt uppslag (turkiska) 4157089 wikitext text/x-wiki ==Turkiska== ===Substantiv=== {{tr-subst}} '''labirent''' #[[labyrint]] hedowfjh04ugqywj39c0l6icdeah2xg לאַבירינטן 0 1074960 4157090 2026-10-23T12:30:22Z ~2026-56702-21 62364 böjningsform av [[לאַבירינט]] 4157090 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== '''לאַבירינטן''' #{{böjning|yi|subst|לאַבירינט}} os4slqy60zr0viam8hr49eai3dle011 Kategori:Japanska/Uppslag med 徑 läst som キョウ (呉音) 14 1074961 4157091 2026-10-23T12:32:11Z Kusurija 8159 Kategori 4157091 wikitext text/x-wiki [[Kategori:Japanska/Uppslag med 徑|キョウ]] [[Kategori:Japanska/Uppslag med kanji läst som キョウ (呉音)|徑]] [[Kategori:Japanska/Uppslag kanji läsning|キョウ]] 5n44t3om6nsrl91yrz3ic9br10so5of labirentler 0 1074962 4157092 2026-10-23T12:32:42Z ~2026-56702-21 62364 böjningsform av [[labirent]] 4157092 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''labirentler''' #{{böjning|tr|subst|labirent}} g3xx4yj689d6q62zx21i0yucuj7a289 labyrinthe 0 1074963 4157093 2026-10-23T12:33:23Z ~2026-56702-21 62364 nytt uppslag (franska) 4157093 wikitext text/x-wiki ==Franska== ===Substantiv=== {{subst|fr}} '''labyrinthe''' #[[labyrint]] p5thl8lbz9ayz0d6ku5zi6l70nrslvv 4157094 4157093 2026-10-23T12:33:49Z ~2026-56702-21 62364 /* Franska */ 4157094 wikitext text/x-wiki ==Franska== ===Substantiv=== {{fr-subst-m}} '''labyrinthe''' #[[labyrint]] g3mqzhs4etg1d6ej5qp615626w3cdz5 Kategori:Japanska/Uppslag med 徑 14 1074964 4157096 2026-10-23T12:34:52Z Kusurija 8159 Kategori 4157096 wikitext text/x-wiki [[Kategori:Japanska/Alla uppslag|徑]] [[Kategori:CJK/Uppslag med 徑|Japanska]] l3hbc16ypt5a12vi1k5nm3x9ksvus3q Kategori:CJK/Uppslag med 徑 14 1074965 4157099 2026-10-23T12:36:53Z Kusurija 8159 Kategori 4157099 wikitext text/x-wiki [[Kategori:CJK/Alla uppslag|徑]] [[Kategori:CJK radikal/Uppslag med radikal 60 彳|07]] oeklnhvo5ae5kzmh0enc986kclmc9sn Kategori:Japanska/Uppslag med 弶 läst som キョウ (呉音) 14 1074966 4157101 2026-10-23T12:40:13Z Kusurija 8159 Kategori 4157101 wikitext text/x-wiki [[Kategori:Japanska/Uppslag med 弶|キョウ]] [[Kategori:Japanska/Uppslag med kanji läst som キョウ (呉音)|弶]] [[Kategori:Japanska/Uppslag kanji läsning|キョウ]] cvwavxj663tbae6sznjsamgggpu37xx Kategori:Japanska/Uppslag med 弶 14 1074967 4157102 2026-10-23T12:41:38Z Kusurija 8159 Kategori 4157102 wikitext text/x-wiki [[Kategori:Japanska/Alla uppslag|弶]] [[Kategori:CJK/Uppslag med 弶|Japanska]] 0bg26wclxtumblpxib0u6poly7cjttm Kategori:CJK/Uppslag med 弶 14 1074968 4157103 2026-10-23T12:43:42Z Kusurija 8159 Kategori 4157103 wikitext text/x-wiki [[Kategori:CJK/Alla uppslag|弶]] [[Kategori:CJK radikal/Uppslag med radikal 57 弓|08]] 5x08xbx2bx112l6puqn0uerdga2zmvm annem 0 1074969 4157104 2026-10-23T13:26:27Z ~2026-56702-21 62364 böjningsform av [[anne]] 4157104 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''annem''' #{{böjning|tr|subst|anne}} 8pgxtjjkot5h4hvyfex5skxyb8a0pdk anneler 0 1074970 4157105 2026-10-23T13:26:42Z ~2026-56702-21 62364 böjningsform av [[anne]] 4157105 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''anneler''' #{{böjning|tr|subst|anne}} 86dxfb33mc5swwlqri0pxbjlob0w20s anneyi 0 1074971 4157106 2026-10-23T13:28:37Z ~2026-56702-21 62364 böjningsform av [[anne]] 4157106 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''anneyi''' #{{böjning|tr|subst|anne}} 8g7849c2trqp7z0wn59uis3mf0mwr3f annemiz 0 1074972 4157107 2026-10-23T13:35:34Z ~2026-56702-21 62364 böjningsform av [[anne]] 4157107 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''annemiz''' #{{böjning|tr|subst|anne}} cw2u4us7c200t4njfoarpo4iyccz0pn כירורג 0 1074973 4157113 2026-10-23T15:02:06Z ~2026-56702-21 62364 nytt uppslag (jiddisch) 4157113 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-m-n}} '''כירורג''' (khirurg) {{m}} #{{tagg|kat=yrken|språk=yi}}[[kirurg]] dr2clnh08cfm7daclwtry4zez0060wq כירורגן 0 1074974 4157114 2026-10-23T15:02:20Z ~2026-56702-21 62364 böjningsform av [[כירורג]] 4157114 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== '''כירורגן''' #{{böjning|yi|subst|כירורג}} dwrz2my2puj5jv9mitow1vmy3zbrerf אָדלער 0 1074975 4157115 2026-10-23T15:06:35Z ~2026-56702-21 62364 nytt uppslag (jiddisch) 4157115 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-m-s}} '''אָדלער''' (odler) {{m}} #{{tagg|fåglar|språk=yi}} [[örn]] mgdqtrd7m45ajlj4nzss7qiblu4d18g אָדלערס 0 1074976 4157117 2026-10-23T15:07:29Z ~2026-56702-21 62364 böjningsform av [[אָדלער]] 4157117 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== '''אָדלערס''' #{{böjning|yi|subst|אָדלער}} e7u39crxk4ar9k816jtnjbjhmfnjs6p פּעליקאַנען 0 1074977 4157119 2026-10-23T15:10:31Z ~2026-56702-21 62364 böjningsform av [[פּעליקאַן]] 4157119 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== '''פּעליקאַנען''' #{{böjning|yi|subst|פּעליקאַן}} axq2yx8oq7xql3yomzszgj7h2oiul67 מעווע 0 1074978 4157120 2026-10-23T15:12:22Z ~2026-56702-21 62364 nytt uppslag (jiddisch) 4157120 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-f-s}} '''מעווע''' (meve) {{f}} #{{tagg|kat=fåglar|kat2=fågelarter|språk=yi}} [[fiskmås]], [[mås]] 0ijhm9hf821uwaemhoaxn2whlo0v3oy mahadsanid 0 1074979 4157121 2026-10-23T15:17:10Z ~2026-56702-21 62364 nytt uppslag (somaliska) 4157121 wikitext text/x-wiki ==Somaliska== ===Interjektion=== {{interj|so}} '''mahadsanid''' #[[tack]] 50t1sxvnxk15fy5ibanx9cd84ikmyhs ኣመሰገናልሎ 0 1074980 4157124 2026-10-23T15:26:54Z ~2026-56702-21 62364 nytt uppslag (amhariska) 4157124 wikitext text/x-wiki ==Amhariska== ===Interjektion=== {{interj|am}} '''ኣመሰገናልሎ''' (amesegenallo) #[[tack]] 76k6is987jzt1xd3e76kkamxih7kn3t 4157125 4157124 2026-10-23T15:27:35Z ~2026-56702-21 62364 /* Amhariska */ 4157125 wikitext text/x-wiki ==Amhariska== ===Interjektion=== {{interj|am}} '''ኣመሰገናልሎ''' ({{tr|am|ኣመሰገናልሎ}}) #[[tack]] avtualze44fdcb0t9b4dvt4psd3rcog Kategori:Amhariska/Interjektioner 14 1074981 4157126 2026-10-23T15:28:18Z ~2026-56702-21 62364 Ny sida 4157126 wikitext text/x-wiki {{kategorinavigering|Amhariska|Interjektioner|Index|nyckel=2}} 5qkvsqnl2ry3gpw9yjf4lk9cjldktb7 መልካም ልደት 0 1074982 4157127 2026-10-23T15:31:57Z ~2026-56702-21 62364 nytt uppslag (amhariska) 4157127 wikitext text/x-wiki ==Amhariska== ===Interjektion=== {{interj|am}} '''መልካም ልደት''' ({{tr|am|መልካም ልደት}}) #[[grattis på födelsedagen]] 1v0jkwca7xd0p962oxz2eyld6tmcb58 ልደት 0 1074983 4157129 2026-10-23T15:35:47Z ~2026-56702-21 62364 nytt uppslag (amhariska) 4157129 wikitext text/x-wiki ==Amhariska== ===Substantiv=== {{subst|am}} '''ልደት''' ({{tr|am|ልደት}}) #[[födelse]] #:{{etymologi|Kognat med {{kognat|he|לידה}} och {{kognat|ar|لِدَة}}.}} 9evql7uv151dpfw5fasy7pxbzrw17h8 doğum 0 1074984 4157132 2026-10-23T15:40:43Z ~2026-56702-21 62364 översättning av [[födelse]] 4157132 wikitext text/x-wiki ==Turkiska== ===Substantiv=== {{tr-subst}} '''doğum''' #[[födelse]] rccsiulblsy9axvt81gsi4ovnu03hdg 4157134 4157132 2026-10-23T15:41:38Z ~2026-56702-21 62364 /* Turkiska */ 4157134 wikitext text/x-wiki ==Turkiska== ===Substantiv=== {{tr-subst}} '''doğum''' *{{uttal|tr|ipa=do.ˈum}} #[[födelse]] p6k1hiunjdg29elpds9fk0lstt4gibi doğumlar 0 1074985 4157133 2026-10-23T15:41:20Z ~2026-56702-21 62364 böjningsform av [[doğum]] 4157133 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''doğumlar''' #{{böjning|tr|subst|doğum}} rkh26ewfwtabarfbiwf9xho8uhxiuju doğumu 0 1074986 4157135 2026-10-23T15:41:57Z ~2026-56702-21 62364 böjningsform av [[doğum]] 4157135 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''doğumu''' #{{böjning|tr|subst|doğum}} shocaku0os3u92eqsgifhkc4f0f4pli doğumum 0 1074987 4157136 2026-10-23T15:43:48Z ~2026-56702-21 62364 böjningsform av [[doğum]] 4157136 wikitext text/x-wiki ==Turkiska== ===Substantiv=== '''doğumum''' #{{böjning|tr|subst|doğum}} 28g1343eej4zltuud6csd186j98binv מעוועס 0 1074988 4157144 2026-10-23T16:07:52Z Frodlekis 762 böjningsform av [[מעווע]] 4157144 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== '''מעוועס''' #{{böjning|yi|subst|מעווע}} ijowh3xabf17wxn5xhddmulm5nlciol በግት 0 1074989 4157146 2026-10-23T16:08:56Z Frodlekis 762 översättning av [[tacka]] 4157146 wikitext text/x-wiki ==Amhariska== ===Substantiv=== {{subst|am}} '''በግት''' (bägit) {{f}} #{{tagg|kat=djurhonor|språk=am}} [[tacka]] mav1s1rp4gsa3kud07kk4kx50pr342s 4157147 4157146 2026-10-23T16:09:24Z Frodlekis 762 /* Amhariska */ 4157147 wikitext text/x-wiki ==Amhariska== ===Substantiv=== {{subst|am}} '''በግት''' (bägit) {{f}} #{{tagg|djurhonor|språk=am}} [[tacka]] #:{{besläktade ord|[[በግ]] (bäg)}} h26mvuixz8rj7nu3v21gmgcc76suwqu በግ 0 1074990 4157148 2026-10-23T16:10:04Z Frodlekis 762 Ny sida 4157148 wikitext text/x-wiki ==Amhariska== ===Substantiv=== {{subst|am}} '''በግ''' (bäg) {{m}} #{{tagg|djurhanar|språk=am}} [[bagge]] #:{{besläktade ord|[[በግት]] (bägit)}} ocp1b3yelawqfuhh68i84wxvu00ggvm ላም 0 1074991 4157151 2026-10-23T16:12:35Z Frodlekis 762 översättning av [[ko]] 4157151 wikitext text/x-wiki ==Amhariska== ===Substantiv=== {{subst|am}} '''ላም''' (lam) #{{tagg|kat=djurhonor|språk=am}} [[ko]] nobsm38pfmxhh447lb8mcnvf81tfpa1 ብህለ 0 1074992 4157153 2026-10-23T19:14:42Z Frodlekis 762 nytt uppslag (ge'ez) 4157153 wikitext text/x-wiki ==Ge'ez== ===Verb=== {{verb|gez}} '''ብህለ''' #[[säga]] #[[tala]] #[[mena]], uttrycka sin mening :{{avgränsare}} :{{etymologi|Kognat med {{kognat|sycܡܰܠܶܠ}} och {{kognat|ar|بَهَلَ}} (''bahala'').}} 1k5jci41nljiofee65vmuwbfytbtbcd 4157154 4157153 2026-10-23T19:15:02Z Frodlekis 762 /* Ge'ez */ 4157154 wikitext text/x-wiki ==Ge'ez== ===Verb=== {{verb|gez}} '''ብህለ''' ({{tr|gez|ብህለ}}) #[[säga]] #[[tala]] #[[mena]], uttrycka sin mening :{{avgränsare}} :{{etymologi|Kognat med {{kognat|syc|ܡܰܠܶܠ}} och {{kognat|ar|بَهَلَ}} (''bahala'').}} 23j62kjyy2j7p5u66b931rgl2dk05zz 4157155 4157154 2026-10-23T19:15:44Z Frodlekis 762 /* Ge'ez */ 4157155 wikitext text/x-wiki ==Ge'ez== ===Verb=== {{verb|gez}} '''ብህለ''' ({{tr|gez|ብህለ}}) #[[säga]] #[[tala]] #[[kalla]] (för visst namn= #[[mena]], uttrycka sin mening :{{avgränsare}} :{{etymologi|Kognat med {{kognat|syc|ܡܰܠܶܠ}} och {{kognat|ar|بَهَلَ}} (''bahala'').}} g4ph4jq6ib8r3iub6i3ilhz7ds6z3kx 4157156 4157155 2026-10-23T19:15:50Z Frodlekis 762 /* Ge'ez */ 4157156 wikitext text/x-wiki ==Ge'ez== ===Verb=== {{verb|gez}} '''ብህለ''' ({{tr|gez|ብህለ}}) #[[säga]] #[[tala]] #[[kalla]] (för visst namn) #[[mena]], uttrycka sin mening :{{avgränsare}} :{{etymologi|Kognat med {{kognat|syc|ܡܰܠܶܠ}} och {{kognat|ar|بَهَلَ}} (''bahala'').}} pl5xk5892uqnd4g22rb3i7ktdjv71d6 Kategori:Ge'ez/Alla uppslag 14 1074993 4157157 2026-10-23T19:16:22Z Frodlekis 762 Ny sida 4157157 wikitext text/x-wiki {{kategorinavigering|Geez|Verb|Index|nyckel=2}} {{kategorilistenavigering|gez}} tdx8b5e680x23xb8uvkq67un9si22wn 4157158 4157157 2026-10-23T19:16:33Z Frodlekis 762 4157158 wikitext text/x-wiki {{kategorinavigering|Ge'ez|Verb|Index|nyckel=2}} {{kategorilistenavigering|gez}} igah3adnb60f00y5kdl9fgx5u2uhhlg 4157160 4157158 2026-10-23T19:17:44Z Frodlekis 762 4157160 wikitext text/x-wiki {{kategorinavigering|Ge'ez|Alla uppslag|Index|nyckel=1}} {{kategorilistenavigering|gez}} p972wiexwuvy1r7xwg3zcubo6owzdal Kategori:Ge'ez/Verb 14 1074994 4157159 2026-10-23T19:17:12Z Frodlekis 762 Ny sida 4157159 wikitext text/x-wiki {{kategorinavigering|Ge'ez|Verb|Index|nyckel=2}} {{kategorilistenavigering|gez}} igah3adnb60f00y5kdl9fgx5u2uhhlg Kategori:Ge'ez 14 1074995 4157161 2026-10-23T19:19:07Z Frodlekis 762 Ny sida 4157161 wikitext text/x-wiki {{kategorinavigering|Ge'ez}} 8y7dcn132l1l371o3o2fauqlt6qn0xg 4157344 4157161 2026-10-24T01:56:19Z Frodlekis 762 4157344 wikitext text/x-wiki {{kategorinavigering|Ge'ez}} {{faktaruta språk}} fdt0yt650gaod9giue3n6ufm7ohslff Kategori:Ge'ez/Substantiv 14 1074996 4157162 2026-10-23T19:23:02Z Frodlekis 762 Ny sida 4157162 wikitext text/x-wiki {{kategorinavigering|Ge'ez|Substantiv|Index|nyckel=2}} {{kategorilistenavigering|gez}} 8fna3svfbdrvrrvgdz2l20wxfy0t4o5 מאַלינע 0 1074997 4157163 2026-10-23T19:40:20Z Frodlekis 762 nytt uppslag (jiddisch) 4157163 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{subst|yi}} '''מאַלינע''' ({{tr|yi|מאַלינע}}) #[[hallon]] d0r3o1dt6f0hc0vb8nnz38vh43qaqy0 4157164 4157163 2026-10-23T19:40:52Z Frodlekis 762 4157164 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-f-s}} '''מאַלינע''' ({{tr|yi|מאַלינע}}) {{f}} #{{tagg|kat=mat|kat2=växter|språk=yi}} [[hallon]] 15lg27jrg12sakwute9q35xfn3vqry1 אָזשעניצע 0 1074998 4157167 2026-10-23T19:45:31Z Frodlekis 762 nytt uppslag (jiddisch) 4157167 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-f-s}} '''אָזשעניצע''' ({{tr|yi|אָזשעניצע}}) {{f}} #{{tagg|kat=mat|kat2=växter|språk=yi}} [[björnbär]] rbo6v84og4hb5htyq34dkrb13gp2gfk 4157168 4157167 2026-10-23T19:46:23Z Frodlekis 762 /* Jiddisch */ 4157168 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-f-s}} '''אָזשעניצע''' ({{tr|yi|אָזשעניצע}}) {{f}} #{{tagg|kat=mat|kat2=växter|språk=yi}} [[björnbär]] #:{{synonymer|{{länk|yi|אָזשענע}} (''ozhene'')}} 7yuboufpdpz3oujsihpoi1jprxxinm5 4157171 4157168 2026-10-23T19:47:28Z Frodlekis 762 4157171 wikitext text/x-wiki ==Jiddisch== ===Substantiv=== {{yi-subst-f-s}} '''אָזשעניצע''' ({{tr|yi|אָזשעניצע}}) {{f}} #{{tagg|kat=frukter|kat2=växter|språk=yi}} [[björnbär]] #:{{synonymer|{{länk|yi|אָזשענע}} (''ozhene'')}} h649eupiga8cehogi692rge3bmm9jzo còlit pitnegre 0 1074999 4157173 2026-10-23T19:52:48Z Frodlekis 762 översättning av [[nunnestenskvätta]] 4157173 wikitext text/x-wiki ==Katalanska== ===Substantiv=== {{subst|ca}} '''[[còlit]] [[pitnegre]]''' {{m}} #{{tagg|fåglar|språk=ca|kat=fågelarter}} [[nunnestenskvätta]] #:{{synonymer|[[còlit de pit negre]]}} 8qsgr19xj1ipptfyfsgd5s81et8h6gn còlit de pit negre 0 1075000 4157174 2026-10-23T19:53:18Z Frodlekis 762 Ny sida 4157174 wikitext text/x-wiki ==Katalanska== ===Substantiv=== {{subst|ca}} '''[[còlit]] [[de]] [[pit]] [[negre]]''' {{m}} #{{tagg|fåglar|språk=ca|kat=fågelarter}} [[nunnestenskvätta]] #:{{synonymer|[[còlit pitnegre]]}} 8f2g0uwk82nuum580i4at7gcvl38e5e dezertsaksikolo 0 1075001 4157179 2026-10-23T20:15:06Z Frodlekis 762 översättning av [[ökenstenskvätta]] 4157179 wikitext text/x-wiki ==Esperanto== ===Substantiv=== {{subst|eo}} '''dezertsaksikolo''' #{{tagg|kat=fåglar|kat2=fågelarter|språk=eo}} [[ökenstenskvätta]] 2xvu31u4wuj0dha3089ab1esqwp02vd franbwaz 0 1075002 4157182 2026-10-23T20:17:09Z Frodlekis 762 nytt uppslag (haitisk kreol) 4157182 wikitext text/x-wiki ==Haitisk kreol== ===Substantiv=== {{subst|ht}} '''franbwaz''' #{{tagg|kat=frukter|språk=ht}} [[hallon]] dg8capujceqlxrsc9415f26ndee45o1 4157183 4157182 2026-10-23T20:18:11Z Frodlekis 762 4157183 wikitext text/x-wiki ==Haitisk kreol== ===Substantiv=== {{subst|ht}} '''franbwaz''' #{{tagg|kat=frukter|språk=ht}} [[hallon]] ==Mauritisk kreol== ===Substantiv=== {{subst|mfe}} '''franbwaz''' #{{tagg|kat=frukter|språk=mfe}} [[hallon]] han7iq9h8vpse82oqul7p32jzj11t0u Kategori:Krimtatariska/Adjektiv 14 1075003 4157184 2026-10-23T20:30:56Z Frodlekis 762 Ny sida 4157184 wikitext text/x-wiki {{kategorinavigering|Krimtatariska|Adjektiv|Index|nyckel=2}} {{kategorilistenavigering|crh}} id0k2zrkftgcrsv3tzb2vfdwb269v8m absolüt 0 1075004 4157185 2026-10-23T20:32:21Z Frodlekis 762 nytt uppslag (krimtatariska) 4157185 wikitext text/x-wiki ==Krimtatariska== ===Adjektiv=== {{adj|crh}} '''absolüt''' #[[absolut]] c54gvki1iitv44y3rs0csw4woqnp4yg işkir 0 1075005 4157186 2026-10-23T20:33:17Z Frodlekis 762 nytt uppslag (krimtatariska) 4157186 wikitext text/x-wiki ==Krimtatariska== ===Adjektiv=== {{adj|crh}} '''işkir''' #[[idog]], hårt arbetande ed4l8kb658dls40gxppaibl9vf1xht0 פּאַמעלעך 0 1075006 4157188 2026-10-23T20:47:07Z Frodlekis 762 nytt uppslag (jiddisch) 4157188 wikitext text/x-wiki ==Jiddisch== ===Adjektiv=== {{yi-adj}} '''פּאַמעלעך''' ({{tr|yi|פּאַמעלעך}}) #[[långsam]] ===Adverb=== {{adj|yi}} '''פּאַמעלעך''' ({{tr|yi|פּאַמעלעך}}) #[[sakta]], [[långsamt]] fwcznd366k2w2ilzyvej9k2zi9djhav ristoranti 0 1075007 4157190 2026-10-23T20:56:31Z DanielParoliere 59667 /* */ 4157190 wikitext text/x-wiki ==Italienska== ===Substantiv=== '''ristoranti''' #{{böjning|it|subst|ristorante}} octmino7kmxyecfctepmq812cqsff7g chillet 0 1075008 4157193 2026-10-23T21:28:30Z Frodlekis 762 böjningsform av [[chill]] 4157193 wikitext text/x-wiki ==Svenska== ===Substantiv=== '''chillet''' #{{böjning|sv|subst|chill}} hfoox3r195ljtqublv1ffr3kwz91zj8 chillets 0 1075009 4157194 2026-10-23T21:28:43Z Frodlekis 762 böjningsform av [[chill]] 4157194 wikitext text/x-wiki ==Svenska== ===Substantiv=== '''chillets''' #{{böjning|sv|subst|chill}} 7fnv5ycy2qh22w3kulukg3w75xmjy33 chillens 0 1075010 4157195 2026-10-23T21:28:51Z Frodlekis 762 böjningsform av [[chill]] 4157195 wikitext text/x-wiki ==Svenska== ===Substantiv=== '''chillens''' #{{böjning|sv|subst|chill}} ii8ue5i9ads01cyvcfcfdxuykwmt932 Modul:wikidata språk 828 1075011 4157196 2026-10-23T21:32:23Z Frodlekis 762 Ny sida 4157196 Scribunto text/plain local p = {} -- Beroenden: -- Modul:Wikidata (claim, getLabel, getParentValues) -- Modul:lang/data (lokal kodmappning; se kommentaren i getData) local Mwd = require('Modul:Wikidata') local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {} data.label = Mwd.getLabel{qid, {linked = 'no'}} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end local aliases = entity.aliases and entity.aliases[lang] or {} data.aliases = {} for _, alias in ipairs(aliases) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription() if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } -- TODO: den katalanska Modul:llengua/taula används här för att hitta -- en lokal Wiktionary-kod när Wikidata saknar ISO- och Wikimedia-kod. -- På svenska Wiktionary måste motsvarande uppslag göras mot den faktiska -- strukturen i Modul:lang/data innan denna reservlösning kan aktiveras. data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.projects = { wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki'), } if data.code.wikimedia then local main_page = mw.wikibase.getEntity('Q5296') if main_page and main_page.sitelinks and main_page.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local endonym = string.match(data.endonym, '>(.+)<') or data.endonym local code = data.code.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. frame:expandTemplate{title = 'm', args = {code, '', endonym}} end local codes = '' if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end if data.code.iso6391 then codes = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' if data.code.iso6393 or data.code.wikimedia then codes = codes .. ', ' end end if data.code.iso6393 then codes = codes .. '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' if data.code.wikimedia then codes = codes .. ', ' end elseif data.code.iso6392 then codes = codes .. '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' if data.code.wikimedia then codes = codes .. ', ' end end if data.code.wikimedia then codes = codes .. '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local html = mw.html.create('table'):addClass('wikitable') local rows = { {'Språk', language}, {'Kod', codes}, {'Språkfamilj', data.family or ''}, {'Projekt', projects}, } for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and data.map then tr:tag('td'):attr('rowspan', '4'):wikitext(data.map) end end return html end function p.debug(param) local data = getData(param[1]) return mw.dumpObject(data) end return p snbcho8afzcfle23vvsfn16y2iwb0p0 4157200 4157196 2026-10-23T21:40:30Z Frodlekis 762 4157200 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.code.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. frame:expandTemplate{title = 'm', args = {code, '', data.endonym}} end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {{'Språk', language}, {'Kod', table.concat(codes, ', ')}, {'Språkfamilj', data.family or ''}, {'Projekt', projects}} local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and data.map then tr:tag('td'):attr('rowspan', '4'):wikitext(data.map) end end return html end return p 3h2b9w0yz3zeshnsdl6wwv203x2dk1f 4157203 4157200 2026-10-23T21:46:42Z Frodlekis 762 4157203 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.code.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {{'Språk', language}, {'Kod', table.concat(codes, ', ')}, {'Språkfamilj', data.family or ''}, {'Projekt', projects}} local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and data.map then tr:tag('td'):attr('rowspan', '4'):wikitext(data.map) end end return html end return p tu1dw1gw92br43v20s6lrfkpos28c45 4157204 4157203 2026-10-23T21:52:40Z Frodlekis 762 4157204 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.code.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {{'Språk', language}, {'Kod', table.concat(codes, ', ')}, {'Språkfamilj', data.family or ''}, {'Projekt', projects}} if data.video and data.video ~= '' then rows[#rows + 1] = {'Video', data.video} end local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and data.map then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(data.map) end end return html end return p clf1j3wmyroirmymqp0gtzrqlnl1yj0 4157206 4157204 2026-10-23T21:56:23Z Frodlekis 762 4157206 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = Mwd.claim{item = qid, property = 'P282', editicon = 'false'} data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.code.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {{'Språk', language}, {'Skriftsystem', data.script or ''}, {'Kod', table.concat(codes, ', ')}, {'Språkfamilj', data.family or ''}, {'Projekt', projects}} if data.video and data.video ~= '' then rows[#rows + 1] = {'Video', data.video} end local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and data.map then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(data.map) end end return html end return p qv5noro9ccwyop8d18tqbbgcyl6z734 4157207 4157206 2026-10-23T21:59:45Z Frodlekis 762 4157207 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = Mwd.claim{item = qid, property = 'P282', editicon = 'false'} data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.code.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {{'Språk', language}, {'Skriftsystem', data.script or ''}, {'Kod', table.concat(codes, ', ')}, {'Språkfamilj', data.family or ''}, {'Projekt', projects}} local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() mediaColumn:wikitext(data.map) end if data.video and data.video ~= '' then mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() mediaColumn:wikitext(data.video) end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p mt63z2cwfocapzimy2gsc25lvpzhxrl 4157208 4157207 2026-10-23T22:02:45Z Frodlekis 762 4157208 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = Mwd.claim{item = qid, property = 'P282', editicon = 'false'} data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.code.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {{'Språk', language}, {'Skriftsystem', data.script or ''}, {'Kod', table.concat(codes, ', ')}, {'Språkfamilj', data.family or ''}, {'Projekt', projects}} local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p 7z4x5bn0td3evw8z6uqkrwpfhljs99v 4157209 4157208 2026-10-23T22:12:23Z Frodlekis 762 4157209 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property) return mw.text.listToText(getDistinctItemLinks(entity, property)) end local function distinctClassSummary(entity, property) local values = getDistinctItemLinks(entity, property) if #values == 0 then return nil end return tostring(#values) .. (#values == 1 and ' klass: ' or ' klasser: ') .. mw.text.listToText(values) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282') data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = Mwd.claim{item = qid, property = 'P443', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Tempus', 'P3103'}, {'Modus', 'P3161'}, {'Person', 'P5110'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2]) if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Verbens konjugationsklasser', distinctClassSummary(data.entity, 'P5206')) appendRow(rows, 'Böjningsmönster', distinctClassSummary(data.entity, 'P5913')) appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Ethnologue-status', linkedItemList(data.entity, 'P3823')) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(data.audio) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p 0znu94p5svi65auk68idildh932tom7 4157210 4157209 2026-10-23T22:13:03Z Frodlekis 762 4157210 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property) return mw.text.listToText(getDistinctItemLinks(entity, property)) end local function distinctClassSummary(entity, property) local values = getDistinctItemLinks(entity, property) if #values == 0 then return nil end return tostring(#values) .. (#values == 1 and ' klass: ' or ' klasser: ') .. mw.text.listToText(values) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282') data.countries = linkedItemList(entity, 'P17') data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = Mwd.claim{item = qid, property = 'P443', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Tempus', 'P3103'}, {'Modus', 'P3161'}, {'Person', 'P5110'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2]) if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Verbens konjugationsklasser', distinctClassSummary(data.entity, 'P5206')) appendRow(rows, 'Böjningsmönster', distinctClassSummary(data.entity, 'P5913')) appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Ethnologue-status', linkedItemList(data.entity, 'P3823')) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(data.audio) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p oepngmdc1mue8u9fnsqu1beloonpxa4 4157213 4157210 2026-10-23T22:31:55Z Frodlekis 762 4157213 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property) return mw.text.listToText(getDistinctItemLinks(entity, property)) end local function distinctClassSummary(entity, property) local values = getDistinctItemLinks(entity, property) if #values == 0 then return nil end return tostring(#values) .. (#values == 1 and ' klass: ' or ' klasser: ') .. mw.text.listToText(values) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) return tostring(mw.html.create('a'):attr('href', url):wikitext(label)) end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282') data.countries = linkedItemList(entity, 'P17') data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Tempus', 'P3103'}, {'Modus', 'P3161'}, {'Person', 'P5110'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2]) if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Verbens konjugationsklasser', distinctClassSummary(data.entity, 'P5206')) appendRow(rows, 'Böjningsmönster', distinctClassSummary(data.entity, 'P5913')) appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p k4ox0n3733egwq24cnf561plgf7qyzk 4157215 4157213 2026-10-23T22:37:05Z Frodlekis 762 4157215 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property) return mw.text.listToText(getDistinctItemLinks(entity, property)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) return tostring(mw.html.create('a'):attr('href', url):wikitext(label)) end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282') data.countries = linkedItemList(entity, 'P17') data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2]) if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p t6gxavjcpssl4afqkk3bk5omqrl2nx2 4157216 4157215 2026-10-23T22:38:45Z Frodlekis 762 4157216 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property) return mw.text.listToText(getDistinctItemLinks(entity, property)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282') data.countries = linkedItemList(entity, 'P17') data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2]) if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p avwrqj45gbec9av2y3h250f85n2u4vy 4157217 4157216 2026-10-23T22:40:20Z Frodlekis 762 4157217 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id if lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'} data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2]) if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p 5kjluiii4w9xgh519ptstm1fvk5ukb8 4157222 4157217 2026-10-23T22:54:44Z Frodlekis 762 4157222 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id if lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2]) if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p hhq4jnsfwy4eqezacuf21f4n8n81rqc 4157232 4157222 2026-10-23T23:08:03Z Frodlekis 762 4157232 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar var ' .. data.label .. ' primärt talas'):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p fddm52yi5r4b68aspmxkex8x2dvu171 4157238 4157232 2026-10-23T23:19:31Z Frodlekis 762 4157238 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p 35cdwadxnhq0o5joudmiboesgzvmt5w 4157239 4157238 2026-10-23T23:20:16Z Frodlekis 762 4157239 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label = Mwd.getLabel{[1] = id, linked = 'no'} or id if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p qajoovyfe7bg31ilueucdkrzmj0d768 4157242 4157239 2026-10-23T23:25:19Z Frodlekis 762 4157242 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label if plainLabelLanguage then local sitelink = mw.wikibase.getSitelink(id) label = mw.wikibase.getLabelByLang(id, plainLabelLanguage) or (sitelink and mw.title.new(sitelink).text) or mw.wikibase.getLabelByLang(id, 'en') or id else label = Mwd.getLabel{[1] = id, linked = 'no'} or id end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p 14wrw3ldmspp3cq89gfw513hnkoy3ki 4157243 4157242 2026-10-23T23:37:47Z Frodlekis 762 4157243 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label if plainLabelLanguage then local sitelink = mw.wikibase.getSitelink(id) label = mw.wikibase.getLabelByLang(id, plainLabelLanguage) or (sitelink and mw.title.new(sitelink).text) or mw.wikibase.getLabelByLang(id, 'en') or id else label = Mwd.getLabel{[1] = id, linked = 'no'} or id end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') local columns = html:tag('colgroup') columns:tag('col'):css('width', '10em'):done() columns:tag('col'):done() if hasMedia then columns:tag('col'):css('width', '14em'):done() end columns:done() for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):wikitext(mediaContent) end end return html end return p ad7czehlzacm4yr8delp06458pfqim3 4157244 4157243 2026-10-23T23:40:04Z Frodlekis 762 4157244 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label if plainLabelLanguage then local sitelink = mw.wikibase.getSitelink(id) label = mw.wikibase.getLabelByLang(id, plainLabelLanguage) or (sitelink and mw.title.new(sitelink).text) or mw.wikibase.getLabelByLang(id, 'en') or id else label = Mwd.getLabel{[1] = id, linked = 'no'} or id end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p gzah5ggalax7f9muncglzk8bf7vr1tf 4157245 4157244 2026-10-23T23:41:50Z Frodlekis 762 4157245 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label if plainLabelLanguage then local sitelink = mw.wikibase.getSitelink(id) label = mw.wikibase.getLabelByLang(id, plainLabelLanguage) or (sitelink and mw.title.new(sitelink).text) or mw.wikibase.getLabelByLang(id, 'en') or id else label = Mwd.getLabel{[1] = id, linked = 'no'} or id end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', function() return identifier end) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. '<br />Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all', 'sv') if values ~= '' then local line = grammar:tag('div'):css('margin', '0 0 0.2em 0') line:tag('span'):css('font-weight', 'bold'):wikitext(field[1] .. ': '):done() line:wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder knutna till språket på Wikidata', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p mp9fc6df6aq0v0h8z615g2uxizgnn25 4157248 4157245 2026-10-23T23:49:58Z Frodlekis 762 4157248 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label if plainLabelLanguage then local sitelink = mw.wikibase.getSitelink(id) label = mw.wikibase.getLabelByLang(id, plainLabelLanguage) or (sitelink and mw.title.new(sitelink).text) or mw.wikibase.getLabelByLang(id, 'en') or id else label = Mwd.getLabel{[1] = id, linked = 'no'} or id end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', references = 1, onlysourced = true, editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. (data.description and ' · ' or '<br />') .. 'Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p 4j6p7ja4sitne9li6karu1z683rqhco 4157253 4157248 2026-10-24T00:01:28Z Frodlekis 762 4157253 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label if plainLabelLanguage then local sitelink = mw.wikibase.getSitelink(id) label = mw.wikibase.getLabelByLang(id, plainLabelLanguage) or (sitelink and mw.title.new(sitelink).text) or mw.wikibase.getLabelByLang(id, 'en') or id else label = Mwd.getLabel{[1] = id, linked = 'no'} or id end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function lowercaseWikilinkLabels(wikitext) if not wikitext then return nil end return mw.ustring.gsub(wikitext, '%[%[(.-)|(.-)%]%]', function(target, label) return '[[' .. target .. '|' .. mw.ustring.lower(label) .. ']]' end) end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = lowercaseWikilinkLabels(Mwd.getParentValues{item = qid, property = 'P279', uptovalueid = 'Q20162172 Q783816 Q25268 Q169921 Q33838 Q33705 Q276314 Q51739 Q34113 Q7524744 Q19682167', rowformat = '$1', cascade = 'true', sorting = '-1', editicon = 'false'}) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. (data.description and ' · ' or '<br />') .. 'Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p l0wmpkvyew7ldg848ju01h62ds1kzpp 4157265 4157253 2026-10-24T00:41:27Z Frodlekis 762 4157265 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local label if plainLabelLanguage then local sitelink = mw.wikibase.getSitelink(id) label = mw.wikibase.getLabelByLang(id, plainLabelLanguage) or (sitelink and mw.title.new(sitelink).text) or mw.wikibase.getLabelByLang(id, 'en') or id else label = Mwd.getLabel{[1] = id, linked = 'no'} or id end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = mw.wikibase.getSitelink(id) or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = linkedItemList(entity, 'P279', 'all') data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. (data.description and ' · ' or '<br />') .. 'Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p 3wrf9k2i9muy7mvl8r8l1e2wlfp8drl 4157266 4157265 2026-10-24T00:43:14Z Frodlekis 762 4157266 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local requestedLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, requestedLanguage) local labelLanguage = requestedLanguage local target = mw.wikibase.getSitelink(id) if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and requestedLanguage ~= 'en' then label = label .. ' (en)' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end target = target or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = linkedItemList(entity, 'P279', 'all') data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label .. '</span>' if #data.aliases > 0 then language = language .. '<br /><span style="font-size: smaller;">(' .. table.concat(data.aliases, ', ') .. ')</span>' end if data.description then language = language .. '<br />' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' language = language .. (data.description and ' · ' or '<br />') .. 'Autoglottonym: ' .. (code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''") end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p 89fjod6lvad276nkwg2c2lpsra7czds 4157269 4157266 2026-10-24T00:53:47Z Frodlekis 762 4157269 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local requestedLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, requestedLanguage) local labelLanguage = requestedLanguage local target = mw.wikibase.getSitelink(id) if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and requestedLanguage ~= 'en' then label = label .. ' (en)' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end target = target or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = linkedItemList(entity, 'P279', 'all') data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. ' Språkets inhemska namn: ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('dl'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('dt'):css('font-weight', 'bold'):wikitext(field[1]):done() grammar:tag('dd'):css('margin-left', '1em'):css('margin-bottom', '0.3em'):wikitext(values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p hs4ukih028xmybm85bcwqzrs9m6fg8r 4157270 4157269 2026-10-24T00:56:49Z Frodlekis 762 4157270 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local requestedLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, requestedLanguage) local labelLanguage = requestedLanguage local target = mw.wikibase.getSitelink(id) if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and requestedLanguage ~= 'en' then label = label .. ' (en)' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end target = target or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = linkedItemList(entity, 'P279', 'all') data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p 0fyjnomkqsx2ulnu18kqsa3lgbmqfwq 4157347 4157270 2026-10-24T02:02:41Z Frodlekis 762 4157347 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local function isLanguageFamily(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and value.id == 'Q25295' then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageFamily(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function familyTreeMarkup(entity, path, depth) if depth >= 20 then return '' end local parents = familyParents(entity) if #parents == 0 then return '' end local rows = {'<ul style="line-height:100%; margin-left:0.45em; padding-left:0">'} for _, parent in ipairs(parents) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true rows[#rows + 1] = '<li>' .. familyLink(parent.id) rows[#rows + 1] = familyTreeMarkup(parent.entity, nextPath, depth + 1) rows[#rows + 1] = '</li>' end end rows[#rows + 1] = '</ul>' return table.concat(rows) end local function familyTree(entity) local tree = familyTreeMarkup(entity, {[entity.id] = true}, 0) return tree ~= '' and tree or nil end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p 6urck2n7ifkd3rqdapop7wbl6o2x7k4 4157348 4157347 2026-10-24T02:07:02Z Frodlekis 762 4157348 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q34770 = true, -- language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function familyTreeMarkup(entity, path, depth) if depth >= 20 then return '' end local parents = familyParents(entity) if #parents == 0 then return '' end local rows = {'<ul style="line-height:100%; margin-left:0.45em; padding-left:0">'} for _, parent in ipairs(parents) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true rows[#rows + 1] = '<li>' .. familyLink(parent.id) rows[#rows + 1] = familyTreeMarkup(parent.entity, nextPath, depth + 1) rows[#rows + 1] = '</li>' end end rows[#rows + 1] = '</ul>' return table.concat(rows) end local function familyTree(entity) local tree = familyTreeMarkup(entity, {[entity.id] = true}, 0) return tree ~= '' and tree or nil end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p augsv8pfhnffq1ewchqizp2tigj2b26 4157349 4157348 2026-10-24T02:08:34Z Frodlekis 762 4157349 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q34770 = true, -- language Q33742 = true, -- natural language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function familyTreeMarkup(entity, path) local parents = familyParents(entity) if #parents == 0 then return '' end local rows = {'<ul style="line-height:100%; margin-left:0.45em; padding-left:0">'} for _, parent in ipairs(parents) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true rows[#rows + 1] = '<li>' .. familyLink(parent.id) rows[#rows + 1] = familyTreeMarkup(parent.entity, nextPath) rows[#rows + 1] = '</li>' end end rows[#rows + 1] = '</ul>' return table.concat(rows) end local function familyTree(entity) local tree = familyTreeMarkup(entity, {[entity.id] = true}) return tree ~= '' and tree or nil end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p quo22e34xrfikvj72ziou7jrwbeprgd 4157350 4157349 2026-10-24T02:09:57Z Frodlekis 762 4157350 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q34770 = true, -- language Q33742 = true, -- natural language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function longestFamilyPath(entity, path) local best = {} for _, parent in ipairs(familyParents(entity)) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true local candidate = {{id = parent.id}} for _, ancestor in ipairs(longestFamilyPath(parent.entity, nextPath)) do candidate[#candidate + 1] = ancestor end if #candidate > #best then best = candidate end end end return best end local function familyTreeMarkup(path, index) local node = path[index] if not node then return '' end return '<ul style="line-height:100%; margin-left:0.45em; padding-left:0"><li>' .. familyLink(node.id) .. familyTreeMarkup(path, index + 1) .. '</li></ul>' end local function familyTree(entity) local path = longestFamilyPath(entity, {[entity.id] = true}) local tree = familyTreeMarkup(path, 1) return tree ~= '' and tree or nil end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p ka7reecemrrlcfn40ud06227xw25fcl 4157351 4157350 2026-10-24T02:12:44Z Frodlekis 762 4157351 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q34770 = true, -- language Q33742 = true, -- natural language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function longestFamilyPath(entity, path) local best = {} for _, parent in ipairs(familyParents(entity)) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true local candidate = {{id = parent.id}} for _, ancestor in ipairs(longestFamilyPath(parent.entity, nextPath)) do candidate[#candidate + 1] = ancestor end if #candidate > #best then best = candidate end end end return best end local function familyTreeMarkup(path, index) local node = path[index] if not node then return '' end return '<ul style="line-height:100%; margin-left:0.45em; padding-left:0"><li>' .. familyLink(node.id) .. familyTreeMarkup(path, index - 1) .. '</li></ul>' end local function familyTree(entity) local path = longestFamilyPath(entity, {[entity.id] = true}) local tree = familyTreeMarkup(path, #path) return tree ~= '' and tree or nil end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p 3gd2f0cam0uuxvufwowf1i58l8ok0ap 4157358 4157351 2026-10-24T02:34:05Z Frodlekis 762 4157358 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q34770 = true, -- language Q33742 = true, -- natural language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function longestFamilyPath(entity, path) local best = {} for _, parent in ipairs(familyParents(entity)) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true local candidate = {{id = parent.id}} for _, ancestor in ipairs(longestFamilyPath(parent.entity, nextPath)) do candidate[#candidate + 1] = ancestor end if #candidate > #best then best = candidate end end end return best end local function appendFamilyPath(list, path, index) local node = path[index] if not node then return end local item = list:tag('li'):wikitext(familyLink(node.id)) if index > 1 then local childList = item:tag('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(childList, path, index - 1) end item:done() end local function familyTree(entity) local path = longestFamilyPath(entity, {[entity.id] = true}) if #path == 0 then return nil end local tree = mw.html.create('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(tree, path, #path) return tostring(tree) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p t5racamy1as82fqify0nfdtxtaosj7d 4157359 4157358 2026-10-24T02:37:01Z Frodlekis 762 4157359 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q34770 = true, -- language Q33742 = true, -- natural language Q28923954 = true, -- languoid class Q20829075 = true, -- type of language Q20607093 = true, -- indigenous languages of a geographic region Q20162172 = true, -- human language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function longestFamilyPath(entity, path) local best = {} for _, parent in ipairs(familyParents(entity)) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true local candidate = {{id = parent.id}} -- Human language is the broad root used by language taxonomies; -- continuing above it enters Wikidata's general class ontology. if parent.id ~= 'Q20162172' then for _, ancestor in ipairs(longestFamilyPath(parent.entity, nextPath)) do candidate[#candidate + 1] = ancestor end end if #candidate > #best then best = candidate end end end return best end local function appendFamilyPath(list, path, index) local node = path[index] if not node then return end local item = list:tag('li'):wikitext(familyLink(node.id)) if index > 1 then local childList = item:tag('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(childList, path, index - 1) end item:done() end local function familyTree(entity) local path = longestFamilyPath(entity, {[entity.id] = true}) if #path == 0 then return nil end local tree = mw.html.create('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(tree, path, #path) return tostring(tree) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p afrgr695lo60n58q8xnw5yvc2ubh90h 4157363 4157359 2026-10-24T04:06:57Z Frodlekis 762 4157363 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q941501 = true, -- language group Q34770 = true, -- language Q33742 = true, -- natural language Q28923954 = true, -- languoid class Q20829075 = true, -- type of language Q20607093 = true, -- indigenous languages of a geographic region Q20162172 = true, -- human language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function longestFamilyPath(entity, path) local best = {} for _, parent in ipairs(familyParents(entity)) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true local candidate = {{id = parent.id}} -- Human language is the broad root used by language taxonomies; -- continuing above it enters Wikidata's general class ontology. if parent.id ~= 'Q20162172' then for _, ancestor in ipairs(longestFamilyPath(parent.entity, nextPath)) do candidate[#candidate + 1] = ancestor end end if #candidate > #best then best = candidate end end end return best end local function appendFamilyPath(list, path, index) local node = path[index] if not node then return end local item = list:tag('li'):wikitext(familyLink(node.id)) if index > 1 then local childList = item:tag('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(childList, path, index - 1) end item:done() end local function familyTree(entity) local path = longestFamilyPath(entity, {[entity.id] = true}) if #path == 0 then return nil end local tree = mw.html.create('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(tree, path, #path) return tostring(tree) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p ksp7omtiejmmgx8prdkceno79y2mlnv 4157366 4157363 2026-10-24T04:13:28Z Frodlekis 762 4157366 Scribunto text/plain local p = {} local Mwd = require('Modul:Wikidata') local function getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage) local links, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then seen[id] = true local sitelink = mw.wikibase.getSitelink(id) local labelLanguage = plainLabelLanguage or mw.language.getContentLanguage().code local label = mw.wikibase.getLabelByLang(id, labelLanguage) local linkedLanguage if not label and sitelink then label = mw.title.new(sitelink).text elseif not label then label = mw.wikibase.getLabelByLang(id, 'en') if label then linkedLanguage = 'en' else label = id end end if linkedLanguage and labelLanguage ~= linkedLanguage then label = label .. ' (' .. linkedLanguage .. ')' end if lowercaseInitial == 'all' then label = mw.ustring.lower(label) elseif lowercaseInitial then label = mw.ustring.gsub(label, '^%u', mw.ustring.lower) end local target = sitelink or ('d:Special:EntityPage/' .. id) links[#links + 1] = '[[' .. target .. '|' .. label .. ']]' end end return links end local function linkedItemList(entity, property, lowercaseInitial, plainLabelLanguage) return mw.text.listToText(getDistinctItemLinks(entity, property, lowercaseInitial, plainLabelLanguage)) end local function familyLink(id) local lang = mw.language.getContentLanguage().code local target = mw.wikibase.getSitelink(id) local label = mw.wikibase.getLabelByLang(id, lang) local labelLanguage = lang if not label and target then label = mw.title.new(target).text labelLanguage = nil end if not label then label = mw.wikibase.getLabelByLang(id, 'en') or id labelLanguage = label ~= id and 'en' or nil end if labelLanguage == 'en' and lang ~= 'en' then label = label .. ' (en)' end label = mw.ustring.lower(label) target = target or ('d:Special:EntityPage/' .. id) return '[[' .. target .. '|' .. label .. ']]' end local languageTreeClasses = { Q25295 = true, -- language family Q941501 = true, -- language group Q11820611 = true, -- language subfamily Q34770 = true, -- language Q33742 = true, -- natural language Q28923954 = true, -- languoid class Q20829075 = true, -- type of language Q20607093 = true, -- indigenous languages of a geographic region Q20162172 = true, -- human language Q33384 = true, -- dialect Q2630831 = true, -- supradialect Q20671152 = true, -- dialect family Q1208380 = true, -- dialect group Q8217193 = true, -- subdialect } local function isLanguageTreeNode(entity) for _, statement in ipairs(entity and entity.claims and entity.claims.P31 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value if statement.rank ~= 'deprecated' and type(value) == 'table' and languageTreeClasses[value.id] then return true end end return false end local function familyParents(entity) local parents, seen = {}, {} for _, statement in ipairs(entity and entity.claims and entity.claims.P279 or {}) do local snak = statement.mainsnak local value = snak and snak.datavalue and snak.datavalue.value local id = type(value) == 'table' and value.id if id and not seen[id] and statement.rank ~= 'deprecated' then local parent = mw.wikibase.getEntity(id) if isLanguageTreeNode(parent) then seen[id] = true parents[#parents + 1] = {id = id, entity = parent} end end end return parents end local function longestFamilyPath(entity, path) local best = {} for _, parent in ipairs(familyParents(entity)) do if not path[parent.id] then local nextPath = {} for id in pairs(path) do nextPath[id] = true end nextPath[parent.id] = true local candidate = {{id = parent.id}} -- Human language is the broad root used by language taxonomies; -- continuing above it enters Wikidata's general class ontology. if parent.id ~= 'Q20162172' then for _, ancestor in ipairs(longestFamilyPath(parent.entity, nextPath)) do candidate[#candidate + 1] = ancestor end end if #candidate > #best then best = candidate end end end return best end local function appendFamilyPath(list, path, index) local node = path[index] if not node then return end local item = list:tag('li'):wikitext(familyLink(node.id)) if index > 1 then local childList = item:tag('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(childList, path, index - 1) end item:done() end local function familyTree(entity) local path = longestFamilyPath(entity, {[entity.id] = true}) if #path == 0 then return nil end local tree = mw.html.create('ul'):css('line-height', '100%'):css('margin-left', '0.45em'):css('padding-left', '0') appendFamilyPath(tree, path, #path) return tostring(tree) end local function appendRow(rows, label, value) if value and value ~= '' then rows[#rows + 1] = {label, value} end end local function getIdentifierValues(entity, property) local values, seen = {}, {} local statements = entity.claims and entity.claims[property] or {} for _, statement in ipairs(statements) do local snak = statement.mainsnak local value = snak and snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(value) == 'string' and not seen[value] and statement.rank ~= 'deprecated' then seen[value] = true values[#values + 1] = value end end return values end local function makeExternalLink(url, label) label = mw.ustring.gsub(label, '&', '&amp;') label = mw.ustring.gsub(label, '<', '&lt;') label = mw.ustring.gsub(label, '>', '&gt;') label = mw.ustring.gsub(label, '%[', '&#91;') label = mw.ustring.gsub(label, '%]', '&#93;') return '[' .. url .. ' ' .. label .. ']' end local function getExternalLinks(entity) local links = {} local properties = { {property = 'P1627', label = 'Ethnologue.com', url = 'https://www.ethnologue.com/language/$1'}, {property = 'P8370', label = 'UN Thesaurus', url = 'http://metadata.un.org/thesaurus/$1'}, {property = 'P1466', label = 'WALS', url = 'https://wals.info/languoid/lect/wals_code_$1'}, } for _, external in ipairs(properties) do for _, identifier in ipairs(getIdentifierValues(entity, external.property)) do local url = string.gsub(external.url, '%$1', identifier) links[#links + 1] = makeExternalLink(url, external.label .. ' (' .. identifier .. ')') end end for _, identifier in ipairs(getIdentifierValues(entity, 'P4839')) do local url = 'https://www.wolframalpha.com/input/?i=' .. mw.uri.encode(identifier, 'QUERY') links[#links + 1] = makeExternalLink(url, 'Wolfram Language (' .. identifier .. ')') end return mw.text.listToText(links) end local function getAutonymAudio(entity) local statements = entity.claims and entity.claims.P1705 or {} local hasPreferred = false for _, statement in ipairs(statements) do if statement.rank == 'preferred' then hasPreferred = true; break end end for _, statement in ipairs(statements) do if statement.rank ~= 'deprecated' and (not hasPreferred or statement.rank == 'preferred') then local audio = statement.qualifiers and statement.qualifiers.P443 if audio then for _, snak in ipairs(audio) do local filename = snak.snaktype == 'value' and snak.datavalue and snak.datavalue.value if type(filename) == 'string' then return filename end end end end end return nil end local function getData(qid) local lang = mw.language.getContentLanguage().code if qid == nil or qid == '' then qid = Mwd.claim{property = 'P301', formatting = 'raw', shownovalue = 'false', editicon = 'false'} if qid == nil then return nil end end local entity = mw.wikibase.getEntity(qid) if not entity then return nil end local data = {entity = entity} data.label = Mwd.getLabel{[1] = qid, linked = 'no'} or qid if not string.find(data.label, qid, 1, true) then data.label = mw.ustring.gsub(data.label, '^%u', mw.ustring.lower) end data.aliases = {} for _, alias in ipairs((entity.aliases and entity.aliases[lang]) or {}) do data.aliases[#data.aliases + 1] = alias.value end data.description = entity:getDescription(lang) if data.description then data.description = data.description .. ' [[File:Arbcom ru editing.svg|10px|baseline|Redigera på Wikidata|link=https://www.wikidata.org/wiki/Special:SetLabelDescriptionAliases/' .. qid .. '/' .. lang .. ']]' end data.endonym = Mwd.claim{item = qid, property = 'P1705', list = 'false', editicon = 'false'} data.script = linkedItemList(entity, 'P282', true) data.countries = linkedItemList(entity, 'P17') data.family = familyTree(entity) data.code = { iso6391 = Mwd.claim{item = qid, property = 'P218', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6392 = Mwd.claim{item = qid, property = 'P219', list = 'false', shownovalue = 'false', editicon = 'false'}, iso6393 = Mwd.claim{item = qid, property = 'P220', list = 'false', shownovalue = 'false', editicon = 'false'}, wikimedia = Mwd.claim{item = qid, property = 'P424', list = 'false', editicon = 'false'}, } data.map = Mwd.claim{item = qid, property = 'P1846 or P242', formatting = '[[File:$1|center|200x200px]]', list = 1, editicon = 'false'} data.video = Mwd.claim{item = qid, property = 'P10', formatting = '{{media|$1}}', list = 1, editicon = 'false'} data.audio = getAutonymAudio(entity) data.speakers = Mwd.claim{ item = qid, property = 'P1098', qualifier = 'P518', qualifier2 = 'P585', formatting = 'table', rowformat = '$0 ($1; $2)$R0', list = true, tablesort = '2', sorting = '-1', separator = '<br />', editicon = 'false' } data.projects = {wikidata = qid, wikipedia = entity:getSitelink(lang .. 'wiki')} if data.code.wikimedia then local mainPage = mw.wikibase.getEntity('Q5296') if mainPage and mainPage.sitelinks and mainPage.sitelinks[data.code.wikimedia .. 'wiktionary'] then data.projects.wiktionary = data.code.wikimedia end end return data end function p.show(frame) local data = getData(frame.args[1]) if not data then return '' end local language = '<span style="font-weight: bold;">' .. data.label if #data.aliases > 0 then language = language .. '&nbsp;</span>(' .. table.concat(data.aliases, ', ') .. ')' else language = language .. '</span>' end if data.description then language = language .. ' | ' .. data.description end if data.endonym then local code = data.projects.wiktionary or data.code.iso6391 or data.code.iso6393 or data.code.wikimedia or 'und' local endonym = code ~= 'und' and "''" .. frame:expandTemplate{title = 'länk', args = {code, data.endonym}} .. "''" or "''" .. data.endonym .. "''" language = language .. '<br /><b>Autoglottonym:</b> ' .. endonym end if data.code.wikimedia == data.code.iso6391 or data.code.wikimedia == data.code.iso6393 then data.code.wikimedia = nil end local codes = {} if data.code.iso6391 then codes[#codes + 1] = '[https://id.loc.gov/vocabulary/iso639-1/' .. data.code.iso6391 .. ' <code>' .. data.code.iso6391 .. '</code>] <span style="font-size: 80%;">(ISO 639-1)</span>' end if data.code.iso6393 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6393 .. ' <code>' .. data.code.iso6393 .. '</code>] <span style="font-size: 80%;">(ISO 639-3)</span>' elseif data.code.iso6392 then codes[#codes + 1] = '[https://iso639-3.sil.org/code/' .. data.code.iso6392 .. ' <code>' .. data.code.iso6392 .. '</code>] <span style="font-size: 80%;">(ISO 639-2)</span>' end if data.code.wikimedia then codes[#codes + 1] = '[https://robin.toolforge.org/?tool=codelookup&code=' .. data.code.wikimedia .. ' <code>' .. data.code.wikimedia .. '</code>] <span style="font-size: 80%;">(Wikimedia)</span>' end local projects = '[[d:Special:EntityPage/' .. data.projects.wikidata .. '|Wikidataobjekt]]' if data.projects.wikipedia then projects = projects .. ', [[w:' .. data.projects.wikipedia .. '|Wikipediaartikel]]' end if data.projects.wiktionary then projects = projects .. ', [[:' .. data.projects.wiktionary .. ':|Wiktionaryversion]]' end local rows = {} appendRow(rows, 'Språk', language) appendRow(rows, 'Skriftsystem', data.script) appendRow(rows, 'Kod', #codes > 0 and table.concat(codes, ', ') or nil) appendRow(rows, 'Språkfamilj', data.family) local grammarFields = { {'Grammatiskt genus', 'P5109'}, {'Numerus', 'P13986'}, {'Kasus', 'P2989'}, {'Modus', 'P3161'}, } local grammar = mw.html.create('div'):css('margin', '0') local grammarCount = 0 for _, field in ipairs(grammarFields) do local values = linkedItemList(data.entity, field[2], 'all') if values ~= '' then grammar:tag('div'):css('margin-bottom', '0.3em'):wikitext("'''" .. field[1] .. ": '''" .. values):done() grammarCount = grammarCount + 1 end end if grammarCount > 0 then appendRow(rows, 'Grammatik', tostring(grammar)) end appendRow(rows, 'Uppskattat antal talare', data.speakers) appendRow(rows, 'Länder', data.countries) appendRow(rows, 'Språkvårdande organ', linkedItemList(data.entity, 'P1018', nil, 'sv')) appendRow(rows, 'UNESCO:s språkstatus', linkedItemList(data.entity, 'P1999')) appendRow(rows, 'Externa länkar', getExternalLinks(data.entity)) appendRow(rows, 'Projekt', projects) local mediaColumn = mw.html.create('div') if data.map and data.map ~= '' then mediaColumn:wikitext(data.map) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Kartan visar den geografiska utbredningen<br />för ' .. data.label):done() end if data.audio and data.audio ~= '' then mediaColumn:wikitext(frame:expandTemplate{title = 'media', args = {data.audio}}) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Ljudprov på ' .. data.label):done() end if data.video and data.video ~= '' then mediaColumn:wikitext(data.video) mediaColumn:tag('p'):css('text-align', 'center'):wikitext('Video med talare av språket ' .. data.label):done() end local mediaContent = tostring(mediaColumn) local hasMedia = (data.map and data.map ~= '') or (data.audio and data.audio ~= '') or (data.video and data.video ~= '') local html = mw.html.create('table'):addClass('wikitable') :css('width', '100%'):css('max-width', '75em'):css('table-layout', 'fixed') for i, row in ipairs(rows) do local tr = html:tag('tr') tr:tag('th'):attr('scope', 'row'):css('width', '9em'):css('text-align', 'left'):wikitext(row[1]) tr:tag('td'):css('overflow-wrap', 'anywhere'):wikitext(row[2]) if i == 1 and hasMedia then tr:tag('td'):attr('rowspan', tostring(#rows)):css('width', '14em'):wikitext(mediaContent) end end return html end return p 9rc8g6eqop6o0tboawp9umn5u1eq8cr Mall:faktaruta språk 10 1075012 4157197 2026-10-23T21:33:50Z Frodlekis 762 Ny sida 4157197 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata språk|show|{{{1|}}}}}</includeonly><noinclude> {{mallinfo}} Visar en tabell med uppgifter om ett språk från Wikidata. == Parametrar == * '''1''' – Wikidataobjektets Q-nummer. Om parametern utelämnas hämtas objektet från sidans egenskap P301. == Exempel == <code><nowiki>{{faktaruta språk|Q1860}}</nowiki></code> </noinclude> pcdjy8josz3m5e4zcfrugcsflhjga2x 4157198 4157197 2026-10-23T21:33:59Z Frodlekis 762 4157198 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata språk|show|{{{1|}}}}}</includeonly><noinclude> Visar en tabell med uppgifter om ett språk från Wikidata. == Parametrar == * '''1''' – Wikidataobjektets Q-nummer. Om parametern utelämnas hämtas objektet från sidans egenskap P301. == Exempel == <code><nowiki>{{faktaruta språk|Q1860}}</nowiki></code> </noinclude> rb2c2bey3hmde2whxwu8d4cpd1ywpgy 4157199 4157198 2026-10-23T21:36:01Z Frodlekis 762 4157199 wikitext text/x-wiki <includeonly>{{#invoke:wikidata språk|show|{{{1|}}}}}</includeonly><noinclude> Visar en tabell med uppgifter om ett språk från Wikidata. == Parametrar == * '''1''' – Wikidataobjektets Q-nummer. Om parametern utelämnas hämtas objektet från sidans egenskap P301. == Exempel == <code><nowiki>{{faktaruta språk|Q1860}}</nowiki></code> </noinclude> ptirt4vloglc5ou1lg76uhiisyitbnn 4157211 4157199 2026-10-23T22:14:06Z Frodlekis 762 4157211 wikitext text/x-wiki <includeonly>{{#invoke:Wikidata språk|show|{{{1|}}}}}</includeonly><noinclude> Visar en tabell med uppgifter om ett språk från Wikidata. Uppgifter visas bara när det finns användbara värden på språkobjektet. Grammatikraden bygger på Wikidatas egenskaper för genus (P5109), numerus (P13986), kasus (P2989), tempus (P3103), modus (P3161) och person (P5110). Böjningsklasser hämtas från P5206 och P5913. Talarantal visas med tidpunkt, omfattning och källhänvisning när dessa finns. Alla grammatiska kategorier är inte modellerade på språkobjekt. Exempelvis finns aspekt och passiv diates i första hand som egenskaper hos lexem; de visas därför inte som generella egenskaper för ett helt språk. Geografisk närvaro ska inte tolkas som officiell eller rättslig status. ==Parametrar== * '''1''' – Wikidataobjektets Q-nummer. Om parametern utelämnas hämtas objektet från sidans egenskap P301. ==Wikidata-egenskaper== Faktarutan använder bland annat P1705 (autoglottonym), P282 (skriftsystem), P1846/P242 (karta), P10 (video), P443 (ljud), P1098 (talarantal), P17 (länder knutna till språkobjektet), P1018 (språkvårdande organ), P1999 (UNESCO-status) och P3823 (Ethnologue-status). Länderuppgiften betyder inte att språket har officiell eller rättslig status där. Värden som saknas på Wikidata lämnas tomma. ==Exempel== <code><nowiki>{{faktaruta språk|Q1860}}</nowiki></code> </noinclude> 8been0znz3ogx5d910c9xiao3bicjaa 4157212 4157211 2026-10-23T22:14:31Z Frodlekis 762 4157212 wikitext text/x-wiki <includeonly>{{#invoke:wikidata språk|show|{{{1|}}}}}</includeonly><noinclude> Visar en tabell med uppgifter om ett språk från Wikidata. Uppgifter visas bara när det finns användbara värden på språkobjektet. Grammatikraden bygger på Wikidatas egenskaper för genus (P5109), numerus (P13986), kasus (P2989), tempus (P3103), modus (P3161) och person (P5110). Böjningsklasser hämtas från P5206 och P5913. Talarantal visas med tidpunkt, omfattning och källhänvisning när dessa finns. Alla grammatiska kategorier är inte modellerade på språkobjekt. Exempelvis finns aspekt och passiv diates i första hand som egenskaper hos lexem; de visas därför inte som generella egenskaper för ett helt språk. Geografisk närvaro ska inte tolkas som officiell eller rättslig status. ==Parametrar== * '''1''' – Wikidataobjektets Q-nummer. Om parametern utelämnas hämtas objektet från sidans egenskap P301. ==Wikidata-egenskaper== Faktarutan använder bland annat P1705 (autoglottonym), P282 (skriftsystem), P1846/P242 (karta), P10 (video), P443 (ljud), P1098 (talarantal), P17 (länder knutna till språkobjektet), P1018 (språkvårdande organ), P1999 (UNESCO-status) och P3823 (Ethnologue-status). Länderuppgiften betyder inte att språket har officiell eller rättslig status där. Värden som saknas på Wikidata lämnas tomma. ==Exempel== <code><nowiki>{{faktaruta språk|Q1860}}</nowiki></code> </noinclude> 82ubokgy27ziwm7fd7gtwh79f95z9w5 4157214 4157212 2026-10-23T22:34:24Z Frodlekis 762 4157214 wikitext text/x-wiki <includeonly>{{#invoke:wikidata språk|show|{{{1|}}}}}</includeonly><noinclude> Visar en tabell med uppgifter om ett språk från Wikidata. Uppgifter visas bara när det finns användbara värden på språkobjektet. Grammatikraden bygger på Wikidatas egenskaper för genus (P5109), numerus (P13986), kasus (P2989), tempus (P3103), modus (P3161) och person (P5110). Böjningsklasser hämtas från P5206 och P5913. Talarantal visas med tidpunkt, omfattning och källhänvisning när dessa finns. Alla grammatiska kategorier är inte modellerade på språkobjekt. Exempelvis finns aspekt och passiv diates i första hand som egenskaper hos lexem; de visas därför inte som generella egenskaper för ett helt språk. Geografisk närvaro ska inte tolkas som officiell eller rättslig status. ==Parametrar== * '''1''' – Wikidataobjektets Q-nummer. Om parametern utelämnas hämtas objektet från sidans egenskap P301. ==Wikidata-egenskaper== Faktarutan använder bland annat P1705 (autoglottonym), P282 (skriftsystem), P1846/P242 (karta), P10 (video), P1098 (talarantal), P17 (länder knutna till språkobjektet), P1018 (språkvårdande organ) och P1999 (UNESCO-status). Ljud visas endast när uttalsljudet P443 är kvalificerare på P1705-påståendet om autoglottonymen. Länderuppgiften betyder inte att språket har officiell eller rättslig status där. Värden som saknas på Wikidata lämnas tomma. Raden '''Externa länkar''' använder Ethnologue.com:s språkkod (P1627), UN Thesaurus-ID (P8370), WALS-kod (P1466) och Wolfram Language-entitetskoder (P4839). Alla olika P4839-värden visas. ==Exempel== <code><nowiki>{{faktaruta språk|Q1860}}</nowiki></code> ger: {{faktaruta språk|Q1860}} </noinclude> ngyy2pqpkuabe4xh96nyqn9jay2z033 4157397 4157214 2026-10-24T11:09:28Z Frodlekis 762 4157397 wikitext text/x-wiki <includeonly>{{#invoke:wikidata språk|show|{{{1|}}}}}</includeonly><noinclude> Visar en tabell med uppgifter om ett språk från Wikidata. Uppgifter visas bara när det finns användbara värden på språkobjektet. Grammatikraden bygger på Wikidatas egenskaper för genus (P5109), numerus (P13986), kasus (P2989), tempus (P3103), modus (P3161) och person (P5110). Böjningsklasser hämtas från P5206 och P5913. Talarantal visas med tidpunkt, omfattning och källhänvisning när dessa finns. Alla grammatiska kategorier är inte modellerade på språkobjekt. Exempelvis finns aspekt och passiv diates i första hand som egenskaper hos lexem; de visas därför inte som generella egenskaper för ett helt språk. Geografisk närvaro ska inte tolkas som officiell eller rättslig status. ==Parametrar== * '''1''' – Wikidataobjektets Q-nummer. Om parametern utelämnas hämtas objektet från sidans egenskap P301. ==Wikidata-egenskaper== Faktarutan använder bland annat P1705 (autoglottonym), P282 (skriftsystem), P1846/P242 (karta), P10 (video), P1098 (talarantal), P17 (länder knutna till språkobjektet), P1018 (språkvårdande organ) och P1999 (UNESCO-status). Ljud visas endast när uttalsljudet P443 är kvalificerare på P1705-påståendet om autoglottonymen. Länderuppgiften betyder inte att språket har officiell eller rättslig status där. Värden som saknas på Wikidata lämnas tomma. Raden '''Externa länkar''' använder Ethnologue.com:s språkkod (P1627), UN Thesaurus-ID (P8370), WALS-kod (P1466) och Wolfram Language-entitetskoder (P4839). Alla olika P4839-värden visas. ==Exempel== <code><nowiki>{{faktaruta språk|Q9027}}</nowiki></code> ger: {{faktaruta språk|Q9027}} </noinclude> 6mhfamlq3zq7a3x3jbt23ykfuikjucx Modul:Wikidata 828 1075013 4157201 2026-10-23T21:41:12Z Frodlekis 762 Ny sida 4157201 Scribunto text/plain -- Svensk port av den katalanska Modul:Wikidata, version 20220818. local p = {} -- Initiering av variabler -------------------- local i18n = { -- internationalisation at [[Module:Wikidata/i18n]] ["errors"] = { ["property-not-found"] = "Egenskapen hittades inte.", ["qualifier-not-found"] = "Kvalificeraren hittades inte.", }, ["datetime"] = { -- $1 is a placeholder for the actual number ["beforenow"] = "$1 f.Kr.", -- how to format negative numbers for precisions 0 to 5 ["afternow"] = "$1 e.Kr.", -- how to format positive numbers for precisions 0 to 5 ["bc"] = "$1 f.Kr.", -- how print negative years ["ad"] = "$1 e.Kr.", -- how print 1st century AD dates [0] = "$1 miljard år", -- precision: billion years [1] = "$100 miljoner år", -- precision: hundred million years [2] = "$10 miljoner år", -- precision: ten million years [3] = "$1 miljon år", -- precision: million years [4] = "$100 000 år", -- precision: hundred thousand years; thousand separators added afterwards [5] = "$10 000 år", -- precision: ten thousand years; thousand separators added afterwards [6] = "$1 årtusende", -- precision: millennium [7] = "$1 århundrade", -- precision: century [8] = "$1-talet", -- precision: decade -- the following use the format of #time parser function [9] = "Y", -- precision: year, [10] = "F Y", -- precision: month [11] = "j F Y", -- precision: day ["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs }, ["years-old"] = {"år", "år"}, -- year(s) old, as in {{PLURAL:$1|singular|plural}} -- two values for most languages, up to six values for some languages -- see documentation of PLURAL magic word in your language, examples: -- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages -- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic ["cite"] = { -- cite parameters ["title"] = "title", ["author"] = "author", ["date"] = "date", ["pages"] = "pages", ["language"] = "language", -- cite web parameters ["url"] = "url", ["website"] = "website", ["access-date"] = "access-date", ["archive-url"] = "archive-url", ["archive-date"] = "archive-date", ["publisher"] = "publisher", ["quote"] = "quote", -- cite journal parameters ["work"] = "work", ["issue"] = "issue", ["issn"] = "issn", ["doi"] = "doi" }, -- svenska Wiktionary-inställningar ["addpencil"] = false, -- lägger till en redigeringslänk till Wikidata, planned to overwrite by Wikidata Bridge ["categorylabels"] = "", -- tomt om ingen lokal spårningskategori används ["categoryprop"] = "", -- tomt om ingen lokal spårningskategori används ["categoryref"] = "", -- tomt om ingen lokal spårningskategori används ["addfallback"] = {}, -- additional fallback language codes ["suppressids"] = {}, -- list of Qid values to suppress ["qidlabels"] = true -- show labels as Qid if no fallback translation is available } local cases = {} -- functions for local grammatical cases defined at [[Module:Wikidata/i18n]] local required = ... -- variadic arguments from require function local wiki = { langcode = mw.language.getContentLanguage().code, module_title = required or mw.getCurrentFrame():getTitle() } local untranslated -- used in infobox modules: nil or true local _ -- variable for unused returned values, avoiding globals -- Modulens lokala funktioner -------------------------------------------- -- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0 local function tableMerge(t1, t2) for k, v in pairs(t2) do if type(v) == "table" then if type(t1[k] or false) == "table" then tableMerge(t1[k] or {}, t2[k] or {}) else t1[k] = v end else t1[k] = v end end return t1 end local function loadI18n(lang) local exist, res = pcall(require, wiki.module_title .. "/i18n") if exist and next(res) ~= nil then tableMerge(i18n, res.i18n) cases = res.cases end if lang ~= wiki.langcode then exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang) if exist and next(res) ~= nil then tableMerge(i18n, res.i18n) tableMerge(cases, res.cases) end end i18n.suppress = {} for _, id in ipairs(i18n.suppressids) do i18n.suppress[id] = true end end -- Table of language codes: requested or default and its fallbacks local function findLang(langcode) if mw.language.isKnownLanguageTag(langcode or '') == false then local cframe = mw.getCurrentFrame() local pframe = cframe:getParent() langcode = pframe and pframe.args.lang if mw.language.isKnownLanguageTag(langcode or '') == false then if not mw.title.getCurrentTitle().isContentPage then langcode = cframe:preprocess('{{int:lang}}') end if mw.language.isKnownLanguageTag(langcode or '') == false then langcode = wiki.langcode end end end loadI18n(langcode) local languages = mw.language.getFallbacksFor(langcode) table.insert(languages, 1, langcode) if langcode == wiki.langcode then for _, l in ipairs(i18n.addfallback) do table.insert(languages, l) end end return languages end -- Argument is 'set' when it exists (not nil) or when it is not an empty string. local function isSet(var) return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == '')) end -- Set local case to a label local function case(localcase, label, ...) if not isSet(label) then return label end if type(localcase) == "function" then return localcase(label) elseif localcase == "smallcaps" then return '<span style="font-variant: small-caps;">' .. label .. '</span>' elseif cases[localcase] then return cases[localcase](label, ...) end return label end -- get safely a serialized snak local function getSnak(statement, snaks) local ret = statement for i, v in ipairs(snaks) do if not ret then return end ret = ret[v] end return ret end -- mw.wikibase.getLabelWithLang or getLabelByLang with a table of languages local function getLabelByLangs(id, languages) local label local lang for _, l in ipairs(languages) do if l == wiki.langcode then -- using getLabelWithLang when possible instead of getLabelByLang label, l = mw.wikibase.getLabelWithLang(id) else label = mw.wikibase.getLabelByLang(id, l) end if label then lang = l break end end return label, lang end -- getBestStatements if bestrank=true, else getAllStatements with no deprecated local function getStatements(entityId, property, bestrank) local claims = {} if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end if bestrank then claims = mw.wikibase.getBestStatements(entityId, property) else local allclaims = mw.wikibase.getAllStatements(entityId, property) for _, c in ipairs(allclaims) do if c.rank ~= "deprecated" then table.insert(claims, c) end end end return claims end -- Is gender femenine? true or false local function feminineGender(id) local claims = mw.wikibase.getBestStatements(id or mw.wikibase.getEntityIdForCurrentPage(),'P21') local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"}) if gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445" then -- female, transgender female, female organism return true end return false end -- Fetch female form of label local function feminineForm(id, lang) local feminine_claims = getStatements(id, 'P2521') for _, feminine_claim in ipairs(feminine_claims) do if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then return feminine_claim.mainsnak.datavalue.value.text end end end -- Add an icon for no label in requested language local function addLabelIcon(label_id, lang, uselang, icon) local ret_lang, ret_icon = '', '' if icon then if lang and lang ~= uselang then ret_lang = " <sup>(" .. lang .. ")</sup>" end if label_id and (lang == nil or lang ~= uselang) then local namespace = '' if string.sub(label_id, 1, 1) == 'P' then namespace = 'Property:' end ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|" .. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain() .. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]" untranslated = true end if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]') end end return ret_lang .. ret_icon end -- editicon values: true/false (no=false), right, void defaults to i18n.addpencil -- labelicon only by parameter local function setIcons(arg, parg) local val = arg == nil and parg or arg local edit_icon, label_icon if not isSet(val) then edit_icon, label_icon = i18n.addpencil, true elseif val == false or val == "false" or val == "no" then edit_icon, label_icon = false, false else edit_icon, label_icon = val, true end return edit_icon, label_icon end -- Add an icon for editing a statement with requirements for future Wikidata Bridge local function addEditIcon(parameters) local ret = '' if parameters.editicon and parameters.id and parameters.property then local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or '' local icon_style = parameters.editicon == "right" and ' style="float: right;"' or '' ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>' .. "[[File:Arbcom ru editing.svg|10px|baseline|" .. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata') .. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]" .. "</span>" if isSet(i18n.categoryprop) then ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]" end end return ret end -- add edit icon to the last element of a table local function addEditIconTable(thetable, parameters) if #thetable == 0 or parameters.editicon == false then return thetable end local last_element = thetable[#thetable] local the_icon = addEditIcon(parameters) -- add it before last html closing tags local tags = '' local rev_element = string.reverse(last_element) for tag in string.gmatch(rev_element, '(>%l+/<)') do if string.match(rev_element, '^' .. tags .. tag) then tags = tags .. tag else break end end local last_tags = string.reverse(tags) local offset = string.find(last_element, last_tags .. '$') if offset then thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags else thetable[#thetable] = last_element .. the_icon end return thetable end -- Escape Lua captures local function captureEscapes(text) return mw.ustring.gsub(text, "(%%%d)", "%%%1") end -- expandTemplate or callParserFunction local function expandBraces(text, formatting) if text == nil or formatting == nil then return text end -- only expand braces if provided in argument, not included in value as in Q1164668 if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end if type(text) ~= "string" then text = tostring(text) end for braces in mw.ustring.gmatch(text, "{{(.-)}}") do local parts = mw.text.split(braces, "|") local title_part = parts[1] local parameters = {} for i = 2, #parts do local subparts = mw.ustring.find(parts[i], "=") if subparts then local param_name = mw.ustring.sub(parts[i], 1, subparts - 1) local param_value = mw.ustring.sub(parts[i], subparts + 1, -1) -- reconstruct broken links by parts if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then parameters[param_name] = param_value local part_next = i + 1 while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next] part_next = part_next + 1 end else parameters[param_name] = param_value end elseif not mw.ustring.find(parts[i], "]]", 1, true) then table.insert(parameters, parts[i]) end end local braces_expanded if mw.ustring.find(title_part, ":") and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template: then braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters} else braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters} end braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters braces_expanded = captureEscapes(braces_expanded) text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded) end return text end -- format data type math local function printDatatypeMath(data) return mw.getCurrentFrame():callParserFunction('#tag:math', data) end -- format data type musical-notation local function printDatatypeMusical(data, formatting) local attr = {} if formatting == 'sound' then attr.sound = 1 end return mw.getCurrentFrame():extensionTag('score', data, attr) end -- format data type string local function printDatatypeString(data, parameters) if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting) elseif parameters.case then return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id)) end local data_number = string.match(data, "^%d+") if data_number then -- sort key by initial number and remaining string local sortkey = string.format("%019d", data_number * 1000) return data, sortkey .. string.sub(data, #data_number + 1) end return data end -- format data type tabular-data local function printDatatypeTabular(data, parameters) local icon if parameters.formatting == 'raw' then icon = "no-icon" data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data end return printDatatypeString(data, parameters), icon end -- format data type url local function printDatatypeUrl(data, parameters) if parameters.formatting == 'weblink' then local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/') local label = string.gsub(label_parts[3], '^www%.', '') if #label_parts > 3 then label = label .. '…' end return '[' .. data .. ' ' .. label .. ']' end return printDatatypeString(data, parameters) end -- format data type external-id local function printDatatypeExternal(data, parameters) if parameters.formatting == 'externalid' then local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"}) if p_link_pattern then local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data}) return '[' .. p_link .. ' ' .. data .. ']' end end return printDatatypeString(data, parameters) end -- format data type commonsMedia and geo-shape local function printDatatypeMedia(data, parameters) local icon if not string.find((parameters.formatting or ''), '$1', 1, true) then icon = "no-icon" if not string.find(data, '^Data:') then data = mw.uri.encode(data, 'PATH') -- encode special characters in filename end end return printDatatypeString(data, parameters), icon end -- format data type globe-coordinate local function printDatatypeCoordinate(data, formatting) local function globes(globe_id) local globes = {['Q3134']='callisto',['Q596']='ceres',['Q15040']='dione',['Q2']='earth',['Q3303']='enceladus', ['Q3143']='europa',['Q17975']='phoebe',['Q3169']='ganymede',['Q3123']='io',['Q17958']='iapetus', ['Q308']='mercury',['Q15034']='mimas',['Q405']='moon',['Q15050']='rhea',['Q15047']='tethys', ['Q111']='mars',['Q2565']='titan',['Q3359']='triton',['Q313']='venus',['Q3030']='vesta'} return globes[globe_id] end local function roundPrecision(num, prec) if prec == nil or prec <= 0 then return num end local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001 return math.floor(num / sig + 0.5) * sig end local precision = data.precision local latitude = roundPrecision(data.latitude, precision) local longitude = roundPrecision(data.longitude, precision) if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude}) if string.find(formatting, '$globe', 1, true) then local myglobe = 'earth' if isSet(data.globe) then local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2 myglobe = globes(globenum) or 'earth' end ret = mw.ustring.gsub(ret, '$globe', myglobe) end return expandBraces(ret, formatting) elseif formatting == 'latitude' then return latitude, "no-icon" elseif formatting == 'longitude' then return longitude, "no-icon" elseif formatting == 'dimension' then return data.dimension, "no-icon" else --default formatting='globe' if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then return 'earth', "no-icon" else local globenum = mw.text.split(data.globe, 'entity/')[2] return globes(globenum) or globenum, "no-icon" end end end -- Local functions for data value quantity local function unitSymbol(id, lang) -- get unit symbol or code local unit_symbol = '' if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true) end if unit_symbol == '' then -- fetch it local claims = mw.wikibase.getBestStatements(id, 'P5061') if #claims > 0 then local langclaims = {} table.insert(lang, 'mul') -- multilingual as last try for _, snak in ipairs(claims) do local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"}) if snak_language and not langclaims[snak_language] then -- just the first one by language langclaims[snak_language] = snak.mainsnak.datavalue.value.text end end for _, l in ipairs(lang) do if langclaims[l] then return langclaims[l] end end end end return unit_symbol end local function getUnit(amount, id, parameters) -- get unit symbol or name local suffix = '' if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then -- get unit symbol local unit_symbol = unitSymbol(id, parameters.lang) if isSet(unit_symbol) then if string.sub(parameters.formatting or '', -6) == "linked" then suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]" else suffix = unit_symbol end end end if suffix == '' then -- formatting=unit, or formatting=unitcode not found -- get unit label local unit_label, lang = getLabelByLangs(id, parameters.lang) if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false) if string.sub(parameters.formatting or '', -6) == "linked" then suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]" end else suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon) end end if suffix ~= '' then suffix = ' ' .. suffix end return suffix end local function roundDefPrecision(in_num, factor) -- rounds out_num with significant figures of in_num (default precision) local out_num = in_num * factor if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN return out_num end -- first, count digits after decimal mark, handling cases like '12.345e6' local exponent, prec local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)') local e = expstr:sub(1, 1) if e == 'e' or e == 'E' then exponent = tonumber(expstr:sub(2)) end if dot == '' then prec = -integer:match('0*$'):len() else prec = #decimals end if exponent then -- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5. prec = prec - exponent end -- significant figures local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001 local out_bracket = in_bracket * out_num / in_num out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001 -- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound) return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket end -- format data type quantity local function printDatatypeQuantity(data, parameters) local amount = data.amount amount = mw.ustring.gsub(amount, "%+", "") local suffix = "" local conv_amount, conv_suffix if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then local unit_id = data.unit unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1) if string.sub(unit_id, 1, 1) == "Q" then suffix = getUnit(amount, unit_id, parameters) local convert_to if parameters.convert == "default" or parameters.convert == "default2" then local exist, units = pcall(require, wiki.module_title .. "/Units") if exist and units.convert_default and next(units.convert_default) ~= nil then convert_to = units.convert_default[unit_id] end elseif string.sub(parameters.convert or '', 1, 1) == "Q" then convert_to = parameters.convert elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then convert_to = 'Q11574' -- seconds end if convert_to and convert_to ~= unit_id then -- convert units local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'} ['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'}, ['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'}, ['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'} } if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount)) conv_amount = math.floor(tonumber(amount_f) + 0.5) else local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit for _, conv in ipairs(conversions) do if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount)) break end end end end if conv_amount then conv_suffix = getUnit(conv_amount, convert_to, parameters) end elseif parameters.convert == 'M' and tonumber(amount) > 10^8 then conv_amount = math.floor(amount/10^6 + 0.5) conv_suffix = ' M' .. string.sub(suffix, 2) end if conv_amount and parameters.formatting == 'raw' then amount = conv_amount suffix = "" conv_amount = nil end end end local lang_obj = mw.language.new(parameters.lang[1]) local sortkey = string.format("%019d", tonumber(amount) * 1000) if string.sub(parameters.formatting or '', 1, 8) == "duration" then local sec = tonumber(conv_amount or amount) if parameters.formatting == 'duration' then return lang_obj:formatDuration(sec) elseif parameters.formatting == 'durationm:s' then local mm = math.floor(sec / 60) local ss = sec - (mm * 60) return string.format("%02d:%02d", mm, ss) else -- durationhms or durationh:m:s local intervals = {"hours", "minutes", "seconds"} local sec2table = lang_obj:getDurationIntervals(sec, intervals) sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals local duration = '' for i, v in ipairs(intervals) do if parameters.formatting == 'durationh:m:s' then if i == 1 and sec2table[v] then duration = duration .. sec2table[v] .. ":" elseif i == 2 then duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":" elseif i == 3 then local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0)) duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str end elseif sec2table[v] then duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "") end end return duration end end if parameters.case then amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id)) elseif parameters.formatting ~= 'raw' then if parameters.numformat then amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount))) else amount = lang_obj:formatNum(tonumber(amount)) end end if conv_amount then local conv_sortkey = string.format("%019d", conv_amount * 1000) conv_amount = lang_obj:formatNum(conv_amount) if parameters.convert == 'default2' then return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey else return conv_amount .. conv_suffix, conv_sortkey end elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount}) end return amount .. suffix, sortkey end -- format data type time local function printDatatypeTime(data, parameters) -- Dates and times are stored in ISO 8601 format local timestamp = data.time local post_format local calendar_add = "" local precision = data.precision or 11 if string.sub(timestamp, 1, 1) == '-' then post_format = i18n.datetime["bc"] elseif string.sub(timestamp, 2, 3) == '00' then post_format = i18n.datetime["ad"] elseif precision > 8 then -- calendar model local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"} local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2] if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian") or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian") then calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>" end end local function formatTime(form, stamp) local pattern if type(form) == "function" then pattern = form(stamp) else pattern = form end stamp = tostring(stamp) if mw.ustring.find(pattern, "$1") then return mw.ustring.gsub(pattern, "$1", stamp) elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0 stamp = '+' .. string.sub(stamp, 2) elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number stamp = string.format("%04d", stamp) end local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp) ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros ret = string.gsub(ret, "( %[?%[?)0+", "%1") return ret end local function postFormat(t) if post_format and mw.ustring.find(post_format, "$1") then return mw.ustring.gsub(post_format, "$1", t) end return t end local intyear = tonumber(string.match(timestamp, "[+-](%d+)")) local ret = "" if precision <= 5 then -- precision is 10000 years or more local factor = 10 ^ ((5 - precision) + 4) local y2 = math.ceil(math.abs(intyear) / factor) local relative = formatTime(i18n.datetime[precision], y2) if post_format == i18n.datetime["bc"] then ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative) else ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative) end local ret_number = string.match(ret, "%d+") if ret_number ~= nil then ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number))) end elseif precision == 6 or precision == 7 then -- millennia or centuries local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1 ret = formatTime(i18n.datetime[precision], card) ret = postFormat(ret) elseif precision == 8 then -- decades local card = math.floor(math.abs(intyear) / 10) * 10 ret = formatTime(i18n.datetime[8], card) ret = postFormat(ret) elseif intyear > 9999 then -- not a valid timestamp return elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year ret = formatTime(i18n.datetime[9], intyear) ret = postFormat(ret) .. calendar_add elseif precision == 10 then -- month ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month ret = postFormat(ret) .. calendar_add else -- precision 11, day ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp) ret = postFormat(ret) .. calendar_add end return ret, timestamp end -- format data value wikibase-entityid with data types wikibase-item or wikibase-property local function printDatatypeEntity(data, parameters) local entity_id = data['id'] if parameters.formatting == 'raw' then return entity_id, entity_id end local entity_page = 'Special:EntityPage/' .. entity_id local label, lang = getLabelByLangs(entity_id, parameters.lang) local sitelink = mw.wikibase.getSitelink(entity_id) local parameter = parameters.formatting local labelcase = label or sitelink if parameters.gender == 'feminineform' then labelcase = feminineForm(entity_id, lang) or labelcase end if parameters.case ~= 'gender' then labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id) end if labelcase == nil and i18n.qidlabels == false then return end local ret1, ret2 if parameter == 'label' then ret1 = labelcase or entity_id ret2 = labelcase or entity_id elseif parameter == 'sitelink' then ret1 = (sitelink or 'd:' .. entity_page) ret2 = sitelink or entity_id elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id) ret1 = expandBraces(ret1, parameter) ret2 = labelcase or entity_id else if parameter == "ucfirst" or parameter == "ucinternallink" then if labelcase and lang then labelcase = mw.language.new(lang):ucfirst(labelcase) end -- only first of a list, reset formatting for next ones if parameter == "ucinterlanllink" then parameters.formatting = 'internallink' else parameters.formatting = nil -- default format end end if sitelink then ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]' ret2 = labelcase elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then ret1 = '[[' .. label .. '|' .. labelcase .. ']]' ret2 = labelcase else ret1 = '[[d:' .. entity_page .. '|<span style="color:#5f9cbb;">' .. (labelcase or entity_id) .. '</span>]]' ret2 = labelcase or entity_id end end return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2 end -- format data type wikibase-lexeme local function printDatatypeLexeme(data, parameters) local entity_id = data['id'] if parameters.formatting == 'raw' then return entity_id, entity_id end local lemmas = mw.wikibase.getEntity(entity_id):getLemmas() if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then return end local ret = '[[d:Special:EntityPage/' .. entity_id .. '|<span style="color:#5f9cbb;">' .. lemmas[1][1] .. '</span>]]' if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>" end return ret, entity_id end -- format data type monolingualtext local function printDatatypeMonolingual(data, parameters) -- data fields: language [string], text [string] if parameters.list == "lang" and data["language"] ~= parameters.lang[1] then return elseif parameters.list == "notlang" and data["language"] == parameters.lang[1] then return elseif parameters.formatting == "language" or parameters.formatting == "text" then return data[parameters.formatting] end local result = data["text"] if data["language"] ~= wiki.langcode then result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]}) end if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then -- output format defined with $text, $language result = mw.ustring.gsub(parameters.formatting, '$text', result) result = mw.ustring.gsub(result, '$language', data["language"]) end return result end local function getSnakValue(snak, parameters) parameters.editbridge = false if snak.snaktype == 'value' then -- see Special:ListDatatypes -- data value string if snak.datatype == "string" then parameters.editbridge = true -- Wikidata Bridge currently only string values return printDatatypeString(snak.datavalue.value, parameters) elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then return printDatatypeMedia(snak.datavalue.value, parameters) elseif snak.datatype == "tabular-data" then return printDatatypeTabular(snak.datavalue.value, parameters) elseif snak.datatype == "url" then return printDatatypeUrl(snak.datavalue.value, parameters) elseif snak.datatype == "external-id" then return printDatatypeExternal(snak.datavalue.value, parameters) elseif snak.datatype == 'math' then return printDatatypeMath(snak.datavalue.value) elseif snak.datatype == 'musical-notation' then return printDatatypeMusical(snak.datavalue.value, parameters.formatting) -- data types other than string value elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then if i18n.suppress[snak.datavalue.value.id] then return end return printDatatypeEntity(snak.datavalue.value, parameters) elseif snak.datatype == 'wikibase-lexeme' then return printDatatypeLexeme(snak.datavalue.value, parameters) elseif snak.datatype == 'monolingualtext' then return printDatatypeMonolingual(snak.datavalue.value, parameters) elseif snak.datatype == "globe-coordinate" then return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting) elseif snak.datatype == "quantity" then return printDatatypeQuantity(snak.datavalue.value, parameters) elseif snak.datatype == "time" then return printDatatypeTime(snak.datavalue.value, parameters) end elseif snak.snaktype == 'novalue' then if parameters.formatting == 'raw' or parameters.shownovalue == false then return end return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain() elseif snak.snaktype == 'somevalue' then if parameters.formatting == 'raw' then return end return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain() end return mw.wikibase.renderSnak(snak) end local function printError(key) return '<span class="error">' .. i18n.errors[key] .. '</span>' end local function getQualifierSnak(claim, qualifierId, parameters) -- a "snak" is Wikidata terminology for a typed key/value pair -- a claim consists of a main snak holding the main information of this claim, -- as well as a list of attribute snaks and a list of references snaks if qualifierId then -- search the attribute snak with the given qualifier as key if claim.qualifiers then local qualifier = claim.qualifiers[qualifierId] if qualifier then if qualifier[1].datatype == "monolingualtext" then -- iterate over monolingualtext qualifiers to get local language for idx in pairs(qualifier) do if getSnak(qualifier[idx], {"datavalue", "value", "language"}) == parameters.lang[1] then return qualifier[idx] end end elseif parameters.list then return qualifier else return qualifier[1] end end end return nil, printError("qualifier-not-found") else -- otherwise return the main snak return claim.mainsnak end end local function getValueOfClaim(claim, qualifierId, parameters) local snak, error = getQualifierSnak(claim, qualifierId, parameters) if not snak then return nil, nil, error elseif snak[1] then -- a multi qualifier local result, sortkey = {}, {} local maxvals = tonumber(parameters.listmax) for idx in pairs(snak) do result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters) if maxvals and maxvals == #result then break end end return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1] else -- a property or a qualifier return getSnakValue(snak, parameters) end end local function getValueOfParentClaim(claim, qualifierId, parameters) local qids = mw.text.split(qualifierId, '/', true) local value, sortkey, valueraw = {}, {}, {} local parent_raw, value_text if qids[1] == parameters.property then parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang}) else parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'}) end if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value' local parent_qids = mw.text.split(parent_raw, '/', true) for idx, p_qid in ipairs(parent_qids) do local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2]) if parent_claims[1] then value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters) -- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang}) end end end if value[1] then value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction) end return value_text, sortkey[1], valueraw[1] end -- see d:Help:Sources local function getReferences(claim, parameters) if not (parameters.references or parameters.onlysourced) then return '', false end local lang = parameters.lang local maxrefs = tonumber(parameters.references) or 1 local notproperref = { ["P143"] = true, -- imported from ["P3452"] = true, -- inferred from ["P887"] = true, -- based on heuristic ["P4656"] = true -- Wikimedia import URL } local result = {} -- traverse through all references for ref in pairs(claim.references or {}) do local refparts local refs = {} local validref = true local ref_id -- traverse through all parts of the current reference for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do if notproperref[snakkey] then -- not a proper reference validref = false break end end if validref then for snakidx = 1, #snakval do if snakidx > 1 then refparts = refparts .. ", " end if snakval[snakidx].datatype == 'external-id' then refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '') else refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '') end end refs[snakkey] = refparts refparts = nil if snakkey == "P248" then -- stated in ref_id = getSnak(snakval, {1, "datavalue", "value", "id"}) end end end -- fill missing values with parent item if ref_id then local function refParent(qid, pid, formatting) local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"}) return snak and getSnakValue(snak, {formatting=formatting, lang=lang}) end refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s) refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI end -- get title of local templates for citing references local template_web = mw.wikibase.getSitelink('Q5637226') or "" template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front local template_journal = mw.wikibase.getSitelink('Q5624899') or "" template_journal = mw.text.split(template_journal, ":")[2] local citeParams = {} if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then -- if both "reference URL" and "title" (or "stated in") are present, then use cite web template citeParams[i18n['cite']['url']] = refs['P854'] if refs['P248'] and refs['P1476'] == nil then citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]") else citeParams[i18n['cite']['title']] = refs['P1476'] citeParams[i18n['cite']['website']] = refs['P248'] end citeParams[i18n['cite']['author']] = refs['P50'] citeParams[i18n['cite']['language']] = refs['P407'] citeParams[i18n['cite']['publisher']] = refs['P123'] citeParams[i18n['cite']['date']] = refs['P577'] citeParams[i18n['cite']['pages']] = refs['P304'] citeParams[i18n['cite']['access-date']] = refs['P813'] citeParams[i18n['cite']['archive-url']] = refs['P1065'] citeParams[i18n['cite']['archive-date']] = refs['P2960'] citeParams[i18n['cite']['quote']] = refs['P1683'] refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams} elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then -- if both "published in" and "title" (or "stated in") are present, then use cite journal template citeParams[i18n['cite']['work']] = refs['P1433'] citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248'] citeParams[i18n['cite']['author']] = refs['P50'] citeParams[i18n['cite']['date']] = refs['P577'] citeParams[i18n['cite']['issue']] = refs['P433'] citeParams[i18n['cite']['pages']] = refs['P304'] citeParams[i18n['cite']['language']] = refs['P407'] citeParams[i18n['cite']['issn']] = refs['P236'] citeParams[i18n['cite']['doi']] = refs['P356'] refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams} elseif validref then -- raw ouput local snaksorder = claim.references[ref]["snaks-order"] local function indexed(a) for _, b in ipairs(snaksorder) do if b == a then return true end end return false end for k, _ in pairs(refs or {}) do if not indexed(k) then table.insert(snaksorder, k) end end local italics = "''" for _, k in ipairs(snaksorder) do if refs[k] then refparts = refparts and refparts .. " " or "" refparts = refparts .. mw.ustring.gsub(getLabelByLangs(k, lang), "^%l", mw.ustring.upper) .. ": " refparts = refparts .. italics .. refs[k] .. italics .. "." italics = "" end end end if refparts then local ref_name = claim.references[ref].hash result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name}) if maxrefs and maxrefs == #result then break end end end if #result > 0 then if parameters.references then if isSet(i18n.categoryref) then result[#result + 1] = "[[" ..i18n.categoryref .. "]]" end return table.concat(result), true else return '', true end end return '', false end -- Set whitelist or blacklist values local function setWhiteOrBlackList(num_qual, args) local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}} for i = 0, num_qual do for k, _ in pairs(lists) do if isSet(args[k .. i]) then lists[k][tostring(i)] = {} local pattern = 'Q%d+' if string.sub(args[k .. i], 1, 1) ~= 'Q' then pattern = '[^%p%s]+' end for q in string.gmatch(args[k .. i], pattern) do lists[k][tostring(i)][q] = true end end end end return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue'] end local function tableParameters(args, parameters, column) local column_params = mw.clone(parameters) column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end column_params.convert = args["convert" .. column] if args["case" .. column] then column_params.case = args["case" .. column] end return column_params end local function getEntityId(args, pargs, unnamed) pargs = pargs or {} local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil) if not isSet(id) then id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil) end if isSet(id) then if string.find(id, ":") then -- remove prefix as Property:Pid id = mw.text.split(id, ":")[2] end else id = mw.wikibase.getEntityIdForCurrentPage() end return id end local function getArg(value, default, aliases) if type(value) == 'boolean' then return value elseif value == "false" or value == "no" then return false elseif value == "true" or value == "yes" then return true elseif value and aliases and aliases[value] then return aliases[value] elseif isSet(value) then return value elseif default then return default else return nil end end -- Main function claim --------------------------------------------- -- on debug console use: =p.claim{item="Q...", property="P...", ...} function p.claim(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local is_sandbox = isSet(pargs.sandbox) if not required and is_sandbox then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame) end --If a value is already set, use it if isSet(args.value) then if args.value == 'NONE' then return else return args.value end end -- arguments local parameters = {} parameters.id = getEntityId(args, pargs) if parameters.id == nil then return end parameters.property = string.upper(args.property or "") local qualifierId = {} qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or "")) local i = 2 while isSet(args["qualifier" .. i]) do qualifierId[i] = string.upper(args["qualifier" .. i]) i = i + 1 end parameters.formatting = getArg(args.formatting) parameters.convert = getArg(args.convert) parameters.numformat = getArg(args.numformat) parameters.case = args.case parameters.list = getArg(args.list, true, {firstrank='bestrank'}) parameters.listmax = args.listmax parameters.listrank = getArg(args.listrank) if type(parameters.list) == "number" then -- backwards compatibility parameters.listmax = parameters.listmax or parameters.list parameters.list = true elseif parameters.list == "bestrank" then parameters.listrank = parameters.listrank or "bestrank" parameters.list = true end parameters.shownovalue = getArg(args.shownovalue, true) parameters.separator = getArg(args.separator) parameters.conjunction = getArg(args.conjunction, parameters.separator) parameters.qseparator = getArg(args.qseparator, parameters.separator) parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction) local sorting_col = args.tablesort local sorting_up = (args.sorting or "") ~= "-1" local rowformat = args.rowformat parameters.references = getArg(args.references, false) parameters.onlysourced = getArg(args.onlysourced, false) local showerrors = args.showerrors local default = args.default if default then showerrors = nil end parameters.lang = findLang(args.lang) if parameters.formatting == "raw" then parameters.editicon, parameters.labelicon = false, false else parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand end -- fetch property local claims = {} local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang' for p in string.gmatch(parameters.property, 'P%d+') do claims = getStatements(parameters.id, p, bestrank) if #claims > 0 then parameters.property = p break end end if #claims == 0 then local ret = showerrors and printError("property-not-found") or default return ret, args.query == 'num' and 0 or '' end -- defaults for table local preformat, postformat = "", "" local whitelisted = false local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {} if parameters.formatting == "table" then parameters.separator = parameters.separator or "<br />" parameters.conjunction = parameters.conjunction or "<br />" parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()) parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator) if not rowformat then rowformat = "$0 ($1" i = 2 while qualifierId[i] do rowformat = rowformat .. ", $" .. i i = i + 1 end rowformat = rowformat .. ")" elseif mw.ustring.find(rowformat, "^[*#]") then parameters.separator = "</li><li>" parameters.conjunction = "</li><li>" if mw.ustring.match(rowformat, "^[*#]") == "*" then preformat = "<ul><li>" postformat = "</li></ul>" else preformat = "<ol><li>" postformat = "</li></ol>" end rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "") end -- set whitelist and blacklist values whitelist, blacklist, ignorevalue, selectvalue = setWhiteOrBlackList(#qualifierId, args) local next = next if next(whitelist) ~= nil then whitelisted = true end end -- set feminine case if gender is requested local itemgender = args.itemgender local idgender if itemgender then if string.match(itemgender, "^P%d+$") then local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"}) if snak_id then idgender = snak_id end elseif string.match(itemgender, "^Q%d+$") then idgender = itemgender end end local gender_requested = false if parameters.case == "gender" or idgender then gender_requested = true elseif parameters.formatting == "table" then for i=0, #qualifierId do if args["case" .. i] and args["case" .. i] == "gender" then gender_requested = true break end end end if gender_requested then if feminineGender(idgender or parameters.id) then parameters.gender = "feminineform" end end -- get initial sort indices local sortindices = {} for idx in pairs(claims) do sortindices[#sortindices + 1] = idx end -- sort by claim rank local comparator = function(a, b) local rankmap = { deprecated = 2, normal = 1, preferred = 0 } local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a) local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b) return ranka < rankb end table.sort(sortindices, comparator) local result, result2, result_query local error if parameters.list or parameters.formatting == "table" then -- convert LF to line feed, <br /> may not work on some cases parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction -- i18n separators parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain() parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain()) -- iterate over all elements and return their value (if existing) local value, valueq local sortkey, sortkeyq local values = {} local sortkeys = {} local refs = {} local rowlist = {} -- rows to list with whitelist or blacklist for idx in pairs(claims) do local claim = claims[sortindices[idx]] local reference = {} if not whitelisted then rowlist[idx] = true end if parameters.formatting == "table" then local params = tableParameters(args, parameters, "0") value, sortkey, error = getValueOfClaim(claim, nil, params) if value then values[#values + 1] = {} sortkeys[#sortkeys + 1] = {} refs[#refs + 1] = {} if whitelist["0"] or blacklist["0"] then local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang}) if whitelist["0"] and whitelist["0"][valueraw or ""] then rowlist[#values] = true elseif blacklist["0"] and blacklist["0"][valueraw or ""] then rowlist[#values] = false end end for i, qual in ipairs(qualifierId) do local j = tostring(i) params = tableParameters(args, parameters, j) local valueq, sortkeyq, valueraw if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params) else for q in mw.text.gsplit(qual, '%s*OR%s*') do if string.find(q, ".+/.+") then valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params) elseif string.find(q, "^/.+") then local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank) if #claim2 > 0 then -- only first value of a property as alternative to a qualifier -- multiple values may not be related to a given raw of the table valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params) end else valueq, sortkeyq, _ = getValueOfClaim(claim, q, params) end if valueq then qual = q break end end end values[#values]["col" .. j] = valueq sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang}) if whitelist[j] and whitelist[j][valueq or ""] then rowlist[#values] = true elseif blacklist[j] and blacklist[j][valueq or ""] then rowlist[#values] = false elseif ignorevalue[j] and ignorevalue[j][valueq or ""] then values[#values]["col" .. j] = nil elseif selectvalue[j] and not selectvalue[j][valueq or ""] then values[#values]["col" .. j] = nil end end end end else value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters) values[#values + 1] = {} sortkeys[#sortkeys + 1] = {} refs[#refs + 1] = {} end if not value and showerrors then value = error end if value then if (parameters.references or parameters.onlysourced) and claim.references then reference = claim.references end refs[#refs]["col0"] = reference values[#values]["col0"] = value sortkeys[#sortkeys]["col0"] = sortkey or value end end -- sort and format results sortindices = {} for idx in pairs(values) do sortindices[#sortindices + 1] = idx end if sorting_col then local sorting_table = mw.text.split(sorting_col, '%D+') local comparator = function(a, b) local valuea, valueb local i = 1 while valuea == valueb and i <= #sorting_table do valuea = sortkeys[a]["col" .. sorting_table[i]] or '' valueb = sortkeys[b]["col" .. sorting_table[i]] or '' i = i + 1 end if sorting_up then return valueb > valuea end return valueb < valuea end table.sort(sortindices, comparator) end local maxvals = tonumber(parameters.listmax) result = {} for idx in pairs(values) do local valuerow = values[sortindices[idx]] local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters) value = valuerow["col0"] if parameters.formatting == "table" then if not rowlist[sortindices[idx]] then value = nil else local rowformatting = rowformat .. "$" -- fake end character added for easy gsub value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value}) value = mw.ustring.gsub(value, "$R0", reference) -- add reference for i, _ in ipairs(qualifierId) do local valueq = valuerow["col" .. i] if args["rowsubformat" .. i] and isSet(valueq) then -- add fake end character $ -- gsub $i not followed by a number so $1 doesn't match $10, $11... -- remove fake end character valueq = captureEscapes(valueq) valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1") valueq = string.sub(valueq, 1, -2) rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1") end valueq = valueq and captureEscapes(valueq) or '' value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1") end value = string.sub(value, 1, -2) -- remove fake end character value = expandBraces(value, rowformatting) end elseif value then value = expandBraces(value, parameters.formatting) value = value .. reference end if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then result[#result + 1] = value if not parameters.list or (maxvals and maxvals == #result) then break end end end if args.query == 'num' then result_query = #result end if #result > 0 then if parameters.formatting == 'table' then result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element end result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat else result = '' end else -- return first element local claim = claims[sortindices[1]] result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters) if result then local ref, valid_ref = getReferences(claim, parameters) if parameters.onlysourced and valid_ref == false then result = nil else result = result .. ref end end if args.query == 'num' then result_query = result and 1 or 0 end end if isSet(result) then if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then -- add edit icon, except table added previously and except explicit no-icon internal flag result = result .. addEditIcon(parameters) end else if showerrors then result = error else result = default end end if args.query == 'untranslated' and required and not is_sandbox then result_query = untranslated end return result, result_query or '' end -- Local functions for getParentValues ----------------------- local function uc_first(word) if word == nil then return end return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2) end local function getPropertyValue(id, property, parameter, langs, labelicon, case) local snaks = mw.wikibase.getBestStatements(id, property) local mysnak = getSnak(snaks, {1, "mainsnak"}) if mysnak == nil then return end local entity_id local result = '-' -- default for 'no value' if mysnak.datavalue then entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id']) result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case}) end return entity_id, result end local function getParentObjects(id, prop_format, label_format, languages, propertySupString, propertyLabel, propertyLink, label_show, labelicon0, labelicon1, upto_number, upto_label, upto_value, last_only, grammatical_case, include_self) local propertySups = mw.text.split(propertySupString, '[^P%d]') local maxloop = 10 if upto_number then maxloop = tonumber(upto_number) elseif next(upto_label) or next(upto_value) then maxloop = 50 end local labels_filter = next(label_show) local result = {} local id_value = id for iter = 1, maxloop do local link, label, labelwicon, linktext, id_label for _, propertySup in pairs(propertySups) do local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case) if _id_value and _link then id_value = _id_value; link = _link break end end if not id_value or not link then break end if propertyLink then _, linktext = getPropertyValue(id_value, propertyLink, "label", languages) if linktext then link = mw.ustring.gsub(link, "%[%[(.*)%|.+%]%]", "[[%1|" .. linktext .. "]]") end end id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel") if labelicon0 then _, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel") else labelwicon = label end if labels_filter == nil or (label_show[id_label] or label_show[label]) then result[#result + 1] = {labelwicon, link} label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found end if upto_label[id_label] or upto_label[label] or upto_value[id_value] then break end end if last_only then result = {result[#result]} end if include_self then local label_self, link_self _, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel") link_self, _ = getLabelByLangs(id, languages) table.insert(result, 1, {label_self, link_self}) end return result end local function parentObjectsToString(result, rowformat, cascade, sorting) local ret = {} local first = 1 local last = #result local iter = 1 if sorting == "-1" then first = #result; last = 1; iter = -1 end for i = first, last, iter do local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]}) ret[#ret + 1] = expandBraces(rowtext, rowformat) end if cascade then local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left" local suffix = "" for i = 1, #ret do ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i] suffix = suffix .. '</li></ul>' end ret[#ret] = ret[#ret] .. suffix end return ret end -- Returns pairs of parent label and property value fetching a recursive tree function p.getParentValues(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} if not required and isSet(pargs.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame) end local id = getEntityId(args, pargs) if id == nil then return end local languages = findLang(args.lang) local propertySup = getArg(args.property, "P131") --administrative entity local propertyLabel = getArg(args.label, "P31") --instance local propertyLink = getArg(args.valuetext) local property_format = getArg(args.formatting) local label_format = getArg(args.labelformat, "label") local upto_number = getArg(args.upto) local last_only = getArg(args.last_only, false) local editicon, labelicon = setIcons(args.editicon, pargs.editicon) local include_self = getArg(args.include_self, false) local case = getArg(args.case) local upto_label = {} for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do upto_label[q] = true end if type(upto_number) == 'string' then upto_label[uc_first(upto_number)] = true upto_number = nil end local upto_value = {} for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do upto_value[q] = true end local label_show = {} for q in string.gmatch(args.showlabelid or '', 'Q%d+') do label_show[q] = true end for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do if v ~= '' then label_show[uc_first(v)] = true end end local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end local labelicon0, labelicon1 = labelicon, labelicon if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then labelicon0 = false end local result = getParentObjects(id, property_format, label_format, languages, propertySup, propertyLabel, propertyLink, label_show, labelicon0, labelicon1, upto_number, upto_label, upto_value, last_only, case, include_self) if #result == 0 then return end local separator = args.separator; if not isSet(separator) then separator = "<br />" end local sorting = args.sorting; if sorting == "" then sorting = nil end local cascade = (args.cascade == "true" or args.cascade == "yes") local ret = parentObjectsToString(result, rowformat, cascade, sorting) ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages}) return mw.text.listToText(ret, separator, separator) end -- Link with a parent label -------------------- function p.linkWithParentLabel(frame) local pargs = frame.args and frame:getParent().args or {} if not required and isSet(pargs.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame) end local args = {} if frame.args then for k, v in pairs(frame.args) do -- metatable args[k] = v end else args = frame -- via require end if isSet(args.value) then return args.value end -- get id value of property/qualifier local largs = mw.clone(args) largs.list = tonumber(args.list) and args.list or true largs.formatting = "raw" largs.separator = "/·/" largs.editicon = false local items_list, _ = p.claim(largs) if not isSet(items_list) then return end local items_table = mw.text.split(items_list, "/·/", true) -- get internal link of property/qualifier largs.formatting = "internallink" local link_list, _ = p.claim(largs) local link_table = mw.text.split(link_list, "/·/", true) -- get label of parent property local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"}) if parent_claim == 'monolingualtext' then largs.formatting = nil largs.list = 'lang' else largs.formatting = "label" largs.list = false end largs.property = args.parent largs.qualifier = nil for i, v in ipairs(items_table) do largs.item = v local link_label, _ = p.claim(largs) if isSet(link_label) then link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]") end end args.editicon, _ = setIcons(args.editicon, pargs.editicon) args.id = getEntityId(args, pargs) args.lang = findLang(args.lang) return mw.text.listToText(link_table) .. addEditIcon(args) end -- Calculate number of years old ---------------------------- function p.yearsOld(frame) if not required and frame.args and isSet(frame:getParent().args.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame) end local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local id = getEntityId(args, pargs) if id == nil then return end local lang = mw.language.new('en') local function getBestValue(id, prop) return getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak", "datavalue", "value"}) end local birth = getBestValue(id, 'P569') if type(birth) ~= 'table' or birth.time == nil or birth.precision == nil or birth.precision < 8 then return end local death = getBestValue(id, 'P570') if type(death) ~= 'table' or death.time == nil or death.precision == nil then death = {['time'] = lang:formatDate('c'), ['precision'] = 11} -- current date elseif death.precision < 8 then return end local dates = {} dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision} dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+")) dates[1].min.month = tonumber(mw.ustring.match(birth.time, "\-(%d%d)\-")) dates[1].min.day = tonumber(mw.ustring.match(birth.time, "\-(%d%d)T")) dates[1].max = mw.clone(dates[1].min) dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision} dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+")) dates[2].min.month = tonumber(mw.ustring.match(death.time, "\-(%d%d)\-")) dates[2].min.day = tonumber(mw.ustring.match(death.time, "\-(%d%d)T")) dates[2].max = mw.clone(dates[2].min) for i, d in ipairs(dates) do if d.precision == 10 then -- month d.min.day = 1 local timestamp = string.format("%04d", tostring(math.abs(d.max.year))) .. string.format("%02d", tostring(d.max.month)) .. "01" d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day")) elseif d.precision < 10 then -- year or decade d.min.day = 1 d.min.month = 1 d.max.day = 31 d.max.month = 12 if d.precision == 8 then -- decade d.max.year = d.max.year + 9 end end end local function age(d1, d2) local years = d2.year - d1.year if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then years = years - 1 end if d2.year > 0 and d1.year < 0 then years = years - 1 -- no year 0 end return years end local old_min = age(dates[1].max, dates[2].min) local old_max = age(dates[1].min, dates[2].max) local old, old_expr if old_min == 0 and old_max == 0 then old = "< 1" old_max = 1 -- expression in singular elseif old_min == old_max then old = old_min else old = old_min .. "/" .. old_max end if args.formatting == 'unit' then local langs = findLang(args.lang) local yo local yo_pl = {} if langs[1] == wiki.langcode then yo_pl = i18n["years-old"] end if not isSet(yo_pl[2]) then local yo_label, _ = getLabelByLangs('Q24564698', langs) yo_pl = {yo_label, yo_label} end yo = mw.language.new(langs[1]):plural(old_max, yo_pl) if mw.ustring.find(yo, '$1', 1, true) then old_expr = mw.ustring.gsub(yo, "$1", old) else old_expr = old .. '&nbsp;' .. yo end elseif args.formatting then old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting) else old_expr = old end return old_expr end -- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked. function p.getLabel(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} if not required and isSet(pargs.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame) end local id = getEntityId(args, pargs, 1) if id == nil then return end local languages = findLang(args.lang) local labelicon = false if mw.wikibase.isValidEntityId(id) then _, labelicon = setIcons(args.editicon, pargs.editicon) end local label_icon = '' local label, lang if args.label then label = args.label else -- exceptions or labels fixed local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1])) if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then label = labels.infoboxLabelsFromId[id] end if label == nil then label, lang = getLabelByLangs(id, languages) if label then if isSet(args.itemgender) and feminineGender(args.itemgender) then label = feminineForm(id, lang) or label end label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize if args.case then label = case(args.case, label, lang) end end label_icon = addLabelIcon(id, lang, languages[1], labelicon) end end local linked = args.linked local ret2 = required and untranslated or '' if isSet(linked) and linked ~= "no" then local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id) return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2 else return (label or id) .. label_icon, ret2 end end -- Utilities ----------------------------- -- See also module ../debug. -- Copied from Module:Wikibase function p.getSiteLink(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local id = getEntityId(args, pargs, 1) if id == nil then return end return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or '')) end -- Helper function for the default language code used function p.lang(frame) local lang = frame and frame.args[1] -- nil via require return findLang(lang)[1] end -- Number of statements function p.numStatements(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local id = getEntityId(args, pargs) if id == nil then return 0 end local prop = mw.text.trim(args[1] or '') local num = {} if not isSet(prop) then local largs = {} for k, v in pairs(pargs) do largs[k] = v end for k, v in pairs(args) do largs[k] = v end largs.query = 'num' _, num = p.claim(largs) return num elseif args[2] then -- qualifier local qual = mw.text.trim(args[2]) local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'} if values then num = mw.text.split(values, '/·/') end else num = mw.wikibase.getBestStatements(id, prop) end return #num end -- Returns true if property datavalue is found excluding novalue/somevalue function p.validProperty(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local item = getEntityId(args, pargs) if item == nil then return end local property = mw.text.trim(args[1]) local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"}) return prop_data and true or nil end function p.editAtWikidata(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local value = isSet(args[1]) if value then return end local param = {} param.id = getEntityId(args, pargs) param.property = args.property param.lang = findLang(args.lang) param.editicon, _ = setIcons(args.editicon) return addEditIcon(param) end function p.formatNum(frame) local num = tonumber(mw.text.trim(frame.args[1])) local lang = findLang(mw.text.trim(frame.args[2])) return mw.language.new(lang[1]):formatNum(num) end return p 1zfn0twj3cx3auqh4r0zks7fg8aux8g 4157202 4157201 2026-10-23T21:41:43Z Frodlekis 762 Frodlekis flyttade sidan [[Modul:wikidata]] till [[Modul:Wikidata]] utan att lämna en omdirigering 4157201 Scribunto text/plain -- Svensk port av den katalanska Modul:Wikidata, version 20220818. local p = {} -- Initiering av variabler -------------------- local i18n = { -- internationalisation at [[Module:Wikidata/i18n]] ["errors"] = { ["property-not-found"] = "Egenskapen hittades inte.", ["qualifier-not-found"] = "Kvalificeraren hittades inte.", }, ["datetime"] = { -- $1 is a placeholder for the actual number ["beforenow"] = "$1 f.Kr.", -- how to format negative numbers for precisions 0 to 5 ["afternow"] = "$1 e.Kr.", -- how to format positive numbers for precisions 0 to 5 ["bc"] = "$1 f.Kr.", -- how print negative years ["ad"] = "$1 e.Kr.", -- how print 1st century AD dates [0] = "$1 miljard år", -- precision: billion years [1] = "$100 miljoner år", -- precision: hundred million years [2] = "$10 miljoner år", -- precision: ten million years [3] = "$1 miljon år", -- precision: million years [4] = "$100 000 år", -- precision: hundred thousand years; thousand separators added afterwards [5] = "$10 000 år", -- precision: ten thousand years; thousand separators added afterwards [6] = "$1 årtusende", -- precision: millennium [7] = "$1 århundrade", -- precision: century [8] = "$1-talet", -- precision: decade -- the following use the format of #time parser function [9] = "Y", -- precision: year, [10] = "F Y", -- precision: month [11] = "j F Y", -- precision: day ["hms"] = {["hours"] = "h", ["minutes"] = "m", ["seconds"] = "s"}, -- duration: xh xm xs }, ["years-old"] = {"år", "år"}, -- year(s) old, as in {{PLURAL:$1|singular|plural}} -- two values for most languages, up to six values for some languages -- see documentation of PLURAL magic word in your language, examples: -- ["years-old"] = {"singular", "paucal", "plural"} in Russian and other Slavic languages -- ["years-old"] = {"zero", "one", "two", "few 3-10", "many 11-99", "other 100-102"} in Arabic ["cite"] = { -- cite parameters ["title"] = "title", ["author"] = "author", ["date"] = "date", ["pages"] = "pages", ["language"] = "language", -- cite web parameters ["url"] = "url", ["website"] = "website", ["access-date"] = "access-date", ["archive-url"] = "archive-url", ["archive-date"] = "archive-date", ["publisher"] = "publisher", ["quote"] = "quote", -- cite journal parameters ["work"] = "work", ["issue"] = "issue", ["issn"] = "issn", ["doi"] = "doi" }, -- svenska Wiktionary-inställningar ["addpencil"] = false, -- lägger till en redigeringslänk till Wikidata, planned to overwrite by Wikidata Bridge ["categorylabels"] = "", -- tomt om ingen lokal spårningskategori används ["categoryprop"] = "", -- tomt om ingen lokal spårningskategori används ["categoryref"] = "", -- tomt om ingen lokal spårningskategori används ["addfallback"] = {}, -- additional fallback language codes ["suppressids"] = {}, -- list of Qid values to suppress ["qidlabels"] = true -- show labels as Qid if no fallback translation is available } local cases = {} -- functions for local grammatical cases defined at [[Module:Wikidata/i18n]] local required = ... -- variadic arguments from require function local wiki = { langcode = mw.language.getContentLanguage().code, module_title = required or mw.getCurrentFrame():getTitle() } local untranslated -- used in infobox modules: nil or true local _ -- variable for unused returned values, avoiding globals -- Modulens lokala funktioner -------------------------------------------- -- Credit to http://stackoverflow.com/a/1283608/2644759, cc-by-sa 3.0 local function tableMerge(t1, t2) for k, v in pairs(t2) do if type(v) == "table" then if type(t1[k] or false) == "table" then tableMerge(t1[k] or {}, t2[k] or {}) else t1[k] = v end else t1[k] = v end end return t1 end local function loadI18n(lang) local exist, res = pcall(require, wiki.module_title .. "/i18n") if exist and next(res) ~= nil then tableMerge(i18n, res.i18n) cases = res.cases end if lang ~= wiki.langcode then exist, res = pcall(require, wiki.module_title .. "/i18n/" .. lang) if exist and next(res) ~= nil then tableMerge(i18n, res.i18n) tableMerge(cases, res.cases) end end i18n.suppress = {} for _, id in ipairs(i18n.suppressids) do i18n.suppress[id] = true end end -- Table of language codes: requested or default and its fallbacks local function findLang(langcode) if mw.language.isKnownLanguageTag(langcode or '') == false then local cframe = mw.getCurrentFrame() local pframe = cframe:getParent() langcode = pframe and pframe.args.lang if mw.language.isKnownLanguageTag(langcode or '') == false then if not mw.title.getCurrentTitle().isContentPage then langcode = cframe:preprocess('{{int:lang}}') end if mw.language.isKnownLanguageTag(langcode or '') == false then langcode = wiki.langcode end end end loadI18n(langcode) local languages = mw.language.getFallbacksFor(langcode) table.insert(languages, 1, langcode) if langcode == wiki.langcode then for _, l in ipairs(i18n.addfallback) do table.insert(languages, l) end end return languages end -- Argument is 'set' when it exists (not nil) or when it is not an empty string. local function isSet(var) return not (var == nil or (type(var) == 'string' and mw.text.trim(var) == '')) end -- Set local case to a label local function case(localcase, label, ...) if not isSet(label) then return label end if type(localcase) == "function" then return localcase(label) elseif localcase == "smallcaps" then return '<span style="font-variant: small-caps;">' .. label .. '</span>' elseif cases[localcase] then return cases[localcase](label, ...) end return label end -- get safely a serialized snak local function getSnak(statement, snaks) local ret = statement for i, v in ipairs(snaks) do if not ret then return end ret = ret[v] end return ret end -- mw.wikibase.getLabelWithLang or getLabelByLang with a table of languages local function getLabelByLangs(id, languages) local label local lang for _, l in ipairs(languages) do if l == wiki.langcode then -- using getLabelWithLang when possible instead of getLabelByLang label, l = mw.wikibase.getLabelWithLang(id) else label = mw.wikibase.getLabelByLang(id, l) end if label then lang = l break end end return label, lang end -- getBestStatements if bestrank=true, else getAllStatements with no deprecated local function getStatements(entityId, property, bestrank) local claims = {} if not (entityId and mw.ustring.match(property, "^P%d+$")) then return claims end if bestrank then claims = mw.wikibase.getBestStatements(entityId, property) else local allclaims = mw.wikibase.getAllStatements(entityId, property) for _, c in ipairs(allclaims) do if c.rank ~= "deprecated" then table.insert(claims, c) end end end return claims end -- Is gender femenine? true or false local function feminineGender(id) local claims = mw.wikibase.getBestStatements(id or mw.wikibase.getEntityIdForCurrentPage(),'P21') local gender_id = getSnak(claims, {1, "mainsnak", "datavalue", "value", "id"}) if gender_id == "Q6581072" or gender_id == "Q1052281" or gender_id == "Q43445" then -- female, transgender female, female organism return true end return false end -- Fetch female form of label local function feminineForm(id, lang) local feminine_claims = getStatements(id, 'P2521') for _, feminine_claim in ipairs(feminine_claims) do if getSnak(feminine_claim, {'mainsnak', 'datavalue', 'value', 'language'}) == lang then return feminine_claim.mainsnak.datavalue.value.text end end end -- Add an icon for no label in requested language local function addLabelIcon(label_id, lang, uselang, icon) local ret_lang, ret_icon = '', '' if icon then if lang and lang ~= uselang then ret_lang = " <sup>(" .. lang .. ")</sup>" end if label_id and (lang == nil or lang ~= uselang) then local namespace = '' if string.sub(label_id, 1, 1) == 'P' then namespace = 'Property:' end ret_icon = " [[File:Noun Project label icon 1116097 cc mirror.svg|10px|baseline|" .. mw.message.new('Translate-taction-translate'):inLanguage(uselang):plain() .. "|link=https://www.wikidata.org/wiki/" .. namespace .. label_id .. "?uselang=" .. uselang .. "]]" untranslated = true end if isSet(i18n.categorylabels) and lang ~= uselang and uselang == wiki.langcode then ret_icon = ret_icon .. '[[' .. i18n.categorylabels .. (lang and ']]' or '/Q]]') end end return ret_lang .. ret_icon end -- editicon values: true/false (no=false), right, void defaults to i18n.addpencil -- labelicon only by parameter local function setIcons(arg, parg) local val = arg == nil and parg or arg local edit_icon, label_icon if not isSet(val) then edit_icon, label_icon = i18n.addpencil, true elseif val == false or val == "false" or val == "no" then edit_icon, label_icon = false, false else edit_icon, label_icon = val, true end return edit_icon, label_icon end -- Add an icon for editing a statement with requirements for future Wikidata Bridge local function addEditIcon(parameters) local ret = '' if parameters.editicon and parameters.id and parameters.property then local bridge_flow = parameters.editbridge and ' data-bridge-edit-flow="single-best-value"' or '' local icon_style = parameters.editicon == "right" and ' style="float: right;"' or '' ret = ' <span class="penicon"' .. bridge_flow .. icon_style .. '>' .. "[[File:Arbcom ru editing.svg|10px|baseline|" .. string.gsub(mw.message.new('Wikibase-client-data-bridge-bailout-suggestion-go-to-repo-button'):inLanguage(parameters.lang[1]):plain(), '{{WBREPONAME}}', 'Wikidata') .. "|link=https://www.wikidata.org/wiki/" .. parameters.id .. "?uselang=" .. parameters.lang[1] .. "#" .. parameters.property .. "]]" .. "</span>" if isSet(i18n.categoryprop) then ret = ret .. "[[" .. string.gsub(i18n.categoryprop, '$1', parameters.property) .. "]]" end end return ret end -- add edit icon to the last element of a table local function addEditIconTable(thetable, parameters) if #thetable == 0 or parameters.editicon == false then return thetable end local last_element = thetable[#thetable] local the_icon = addEditIcon(parameters) -- add it before last html closing tags local tags = '' local rev_element = string.reverse(last_element) for tag in string.gmatch(rev_element, '(>%l+/<)') do if string.match(rev_element, '^' .. tags .. tag) then tags = tags .. tag else break end end local last_tags = string.reverse(tags) local offset = string.find(last_element, last_tags .. '$') if offset then thetable[#thetable] = string.sub(last_element, 1, offset - 1) .. the_icon .. last_tags else thetable[#thetable] = last_element .. the_icon end return thetable end -- Escape Lua captures local function captureEscapes(text) return mw.ustring.gsub(text, "(%%%d)", "%%%1") end -- expandTemplate or callParserFunction local function expandBraces(text, formatting) if text == nil or formatting == nil then return text end -- only expand braces if provided in argument, not included in value as in Q1164668 if mw.ustring.find(formatting, '{{', 1, true) == nil then return text end if type(text) ~= "string" then text = tostring(text) end for braces in mw.ustring.gmatch(text, "{{(.-)}}") do local parts = mw.text.split(braces, "|") local title_part = parts[1] local parameters = {} for i = 2, #parts do local subparts = mw.ustring.find(parts[i], "=") if subparts then local param_name = mw.ustring.sub(parts[i], 1, subparts - 1) local param_value = mw.ustring.sub(parts[i], subparts + 1, -1) -- reconstruct broken links by parts if i < #parts and mw.ustring.find(param_value, "[[", 1, true) and not mw.ustring.find(param_value, "]]", 1, true) then parameters[param_name] = param_value local part_next = i + 1 while parts[part_next] and mw.ustring.find(parts[part_next], "]]", 1, true) do parameters[param_name] = parameters[param_name] .. "|" .. parts[part_next] part_next = part_next + 1 end else parameters[param_name] = param_value end elseif not mw.ustring.find(parts[i], "]]", 1, true) then table.insert(parameters, parts[i]) end end local braces_expanded if mw.ustring.find(title_part, ":") and mw.text.split(title_part, ":")[1] ~= mw.site.namespaces[10].name -- not a prefix Template: then braces_expanded = mw.getCurrentFrame():callParserFunction{name=title_part, args=parameters} else braces_expanded = mw.getCurrentFrame():expandTemplate{title=title_part, args=parameters} end braces = mw.ustring.gsub(braces, "([%^%$%(%)%%%.%[%]%*%+%-%?])", "%%%1") -- escape magic characters braces_expanded = captureEscapes(braces_expanded) text = mw.ustring.gsub(text, "{{" .. braces .. "}}", braces_expanded) end return text end -- format data type math local function printDatatypeMath(data) return mw.getCurrentFrame():callParserFunction('#tag:math', data) end -- format data type musical-notation local function printDatatypeMusical(data, formatting) local attr = {} if formatting == 'sound' then attr.sound = 1 end return mw.getCurrentFrame():extensionTag('score', data, attr) end -- format data type string local function printDatatypeString(data, parameters) if mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = data}), parameters.formatting) elseif parameters.case then return case(parameters.case, data, parameters.lang[1], feminineGender(parameters.id)) end local data_number = string.match(data, "^%d+") if data_number then -- sort key by initial number and remaining string local sortkey = string.format("%019d", data_number * 1000) return data, sortkey .. string.sub(data, #data_number + 1) end return data end -- format data type tabular-data local function printDatatypeTabular(data, parameters) local icon if parameters.formatting == 'raw' then icon = "no-icon" data = string.gsub(data, '^Data:', '') -- remove prefix, i.e. see Module:Tabular data end return printDatatypeString(data, parameters), icon end -- format data type url local function printDatatypeUrl(data, parameters) if parameters.formatting == 'weblink' then local label_parts = mw.text.split(string.gsub(data, '/$', ''), '/') local label = string.gsub(label_parts[3], '^www%.', '') if #label_parts > 3 then label = label .. '…' end return '[' .. data .. ' ' .. label .. ']' end return printDatatypeString(data, parameters) end -- format data type external-id local function printDatatypeExternal(data, parameters) if parameters.formatting == 'externalid' then local p_stat = mw.wikibase.getBestStatements(parameters.property, 'P1630') -- formatter URL local p_link_pattern = getSnak(p_stat, {1, "mainsnak", "datavalue", "value"}) if p_link_pattern then local p_link = mw.ustring.gsub(p_link_pattern, '$1', {['$1'] = data}) return '[' .. p_link .. ' ' .. data .. ']' end end return printDatatypeString(data, parameters) end -- format data type commonsMedia and geo-shape local function printDatatypeMedia(data, parameters) local icon if not string.find((parameters.formatting or ''), '$1', 1, true) then icon = "no-icon" if not string.find(data, '^Data:') then data = mw.uri.encode(data, 'PATH') -- encode special characters in filename end end return printDatatypeString(data, parameters), icon end -- format data type globe-coordinate local function printDatatypeCoordinate(data, formatting) local function globes(globe_id) local globes = {['Q3134']='callisto',['Q596']='ceres',['Q15040']='dione',['Q2']='earth',['Q3303']='enceladus', ['Q3143']='europa',['Q17975']='phoebe',['Q3169']='ganymede',['Q3123']='io',['Q17958']='iapetus', ['Q308']='mercury',['Q15034']='mimas',['Q405']='moon',['Q15050']='rhea',['Q15047']='tethys', ['Q111']='mars',['Q2565']='titan',['Q3359']='triton',['Q313']='venus',['Q3030']='vesta'} return globes[globe_id] end local function roundPrecision(num, prec) if prec == nil or prec <= 0 then return num end local sig = 10^math.floor(math.log10(prec)+.5) -- significant figure from sexagesimal precision: 0.00123 -> 0.001 return math.floor(num / sig + 0.5) * sig end local precision = data.precision local latitude = roundPrecision(data.latitude, precision) local longitude = roundPrecision(data.longitude, precision) if formatting and string.find(formatting, '$lat', 1, true) and string.find(formatting, '$lon', 1, true) then local ret = mw.ustring.gsub(formatting, '$l[ao][tn]', {['$lat'] = latitude, ['$lon'] = longitude}) if string.find(formatting, '$globe', 1, true) then local myglobe = 'earth' if isSet(data.globe) then local globenum = mw.text.split(data.globe, 'entity/')[2] -- http://www.wikidata.org/wiki/Q2 myglobe = globes(globenum) or 'earth' end ret = mw.ustring.gsub(ret, '$globe', myglobe) end return expandBraces(ret, formatting) elseif formatting == 'latitude' then return latitude, "no-icon" elseif formatting == 'longitude' then return longitude, "no-icon" elseif formatting == 'dimension' then return data.dimension, "no-icon" else --default formatting='globe' if isSet(data.globe) == false or data.globe == 'http://www.wikidata.org/entity/Q2' then return 'earth', "no-icon" else local globenum = mw.text.split(data.globe, 'entity/')[2] return globes(globenum) or globenum, "no-icon" end end end -- Local functions for data value quantity local function unitSymbol(id, lang) -- get unit symbol or code local unit_symbol = '' if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then unit_symbol = require(wiki.module_title .. "/Units").getUnit(0, '', id, true) end if unit_symbol == '' then -- fetch it local claims = mw.wikibase.getBestStatements(id, 'P5061') if #claims > 0 then local langclaims = {} table.insert(lang, 'mul') -- multilingual as last try for _, snak in ipairs(claims) do local snak_language = getSnak(snak, {"mainsnak", "datavalue", "value", "language"}) if snak_language and not langclaims[snak_language] then -- just the first one by language langclaims[snak_language] = snak.mainsnak.datavalue.value.text end end for _, l in ipairs(lang) do if langclaims[l] then return langclaims[l] end end end end return unit_symbol end local function getUnit(amount, id, parameters) -- get unit symbol or name local suffix = '' if string.sub(parameters.formatting or '', 1, 8) == "unitcode" then -- get unit symbol local unit_symbol = unitSymbol(id, parameters.lang) if isSet(unit_symbol) then if string.sub(parameters.formatting or '', -6) == "linked" then suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. unit_symbol .. "]]" else suffix = unit_symbol end end end if suffix == '' then -- formatting=unit, or formatting=unitcode not found -- get unit label local unit_label, lang = getLabelByLangs(id, parameters.lang) if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then suffix = require(wiki.module_title .. "/Units").getUnit(amount, unit_label, id, false) if string.sub(parameters.formatting or '', -6) == "linked" then suffix = "[[" .. (mw.wikibase.getSitelink(id) or "d:" .. id) .. "|" .. suffix .. "]]" end else suffix = (unit_label or id) .. addLabelIcon(id, lang, parameters.lang[1], parameters.labelicon) end end if suffix ~= '' then suffix = ' ' .. suffix end return suffix end local function roundDefPrecision(in_num, factor) -- rounds out_num with significant figures of in_num (default precision) local out_num = in_num * factor if factor/60 == math.floor(factor/60) or out_num == 0 then -- sexagesimal integer or avoiding NaN return out_num end -- first, count digits after decimal mark, handling cases like '12.345e6' local exponent, prec local integer, dot, decimals, expstr = in_num:match('^(%d*)(%.?)(%d*)(.*)') local e = expstr:sub(1, 1) if e == 'e' or e == 'E' then exponent = tonumber(expstr:sub(2)) end if dot == '' then prec = -integer:match('0*$'):len() else prec = #decimals end if exponent then -- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5. prec = prec - exponent end -- significant figures local in_bracket = 10^-prec -- -1 -> 10, 5 -> 0.00001 local out_bracket = in_bracket * out_num / in_num out_bracket = 10^math.floor(math.log10(out_bracket)+.5) -- 1230 -> 1000, 0.00123 -> 0.001 -- round it (credit to Luc Bloom from http://lua-users.org/wiki/SimpleRound) return math.floor(out_num/out_bracket + (out_num >=0 and 1 or -1) * 0.5) * out_bracket end -- format data type quantity local function printDatatypeQuantity(data, parameters) local amount = data.amount amount = mw.ustring.gsub(amount, "%+", "") local suffix = "" local conv_amount, conv_suffix if string.sub(parameters.formatting or '', 1, 4) == "unit" or string.sub(parameters.formatting or '', 1, 8) == "duration" or parameters.convert then local unit_id = data.unit unit_id = mw.ustring.sub(unit_id, mw.ustring.find(unit_id, "Q"), -1) if string.sub(unit_id, 1, 1) == "Q" then suffix = getUnit(amount, unit_id, parameters) local convert_to if parameters.convert == "default" or parameters.convert == "default2" then local exist, units = pcall(require, wiki.module_title .. "/Units") if exist and units.convert_default and next(units.convert_default) ~= nil then convert_to = units.convert_default[unit_id] end elseif string.sub(parameters.convert or '', 1, 1) == "Q" then convert_to = parameters.convert elseif string.sub(parameters.formatting or '', 1, 8) == "duration" then convert_to = 'Q11574' -- seconds end if convert_to and convert_to ~= unit_id then -- convert units local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'} ['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'}, ['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'}, ['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'} } if conv_temp[unit_id] and conv_temp[unit_id][convert_to] then local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][convert_to], "$1", amount)) conv_amount = math.floor(tonumber(amount_f) + 0.5) else local conversions = getStatements(unit_id, 'P2442') -- conversion to standard unit table.insert(conversions, mw.wikibase.getBestStatements(unit_id, 'P2370')[1]) -- conversion to SI unit for _, conv in ipairs(conversions) do if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue if conv.mainsnak.datavalue.value.unit == "http://www.wikidata.org/entity/" .. convert_to then conv_amount = roundDefPrecision(amount, tonumber(conv.mainsnak.datavalue.value.amount)) break end end end end if conv_amount then conv_suffix = getUnit(conv_amount, convert_to, parameters) end elseif parameters.convert == 'M' and tonumber(amount) > 10^8 then conv_amount = math.floor(amount/10^6 + 0.5) conv_suffix = ' M' .. string.sub(suffix, 2) end if conv_amount and parameters.formatting == 'raw' then amount = conv_amount suffix = "" conv_amount = nil end end end local lang_obj = mw.language.new(parameters.lang[1]) local sortkey = string.format("%019d", tonumber(amount) * 1000) if string.sub(parameters.formatting or '', 1, 8) == "duration" then local sec = tonumber(conv_amount or amount) if parameters.formatting == 'duration' then return lang_obj:formatDuration(sec) elseif parameters.formatting == 'durationm:s' then local mm = math.floor(sec / 60) local ss = sec - (mm * 60) return string.format("%02d:%02d", mm, ss) else -- durationhms or durationh:m:s local intervals = {"hours", "minutes", "seconds"} local sec2table = lang_obj:getDurationIntervals(sec, intervals) sec2table["seconds"] = (sec2table["seconds"] or 0) + tonumber("." .. (tostring(sec):match("%.(%d+)") or "0")) -- add decimals local duration = '' for i, v in ipairs(intervals) do if parameters.formatting == 'durationh:m:s' then if i == 1 and sec2table[v] then duration = duration .. sec2table[v] .. ":" elseif i == 2 then duration = duration .. string.format("%02d", sec2table[v] or 0) .. ":" elseif i == 3 then local sec_str = tostring(lang_obj:formatNum(sec2table[v] or 0)) duration = duration .. (sec2table[v] < 10 and "0" or "") .. sec_str end elseif sec2table[v] then duration = duration .. lang_obj:formatNum(sec2table[v]) .. i18n.datetime.hms[v] .. (i < 3 and " " or "") end end return duration end end if parameters.case then amount = case(parameters.case, amount, parameters.lang[1], feminineGender(parameters.id)) elseif parameters.formatting ~= 'raw' then if parameters.numformat then amount = lang_obj:formatNum(tonumber(string.format(parameters.numformat, amount))) else amount = lang_obj:formatNum(tonumber(amount)) end end if conv_amount then local conv_sortkey = string.format("%019d", conv_amount * 1000) conv_amount = lang_obj:formatNum(conv_amount) if parameters.convert == 'default2' then return conv_amount .. conv_suffix .. ' (' .. amount .. suffix .. ')', conv_sortkey else return conv_amount .. conv_suffix, conv_sortkey end elseif mw.ustring.find((parameters.formatting or ''), '$1', 1, true) then -- formatting with pattern amount = mw.ustring.gsub(parameters.formatting, '$1', {['$1'] = amount}) end return amount .. suffix, sortkey end -- format data type time local function printDatatypeTime(data, parameters) -- Dates and times are stored in ISO 8601 format local timestamp = data.time local post_format local calendar_add = "" local precision = data.precision or 11 if string.sub(timestamp, 1, 1) == '-' then post_format = i18n.datetime["bc"] elseif string.sub(timestamp, 2, 3) == '00' then post_format = i18n.datetime["ad"] elseif precision > 8 then -- calendar model local calendar_model = {["Q12138"] = "gregorian", ["Q1985727"] = "gregorian", ["Q11184"] = "julian", ["Q1985786"] = "julian"} local calendar_id = mw.text.split(data.calendarmodel, 'entity/')[2] if (timestamp < "+1582-10-15T00:00:00Z" and calendar_model[calendar_id] == "gregorian") or (timestamp > "+1582-10-04T00:00:00Z" and calendar_model[calendar_id] == "julian") then calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>" end end local function formatTime(form, stamp) local pattern if type(form) == "function" then pattern = form(stamp) else pattern = form end stamp = tostring(stamp) if mw.ustring.find(pattern, "$1") then return mw.ustring.gsub(pattern, "$1", stamp) elseif string.sub(stamp, 1, 1) == '-' then -- formatDate() only supports years from 0 stamp = '+' .. string.sub(stamp, 2) elseif string.sub(stamp, 1, 1) ~= '+' then -- not a valid timestamp, it is a number stamp = string.format("%04d", stamp) end local ret = mw.language.new(parameters.lang[1]):formatDate(pattern, stamp) ret = string.gsub(ret, "^(%[?%[?)0+", "%1") -- suppress leading zeros ret = string.gsub(ret, "( %[?%[?)0+", "%1") return ret end local function postFormat(t) if post_format and mw.ustring.find(post_format, "$1") then return mw.ustring.gsub(post_format, "$1", t) end return t end local intyear = tonumber(string.match(timestamp, "[+-](%d+)")) local ret = "" if precision <= 5 then -- precision is 10000 years or more local factor = 10 ^ ((5 - precision) + 4) local y2 = math.ceil(math.abs(intyear) / factor) local relative = formatTime(i18n.datetime[precision], y2) if post_format == i18n.datetime["bc"] then ret = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative) else ret = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative) end local ret_number = string.match(ret, "%d+") if ret_number ~= nil then ret = mw.ustring.gsub(ret, ret_number, mw.language.new(parameters.lang[1]):formatNum(tonumber(ret_number))) end elseif precision == 6 or precision == 7 then -- millennia or centuries local card = math.floor((intyear - 1) / 10^(9 - precision)) + 1 ret = formatTime(i18n.datetime[precision], card) ret = postFormat(ret) elseif precision == 8 then -- decades local card = math.floor(math.abs(intyear) / 10) * 10 ret = formatTime(i18n.datetime[8], card) ret = postFormat(ret) elseif intyear > 9999 then -- not a valid timestamp return elseif precision == 9 or parameters.formatting == 'Y' then -- precision is year ret = formatTime(i18n.datetime[9], intyear) ret = postFormat(ret) .. calendar_add elseif precision == 10 then -- month ret = formatTime(i18n.datetime[10], timestamp .. " + 1 day") -- formatDate yyyy-mm-00 returns the previous month ret = postFormat(ret) .. calendar_add else -- precision 11, day ret = formatTime(parameters.formatting or i18n.datetime[11], timestamp) ret = postFormat(ret) .. calendar_add end return ret, timestamp end -- format data value wikibase-entityid with data types wikibase-item or wikibase-property local function printDatatypeEntity(data, parameters) local entity_id = data['id'] if parameters.formatting == 'raw' then return entity_id, entity_id end local entity_page = 'Special:EntityPage/' .. entity_id local label, lang = getLabelByLangs(entity_id, parameters.lang) local sitelink = mw.wikibase.getSitelink(entity_id) local parameter = parameters.formatting local labelcase = label or sitelink if parameters.gender == 'feminineform' then labelcase = feminineForm(entity_id, lang) or labelcase end if parameters.case ~= 'gender' then labelcase = case(parameters.case, labelcase, lang, parameters.lang[1], entity_id, parameters.id) end if labelcase == nil and i18n.qidlabels == false then return end local ret1, ret2 if parameter == 'label' then ret1 = labelcase or entity_id ret2 = labelcase or entity_id elseif parameter == 'sitelink' then ret1 = (sitelink or 'd:' .. entity_page) ret2 = sitelink or entity_id elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern ret1 = mw.ustring.gsub(parameter, '$1', labelcase or entity_id) ret1 = expandBraces(ret1, parameter) ret2 = labelcase or entity_id else if parameter == "ucfirst" or parameter == "ucinternallink" then if labelcase and lang then labelcase = mw.language.new(lang):ucfirst(labelcase) end -- only first of a list, reset formatting for next ones if parameter == "ucinterlanllink" then parameters.formatting = 'internallink' else parameters.formatting = nil -- default format end end if sitelink then ret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]' ret2 = labelcase elseif label and string.match(parameter or '', 'internallink$') and not mw.wikibase.getEntityIdForTitle(label) then ret1 = '[[' .. label .. '|' .. labelcase .. ']]' ret2 = labelcase else ret1 = '[[d:' .. entity_page .. '|<span style="color:#5f9cbb;">' .. (labelcase or entity_id) .. '</span>]]' ret2 = labelcase or entity_id end end return ret1 .. addLabelIcon(entity_id, lang, parameters.lang[1], parameters.labelicon), ret2 end -- format data type wikibase-lexeme local function printDatatypeLexeme(data, parameters) local entity_id = data['id'] if parameters.formatting == 'raw' then return entity_id, entity_id end local lemmas = mw.wikibase.getEntity(entity_id):getLemmas() if parameters.list == 'lang' and lemmas[1][2] ~= parameters.lang[1] then return end local ret = '[[d:Special:EntityPage/' .. entity_id .. '|<span style="color:#5f9cbb;">' .. lemmas[1][1] .. '</span>]]' if parameters.list ~= 'lang' or (parameters.list == 'lang' and lemmas[1][2] ~= wiki.langcode) then ret = ret .. " <sup>(" .. lemmas[1][2] .. ")</sup>" end return ret, entity_id end -- format data type monolingualtext local function printDatatypeMonolingual(data, parameters) -- data fields: language [string], text [string] if parameters.list == "lang" and data["language"] ~= parameters.lang[1] then return elseif parameters.list == "notlang" and data["language"] == parameters.lang[1] then return elseif parameters.formatting == "language" or parameters.formatting == "text" then return data[parameters.formatting] end local result = data["text"] if data["language"] ~= wiki.langcode then result = mw.ustring.gsub('<span lang="$1">$2</span>', '$[12]', {["$1"]=data["language"], ["$2"]=data["text"]}) end if mw.ustring.find((parameters.formatting or ''), '$', 1, true) then -- output format defined with $text, $language result = mw.ustring.gsub(parameters.formatting, '$text', result) result = mw.ustring.gsub(result, '$language', data["language"]) end return result end local function getSnakValue(snak, parameters) parameters.editbridge = false if snak.snaktype == 'value' then -- see Special:ListDatatypes -- data value string if snak.datatype == "string" then parameters.editbridge = true -- Wikidata Bridge currently only string values return printDatatypeString(snak.datavalue.value, parameters) elseif snak.datatype == "commonsMedia" or snak.datatype == "geo-shape" then return printDatatypeMedia(snak.datavalue.value, parameters) elseif snak.datatype == "tabular-data" then return printDatatypeTabular(snak.datavalue.value, parameters) elseif snak.datatype == "url" then return printDatatypeUrl(snak.datavalue.value, parameters) elseif snak.datatype == "external-id" then return printDatatypeExternal(snak.datavalue.value, parameters) elseif snak.datatype == 'math' then return printDatatypeMath(snak.datavalue.value) elseif snak.datatype == 'musical-notation' then return printDatatypeMusical(snak.datavalue.value, parameters.formatting) -- data types other than string value elseif snak.datatype == 'wikibase-item' or snak.datatype == 'wikibase-property' then if i18n.suppress[snak.datavalue.value.id] then return end return printDatatypeEntity(snak.datavalue.value, parameters) elseif snak.datatype == 'wikibase-lexeme' then return printDatatypeLexeme(snak.datavalue.value, parameters) elseif snak.datatype == 'monolingualtext' then return printDatatypeMonolingual(snak.datavalue.value, parameters) elseif snak.datatype == "globe-coordinate" then return printDatatypeCoordinate(snak.datavalue.value, parameters.formatting) elseif snak.datatype == "quantity" then return printDatatypeQuantity(snak.datavalue.value, parameters) elseif snak.datatype == "time" then return printDatatypeTime(snak.datavalue.value, parameters) end elseif snak.snaktype == 'novalue' then if parameters.formatting == 'raw' or parameters.shownovalue == false then return end return mw.message.new('Wikibase-snakview-snaktypeselector-novalue'):inLanguage(parameters.lang[1]):plain() elseif snak.snaktype == 'somevalue' then if parameters.formatting == 'raw' then return end return mw.message.new('Wikibase-snakview-snaktypeselector-somevalue'):inLanguage(parameters.lang[1]):plain() end return mw.wikibase.renderSnak(snak) end local function printError(key) return '<span class="error">' .. i18n.errors[key] .. '</span>' end local function getQualifierSnak(claim, qualifierId, parameters) -- a "snak" is Wikidata terminology for a typed key/value pair -- a claim consists of a main snak holding the main information of this claim, -- as well as a list of attribute snaks and a list of references snaks if qualifierId then -- search the attribute snak with the given qualifier as key if claim.qualifiers then local qualifier = claim.qualifiers[qualifierId] if qualifier then if qualifier[1].datatype == "monolingualtext" then -- iterate over monolingualtext qualifiers to get local language for idx in pairs(qualifier) do if getSnak(qualifier[idx], {"datavalue", "value", "language"}) == parameters.lang[1] then return qualifier[idx] end end elseif parameters.list then return qualifier else return qualifier[1] end end end return nil, printError("qualifier-not-found") else -- otherwise return the main snak return claim.mainsnak end end local function getValueOfClaim(claim, qualifierId, parameters) local snak, error = getQualifierSnak(claim, qualifierId, parameters) if not snak then return nil, nil, error elseif snak[1] then -- a multi qualifier local result, sortkey = {}, {} local maxvals = tonumber(parameters.listmax) for idx in pairs(snak) do result[#result + 1], sortkey[#sortkey + 1] = getSnakValue(snak[idx], parameters) if maxvals and maxvals == #result then break end end return mw.text.listToText(result, parameters.qseparator, parameters.qconjunction), sortkey[1] else -- a property or a qualifier return getSnakValue(snak, parameters) end end local function getValueOfParentClaim(claim, qualifierId, parameters) local qids = mw.text.split(qualifierId, '/', true) local value, sortkey, valueraw = {}, {}, {} local parent_raw, value_text if qids[1] == parameters.property then parent_raw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=parameters.lang}) else parent_raw, _, _ = getValueOfClaim(claim, qids[1], {["formatting"]="raw", ["lang"]=parameters.lang, ["list"]=true, ["qseparator"]='/', ["qconjunction"]='/'}) end if string.sub(parent_raw or '', 1, 1) == "Q" then -- protection for 'no value' local parent_qids = mw.text.split(parent_raw, '/', true) for idx, p_qid in ipairs(parent_qids) do local parent_claims = mw.wikibase.getBestStatements(p_qid, qids[2]) if parent_claims[1] then value[idx], sortkey[idx], _ = getValueOfClaim(parent_claims[1], nil, parameters) -- raw parent value needed for while/black lists, lang for avoiding an error on types other than entity valueraw[idx], _, _ = getValueOfClaim(parent_claims[1], nil, {["formatting"]="raw", ["lang"]=parameters.lang}) end end end if value[1] then value_text = mw.text.listToText(value, parameters.qseparator, parameters.qconjunction) end return value_text, sortkey[1], valueraw[1] end -- see d:Help:Sources local function getReferences(claim, parameters) if not (parameters.references or parameters.onlysourced) then return '', false end local lang = parameters.lang local maxrefs = tonumber(parameters.references) or 1 local notproperref = { ["P143"] = true, -- imported from ["P3452"] = true, -- inferred from ["P887"] = true, -- based on heuristic ["P4656"] = true -- Wikimedia import URL } local result = {} -- traverse through all references for ref in pairs(claim.references or {}) do local refparts local refs = {} local validref = true local ref_id -- traverse through all parts of the current reference for snakkey, snakval in pairs(claim.references[ref].snaks or {}) do for partkey, _ in pairs(claim.references[ref].snaks[snakkey] or {}) do if notproperref[snakkey] then -- not a proper reference validref = false break end end if validref then for snakidx = 1, #snakval do if snakidx > 1 then refparts = refparts .. ", " end if snakval[snakidx].datatype == 'external-id' then refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {formatting='externalid', property=snakval[snakidx].property, lang=lang}) or '') else refparts = refparts or '' .. (getSnakValue(snakval[snakidx], {lang=lang}) or '') end end refs[snakkey] = refparts refparts = nil if snakkey == "P248" then -- stated in ref_id = getSnak(snakval, {1, "datavalue", "value", "id"}) end end end -- fill missing values with parent item if ref_id then local function refParent(qid, pid, formatting) local snak = getSnak(mw.wikibase.getBestStatements(qid, pid), {1, "mainsnak"}) return snak and getSnakValue(snak, {formatting=formatting, lang=lang}) end refs['P50'] = refs['P50'] or refParent(ref_id, 'P50', 'label') -- author refs['P407'] = refs['P407'] or refParent(ref_id, 'P407', 'label') -- language of work refs['P123'] = refs['P123'] or refParent(ref_id, 'P123', 'label') -- publisher refs['P577'] = refs['P577'] or refParent(ref_id, 'P577') -- date refs['P1433'] = refs['P1433'] or refParent(ref_id, 'P1433', 'label') -- published in refs['P304'] = refs['P304'] or refParent(ref_id, 'P304') -- page(s) refs['P433'] = refs['P433'] or refParent(ref_id, 'P433') -- issue refs['P236'] = refs['P236'] or refParent(ref_id, 'P236') -- ISSN refs['P356'] = refs['P356'] or refParent(ref_id, 'P356') -- DOI end -- get title of local templates for citing references local template_web = mw.wikibase.getSitelink('Q5637226') or "" template_web = mw.text.split(template_web, ":")[2] -- split off namespace from front local template_journal = mw.wikibase.getSitelink('Q5624899') or "" template_journal = mw.text.split(template_journal, ":")[2] local citeParams = {} if refs['P854'] and (refs['P1476'] or refs['P248']) and template_web then -- if both "reference URL" and "title" (or "stated in") are present, then use cite web template citeParams[i18n['cite']['url']] = refs['P854'] if refs['P248'] and refs['P1476'] == nil then citeParams[i18n['cite']['title']] = refs['P248']:match("^%[%[.-|(.-)%]%]") else citeParams[i18n['cite']['title']] = refs['P1476'] citeParams[i18n['cite']['website']] = refs['P248'] end citeParams[i18n['cite']['author']] = refs['P50'] citeParams[i18n['cite']['language']] = refs['P407'] citeParams[i18n['cite']['publisher']] = refs['P123'] citeParams[i18n['cite']['date']] = refs['P577'] citeParams[i18n['cite']['pages']] = refs['P304'] citeParams[i18n['cite']['access-date']] = refs['P813'] citeParams[i18n['cite']['archive-url']] = refs['P1065'] citeParams[i18n['cite']['archive-date']] = refs['P2960'] citeParams[i18n['cite']['quote']] = refs['P1683'] refparts = mw.getCurrentFrame():expandTemplate{title=template_web, args=citeParams} elseif refs['P1433'] and (refs['P1476'] or refs['P248']) and template_journal then -- if both "published in" and "title" (or "stated in") are present, then use cite journal template citeParams[i18n['cite']['work']] = refs['P1433'] citeParams[i18n['cite']['title']] = refs['P1476'] or refs['P248'] citeParams[i18n['cite']['author']] = refs['P50'] citeParams[i18n['cite']['date']] = refs['P577'] citeParams[i18n['cite']['issue']] = refs['P433'] citeParams[i18n['cite']['pages']] = refs['P304'] citeParams[i18n['cite']['language']] = refs['P407'] citeParams[i18n['cite']['issn']] = refs['P236'] citeParams[i18n['cite']['doi']] = refs['P356'] refparts = mw.getCurrentFrame():expandTemplate{title=template_journal, args=citeParams} elseif validref then -- raw ouput local snaksorder = claim.references[ref]["snaks-order"] local function indexed(a) for _, b in ipairs(snaksorder) do if b == a then return true end end return false end for k, _ in pairs(refs or {}) do if not indexed(k) then table.insert(snaksorder, k) end end local italics = "''" for _, k in ipairs(snaksorder) do if refs[k] then refparts = refparts and refparts .. " " or "" refparts = refparts .. mw.ustring.gsub(getLabelByLangs(k, lang), "^%l", mw.ustring.upper) .. ": " refparts = refparts .. italics .. refs[k] .. italics .. "." italics = "" end end end if refparts then local ref_name = claim.references[ref].hash result[#result + 1] = mw.getCurrentFrame():extensionTag("ref", refparts, {name=ref_name}) if maxrefs and maxrefs == #result then break end end end if #result > 0 then if parameters.references then if isSet(i18n.categoryref) then result[#result + 1] = "[[" ..i18n.categoryref .. "]]" end return table.concat(result), true else return '', true end end return '', false end -- Set whitelist or blacklist values local function setWhiteOrBlackList(num_qual, args) local lists = {['whitelist']={}, ['blacklist']={}, ['ignorevalue']={}, ['selectvalue']={}} for i = 0, num_qual do for k, _ in pairs(lists) do if isSet(args[k .. i]) then lists[k][tostring(i)] = {} local pattern = 'Q%d+' if string.sub(args[k .. i], 1, 1) ~= 'Q' then pattern = '[^%p%s]+' end for q in string.gmatch(args[k .. i], pattern) do lists[k][tostring(i)][q] = true end end end end return lists['whitelist'], lists['blacklist'], lists['ignorevalue'], lists['selectvalue'] end local function tableParameters(args, parameters, column) local column_params = mw.clone(parameters) column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end column_params.convert = args["convert" .. column] if args["case" .. column] then column_params.case = args["case" .. column] end return column_params end local function getEntityId(args, pargs, unnamed) pargs = pargs or {} local id = args.item or args.from or (unnamed and mw.text.trim(args[1] or '') or nil) if not isSet(id) then id = pargs.item or pargs.from or (unnamed and mw.text.trim(pargs[1] or '') or nil) end if isSet(id) then if string.find(id, ":") then -- remove prefix as Property:Pid id = mw.text.split(id, ":")[2] end else id = mw.wikibase.getEntityIdForCurrentPage() end return id end local function getArg(value, default, aliases) if type(value) == 'boolean' then return value elseif value == "false" or value == "no" then return false elseif value == "true" or value == "yes" then return true elseif value and aliases and aliases[value] then return aliases[value] elseif isSet(value) then return value elseif default then return default else return nil end end -- Main function claim --------------------------------------------- -- on debug console use: =p.claim{item="Q...", property="P...", ...} function p.claim(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local is_sandbox = isSet(pargs.sandbox) if not required and is_sandbox then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).claim(frame) end --If a value is already set, use it if isSet(args.value) then if args.value == 'NONE' then return else return args.value end end -- arguments local parameters = {} parameters.id = getEntityId(args, pargs) if parameters.id == nil then return end parameters.property = string.upper(args.property or "") local qualifierId = {} qualifierId[1] = getArg(string.upper(args.qualifier or args.qualifier1 or "")) local i = 2 while isSet(args["qualifier" .. i]) do qualifierId[i] = string.upper(args["qualifier" .. i]) i = i + 1 end parameters.formatting = getArg(args.formatting) parameters.convert = getArg(args.convert) parameters.numformat = getArg(args.numformat) parameters.case = args.case parameters.list = getArg(args.list, true, {firstrank='bestrank'}) parameters.listmax = args.listmax parameters.listrank = getArg(args.listrank) if type(parameters.list) == "number" then -- backwards compatibility parameters.listmax = parameters.listmax or parameters.list parameters.list = true elseif parameters.list == "bestrank" then parameters.listrank = parameters.listrank or "bestrank" parameters.list = true end parameters.shownovalue = getArg(args.shownovalue, true) parameters.separator = getArg(args.separator) parameters.conjunction = getArg(args.conjunction, parameters.separator) parameters.qseparator = getArg(args.qseparator, parameters.separator) parameters.qconjunction = getArg(args.qconjunction, parameters.conjunction) local sorting_col = args.tablesort local sorting_up = (args.sorting or "") ~= "-1" local rowformat = args.rowformat parameters.references = getArg(args.references, false) parameters.onlysourced = getArg(args.onlysourced, false) local showerrors = args.showerrors local default = args.default if default then showerrors = nil end parameters.lang = findLang(args.lang) if parameters.formatting == "raw" then parameters.editicon, parameters.labelicon = false, false else parameters.editicon, parameters.labelicon = setIcons(args.editicon, pargs.editicon) -- needs loadI18n by findLand end -- fetch property local claims = {} local bestrank = parameters.listrank == 'bestrank' and parameters.list ~= 'lang' for p in string.gmatch(parameters.property, 'P%d+') do claims = getStatements(parameters.id, p, bestrank) if #claims > 0 then parameters.property = p break end end if #claims == 0 then local ret = showerrors and printError("property-not-found") or default return ret, args.query == 'num' and 0 or '' end -- defaults for table local preformat, postformat = "", "" local whitelisted = false local whitelist, blacklist, ignorevalue, selectvalue = {}, {}, {}, {} if parameters.formatting == "table" then parameters.separator = parameters.separator or "<br />" parameters.conjunction = parameters.conjunction or "<br />" parameters.qseparator = getArg(args.qseparator, mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain()) parameters.qconjunction = getArg(args.qconjunction, parameters.qseparator) if not rowformat then rowformat = "$0 ($1" i = 2 while qualifierId[i] do rowformat = rowformat .. ", $" .. i i = i + 1 end rowformat = rowformat .. ")" elseif mw.ustring.find(rowformat, "^[*#]") then parameters.separator = "</li><li>" parameters.conjunction = "</li><li>" if mw.ustring.match(rowformat, "^[*#]") == "*" then preformat = "<ul><li>" postformat = "</li></ul>" else preformat = "<ol><li>" postformat = "</li></ol>" end rowformat = mw.ustring.gsub(rowformat, "^[*#] ?", "") end -- set whitelist and blacklist values whitelist, blacklist, ignorevalue, selectvalue = setWhiteOrBlackList(#qualifierId, args) local next = next if next(whitelist) ~= nil then whitelisted = true end end -- set feminine case if gender is requested local itemgender = args.itemgender local idgender if itemgender then if string.match(itemgender, "^P%d+$") then local snak_id = getSnak(mw.wikibase.getBestStatements(parameters.id, itemgender), {1, "mainsnak", "datavalue", "value", "id"}) if snak_id then idgender = snak_id end elseif string.match(itemgender, "^Q%d+$") then idgender = itemgender end end local gender_requested = false if parameters.case == "gender" or idgender then gender_requested = true elseif parameters.formatting == "table" then for i=0, #qualifierId do if args["case" .. i] and args["case" .. i] == "gender" then gender_requested = true break end end end if gender_requested then if feminineGender(idgender or parameters.id) then parameters.gender = "feminineform" end end -- get initial sort indices local sortindices = {} for idx in pairs(claims) do sortindices[#sortindices + 1] = idx end -- sort by claim rank local comparator = function(a, b) local rankmap = { deprecated = 2, normal = 1, preferred = 0 } local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a) local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b) return ranka < rankb end table.sort(sortindices, comparator) local result, result2, result_query local error if parameters.list or parameters.formatting == "table" then -- convert LF to line feed, <br /> may not work on some cases parameters.separator = parameters.separator == "LF" and "\010" or parameters.separator parameters.conjunction = parameters.conjunction == "LF" and "\010" or parameters.conjunction -- i18n separators parameters.separator = parameters.separator or mw.message.new('Comma-separator'):inLanguage(parameters.lang[1]):plain() parameters.conjunction = parameters.conjunction or (mw.message.new('And'):inLanguage(parameters.lang[1]):plain() .. mw.message.new('Word-separator'):inLanguage(parameters.lang[1]):plain()) -- iterate over all elements and return their value (if existing) local value, valueq local sortkey, sortkeyq local values = {} local sortkeys = {} local refs = {} local rowlist = {} -- rows to list with whitelist or blacklist for idx in pairs(claims) do local claim = claims[sortindices[idx]] local reference = {} if not whitelisted then rowlist[idx] = true end if parameters.formatting == "table" then local params = tableParameters(args, parameters, "0") value, sortkey, error = getValueOfClaim(claim, nil, params) if value then values[#values + 1] = {} sortkeys[#sortkeys + 1] = {} refs[#refs + 1] = {} if whitelist["0"] or blacklist["0"] then local valueraw, _, _ = getValueOfClaim(claim, nil, {["formatting"]="raw", ["lang"]=params.lang}) if whitelist["0"] and whitelist["0"][valueraw or ""] then rowlist[#values] = true elseif blacklist["0"] and blacklist["0"][valueraw or ""] then rowlist[#values] = false end end for i, qual in ipairs(qualifierId) do local j = tostring(i) params = tableParameters(args, parameters, j) local valueq, sortkeyq, valueraw if qual == parameters.property then -- hack for getting the property with another formatting, i.e. colformat1=raw valueq, sortkeyq, _ = getValueOfClaim(claim, nil, params) else for q in mw.text.gsplit(qual, '%s*OR%s*') do if string.find(q, ".+/.+") then valueq, sortkeyq, valueraw = getValueOfParentClaim(claim, q, params) elseif string.find(q, "^/.+") then local claim2 = getStatements(parameters.id, string.sub(q, 2), bestrank) if #claim2 > 0 then -- only first value of a property as alternative to a qualifier -- multiple values may not be related to a given raw of the table valueq, sortkeyq, _ = getValueOfClaim(claim2[1], nil, params) end else valueq, sortkeyq, _ = getValueOfClaim(claim, q, params) end if valueq then qual = q break end end end values[#values]["col" .. j] = valueq sortkeys[#sortkeys]["col" .. j] = sortkeyq or valueq if whitelist[j] or blacklist[j] or ignorevalue[j] or selectvalue[j] then valueq = valueraw or getValueOfClaim(claim, qual, {["formatting"]="raw", ["lang"]=params.lang}) if whitelist[j] and whitelist[j][valueq or ""] then rowlist[#values] = true elseif blacklist[j] and blacklist[j][valueq or ""] then rowlist[#values] = false elseif ignorevalue[j] and ignorevalue[j][valueq or ""] then values[#values]["col" .. j] = nil elseif selectvalue[j] and not selectvalue[j][valueq or ""] then values[#values]["col" .. j] = nil end end end end else value, sortkey, error = getValueOfClaim(claim, qualifierId[1], parameters) values[#values + 1] = {} sortkeys[#sortkeys + 1] = {} refs[#refs + 1] = {} end if not value and showerrors then value = error end if value then if (parameters.references or parameters.onlysourced) and claim.references then reference = claim.references end refs[#refs]["col0"] = reference values[#values]["col0"] = value sortkeys[#sortkeys]["col0"] = sortkey or value end end -- sort and format results sortindices = {} for idx in pairs(values) do sortindices[#sortindices + 1] = idx end if sorting_col then local sorting_table = mw.text.split(sorting_col, '%D+') local comparator = function(a, b) local valuea, valueb local i = 1 while valuea == valueb and i <= #sorting_table do valuea = sortkeys[a]["col" .. sorting_table[i]] or '' valueb = sortkeys[b]["col" .. sorting_table[i]] or '' i = i + 1 end if sorting_up then return valueb > valuea end return valueb < valuea end table.sort(sortindices, comparator) end local maxvals = tonumber(parameters.listmax) result = {} for idx in pairs(values) do local valuerow = values[sortindices[idx]] local reference, valid_ref = getReferences({["references"] = refs[sortindices[idx]]["col0"]}, parameters) value = valuerow["col0"] if parameters.formatting == "table" then if not rowlist[sortindices[idx]] then value = nil else local rowformatting = rowformat .. "$" -- fake end character added for easy gsub value = mw.ustring.gsub(rowformatting, "$0", {["$0"] = value}) value = mw.ustring.gsub(value, "$R0", reference) -- add reference for i, _ in ipairs(qualifierId) do local valueq = valuerow["col" .. i] if args["rowsubformat" .. i] and isSet(valueq) then -- add fake end character $ -- gsub $i not followed by a number so $1 doesn't match $10, $11... -- remove fake end character valueq = captureEscapes(valueq) valueq = mw.ustring.gsub(args["rowsubformat" .. i] .. "$", "$" .. i .. "(%D)", valueq .. "%1") valueq = string.sub(valueq, 1, -2) rowformatting = mw.ustring.gsub(rowformatting, "$" .. i .. "(%D)", args["rowsubformat" .. i] .. "%1") end valueq = valueq and captureEscapes(valueq) or '' value = mw.ustring.gsub(value, "$" .. i .. "(%D)", valueq .. "%1") end value = string.sub(value, 1, -2) -- remove fake end character value = expandBraces(value, rowformatting) end elseif value then value = expandBraces(value, parameters.formatting) value = value .. reference end if isSet(value) and (not parameters.onlysourced or (parameters.onlysourced and valid_ref)) then result[#result + 1] = value if not parameters.list or (maxvals and maxvals == #result) then break end end end if args.query == 'num' then result_query = #result end if #result > 0 then if parameters.formatting == 'table' then result = addEditIconTable(result, parameters) -- in a table, add edit icon on last element end result = preformat .. mw.text.listToText(result, parameters.separator, parameters.conjunction) .. postformat else result = '' end else -- return first element local claim = claims[sortindices[1]] result, result2, error = getValueOfClaim(claim, qualifierId[1], parameters) if result then local ref, valid_ref = getReferences(claim, parameters) if parameters.onlysourced and valid_ref == false then result = nil else result = result .. ref end end if args.query == 'num' then result_query = result and 1 or 0 end end if isSet(result) then if not (parameters.formatting == 'table' or (result2 and result2 == 'no-icon')) then -- add edit icon, except table added previously and except explicit no-icon internal flag result = result .. addEditIcon(parameters) end else if showerrors then result = error else result = default end end if args.query == 'untranslated' and required and not is_sandbox then result_query = untranslated end return result, result_query or '' end -- Local functions for getParentValues ----------------------- local function uc_first(word) if word == nil then return end return mw.ustring.upper(mw.ustring.sub(word, 1, 1)) .. mw.ustring.sub(word, 2) end local function getPropertyValue(id, property, parameter, langs, labelicon, case) local snaks = mw.wikibase.getBestStatements(id, property) local mysnak = getSnak(snaks, {1, "mainsnak"}) if mysnak == nil then return end local entity_id local result = '-' -- default for 'no value' if mysnak.datavalue then entity_id = "Q" .. tostring(mysnak.datavalue.value['numeric-id']) result, _ = getSnakValue(mysnak, {formatting=parameter, lang=langs, labelicon=labelicon, case=case}) end return entity_id, result end local function getParentObjects(id, prop_format, label_format, languages, propertySupString, propertyLabel, propertyLink, label_show, labelicon0, labelicon1, upto_number, upto_label, upto_value, last_only, grammatical_case, include_self) local propertySups = mw.text.split(propertySupString, '[^P%d]') local maxloop = 10 if upto_number then maxloop = tonumber(upto_number) elseif next(upto_label) or next(upto_value) then maxloop = 50 end local labels_filter = next(label_show) local result = {} local id_value = id for iter = 1, maxloop do local link, label, labelwicon, linktext, id_label for _, propertySup in pairs(propertySups) do local _id_value, _link = getPropertyValue(id_value, propertySup, prop_format, languages, labelicon1, grammatical_case) if _id_value and _link then id_value = _id_value; link = _link break end end if not id_value or not link then break end if propertyLink then _, linktext = getPropertyValue(id_value, propertyLink, "label", languages) if linktext then link = mw.ustring.gsub(link, "%[%[(.*)%|.+%]%]", "[[%1|" .. linktext .. "]]") end end id_label, label = getPropertyValue(id_value, propertyLabel, label_format, languages, false, "infoboxlabel") if labelicon0 then _, labelwicon = getPropertyValue(id_value, propertyLabel, label_format, languages, labelicon0, "infoboxlabel") else labelwicon = label end if labels_filter == nil or (label_show[id_label] or label_show[label]) then result[#result + 1] = {labelwicon, link} label_show[id_label or 'none'], label_show[label or 'none'] = nil, nil -- only first label found end if upto_label[id_label] or upto_label[label] or upto_value[id_value] then break end end if last_only then result = {result[#result]} end if include_self then local label_self, link_self _, label_self = getPropertyValue(id, propertyLabel, label_format, languages, labelicon0, "infoboxlabel") link_self, _ = getLabelByLangs(id, languages) table.insert(result, 1, {label_self, link_self}) end return result end local function parentObjectsToString(result, rowformat, cascade, sorting) local ret = {} local first = 1 local last = #result local iter = 1 if sorting == "-1" then first = #result; last = 1; iter = -1 end for i = first, last, iter do local rowtext = mw.ustring.gsub(rowformat, "$[01]", {["$0"] = result[i][1], ["$1"] = result[i][2]}) ret[#ret + 1] = expandBraces(rowtext, rowformat) end if cascade then local direction = mw.language.new(wiki.langcode):isRTL() and "right" or "left" local suffix = "" for i = 1, #ret do ret[i] = '<ul style="line-height:100%; margin-' .. direction .. ':0.45em; padding-' .. direction .. ':0;"><li>' .. ret[i] suffix = suffix .. '</li></ul>' end ret[#ret] = ret[#ret] .. suffix end return ret end -- Returns pairs of parent label and property value fetching a recursive tree function p.getParentValues(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} if not required and isSet(pargs.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getParentValues(frame) end local id = getEntityId(args, pargs) if id == nil then return end local languages = findLang(args.lang) local propertySup = getArg(args.property, "P131") --administrative entity local propertyLabel = getArg(args.label, "P31") --instance local propertyLink = getArg(args.valuetext) local property_format = getArg(args.formatting) local label_format = getArg(args.labelformat, "label") local upto_number = getArg(args.upto) local last_only = getArg(args.last_only, false) local editicon, labelicon = setIcons(args.editicon, pargs.editicon) local include_self = getArg(args.include_self, false) local case = getArg(args.case) local upto_label = {} for q in string.gmatch(args.uptolabelid or '', 'Q%d+') do upto_label[q] = true end if type(upto_number) == 'string' then upto_label[uc_first(upto_number)] = true upto_number = nil end local upto_value = {} for q in string.gmatch(args.uptovalueid or args.uptolinkid or '', 'Q%d+') do upto_value[q] = true end local label_show = {} for q in string.gmatch(args.showlabelid or '', 'Q%d+') do label_show[q] = true end for _, v in ipairs(mw.text.split(args.labelshow or '', "/")) do if v ~= '' then label_show[uc_first(v)] = true end end local rowformat = args.rowformat; if not isSet(rowformat) then rowformat = "$0 = $1" end local labelicon0, labelicon1 = labelicon, labelicon if string.find(label_format, '{{.*$0.*}}') or (string.find(rowformat, '{{.*$0.*}}') and label_format ~= 'raw') then labelicon0 = false end local result = getParentObjects(id, property_format, label_format, languages, propertySup, propertyLabel, propertyLink, label_show, labelicon0, labelicon1, upto_number, upto_label, upto_value, last_only, case, include_self) if #result == 0 then return end local separator = args.separator; if not isSet(separator) then separator = "<br />" end local sorting = args.sorting; if sorting == "" then sorting = nil end local cascade = (args.cascade == "true" or args.cascade == "yes") local ret = parentObjectsToString(result, rowformat, cascade, sorting) ret = addEditIconTable(ret, {property=propertySup, editicon=editicon, id=id, lang=languages}) return mw.text.listToText(ret, separator, separator) end -- Link with a parent label -------------------- function p.linkWithParentLabel(frame) local pargs = frame.args and frame:getParent().args or {} if not required and isSet(pargs.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).linkWithParentLabel(frame) end local args = {} if frame.args then for k, v in pairs(frame.args) do -- metatable args[k] = v end else args = frame -- via require end if isSet(args.value) then return args.value end -- get id value of property/qualifier local largs = mw.clone(args) largs.list = tonumber(args.list) and args.list or true largs.formatting = "raw" largs.separator = "/·/" largs.editicon = false local items_list, _ = p.claim(largs) if not isSet(items_list) then return end local items_table = mw.text.split(items_list, "/·/", true) -- get internal link of property/qualifier largs.formatting = "internallink" local link_list, _ = p.claim(largs) local link_table = mw.text.split(link_list, "/·/", true) -- get label of parent property local parent_claim = getSnak(getStatements(items_table[1], args.parent, true), {1, "mainsnak", "datatype"}) if parent_claim == 'monolingualtext' then largs.formatting = nil largs.list = 'lang' else largs.formatting = "label" largs.list = false end largs.property = args.parent largs.qualifier = nil for i, v in ipairs(items_table) do largs.item = v local link_label, _ = p.claim(largs) if isSet(link_label) then link_table[i] = mw.ustring.gsub(link_table[i] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]") end end args.editicon, _ = setIcons(args.editicon, pargs.editicon) args.id = getEntityId(args, pargs) args.lang = findLang(args.lang) return mw.text.listToText(link_table) .. addEditIcon(args) end -- Calculate number of years old ---------------------------- function p.yearsOld(frame) if not required and frame.args and isSet(frame:getParent().args.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).yearsOld(frame) end local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local id = getEntityId(args, pargs) if id == nil then return end local lang = mw.language.new('en') local function getBestValue(id, prop) return getSnak(mw.wikibase.getBestStatements(id, prop), {1, "mainsnak", "datavalue", "value"}) end local birth = getBestValue(id, 'P569') if type(birth) ~= 'table' or birth.time == nil or birth.precision == nil or birth.precision < 8 then return end local death = getBestValue(id, 'P570') if type(death) ~= 'table' or death.time == nil or death.precision == nil then death = {['time'] = lang:formatDate('c'), ['precision'] = 11} -- current date elseif death.precision < 8 then return end local dates = {} dates[1] = {['min'] = {}, ['max'] = {}, ['precision'] = birth.precision} dates[1].min.year = tonumber(mw.ustring.match(birth.time, "^[+-]?%d+")) dates[1].min.month = tonumber(mw.ustring.match(birth.time, "\-(%d%d)\-")) dates[1].min.day = tonumber(mw.ustring.match(birth.time, "\-(%d%d)T")) dates[1].max = mw.clone(dates[1].min) dates[2] = {['min'] = {}, ['max'] = {}, ['precision'] = death.precision} dates[2].min.year = tonumber(mw.ustring.match(death.time, "^[+-]?%d+")) dates[2].min.month = tonumber(mw.ustring.match(death.time, "\-(%d%d)\-")) dates[2].min.day = tonumber(mw.ustring.match(death.time, "\-(%d%d)T")) dates[2].max = mw.clone(dates[2].min) for i, d in ipairs(dates) do if d.precision == 10 then -- month d.min.day = 1 local timestamp = string.format("%04d", tostring(math.abs(d.max.year))) .. string.format("%02d", tostring(d.max.month)) .. "01" d.max.day = tonumber(lang:formatDate("j", timestamp .. " + 1 month - 1 day")) elseif d.precision < 10 then -- year or decade d.min.day = 1 d.min.month = 1 d.max.day = 31 d.max.month = 12 if d.precision == 8 then -- decade d.max.year = d.max.year + 9 end end end local function age(d1, d2) local years = d2.year - d1.year if d2.month < d1.month or (d2.month == d1.month and d2.day < d1.day) then years = years - 1 end if d2.year > 0 and d1.year < 0 then years = years - 1 -- no year 0 end return years end local old_min = age(dates[1].max, dates[2].min) local old_max = age(dates[1].min, dates[2].max) local old, old_expr if old_min == 0 and old_max == 0 then old = "< 1" old_max = 1 -- expression in singular elseif old_min == old_max then old = old_min else old = old_min .. "/" .. old_max end if args.formatting == 'unit' then local langs = findLang(args.lang) local yo local yo_pl = {} if langs[1] == wiki.langcode then yo_pl = i18n["years-old"] end if not isSet(yo_pl[2]) then local yo_label, _ = getLabelByLangs('Q24564698', langs) yo_pl = {yo_label, yo_label} end yo = mw.language.new(langs[1]):plural(old_max, yo_pl) if mw.ustring.find(yo, '$1', 1, true) then old_expr = mw.ustring.gsub(yo, "$1", old) else old_expr = old .. '&nbsp;' .. yo end elseif args.formatting then old_expr = expandBraces(mw.ustring.gsub(args.formatting, '$1', old), args.formatting) else old_expr = old end return old_expr end -- Gets a label in a given language (content language by default) or its fallbacks, optionnally linked. function p.getLabel(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} if not required and isSet(pargs.sandbox) then return require(wiki.module_title .. "/" .. mw.message.new('Sandboxlink-subpage-name'):inLanguage(wiki.langcode):plain()).getLabel(frame) end local id = getEntityId(args, pargs, 1) if id == nil then return end local languages = findLang(args.lang) local labelicon = false if mw.wikibase.isValidEntityId(id) then _, labelicon = setIcons(args.editicon, pargs.editicon) end local label_icon = '' local label, lang if args.label then label = args.label else -- exceptions or labels fixed local exist, labels = pcall(require, wiki.module_title .. "/labels" .. (languages[1] == wiki.langcode and '' or '/' .. languages[1])) if exist and labels.infoboxLabelsFromId and next(labels.infoboxLabelsFromId) ~= nil then label = labels.infoboxLabelsFromId[id] end if label == nil then label, lang = getLabelByLangs(id, languages) if label then if isSet(args.itemgender) and feminineGender(args.itemgender) then label = feminineForm(id, lang) or label end label = mw.language.new(lang):ucfirst(mw.text.nowiki(label)) -- sanitize if args.case then label = case(args.case, label, lang) end end label_icon = addLabelIcon(id, lang, languages[1], labelicon) end end local linked = args.linked local ret2 = required and untranslated or '' if isSet(linked) and linked ~= "no" then local article = mw.wikibase.getSitelink(id) or ("d:Special:EntityPage/" .. id) return "[[" .. article .. "|" .. (label or id) .. "]]" .. label_icon, ret2 else return (label or id) .. label_icon, ret2 end end -- Utilities ----------------------------- -- See also module ../debug. -- Copied from Module:Wikibase function p.getSiteLink(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local id = getEntityId(args, pargs, 1) if id == nil then return end return mw.wikibase.getSitelink(id, mw.text.trim(args[2] or '')) end -- Helper function for the default language code used function p.lang(frame) local lang = frame and frame.args[1] -- nil via require return findLang(lang)[1] end -- Number of statements function p.numStatements(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local id = getEntityId(args, pargs) if id == nil then return 0 end local prop = mw.text.trim(args[1] or '') local num = {} if not isSet(prop) then local largs = {} for k, v in pairs(pargs) do largs[k] = v end for k, v in pairs(args) do largs[k] = v end largs.query = 'num' _, num = p.claim(largs) return num elseif args[2] then -- qualifier local qual = mw.text.trim(args[2]) local values = p.claim{item=id, property=prop, qualifier=qual, formatting='raw', separator='/·/'} if values then num = mw.text.split(values, '/·/') end else num = mw.wikibase.getBestStatements(id, prop) end return #num end -- Returns true if property datavalue is found excluding novalue/somevalue function p.validProperty(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local item = getEntityId(args, pargs) if item == nil then return end local property = mw.text.trim(args[1]) local prop_data = getSnak(mw.wikibase.getBestStatements(item, property), {1, "mainsnak", "datavalue"}) return prop_data and true or nil end function p.editAtWikidata(frame) local args = frame.args or frame -- via invoke or require local pargs = frame.args and frame:getParent().args or {} local value = isSet(args[1]) if value then return end local param = {} param.id = getEntityId(args, pargs) param.property = args.property param.lang = findLang(args.lang) param.editicon, _ = setIcons(args.editicon) return addEditIcon(param) end function p.formatNum(frame) local num = tonumber(mw.text.trim(frame.args[1])) local lang = findLang(mw.text.trim(frame.args[2])) return mw.language.new(lang[1]):formatNum(num) end return p 1zfn0twj3cx3auqh4r0zks7fg8aux8g Kategori:Bikol/Toponymer 14 1075015 4157291 2026-10-24T01:25:36Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Toponymer]] till [[Kategori:Central bikol/Toponymer]] 4157291 wikitext text/x-wiki #OMDIRIGERING [[:Kategori:Central bikol/Toponymer]] a819csf88my5h6gvh3lcohciltfzxo9 Kategori:Bikol/Botanik 14 1075017 4157307 2026-10-24T01:36:10Z Frodlekis 762 Frodlekis flyttade sidan [[Kategori:Bikol/Botanik]] till [[Kategori:Central bikol/Botanik]] 4157307 wikitext text/x-wiki #OMDIRIGERING [[:Kategori:Central bikol/Botanik]] 6lb2gm1ccnqbncsvwggjwvzrxusr0e5 kalayo 0 1075019 4157330 2026-10-24T01:45:58Z Frodlekis 762 nytt uppslag (central bikol) 4157330 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''kalayo''' #[[eld]] o0ztm9ndyojsg1w6koi2t50aprsy672 4157331 4157330 2026-10-24T01:46:35Z Frodlekis 762 /* Central bikol */ 4157331 wikitext text/x-wiki ==Central bikol== ===Substantiv=== {{subst|bcl}} '''kalayo''' #[[eld]] #:{{synonymer|[[laad]]}} jvkkq8jtf1psgocaw10hpmjm7fe76lm Kategori:Fjärde konjugationens verb 14 1075020 4157395 2026-10-24T11:06:09Z Frodlekis 762 Ny sida 4157395 wikitext text/x-wiki {{kategorinavigering||Fjärde konjugationens verb|Verb}} Kategorin är avsedd för fjärde [[konjugation]]ens verb. 8xxswezj5s2h2w4tys1ub3frriusyjx