Wikipedia scnwiki https://scn.wikipedia.org/wiki/P%C3%A0ggina_principali MediaWiki 1.47.0-wmf.2 first-letter Mèdia Spiciali Discussioni Utenti Discussioni utenti Wikipedia Discussioni Wikipedia File Discussioni file MediaWiki Discussioni MediaWiki Template Discussioni template Aiutu Discussioni aiutu Catigurìa Discussioni catigurìa Purtali Discussioni purtali Pruggettu Discussioni pruggettu TimedText TimedText talk Mòdulu Discussioni mòdulu Evento Discussioni evento Spillinga 0 3118 782061 753172 2026-05-13T13:05:36Z GiovanniPen 22308 782061 wikitext text/x-wiki {{Cumuni|nomucumuni=Spillinga|nomuufficiali=Sperlinga |pruvincia=[[Pruvincia di Enna|Enna]] |superfici=58 |abbitanti=963 |dinsita=17 |cumunilimitrofi=[[Gangi]], [[Nicusia]] |cap=94010 |prifissutelefonicu=0935 }} '''Spillinga''' è nu cumuni di 963 abbitanti dâ [[pruvincia di Enna]]. [[File:Sperlinga.jpg|thumb|Nu panuramua dâ cità]] [[Catigurìa:Cumuni dâ pruvincia di Enna]] a3yywk0duw19quhvlpguc59vwm246gk Catanzaru (artìculu 'n calabrisi) 0 8582 782058 749802 2026-05-13T13:02:39Z GiovanniPen 22308 removed [[Category:Cumuna taliani (Cal)]]; added [[Category:Parrata calabbrisi]] using [[Help:Gadget-HotCat|HotCat]] 782058 wikitext text/x-wiki {{Appellu a 'i calabrise}} {{VariantiCalabbria|artìculu è scrittu 'n calabrisi di Catanzaru (CZ), si stai circannu l'artìculu scrittu 'n sicilianu standard|[[Catanzaru]]}} {{Cumuni Talianu| nomucumuni=Catanzaru| mmaggini=Catanzaru.PNG| nomuufficiali=Catanzaro| riggiuni=[[Calabbria]]| pruvincia=[[Pruvincia di Catanzaru|Catanzaru]] (CZ)| superfici=111,3| abbitanti=95.099| dinsita=855,5| cumunilimitrofi= [[Borgia (CZ)|Borgia]], [[Garrafa]], [[Jimiglianu]], [[Pentuni]], [[Santu Fruori]], [[Sillia]], [[Settingianu]], [[Sìmmari]], [[Triuolu]], [[Schidaci]] | cap=88100| prifissutelefonicu=+0961 }} '''Catanzaru''' (o '''Catanzharu''') esta capuluogu da Regiona e da Provincia, ava 95.000 abbitanti ed esta u secundu comuna Calabbrisa comu popolaziona. Esta conosciuto puru comu "Città ntra i du Mari" o "Città d'i tri Munti", esta n'importanta centru turisticu estivu e 'nvernala. Esta ntô menzu e n'area metropolitana e 180.000 abitanti chi vacia da i paisi costieri da [[Sellia Marina]] a [[Soveratu]] e ncunu paisa d'a [[Sila]] comu [[Jimiglianu]] e [[Pentuni]]. == Posiziona == Esta ntô menzu do Golfu e [[Schidaci]] ntê l'istimu e Catanzaru, duva sulu 35&nbsp;km separanu u [[mara Jioniu]] da u [[mara Tirrenu]]. U territoriu comprenda a zona da marina cu nu portu pescherecciu e i munti da [[Sila]] darretu. U centru storicu esta costruitu supa tri munti: do Vescuvatu o do Duomu, e San Trifone o e Santu Roccu e do San Giovanni (chiamatu puru u Castellu) ed esta circondatu da du hjiareddi nmenzu dei quali si stenda u restu da città finu alu mara. A parta e Catanzaru cchiù vicina alu mara esta Catanzaro Marina ('a Marina o Catanzaru Lidu), nu quartiera assai grossu cchi prima era quasti staccatu da 'a città. De l'anni 70 a mò nu saccu e quartieri cchì stacìanu tra 'a Marina e 'a città (comu Santa Maria, Barone, 'u Corvu e Pistoia, crisciru e s'allargaru, e quindi mò jendu e Catanzaru finu ala Marina, c'esta tutta 'na serie e casi, praticamenta senza zzoni libberi. == Storia == 'A stora da 'a città e Catanzaru esta na storia assai antica, infatti sa città a fundaru i Bizantini, precisamenta dui generali Bizantini ca secundu a leggenda si chiamavanu Cattaro e Zaro (IX secolu). U posto duva nescìu sta città esta u stessu e na precedente colonia greca. I generali bizantini, sempre secundu 'a leggenda, portarunu i ggenti chi stacìanu 'nta a zona e Scolacium, prima subbra 'u Zarapotamu (chi era 'a zona duva oja c'esta Santa Maria), e poi subbra u monta Trivonà, duva c'era na fortezza militara. Secundu certi ipotesi, sta fortezza c'era già ali tempi da a colonia greca. Sa scelta e portare a città subbra nu monta, a ficiaru pecchì, a chiddri tempi, era assai frequenta ca i pirati saraceni facìanu incurziona 'nta a zona vicina alu mara. Facendo costruira 'a città subbra nu monta, si potìa megghju controllara u mara e dara l'allarma 'n casu e n'incurziona. [[Catigurìa:Parrata calabbrisi]] 78mah1khqmq86hqzulb5whbvhb4l4ld Campiunatu munniali di palluni 0 10917 782064 741089 2026-05-13T13:45:01Z Davide2025 48295 Nazione vincitrice Coppa del Mondo FIFA 2022. 782064 wikitext text/x-wiki Lu '''Campiunatu munniali di palluni''' (ufficialmenti '''FIFA World Cup''', ovveru '''Coppa dû munnu FIFA''') veni urganizzatu ogni quattru anni dâ [[FIFA]] (''Fédération Internationale de Football Association'') e è una dî cchiù mpurtanti campiunati spurtivi dû munnu. [[File:FIFA World Cup wordmark.svg|thumb|Lu logu dû Campiunatu.]] ==Storia== Lu campiunatu veni cuntrastatu dî squatri nazziunali màschili chi fannu parti dâ FIFA (lu cunzigghiu d'amministrazzioni cchiù àutu). Lu primu campiunatu abbinìu ntô [[1930]] e poi cuntinuannu ogni quattru anni (ecettu lu [[1942]] e lu [[1946]] pû fattu dâ [[Secunna guerra munniali]]). Però, si tratta cchiutostu d'un abbinimentu cuntìnuu picchì li partiti di qualificazzioni vennu jucati duranti li tri anni prima dû campiunatu veru e propiu. Ntô [[1991]], la FIFA cci agghiuncìu nu campiunatu di fìmmini siparatu. Nta lu campiunatu d'òmini (zoè la fasa finali) partìcipanu 48 squatri nazziunali chi si cuntràstanu nta nu misi nn'un paisi ospitanti già numinatu. Lu nzemi di tutti sti partiti cumprenni l'abbinimentu cchiù vistu dû munnu ('n tèrmini telivisivi). Nni li 22 campiunati già jucati, sulu ottu paisi hannu vinciutu la finali (voldiri l'ùrtima partita dû campiunatu chi ditèrmina lu vincituri). L'Argintina, ca vinciu l'urtima edizzioni dû campiunatu uspitata di lu [[Qatar]], è lu campiuni 'n càrica e lu Brasili iè la nazzioni chi l'havi vinciutu cchiossai (cincu campiunati). Poi l'Italia la vinciu quattru voti: tra l'urtimi edizzioni, lu campiunatu dâ Girmania accuminzau lu [[9 di giugnu]] dû [[2006]] e s'accapau lu [[9 di giugnettu]] câ vittoria di l'[[nazziunali italiana di palluni|Italia]]. == Risurtati dî campiunati passati == {| border=1 style="border-collapse:collapse; font-size:90%;" cellpadding=3 cellspacing=0 width=100% |- bgcolor=#C1D8FF !rowspan=2 width=5%|Annu !rowspan=2 width=10%|Ospitanti |width=1% rowspan=35 bgcolor=ffffff| !colspan=3|Finali |width=1% rowspan=5 bgcolor=ffffff| !colspan=3|Finali terzu e quartu postu |- bgcolor=#EFEFEF !width=15%|Vincituri !width=8%|Risurtatu !width=15%|2° postu !width=15%|3° postu !width=8%|Risurtatu !width=15%|4° postu |- align=center bgcolor=#F5FAFF |[[1930]]<br />''[[Campiunatu munniali FIFA 1930|Dittagghi]]'' |[[Uruguai]] |[[File:Flag of Uruguay.svg|50px]]<br />'''[[Nazziunali di palluni uruguajana|Uruguai]]''' |'''4 - 2''' |[[File:Flag of Argentina.svg|50px]]<br />[[Nazziunali di palluni argintina|Argintina]] | colspan="3" | {| style="background-color: transparent;" |[[File:US flag 48 stars.svg|50px]] |rowspan="2" width="20px" align="center"| / |[[File:Flag of SFR Yugoslavia.svg|50px]] |rowspan="2" width="20px" align="right"|<sup>('''[[#1|1]]''')</sup> |- |[[Nazziunali di palluni miricana|USA]] |[[Nazziunali di palluni jugoslava|Jugoslavia]] |} |- align=center bgcolor=#D0E7FF |[[1934]]<br />''[[Campiunatu munniali FIFA 1934|Dittagghi]]'' |[[Italia]] |[[File:Flag of Italy (1861-1946).svg|50px]]<br />'''[[Nazziunali di palluni taliana|Italia]]''' |'''2 - 1'''<br />(Tempu supplimentariu) |[[File:Flag of the Czech Republic.svg|50px]]<br />[[Nazziunali di palluni cecosluvacca|Cecosluvacchia]] |[[File:Flag of the German Empire.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania]] |'''3 - 2''' |[[File:Flag of Austria.svg|50px]]<br />[[Nazziunali di palluni austriaca|Austria]] |- align=center bgcolor=#F5FAFF |[[1938]]<br />''[[Campiunatu munniali FIFA 1938|Dittagghi]]'' |[[Francia]] |[[File:Flag of Italy (1861-1946).svg|50px]]<br />'''[[Nazziunali di palluni taliana|Italia]]''' |'''4 - 2''' |[[File:Flag of Hungary.svg|50px]]<br />[[Nazziunali di palluni unghirisa|Ungarìa]] |[[File:Flag of Brazil.svg|50px]]<br />[[Nazziunali di palluni brasiliana|Brasili]] |'''4 - 2''' |[[File:Flag of Sweden.svg|50px]]<br />[[Nazziunali di palluni svidisi|Svezzia]] |- align=center bgcolor=#D0E7FF |[[1942]] | ---- |colspan=8|'''NUN DISPUTATA'''<sup>('''[[#2|2]]''')</sup> |- align=center bgcolor=#F5FAFF |[[1946]] | ---- |colspan=8|'''NUN DISPUTATA''' |- align=center bgcolor=#D0E7FF |[[1950]]<br />''[[Campiunatu munniali FIFA 1950|Dittagghi]]'' |[[Brasili]] |[[File:Flag of Uruguay.svg|50px]]<br />'''[[Nazziunali di palluni uruguajana|Uruguai]]''' |'''2-1'''<sup>('''[[#3|3]]''')</sup> |[[File:Flag of Brazil.svg|50px]]<br />[[Nazziunali di palluni brasiliana|Brasili]] |rowspan=28 bgcolor=ffffff| |[[File:Flag of Sweden.svg|50px]]<br />[[Nazziunali di palluni svidisa|Svezzia]] |'''n/a'''<sup>('''[[#3|3]]''')</sup> |[[File:Flag of Spain.svg|50px]]<br />[[Nazziunali di palluni spagnola|Spagna]] |- align=center bgcolor=#F5FAFF |[[1954]]<br />''[[Campiunatu munniali FIFA 1954|Dittagghi]]'' |[[Svìzzira]] |[[File:Flag of Germany.svg|50px]]<br />'''[[Nazziunali di palluni tudisca|Girmania di l'Ovest]]''' |'''3 - 2''' |[[File:Flag of Hungary.svg|50px]]<br />[[Nazziunali di palluni ungarisa|Ungarìa]] |[[File:Flag of Austria.svg|50px]]<br />[[Nazziunali di palluni austriaca|Austria]] |'''3 - 1''' |[[File:Flag of Uruguay.svg|50px]]<br />[[Nazziunali di palluni uruguajana|Uruguai]] |- align=center bgcolor=#D0E7FF |[[1958]]<br />''[[Campiunatu munniali FIFA 1958|Dittagghi]]'' |[[Svezzia]] |[[File:Flag of Brazil.svg|50px]]<br />'''[[Nazziunali di palluni brasiliana|Brasili]]''' |'''5 - 2''' |[[File:Flag of Sweden.svg|50px]]<br />[[Nazziunali di palluni svidisa|Svezzia]] |[[File:Flag of France.svg|50px]]<br />[[Nazziunali di palluni francisa|Francia]] |'''6 - 3''' |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania di l'Ovest]] |- align=center bgcolor=#F5FAFF |[[1962]]<br />''[[Campiunatu munniali FIFA 1962|Dittagghi]]'' |[[Cili]] |[[File:Flag of Brazil.svg|50px]]<br />'''[[Nazziunali di palluni brasiliana|Brasili]]''' |'''3 - 1''' |[[File:Flag of the Czech Republic.svg|50px]]<br />[[Nazziunali di palluni cecosluvacca|Cecosluvacchia]] |[[File:Flag of Chile.svg|50px]]<br />[[Nazziunali di palluni cilena|Cili]] |'''1 - 0''' |[[File:Flag of SFR Yugoslavia.svg|50px]]<br />[[Nazziunali di palluni jugoslava|Jugoslavia]] |- align=center bgcolor=#D0E7FF |[[1966]]<br />''[[Campiunatu munniali FIFA 1966|Dittagghi]]'' |[[Ngriterra]] |[[File:Flag of England.svg|50px]]<br />'''[[Nazziunali di palluni ngrisa|Ngriterra]]''' |'''4 - 2'''<br /> (Tempu supplimintariu) |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania di l'Ovest]] |[[File:Flag of Portugal.svg|50px]]<br />[[Nazziunali di palluni portughisa|Portugallu]] |'''2 - 1''' |[[File:Flag of the Soviet Union.svg|50px]]<br />[[Nazziunali di palluni russa|Unioni suviètica]] |- align=center bgcolor=#F5FAFF |[[1970]]<br />''[[Campiunatu munniali FIFA 1970|Dittagghi]]'' |[[Mèssicu]] |[[File:Flag of Brazil.svg|50px]]<br />'''[[Nazziunali di palluni brasiliana|Brasili]]''' |'''4 - 1''' |[[File:Flag of Italy.svg|50px]]<br />[[Nazziunali di palluni taliana|Italia]] |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania di l'Ovest]] |'''1 - 0''' |[[File:Flag of Uruguay.svg|50px]]<br />[[Nazziunali di palluni uruguajana|Uruguai]] |- align=center bgcolor=#D0E7FF |[[1974]]<br />''[[Campiunatu munniali FIFA 1974|Dittagghi]]'' |[[Girmania Ovest]] |[[File:Flag of Germany.svg|50px]]<br />'''[[Nazziunali di palluni tudisca|Girmania di l'Ovest]]''' |'''2 - 1''' |[[File:Flag of the Netherlands.svg|50px]]<br />[[Nazziunali di palluni ulannisa|Ulanna]] |[[File:Flag of Poland.svg|50px]]<br />[[Nazziunali di palluni pulacca|Pulonia]] |'''1 - 0''' |[[File:Flag of Brazil.svg|50px]]<br />[[Nazziunali di palluni brasiliana|Brasili]] |- align=center bgcolor=#F5FAFF |[[1978]]<br />''[[Campiunatu munniali FIFA 1978|Dittagghi]]'' |[[Argintina]] |[[File:Flag of Argentina.svg|50px]]<br />'''[[Nazziunali di palluni argintina|Argintina]]''' |'''3 - 1'''<br /> (Tempu supplimintariu) |[[File:Flag of the Netherlands.svg|50px]]<br />[[Nazziunali di palluni ulannisa|Ulanna]] |[[File:Flag of Brazil.svg|50px]]<br />[[Nazziunali di palluni brasiliana|Brasili]] |'''2 - 1''' |[[File:Flag of Italy.svg|50px]]<br />[[Nazziunali di palluni taliana|Italia]] |- align=center bgcolor=#D0E7FF |[[1982]]<br />''[[Campiunatu munniali FIFA 1982|Dittagghi]]'' |[[Spagna]] |[[File:Flag of Italy.svg|50px]]<br />'''[[Nazziunali di palluni taliana|Italia]]''' |'''3 - 1''' |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania di l'Ovest]] |[[File:Flag of Poland.svg|50px]]<br />[[Nazziunali di palluni pulacca|Pulonia]] |'''3 - 2''' |[[File:Flag of France.svg|50px]]<br />[[Nazziunali di palluni francisa|Francia]] |- align=center bgcolor=#F5FAFF |[[1986]]<br />''[[Campiunatu munniali FIFA 1986|Dittagghi]]'' |[[Mèssicu]] |[[File:Flag of Argentina.svg|50px]]<br />'''[[Nazziunali di palluni argintina|Argintina]]''' |'''3 - 2''' |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania di l'Ovest]] |[[File:Flag of France.svg|50px]]<br />[[Nazziunali di palluni francisa|Francia]] |'''4 - 2'''<br />[[Tempi supplementari|dts]] |[[File:Flag of Belgium.svg|50px]]<br />[[Nazziunali di palluni belga|Belgiu]] |- align=center bgcolor=#D0E7FF |[[1990]]<br />''[[Campiunatu munniali FIFA 1990|Dittagghi]]'' |[[Italia]] |[[File:Flag of Germany.svg|50px]]<br />'''[[Nazziunali di palluni tudisca|Girmania di l'Ovest]]''' |'''1 - 0''' |[[File:Flag of Argentina.svg|50px]]<br />[[Nazziunali di palluni argintina|Argintina]] |[[File:Flag of Italy.svg|50px]]<br />[[Nazziunali di palluni taliana|Italia]] |'''2 - 1''' |[[File:Flag of England.svg|50px]]<br />[[Nazziunali di palluni ngrisa|Ngrilterra]] |- align=center bgcolor=#F5FAFF |[[1994]]<br />''[[Campiunatu munniali FIFA 1994|Dittagghi]]'' |[[USA]] |[[File:Flag of Brazil.svg|50px]]<br />'''[[Nazziunali di palluni brasiliana|Brasili]]''' |'''0 - 0''' [[Tempi supplementari|dts]]<br />'''(3 - 2)''' (Rigura) |[[File:Flag of Italy.svg|50px]]<br />[[Nazziunali di palluni taliana|Italia]] |[[File:Flag of Sweden.svg|50px]]<br />[[Nazziunali di palluni svidisa|Svezzia]] |'''4 - 0''' |[[File:Flag of Bulgaria.svg|50px]]<br />[[Nazziunali di palluni bulgara|Bulgaria]] |- align=center bgcolor=#D0E7FF |[[1998]]<br />''[[Campiunatu munniali FIFA 1998|Dittagghi]]'' |[[Francia]] |[[File:Flag of France.svg|50px]]<br />'''[[Nazziunali di palluni francisa|Francia]]''' |'''3 - 0''' |[[File:Flag of Brazil.svg|50px]]<br />[[Nazziunali di palluni brasiliana|Brasili]] |[[File:Flag of Croatia.svg|50px]]<br />[[Nazziunali di palluni croata|Croazzia]] |'''2 - 1''' |[[File:Flag of the Netherlands.svg|50px]]<br />[[Nazziunali di palluni ulannisa|Ulanna]] |- align=center bgcolor=#F5FAFF |[[2002]]<br />''[[Campiunatu munniali FIFA 2002|Dittagghi]]'' |[[Corea dû Sud]] e [[Giappuni]] |[[File:Flag of Brazil.svg|50px]]<br />'''[[Nazziunali di palluni brasiliana|Brasili]]''' |'''2 - 0''' |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania]] |[[File:Flag of Turkey.svg|50px]]<br />[[Nazziunali di palluni turca|Turchìa]] |'''3 - 2''' |[[File:Flag of South Korea.svg|50px]]<br />[[Nazziunali di palluni sudcoreana|Corea dû Sud]] |- align=center bgcolor=#D0E7FF |[[2006]]<br />''[[Campiunatu munniali FIFA 2006|Dittagghi]]'' |[[Girmania]] |[[File:Flag of Italy.svg|50px]]<br />'''[[Nazziunali di palluni taliana|Italia]]''' |'''1 - 1''' [[Tempi supplementari|dts]]<br />'''(5 - 3)''' (Rigura) |[[File:Flag of France.svg|50px]]<br />[[Nazziunali di palluni francisa|Francia]] |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania]] |'''3 - 1''' |[[File:Flag of Portugal.svg|50px]]<br />[[Nazziunali di palluni sudcoreana|Portugallu]] |- align=center bgcolor=#F5FAFF |[[2010]]<br />''[[Campiunatu munniali FIFA 2010|Dittagghi]]'' |[[Àfrica dû Sud]] ||[[File:Flag of Spain.svg|50px]]<br />'''[[Nazziunali di palluni spagnola|Spagna]]''' |'''1 - 0''' [[Tempi supplementari|dts]]<br />''' |[[File:Flag of the Netherlands.svg|50px]]<br />[[Nazziunali di palluni ulannisa|Ulanna]] |[[File:Flag of Germany.svg|50px]]<br />[[Nazziunali di palluni tudisca|Girmania]] |'''3 - 2''' |[[File:Flag of Uruguay.svg|50px]]<br />[[Nazziunali di palluni uruguajana|Uruguai]] |- align=center bgcolor=#D0E7FF |[[2014]]<br />''[[Campiunatu munniali FIFA 2014|Dittagghi]]'' |[[Brasili]] ||[[File:Flag of Germany.svg|50px]]<br />'''[[Nazziunali di palluni tudisca|Girmania]]''' |'''1 - 0''' [[Tempi supplementari|dts]]<br />''' |[[File:Flag of Argentina.svg|50px]]<br />[[Nazziunali di palluni argintina|Argintina]] |[[File:Flag of the Netherlands.svg|50px]]<br />[[Nazziunali di palluni ulannisa|Ulanna]] |'''3 - 0''' |[[File:Flag of Brazil.svg|50px]]<br />'''[[Nazziunali di palluni brasiliana|Brasili]]''' |- align=center bgcolor=#F5FAFF |[[2018]]<br />''[[Campiunatu munniali FIFA 2018|Dittagghi]]'' |[[Russia]] |[[File:Flag of France.svg|50px]]<br />[[Nazziunali di palluni francisa|'''Francia''']] |'''4 - 2''' |[[File:Flag of Croatia.svg|50px]]<br />[[Nazziunali di palluni croata|Croazzia]] |[[File:Flag of Belgium.svg|50px]]<br />[[Nazziunali di palluni belga|Belgiu]] |'''2 - 0''' |[[File:Flag of England.svg|50px]]<br />'''[[Nazziunali di palluni ngrisa|Ngriterra]]''' |- align=center bgcolor=#D0E7FF |[[2022]]<br />''[[Campiunatu munniali FIFA 2022|Dittagghi]]'' |[[Qatar]] |[[File:Flag of Argentina.svg|50px]]<br />[[Nazziunali di palluni argintina|'''Argintina''']] |'''3 - 3''' [[Tempi supplementari|dts]]<br />'''(4 - 2)''' (Rigura) |[[File:Flag of France.svg|50px]]<br />[[Nazziunali di palluni francisa|Francia]] |[[File:Flag of Croatia.svg|50px]]<br />[[Nazziunali di palluni croata|Croazzia]] |'''2 - 1''' |[[File:Flag of Morocco.svg|50px]]<br />[[Nazziunali di palluni marucchina|Maroccu]] |- align=center bgcolor=#F5FAFF |[[2026]]<br />''[[Campiunatu munniali FIFA 2026|Dittagghi]]'' |[[USA]], [[Mèssicu]] e [[Canadà]] | | | | | | |} {| class="wikitable" !Vincituri !Campiunati !Annu |- |{{bandiera|BRA}} [[Brasili]] | align="center" |'''5''' |1958, 1962, 1970, 1994, 2002 |- |{{bandiera|DEU}} [[Girmania]] | align="center" |'''4''' |1954, 1974, 1990, 2014 |- |{{bandiera|ITA}} [[Italia]] | align="center" |'''4''' |1934, 1938, 1982, 2006 |- |{{bandiera|ARG}} [[Argintina]] | align="center" |'''3''' |1978, 1986, 2022 |- |{{bandiera|FRA}} [[Francia]] | align="center" |'''2''' |1998, 2018 |- |{{bandiera|URY}} [[Uruguai]] | align="center" |'''2''' |1930, 1950 |- |{{bandiera|GBR}} [[Nglaterra]] | align="center" |'''1''' |1966 |- |{{bandiera|ESP}} [[Spagna]] | align="center" |'''1''' |2010 |} == Talìa puru == * [[Giruna pî Munniali di palluni dû 2006]] * [[Campiunatu munniali FIFA 2026]] * [[Classifica di li squatri di palluni pi nummuro di jucatura campiuna dû munnu cu li nazziunala]] * [[Nazziunala di palluni campiuna dû munnu]] {{sport}} [[Catigurìa:Palluni]] [[Catigurìa:Campiunati]] 3ybcxlsf3esgun4kqhnf6scbtfm5mno Gaetanu Donizzetti 0 27351 782069 662907 2026-05-14T04:16:08Z ~2026-29005-02 50967 782069 wikitext text/x-wiki {{Mùsica}} '''Gaetanu Donizzetti''' ([[Bergamu]], [[29 di nuvèmmiru]] [[1797]] - [[8 di aprili]] [[1848]]) fu nu cèlibbri mùsicista di [[òpira]]. Tra li sò òpiri cchiù canusciuti ci sunnu la ''Lucia di Lammermour'', l' ''Elisir d'Amuri'' e lu ''Don Pasquali''. [[File:Gaetano_Donizetti_(portrait_by_Giuseppe_Rillosi).jpg|thumb|left|300px|Nu ritrattu di Donizzetti]] [[Catigurìa:Biografìi|Donizzetti, Gaetanu]] [[Catigurìa:Mùsica|Dinizzetti, Gaetanu]] p0lcz4neo78e7od9vuoyp6vx7oak0gu I Cujjienti (Catanzaru) 0 29424 782057 698060 2026-05-13T13:02:31Z GiovanniPen 22308 782057 wikitext text/x-wiki {{Appellu a 'i calabrise}} {{Cumuni|nomucumuni = I Cujjienti|nomuufficiali = Conflenti |pruvincia = [[Pruvincia di Catanzaru|Catanzaru]] (CZ) |superfici = 31,00 |abbitanti = 1.677 |dinsita = 56 |cumunilimitrofi = [[Dicollatura]], [[Lamezia]], [[Marturanu (CZ)|Marturanu]] (Anticu), [[Marturanu Lombardu]], [[Motta Santa Lucìa]], [[Petrania]] |cap = 88040 |prifissutelefonicu = 0968 }} '''I Cujjienti''' (o '''I Cujjhienti''') è nu cumuni di 1.677 abbitanti dâ pruvincia di [[Catanzaru]]. {{Purtalicalabbria}} [[Catigurìa:Cumuna dâ pruvincia di Catanzaru]] 5i0h3bshjre2cmsqn30d0f53l4gw471 San Feli 0 39515 782055 781878 2026-05-13T12:58:50Z GiovanniPen 22308 782055 wikitext text/x-wiki '''San Feli''' è nu cumuni di 3546 abbitanti dâ [[pruvincia di Putenza]]. [[File:San Fele Vista Panoramica.jpg|thumb]] == Lijami di fora == * https://www.comune.sanfele.pz.it/ {{pruvincia di Putenza}} 25mu2n4f69zb4o3w3gf0tswlvylnfe4 782056 782055 2026-05-13T12:59:18Z GiovanniPen 22308 added [[Category:Cumuna taliani]] using [[Help:Gadget-HotCat|HotCat]] 782056 wikitext text/x-wiki '''San Feli''' è nu cumuni di 3546 abbitanti dâ [[pruvincia di Putenza]]. [[File:San Fele Vista Panoramica.jpg|thumb]] == Lijami di fora == * https://www.comune.sanfele.pz.it/ {{pruvincia di Putenza}} [[Catigurìa:Cumuna taliani]] p2x6rjkax97wjycflwe57tcwjh9xaiz MediaWiki:Vector.css 8 48596 782062 778204 2026-05-13T13:05:41Z Melos 856 +abstract 782062 css text/css /* Gli stili CSS inseriti qui si applicano agli utenti che usano la skin Vector */ /* <pre> */ /* Don't display some stuff on the main page */ body.page-Pàggina_principali #deleteconfirm, body.page-Pàggina_principali #t-cite, body.page-Pàggina_principali #footer-info-lastmod, body.page-Pàggina_principali #siteSub, body.page-Pàggina_principali #contentSub, body.page-Pàggina_principali h1.firstHeading { display: none !important; } body.page-Pàggina_principali #mp-topbanner { margin-top: 0 !important; } /* Icone altri progetti in barra strumenti */ li.wb-otherproject-link { background-repeat: no-repeat; background-position: left center; } #p-wikibase-otherprojects li.wb-otherproject-link { padding-left: 20px; } li.wb-otherproject-commons { background-image: url("//upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg"); background-size: 16px 22px; } li.wb-otherproject-wiktionary { background-image: url("//upload.wikimedia.org/wikipedia/commons/f/f9/Wiktionary_small.svg"); background-size: 16px 16px; } li.wb-otherproject-wikibooks { background-image: url("//upload.wikimedia.org/wikipedia/commons/f/fa/Wikibooks-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-wikiquote { background-image: url("//upload.wikimedia.org/wikipedia/commons/f/fa/Wikiquote-logo.svg"); background-size: 17px 17px; } li.wb-otherproject-wikisource, li.wb-otherproject-sources { background-image: url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg"); background-size: 16px 17px; } li.wb-otherproject-wikinews { background-image: url("//upload.wikimedia.org/wikipedia/commons/c/c8/Wikinews_waves_Left.svg"); background-size: 16px 16px; } li.wb-otherproject-species { background-image: url("//upload.wikimedia.org/wikipedia/commons/d/df/Wikispecies-logo.svg"); background-size: 16px 19px; } li.wb-otherproject-wikivoyage { background-image: url("//upload.wikimedia.org/wikipedia/commons/8/8a/Wikivoyage-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-wikiversity { background-image: url("//upload.wikimedia.org/wikipedia/commons/9/91/Wikiversity-logo.svg"); background-size: 16px 13px; } li.wb-otherproject-wikidata, li.wb-otherproject-wikibase-dataitem { background-image: url("//upload.wikimedia.org/wikipedia/commons/4/4a/Wikidata_Favicon_color.svg"); background-size: 15px 15px; } li.wb-otherproject-meta { background-image: url("//upload.wikimedia.org/wikipedia/commons/7/75/Wikimedia_Community_Logo.svg"); background-size: 16px 16px; } li.wb-otherproject-incubator { background-image: url("//upload.wikimedia.org/wikipedia/commons/e/e3/Incubator-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-mediawiki { background-image: url("//upload.wikimedia.org/wikipedia/commons/c/c6/MediaWiki-2020-small-icon.svg"); background-size: 16px 16px; } li.wb-otherproject-foundation { background-image: url("//upload.wikimedia.org/wikipedia/commons/8/8b/Wikimedia-logo_black.svg"); background-size: 16px 16px; } li.wb-otherproject-outreach { background-image: url("//upload.wikimedia.org/wikipedia/commons/8/81/Wikimedia-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-wikifunctions { background-image: url("//upload.wikimedia.org/wikipedia/commons/0/0c/Wikifunctions-logo.svg"); background-size: 16px 17px; } li.wb-otherproject-wikimania { background-image: url("//upload.wikimedia.org/wikipedia/commons/5/57/Wikimania.svg"); background-size: 16px 17px; } li.wb-otherproject-abstract { background-image: url("//upload.wikimedia.org/wikipedia/commons/c/c5/Abstract-Wikipedia-favicon.svg"); background-size: 16px 17px; } /* </pre> */ jj292zln3j5awxlakvbosgpogo35mqb Triesen 0 60982 782065 706395 2026-05-13T15:26:37Z -wuppertaler 50904 photo added 782065 wikitext text/x-wiki [[File:View of Triesen.jpg|thumb]] '''Triesen''' è na citati dû [[Liechtenstein]] e havi circa 4 827 abbitanti. {{Commonscat}} {{Comuni dû Liechtenstein}} [[Catigurìa:Cumuna dû Liechtenstein]] 1jyvzh5imqsg4qhf1uuor08x6wc5cid MediaWiki:Vector-2022.css 8 67088 782063 778203 2026-05-13T13:27:28Z Melos 856 +abstract 782063 css text/css /* Icone progetti barra laterale altri progetti */ li.wb-otherproject-link { background-repeat: no-repeat; background-position: left center; } #p-wikibase-otherprojects li.wb-otherproject-link { padding-left: 20px; } li.wb-otherproject-commons { background-image: url("//upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg"); background-size: 16px 22px; } li.wb-otherproject-wiktionary { background-image: url("//upload.wikimedia.org/wikipedia/commons/f/f9/Wiktionary_small.svg"); background-size: 16px 16px; } li.wb-otherproject-wikibooks { background-image: url("//upload.wikimedia.org/wikipedia/commons/f/fa/Wikibooks-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-wikiquote { background-image: url("//upload.wikimedia.org/wikipedia/commons/f/fa/Wikiquote-logo.svg"); background-size: 17px 17px; } li.wb-otherproject-wikisource, li.wb-otherproject-sources { background-image: url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg"); background-size: 16px 17px; } li.wb-otherproject-wikinews { background-image: url("//upload.wikimedia.org/wikipedia/commons/c/c8/Wikinews_waves_Left.svg"); background-size: 16px 16px; } li.wb-otherproject-species { background-image: url("//upload.wikimedia.org/wikipedia/commons/d/df/Wikispecies-logo.svg"); background-size: 16px 19px; } li.wb-otherproject-wikivoyage { background-image: url("//upload.wikimedia.org/wikipedia/commons/8/8a/Wikivoyage-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-wikiversity { background-image: url("//upload.wikimedia.org/wikipedia/commons/9/91/Wikiversity-logo.svg"); background-size: 16px 13px; } li.wb-otherproject-wikidata, li.wb-otherproject-wikibase-dataitem { background-image: url("//upload.wikimedia.org/wikipedia/commons/4/4a/Wikidata_Favicon_color.svg"); background-size: 15px 15px; } li.wb-otherproject-meta { background-image: url("//upload.wikimedia.org/wikipedia/commons/7/75/Wikimedia_Community_Logo.svg"); background-size: 16px 16px; } li.wb-otherproject-incubator { background-image: url("//upload.wikimedia.org/wikipedia/commons/e/e3/Incubator-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-mediawiki { background-image: url("//upload.wikimedia.org/wikipedia/commons/c/c6/MediaWiki-2020-small-icon.svg"); background-size: 16px 16px; } li.wb-otherproject-foundation { background-image: url("//upload.wikimedia.org/wikipedia/commons/8/8b/Wikimedia-logo_black.svg"); background-size: 16px 16px; } li.wb-otherproject-outreach { background-image: url("//upload.wikimedia.org/wikipedia/commons/8/81/Wikimedia-logo.svg"); background-size: 16px 16px; } li.wb-otherproject-wikifunctions { background-image: url("//upload.wikimedia.org/wikipedia/commons/0/0c/Wikifunctions-logo.svg"); background-size: 16px 17px; } li.wb-otherproject-wikimania { background-image: url("//upload.wikimedia.org/wikipedia/commons/5/57/Wikimania.svg"); background-size: 16px 17px; } li.wb-otherproject-abstract { background-image: url("//upload.wikimedia.org/wikipedia/commons/c/c5/Abstract-Wikipedia-favicon.svg"); background-size: 16px 17px; } lh410on1chz6aw8e7gqiqernu7c6duf Mòdulu:Coord 828 67414 782059 782028 2026-05-13T13:03:58Z GiovanniPen 22308 fix traduzione stringa d'errore 782059 Scribunto text/plain --[[ * Mòdulu ca 'mplementa lu template Coord. ]] require('strict') local mWikidata = require('Mòdulu:Wikidata') local cfg = mw.loadData('Mòdulu:Coord/Configurazione') local errorCategory = '[[Catigurìa:Errori di compilazione del template Coord]]' -- ============================================================================= -- Funzioni di utilità -- ============================================================================= -- Error handler per xpcall, formatta l'errore. -- -- @param {string} msg -- @return {string} local function errhandler(msg) local cat = mw.title.getCurrentTitle().namespace == 0 and errorCategory or '' return string.format('<div style="color:red">Lu template {{Coord}} truvò na picca di sbagghi ' .. '([[Template:Coord|struzzioni]]):\n%s</div>%s', msg, cat) end -- Restituisce lu nùmmuru arrotondato al nùmmuru di cifre decimali richiesto. -- http://lua-users.org/wiki/SimpleRound -- -- @param {number} num -- @param {number} idp -- @return {number} local function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end -- Restituisce la stringa "0 + nùmmuru" quannu lu nùmmuru è di una sola cifra, altrimenti lo stesso nùmmuru. -- -- @param {number} num -- @return {string} local function padleft0(num) return (num < 10 and '0' or '') .. num end -- Converte un nùmmuru in stringa senza usare la notazione scientifica, esempio tostring(0.00001). -- -- @param {number} num -- @return {string} local function numberToString(num) -- la parentesi () extra serve per non restituire anche il gsub.count return (string.format('%f', num):gsub('%.?0+$', '')) end -- Parsifica il parametro display e restituisce una table con chiavi inline, title e debug. -- -- @param {table} args -- @return {table} local function getDisplay(args) return { inline = not args.display or args.display == 'inline' or args.display == 'inline,title', title = args.display == 'title' or args.display == 'inline,title', debug = args.display == 'debug' } end local function getZoom( extraparams ) local scale = extraparams:match( '%f[%w]scale: ?(%d+)' ) if scale then return math.floor(math.log10( 5 / tonumber( scale ) ) * 3 + 25) end local extraType = extraparams:match( '%f[%w]type: ?(%w+)' ) if extraType then local zoomType = { country = 5, state = 6, adm1st = 7, adm2nd = 8, city = 9, isle = 10, mountain = 10, waterbody = 10, airport = 12, landmark = 13, } return zoomType[ extraType ] end return 13 end -- Legge i parametri passati al mòdulu. -- -- @param {table} frame -- @return {table} local function getArgs(frame) local args = {} -- copia i parametri ricevuti, eccetto quelli con nome valorizzati a stringa vuota for k, v in pairs(frame:getParent().args) do if v ~= '' or tonumber(k) then args[k] = string.gsub(v, '^%s*(.-)%s*$', '%1') end end -- retrocompatibilità con una funzionalità nascosta del precedente template: -- ignorava qualunque parametro posizionale vuoto dopo longitudine e parametri geohack for i = #args, 1, -1 do if args[i] == '' then table.remove(args, i) else break end end -- rimuove i parametri posizionali vuoti front to back fermandosi al primo non vuoto while args[1] == '' do table.remove(args, 1) end -- se l'utente non ha fornito lat e long con i posizionali ma con latdec e longdec if (#args == 0 or (#args == 1 and not tonumber(args[1]))) and tonumber(args.latdec) and tonumber(args.longdec) then table.insert(args, 1, numberToString(args.latdec)) table.insert(args, 2, numberToString(args.longdec)) end return args end -- ============================================================================= -- Classe DecCoord -- ============================================================================= -- La classe DecCoord rappresenta una coordinata (latitudine o longitudine) in gradi decimali. local DecCoord = {} local DmsCoord = {} -- dichiarata qui per le conversioni -- Costruttore della classe DecCoord. -- -- @param {string} deg - i gradi decimali, positivi o negativi, se negativi viene -- cambiato il segno e la direzione cardinale eventualmente invertita -- @param {string} card - la direzione cardinale (N|S|E|W) -- @return {table} un nuovo oggetto DecCoord function DecCoord:new(deg, card) local self = {} setmetatable(self, { __index = DecCoord, __tostring = function(t) return self:__tostring() end, __concat = function(t, t2) return tostring(t) .. tostring(t2) end }) self.deg = tonumber(deg) if self.deg < 0 then self.card = card == 'N' and 'S' or (card == 'E' and 'W' or card) self.deg = -self.deg else self.card = card end return self end -- Richiamata automaticamente ogni volta che è richiesto un tostring o un concatenamento. -- -- @return {string} function DecCoord:__tostring() return numberToString(self.deg) .. '°' .. self.card end -- Restituisce i gradi con segno. -- -- @return {string} function DecCoord:getDeg() local deg = self.deg * ((self.card == 'N' or self.card =='E') and 1 or -1) return numberToString(deg) end -- Restituisce un nuovo oggetto DmsCoord, convertendo in gradi/minuti/secondi. -- -- @return {table} un nuovo oggetto DmsCoord function DecCoord:toDms() local deg, min, sec deg = round(self.deg * 3600, 2) sec = round(math.floor(deg) % 60 + deg - math.floor(deg), 2) deg = math.floor((deg - sec) / 60) min = deg % 60 deg = math.floor((deg - min) / 60) % 360 return DmsCoord:new(deg, min, sec, self.card) end -- ============================================================================= -- Classe DmsCoord -- ============================================================================= -- La classe DmsCoord rappresenta una coordinata (latitudine o longitudine) in gradi/minuti/secondi. -- Costruttore della classe DmsCoord. -- -- @param {string} deg - i gradi -- @param {string} min - i minuti, può essere nil -- @param {string} sec - i secondi, può essere nil -- @param {string} card - la direzione cardinale (N|S|E|W) -- @return {table} un nuovo oggetto DmsCoord function DmsCoord:new(deg, min, sec, card) local self = {} setmetatable (self, { __index = DmsCoord, __tostring = function(t) return self:__tostring() end, __concat = function(t, t2) return tostring(t) .. tostring(t2) end }) self.deg = tonumber(deg) self.min = min and tonumber(min) self.sec = sec and tonumber(sec) self.card = card return self end -- Richiamata automaticamente ogni volta che è richiesto un tostring o un concatenamento. -- -- @return {string} function DmsCoord:__tostring() return self.deg .. '°' .. (self.min and (padleft0(self.min) .. '′') or '') .. (self.sec and (padleft0(self.sec) .. '″') or '') .. self.card end -- Restituisce un nuovo oggetto DecCoord, convertendo in gradi decimali. -- -- @return {table} un nuovo oggetto DecCoord function DmsCoord:toDec() local deg = round((self.deg + ((self.min or 0) + (self.sec or 0) / 60) / 60), 6) return DecCoord:new(deg, self.card) end -- ============================================================================= -- Classe Coord -- ============================================================================= -- La classe Coord è la classe principale del mòdulu. -- Al suo interno ha un riferimento alla latitudine e longitudine in ogni formato. local Coord = {} -- Costruttore della classe Coord. -- -- @param {table} args -- @return {table} un nuovo oggetto Coord function Coord:new(args) local decLat, decLong, dmsLat, dmsLong local display = getDisplay(args) local self = { args = args } setmetatable(self, { __index = Coord }) if args.from and display.title then error('il parametro "from" è valido solo con display=inline', 3) end -- con display=title o con i parametri "prop" o "from" -- legge le coordinate da P625 per utilizzarle o per confrontarle con quelle inserite if getDisplay(self.args).title or self.args.prop or args.from then self:_checkWikidata() -- con "from", senza coordinate utente e su Wikidata non esegue i controlli successivi if self.args.from and #self.args < 2 and not tonumber(args[1]) then return self end end -- identifica il tipo di chiamata self:_checkRequestFormat() -- in base al tipo di chiamata crea gli oggetti DecCoord o DmsCoord if self.reqFormat == 'dec' then -- {{coord|1.111|2.222}} decLat = DecCoord:new(args[1], 'N') decLong = DecCoord:new(args[2], 'E') elseif self.reqFormat == 'd' then -- {{coord|1.111|N|3.333|W}} decLat = DecCoord:new(args[1], args[2]) decLong = DecCoord:new(args[3], args[4]) elseif self.reqFormat == 'dm' then -- {{coord|1|2|N|4|5|W}} dmsLat = DmsCoord:new(args[1], args[2], nil, args[3]) dmsLong = DmsCoord:new(args[4], args[5], nil, args[6]) elseif self.reqFormat == 'dms' then -- {{coord|1|2|3|N|5|6|7|W}} dmsLat = DmsCoord:new(args[1], args[2], args[3], args[4]) dmsLong = DmsCoord:new(args[5], args[6], args[7], args[8]) end -- effettua le conversioni dec <=> dms if self.reqFormat == 'dec' or self.reqFormat == 'd' then dmsLat = decLat:toDms() dmsLong = decLong:toDms() -- rimuove secondi e minuti se zero e presenti in lat e long if dmsLat.sec == 0 and dmsLong.sec == 0 then dmsLat.sec, dmsLong.sec = nil, nil if dmsLat.min == 0 and dmsLong.min == 0 then dmsLat.min, dmsLong.min = nil, nil end end elseif self.reqFormat == 'dm' or self.reqFormat == 'dms' then decLat = dmsLat:toDec() decLong = dmsLong:toDec() end self.decLat = decLat self.decLong = decLong self.dmsLat = dmsLat self.dmsLong = dmsLong return self end -- Legge la P625 e la utilizza come latitudine e longitudine se non fornite dall'utente. function Coord:_checkWikidata() self.wdEntityId = self.args.from or mw.wikibase.getEntityIdForCurrentPage(); if self.args.prop then self.wdLat = mWikidata._getQualifier({ self.args.prop, 'P625', coord = 'latitude', n = 1, nq = 1, from = self.wdEntityId }) self.wdLong = mWikidata._getQualifier({ self.args.prop, 'P625', coord = 'longitude', n = 1, nq = 1, from = self.wdEntityId }) else self.wdLat = mWikidata._getProperty({ 'P625', coord = 'latitude', n = 1, from = self.wdEntityId }) self.wdLong = mWikidata._getProperty({ 'P625', coord = 'longitude', n = 1, from = self.wdEntityId }) end if self.wdLat and self.wdLong then self.wdLat = round(self.wdLat, 6) self.wdLong = round(self.wdLong, 6) -- se l'utente non ha fornito lat e long usa quelli di Wikidata if #self.args == 0 or (#self.args == 1 and not tonumber(self.args[1])) then table.insert(self.args, 1, numberToString(self.wdLat)) table.insert(self.args, 2, numberToString(self.wdLong)) self.wdCat = '[[Catigurìa:P625 letta da Wikidata]]' end else self.wdCat = '[[Catigurìa:P625 assente su Wikidata]]' end end -- Riconosce il tipo di richiesta: dec, d, dm o dms. function Coord:_checkRequestFormat() local errorTable = {} -- riconoscimento tipo di richiesta if #self.args < 2 then error('* cuurdinati nun specificate', 4) elseif #self.args < 4 then self.reqFormat = 'dec' elseif #self.args < 6 then self.reqFormat = 'd' elseif #self.args < 8 then self.reqFormat = 'dm' elseif #self.args < 10 then self.reqFormat = 'dms' else error('* errato nùmmuru di parametri', 4) end -- con le richieste dm e dms verifica se ci sono parametri lasciati vuoti in modo valido. if self.reqFormat == 'dms' then -- {{coord|1|2||N|5|6||E}} valido if self.args[3] == '' and self.args[7] == '' then table.remove(self.args, 7) table.remove(self.args, 3) self.reqFormat = 'dm' -- {{coord|1|2|3|N|5|6||E}} non valido elseif self.args[3] == '' or self.args[7] == '' then error('* lat e long hanno diversa precisione', 4) -- {{coord|1||3|N|5||7|E}} valido elseif self.args[2] == '' and self.args[6] == '' then self.args[2], self.args[6] = 0, 0 -- {{coord|1|2|3|N|5||7|E}} non valido elseif self.args[2] == '' or self.args[6] == '' then error('* lat e long hanno diversa precisione', 4) end end if self.reqFormat == 'dm' then -- {{coord|1||N|4||E}} valido if self.args[2] == '' and self.args[5] == '' then table.remove(self.args, 5) table.remove(self.args, 2) self.reqFormat = 'd' -- {{coord|1|2|N|4||E}} non valido elseif self.args[2] == '' or self.args[5] == '' then error('* lat e long hanno diversa precisione', 4) end end -- validazione parametri posizionali local currFormat = cfg.params[self.reqFormat] local globe = self.args[#self.args]:match('globe:(%w+)') self.isEarth = not globe or globe == 'earth' for k, v in ipairs(self.args) do if currFormat[k] then local err local parType = currFormat[k][1] local parName = currFormat[k][2] local parMin = currFormat[k][3] local parMax = currFormat[k][4] -- valida un parametro di tipo nùmmuru if parType == 'number' then local num = tonumber(v) if num then if self.isEarth and num < parMin then err = string.format('* %s format: %s < %s', self.reqFormat, parName, parMin) elseif self.isEarth and math.floor(num) > parMax then err = string.format('* %s format: %s > %s', self.reqFormat, parName, parMax) end else err = string.format('* %s format: %s non è un nùmmuru', self.reqFormat, parName) end -- valida un parametro di tipo stringa elseif parType == 'string' then if v ~= parMin and v ~= parMax then err = string.format('* %s format: %s diverso da %s e da %s', self.reqFormat, parName, parMin, parMax) end end if err then table.insert(errorTable, err) end end end if #errorTable > 0 then error(table.concat(errorTable, '\n'), 4) end end -- Utilizza l'estensione [[mw:Extension:GeoData]]. -- -- @param {table} display -- @return {string} function Coord:_setGeoData(display) local gdStr = string.format('{{#coordinates:%s|%s|name=%s}}', table.concat(self.args, '|'), (display.title and mw.title.getCurrentTitle().namespace == 0) and 'primary' or '', self.args.name or '') return mw.getCurrentFrame():preprocess(gdStr) end -- Funzione di debug, restituisce latitudine e longitudine in entrambi i formati. -- -- @return {string} function Coord:getDebugCoords() -- con args.from restitusce una stringa vuota se non c'è nessun dato if self.args.from and #self.args < 2 and not tonumber(self.args[1]) then return '' end return self.decLat .. ' ' .. self.decLong .. ' ' .. self.dmsLat .. ' ' .. self.dmsLong end -- Restituisce l'HTML di un elemento <maplink> di Kartographer per le coordinate -- -- @return {string} function Coord:_buildMaplinkHTML() local defaultFormat if self.args.format then defaultFormat = self.args.format elseif self.reqFormat == 'dec' then defaultFormat = 'dec' else defaultFormat = 'dms' end local linkText; if defaultFormat == 'dec' then linkText = self.decLat .. ' ' .. self.decLong else linkText = tostring(self.dmsLat) .. ' ' .. tostring(self.dmsLong) end local jsonParams = { type = 'Feature', geometry = { type ='Point', coordinates = { round( self.decLong:getDeg(), 6 ), -- max precision in GeoJSON format round( self.decLat:getDeg(), 6 ) } }, properties = { ['marker-color'] = "228b22", } } if self.wdEntityId then -- geoshape da Wikidata jsonParams = { jsonParams, { type = 'ExternalData', service = 'geoshape', ids = self.wdEntityId, properties = { ['fill-opacity'] = 0.2 } } } end return mw.getCurrentFrame():extensionTag{ name = 'maplink', content = mw.text.jsonEncode( jsonParams ), args = { text = linkText, zoom = getZoom( self.args[#self.args] or '' ), latitude = self.decLat:getDeg(), longitude = self.decLong:getDeg(), } } end -- Restituisce l'HTML di un link a geohack con le coordinate (usato solo quando non è possibile usare maplink). -- -- @return {string} function Coord:_buildGeohackLink() -- crea la stringa per il parametro params di geohack.php local geohackParams if self.reqFormat == 'dec' then geohackParams = string.format('%s_N_%s_E', self.args[1], self.args[2]) if self.args[3] then geohackParams = geohackParams .. '_' .. self.args[3] end else -- concatena solo i posizionali geohackParams = table.concat(self.args, '_') end -- geohack url e parametri local url = string.format('%s&pagename=%s&params=%s', cfg.geohackUrl, mw.uri.encode(mw.title.getCurrentTitle().prefixedText, 'WIKI'), geohackParams) if self.args.name then url = url .. '&title=' .. mw.uri.encode(self.args.name) end local linkNode = mw.html.create('span') :addClass('plainlinks nourlexpansion') :wikitext('[' .. url .. ' ' .. tostring(self.dmsLat) .. ' ' .. tostring(self.dmsLong) .. ']') :done() return tostring(linkNode) end -- Restituisce l'HTML per il microformat Geo. -- FIXME Serve ancora nel 2024? La documentazione in proposito è scarsissima, e tutti -- i link a strumenti che lo usano non vanno più. Inoltre, qui usiamo un elemento nascosto; -- va bene lo stesso? Come verificarlo? Le specifiche non ne parlano. -- -- @return {string} function Coord:_buildGeoMarkup() return mw.html.create('') :wikitext(self.args.name and '<span class="vcard">' or '') :tag('span') :attr('style', 'display:none') :addClass('geo') :tag('span') :addClass('latitude') :wikitext(tostring(self.dmsLat)) :done() :wikitext( ', ' ) :tag('span') :addClass('longitude') :wikitext(tostring(self.dmsLong)) :done() :wikitext(self.args.name and ('<span style="display:none"> (<span class="fn org">' .. self.args.name .. '</span>)</span></span>') or '') :done() end -- Restituisce l'HTML contenente le coordinate con link che utilizza <maplink> (Kartographer) -- se possibile, e geohack altrimenti. -- -- @return {string} function Coord:getHTML() -- con args.from restitusce una stringa vuota se non c'è nessun dato if self.args.from and #self.args < 2 and not tonumber(self.args[1]) then return '' elseif self.args.display == 'debug' then return self:getDebugCoords() end local display = getDisplay(self.args) local coordLink if self.isEarth then -- Usa maplink se possibile. A maggio 2024 supporta solo coordinate terrestri, -- vedi T151138. coordLink = self:_buildMaplinkHTML() else coordLink = self:_buildGeohackLink() end local geo = self:_buildGeoMarkup(); local html = coordLink .. tostring(geo) .. (self.args.notes or '') local frame = mw.getCurrentFrame() local ret = frame:extensionTag('templatestyles', '', {src = 'Mòdulu:Coord/styles.css'}) .. (display.inline and html or ''); if display.title then -- formatta il risultato a seconda di args.display (nil, 'inline', 'title', 'inline,title') -- se inline e title, in stampa visualizza solo il primo local htmlTitle = string.format( '<div style="font-size: small"><span %s id="coordinates">[[Cuurdinati giugràfichi|Cuurdinati]]: %s</span></div>', display.inline and 'class="noprint"' or '', html ) ret = ret .. frame:extensionTag( 'indicator', htmlTitle, { name = 'coordinates' } ) end return ret .. self:_setGeoData(display) .. (mw.title.getCurrentTitle().namespace == 0 and self.wdCat or '') end -- ============================================================================= -- Funzioni esportate -- ============================================================================= local p = {} -- Funzione importata da https://en.wikipedia.org/w/index.php?title=Module:Coordinates&oldid=789126031 -- per estrarre lat, long, type, scale, dim, region, globe, source, dal link a geohack.php generato da coord. function p.coord2text(frame) if frame.args[1] == '' or frame.args[2] == '' or not frame.args[2] then return nil end frame.args[2] = mw.text.trim(frame.args[2]) if frame.args[2] == 'lat' or frame.args[2] == 'long' then local result, negative = mw.text.split((mw.ustring.match(frame.args[1],'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ') if frame.args[2] == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end result = mw.text.split(result, '°') if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(frame.args[1], 'params=.-_'..frame.args[2]..':(.-)[ _]') end end -- Funzione per eventuale template {{dms2dec}}. function p.dms2dec(frame) local args = frame.args -- {{dms2dec|N|2|3|4}} return DmsCoord:new(args[2], args[3], args[4], args[1]):toDec():getDeg() end -- Funzione per eventuale template {{dec2dms}}. function p.dec2dms(frame) local args = frame.args -- {{dec2dms|1.111|N|S}} return DecCoord:new(args[1], tonumber(args[1]) >= 0 and args[2] or args[3]):toDms() end -- Funzioni ppi l'utilizzo da n'autru mòdulu. function p._main(args) return Coord:new(args):getHTML() end -- Funzione per il template {{Coord}}. function p.main(frame) return select(2, xpcall(function() return p._main(getArgs(frame)) end, errhandler)) end return p pxjjcu76w37ql2mf6yvjk625arwdbg6 782060 782059 2026-05-13T13:04:28Z GiovanniPen 22308 fix spazio 782060 Scribunto text/plain --[[ * Mòdulu ca 'mplementa lu template Coord. ]] require('strict') local mWikidata = require('Mòdulu:Wikidata') local cfg = mw.loadData('Mòdulu:Coord/Configurazione') local errorCategory = '[[Catigurìa:Errori di compilazione del template Coord]]' -- ============================================================================= -- Funzioni di utilità -- ============================================================================= -- Error handler per xpcall, formatta l'errore. -- -- @param {string} msg -- @return {string} local function errhandler(msg) local cat = mw.title.getCurrentTitle().namespace == 0 and errorCategory or '' return string.format('<div style="color:red">Lu template {{Coord}} truvò na picca di sbagghi ' .. '([[Template:Coord|struzzioni]]):\n%s</div>%s', msg, cat) end -- Restituisce lu nùmmuru arrotondato al nùmmuru di cifre decimali richiesto. -- http://lua-users.org/wiki/SimpleRound -- -- @param {number} num -- @param {number} idp -- @return {number} local function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end -- Restituisce la stringa "0 + nùmmuru" quannu lu nùmmuru è di una sola cifra, altrimenti lo stesso nùmmuru. -- -- @param {number} num -- @return {string} local function padleft0(num) return (num < 10 and '0' or '') .. num end -- Converte un nùmmuru in stringa senza usare la notazione scientifica, esempio tostring(0.00001). -- -- @param {number} num -- @return {string} local function numberToString(num) -- la parentesi () extra serve per non restituire anche il gsub.count return (string.format('%f', num):gsub('%.?0+$', '')) end -- Parsifica il parametro display e restituisce una table con chiavi inline, title e debug. -- -- @param {table} args -- @return {table} local function getDisplay(args) return { inline = not args.display or args.display == 'inline' or args.display == 'inline,title', title = args.display == 'title' or args.display == 'inline,title', debug = args.display == 'debug' } end local function getZoom( extraparams ) local scale = extraparams:match( '%f[%w]scale: ?(%d+)' ) if scale then return math.floor(math.log10( 5 / tonumber( scale ) ) * 3 + 25) end local extraType = extraparams:match( '%f[%w]type: ?(%w+)' ) if extraType then local zoomType = { country = 5, state = 6, adm1st = 7, adm2nd = 8, city = 9, isle = 10, mountain = 10, waterbody = 10, airport = 12, landmark = 13, } return zoomType[ extraType ] end return 13 end -- Legge i parametri passati al mòdulu. -- -- @param {table} frame -- @return {table} local function getArgs(frame) local args = {} -- copia i parametri ricevuti, eccetto quelli con nome valorizzati a stringa vuota for k, v in pairs(frame:getParent().args) do if v ~= '' or tonumber(k) then args[k] = string.gsub(v, '^%s*(.-)%s*$', '%1') end end -- retrocompatibilità con una funzionalità nascosta del precedente template: -- ignorava qualunque parametro posizionale vuoto dopo longitudine e parametri geohack for i = #args, 1, -1 do if args[i] == '' then table.remove(args, i) else break end end -- rimuove i parametri posizionali vuoti front to back fermandosi al primo non vuoto while args[1] == '' do table.remove(args, 1) end -- se l'utente non ha fornito lat e long con i posizionali ma con latdec e longdec if (#args == 0 or (#args == 1 and not tonumber(args[1]))) and tonumber(args.latdec) and tonumber(args.longdec) then table.insert(args, 1, numberToString(args.latdec)) table.insert(args, 2, numberToString(args.longdec)) end return args end -- ============================================================================= -- Classe DecCoord -- ============================================================================= -- La classe DecCoord rappresenta una coordinata (latitudine o longitudine) in gradi decimali. local DecCoord = {} local DmsCoord = {} -- dichiarata qui per le conversioni -- Costruttore della classe DecCoord. -- -- @param {string} deg - i gradi decimali, positivi o negativi, se negativi viene -- cambiato il segno e la direzione cardinale eventualmente invertita -- @param {string} card - la direzione cardinale (N|S|E|W) -- @return {table} un nuovo oggetto DecCoord function DecCoord:new(deg, card) local self = {} setmetatable(self, { __index = DecCoord, __tostring = function(t) return self:__tostring() end, __concat = function(t, t2) return tostring(t) .. tostring(t2) end }) self.deg = tonumber(deg) if self.deg < 0 then self.card = card == 'N' and 'S' or (card == 'E' and 'W' or card) self.deg = -self.deg else self.card = card end return self end -- Richiamata automaticamente ogni volta che è richiesto un tostring o un concatenamento. -- -- @return {string} function DecCoord:__tostring() return numberToString(self.deg) .. '°' .. self.card end -- Restituisce i gradi con segno. -- -- @return {string} function DecCoord:getDeg() local deg = self.deg * ((self.card == 'N' or self.card =='E') and 1 or -1) return numberToString(deg) end -- Restituisce un nuovo oggetto DmsCoord, convertendo in gradi/minuti/secondi. -- -- @return {table} un nuovo oggetto DmsCoord function DecCoord:toDms() local deg, min, sec deg = round(self.deg * 3600, 2) sec = round(math.floor(deg) % 60 + deg - math.floor(deg), 2) deg = math.floor((deg - sec) / 60) min = deg % 60 deg = math.floor((deg - min) / 60) % 360 return DmsCoord:new(deg, min, sec, self.card) end -- ============================================================================= -- Classe DmsCoord -- ============================================================================= -- La classe DmsCoord rappresenta una coordinata (latitudine o longitudine) in gradi/minuti/secondi. -- Costruttore della classe DmsCoord. -- -- @param {string} deg - i gradi -- @param {string} min - i minuti, può essere nil -- @param {string} sec - i secondi, può essere nil -- @param {string} card - la direzione cardinale (N|S|E|W) -- @return {table} un nuovo oggetto DmsCoord function DmsCoord:new(deg, min, sec, card) local self = {} setmetatable (self, { __index = DmsCoord, __tostring = function(t) return self:__tostring() end, __concat = function(t, t2) return tostring(t) .. tostring(t2) end }) self.deg = tonumber(deg) self.min = min and tonumber(min) self.sec = sec and tonumber(sec) self.card = card return self end -- Richiamata automaticamente ogni volta che è richiesto un tostring o un concatenamento. -- -- @return {string} function DmsCoord:__tostring() return self.deg .. '°' .. (self.min and (padleft0(self.min) .. '′') or '') .. (self.sec and (padleft0(self.sec) .. '″') or '') .. self.card end -- Restituisce un nuovo oggetto DecCoord, convertendo in gradi decimali. -- -- @return {table} un nuovo oggetto DecCoord function DmsCoord:toDec() local deg = round((self.deg + ((self.min or 0) + (self.sec or 0) / 60) / 60), 6) return DecCoord:new(deg, self.card) end -- ============================================================================= -- Classe Coord -- ============================================================================= -- La classe Coord è la classe principale del mòdulu. -- Al suo interno ha un riferimento alla latitudine e longitudine in ogni formato. local Coord = {} -- Costruttore della classe Coord. -- -- @param {table} args -- @return {table} un nuovo oggetto Coord function Coord:new(args) local decLat, decLong, dmsLat, dmsLong local display = getDisplay(args) local self = { args = args } setmetatable(self, { __index = Coord }) if args.from and display.title then error('il parametro "from" è valido solo con display=inline', 3) end -- con display=title o con i parametri "prop" o "from" -- legge le coordinate da P625 per utilizzarle o per confrontarle con quelle inserite if getDisplay(self.args).title or self.args.prop or args.from then self:_checkWikidata() -- con "from", senza coordinate utente e su Wikidata non esegue i controlli successivi if self.args.from and #self.args < 2 and not tonumber(args[1]) then return self end end -- identifica il tipo di chiamata self:_checkRequestFormat() -- in base al tipo di chiamata crea gli oggetti DecCoord o DmsCoord if self.reqFormat == 'dec' then -- {{coord|1.111|2.222}} decLat = DecCoord:new(args[1], 'N') decLong = DecCoord:new(args[2], 'E') elseif self.reqFormat == 'd' then -- {{coord|1.111|N|3.333|W}} decLat = DecCoord:new(args[1], args[2]) decLong = DecCoord:new(args[3], args[4]) elseif self.reqFormat == 'dm' then -- {{coord|1|2|N|4|5|W}} dmsLat = DmsCoord:new(args[1], args[2], nil, args[3]) dmsLong = DmsCoord:new(args[4], args[5], nil, args[6]) elseif self.reqFormat == 'dms' then -- {{coord|1|2|3|N|5|6|7|W}} dmsLat = DmsCoord:new(args[1], args[2], args[3], args[4]) dmsLong = DmsCoord:new(args[5], args[6], args[7], args[8]) end -- effettua le conversioni dec <=> dms if self.reqFormat == 'dec' or self.reqFormat == 'd' then dmsLat = decLat:toDms() dmsLong = decLong:toDms() -- rimuove secondi e minuti se zero e presenti in lat e long if dmsLat.sec == 0 and dmsLong.sec == 0 then dmsLat.sec, dmsLong.sec = nil, nil if dmsLat.min == 0 and dmsLong.min == 0 then dmsLat.min, dmsLong.min = nil, nil end end elseif self.reqFormat == 'dm' or self.reqFormat == 'dms' then decLat = dmsLat:toDec() decLong = dmsLong:toDec() end self.decLat = decLat self.decLong = decLong self.dmsLat = dmsLat self.dmsLong = dmsLong return self end -- Legge la P625 e la utilizza come latitudine e longitudine se non fornite dall'utente. function Coord:_checkWikidata() self.wdEntityId = self.args.from or mw.wikibase.getEntityIdForCurrentPage(); if self.args.prop then self.wdLat = mWikidata._getQualifier({ self.args.prop, 'P625', coord = 'latitude', n = 1, nq = 1, from = self.wdEntityId }) self.wdLong = mWikidata._getQualifier({ self.args.prop, 'P625', coord = 'longitude', n = 1, nq = 1, from = self.wdEntityId }) else self.wdLat = mWikidata._getProperty({ 'P625', coord = 'latitude', n = 1, from = self.wdEntityId }) self.wdLong = mWikidata._getProperty({ 'P625', coord = 'longitude', n = 1, from = self.wdEntityId }) end if self.wdLat and self.wdLong then self.wdLat = round(self.wdLat, 6) self.wdLong = round(self.wdLong, 6) -- se l'utente non ha fornito lat e long usa quelli di Wikidata if #self.args == 0 or (#self.args == 1 and not tonumber(self.args[1])) then table.insert(self.args, 1, numberToString(self.wdLat)) table.insert(self.args, 2, numberToString(self.wdLong)) self.wdCat = '[[Catigurìa:P625 letta da Wikidata]]' end else self.wdCat = '[[Catigurìa:P625 assente su Wikidata]]' end end -- Riconosce il tipo di richiesta: dec, d, dm o dms. function Coord:_checkRequestFormat() local errorTable = {} -- riconoscimento tipo di richiesta if #self.args < 2 then error('* cuurdinati nun specificate', 4) elseif #self.args < 4 then self.reqFormat = 'dec' elseif #self.args < 6 then self.reqFormat = 'd' elseif #self.args < 8 then self.reqFormat = 'dm' elseif #self.args < 10 then self.reqFormat = 'dms' else error('* errato nùmmuru di parametri', 4) end -- con le richieste dm e dms verifica se ci sono parametri lasciati vuoti in modo valido. if self.reqFormat == 'dms' then -- {{coord|1|2||N|5|6||E}} valido if self.args[3] == '' and self.args[7] == '' then table.remove(self.args, 7) table.remove(self.args, 3) self.reqFormat = 'dm' -- {{coord|1|2|3|N|5|6||E}} non valido elseif self.args[3] == '' or self.args[7] == '' then error('* lat e long hanno diversa precisione', 4) -- {{coord|1||3|N|5||7|E}} valido elseif self.args[2] == '' and self.args[6] == '' then self.args[2], self.args[6] = 0, 0 -- {{coord|1|2|3|N|5||7|E}} non valido elseif self.args[2] == '' or self.args[6] == '' then error('* lat e long hanno diversa precisione', 4) end end if self.reqFormat == 'dm' then -- {{coord|1||N|4||E}} valido if self.args[2] == '' and self.args[5] == '' then table.remove(self.args, 5) table.remove(self.args, 2) self.reqFormat = 'd' -- {{coord|1|2|N|4||E}} non valido elseif self.args[2] == '' or self.args[5] == '' then error('* lat e long hanno diversa precisione', 4) end end -- validazione parametri posizionali local currFormat = cfg.params[self.reqFormat] local globe = self.args[#self.args]:match('globe:(%w+)') self.isEarth = not globe or globe == 'earth' for k, v in ipairs(self.args) do if currFormat[k] then local err local parType = currFormat[k][1] local parName = currFormat[k][2] local parMin = currFormat[k][3] local parMax = currFormat[k][4] -- valida un parametro di tipo nùmmuru if parType == 'number' then local num = tonumber(v) if num then if self.isEarth and num < parMin then err = string.format('* %s format: %s < %s', self.reqFormat, parName, parMin) elseif self.isEarth and math.floor(num) > parMax then err = string.format('* %s format: %s > %s', self.reqFormat, parName, parMax) end else err = string.format('* %s format: %s non è un nùmmuru', self.reqFormat, parName) end -- valida un parametro di tipo stringa elseif parType == 'string' then if v ~= parMin and v ~= parMax then err = string.format('* %s format: %s diverso da %s e da %s', self.reqFormat, parName, parMin, parMax) end end if err then table.insert(errorTable, err) end end end if #errorTable > 0 then error(table.concat(errorTable, '\n'), 4) end end -- Utilizza l'estensione [[mw:Extension:GeoData]]. -- -- @param {table} display -- @return {string} function Coord:_setGeoData(display) local gdStr = string.format('{{#coordinates:%s|%s|name=%s}}', table.concat(self.args, '|'), (display.title and mw.title.getCurrentTitle().namespace == 0) and 'primary' or '', self.args.name or '') return mw.getCurrentFrame():preprocess(gdStr) end -- Funzione di debug, restituisce latitudine e longitudine in entrambi i formati. -- -- @return {string} function Coord:getDebugCoords() -- con args.from restitusce una stringa vuota se non c'è nessun dato if self.args.from and #self.args < 2 and not tonumber(self.args[1]) then return '' end return self.decLat .. ' ' .. self.decLong .. ' ' .. self.dmsLat .. ' ' .. self.dmsLong end -- Restituisce l'HTML di un elemento <maplink> di Kartographer per le coordinate -- -- @return {string} function Coord:_buildMaplinkHTML() local defaultFormat if self.args.format then defaultFormat = self.args.format elseif self.reqFormat == 'dec' then defaultFormat = 'dec' else defaultFormat = 'dms' end local linkText; if defaultFormat == 'dec' then linkText = self.decLat .. ' ' .. self.decLong else linkText = tostring(self.dmsLat) .. ' ' .. tostring(self.dmsLong) end local jsonParams = { type = 'Feature', geometry = { type ='Point', coordinates = { round( self.decLong:getDeg(), 6 ), -- max precision in GeoJSON format round( self.decLat:getDeg(), 6 ) } }, properties = { ['marker-color'] = "228b22", } } if self.wdEntityId then -- geoshape da Wikidata jsonParams = { jsonParams, { type = 'ExternalData', service = 'geoshape', ids = self.wdEntityId, properties = { ['fill-opacity'] = 0.2 } } } end return mw.getCurrentFrame():extensionTag{ name = 'maplink', content = mw.text.jsonEncode( jsonParams ), args = { text = linkText, zoom = getZoom( self.args[#self.args] or '' ), latitude = self.decLat:getDeg(), longitude = self.decLong:getDeg(), } } end -- Restituisce l'HTML di un link a geohack con le coordinate (usato solo quando non è possibile usare maplink). -- -- @return {string} function Coord:_buildGeohackLink() -- crea la stringa per il parametro params di geohack.php local geohackParams if self.reqFormat == 'dec' then geohackParams = string.format('%s_N_%s_E', self.args[1], self.args[2]) if self.args[3] then geohackParams = geohackParams .. '_' .. self.args[3] end else -- concatena solo i posizionali geohackParams = table.concat(self.args, '_') end -- geohack url e parametri local url = string.format('%s&pagename=%s&params=%s', cfg.geohackUrl, mw.uri.encode(mw.title.getCurrentTitle().prefixedText, 'WIKI'), geohackParams) if self.args.name then url = url .. '&title=' .. mw.uri.encode(self.args.name) end local linkNode = mw.html.create('span') :addClass('plainlinks nourlexpansion') :wikitext('[' .. url .. ' ' .. tostring(self.dmsLat) .. ' ' .. tostring(self.dmsLong) .. ']') :done() return tostring(linkNode) end -- Restituisce l'HTML per il microformat Geo. -- FIXME Serve ancora nel 2024? La documentazione in proposito è scarsissima, e tutti -- i link a strumenti che lo usano non vanno più. Inoltre, qui usiamo un elemento nascosto; -- va bene lo stesso? Come verificarlo? Le specifiche non ne parlano. -- -- @return {string} function Coord:_buildGeoMarkup() return mw.html.create('') :wikitext(self.args.name and '<span class="vcard">' or '') :tag('span') :attr('style', 'display:none') :addClass('geo') :tag('span') :addClass('latitude') :wikitext(tostring(self.dmsLat)) :done() :wikitext( ', ' ) :tag('span') :addClass('longitude') :wikitext(tostring(self.dmsLong)) :done() :wikitext(self.args.name and ('<span style="display:none"> (<span class="fn org">' .. self.args.name .. '</span>)</span></span>') or '') :done() end -- Restituisce l'HTML contenente le coordinate con link che utilizza <maplink> (Kartographer) -- se possibile, e geohack altrimenti. -- -- @return {string} function Coord:getHTML() -- con args.from restitusce una stringa vuota se non c'è nessun dato if self.args.from and #self.args < 2 and not tonumber(self.args[1]) then return '' elseif self.args.display == 'debug' then return self:getDebugCoords() end local display = getDisplay(self.args) local coordLink if self.isEarth then -- Usa maplink se possibile. A maggio 2024 supporta solo coordinate terrestri, -- vedi T151138. coordLink = self:_buildMaplinkHTML() else coordLink = self:_buildGeohackLink() end local geo = self:_buildGeoMarkup(); local html = coordLink .. tostring(geo) .. (self.args.notes or '') local frame = mw.getCurrentFrame() local ret = frame:extensionTag('templatestyles', '', {src = 'Mòdulu:Coord/styles.css'}) .. (display.inline and html or ''); if display.title then -- formatta il risultato a seconda di args.display (nil, 'inline', 'title', 'inline,title') -- se inline e title, in stampa visualizza solo il primo local htmlTitle = string.format( '<div style="font-size: small"><span %s id="coordinates">[[Cuurdinati giugràfichi|Cuurdinati]]: %s</span></div>', display.inline and 'class="noprint"' or '', html ) ret = ret .. frame:extensionTag( 'indicator', htmlTitle, { name = 'coordinates' } ) end return ret .. self:_setGeoData(display) .. (mw.title.getCurrentTitle().namespace == 0 and self.wdCat or '') end -- ============================================================================= -- Funzioni esportate -- ============================================================================= local p = {} -- Funzione importata da https://en.wikipedia.org/w/index.php?title=Module:Coordinates&oldid=789126031 -- per estrarre lat, long, type, scale, dim, region, globe, source, dal link a geohack.php generato da coord. function p.coord2text(frame) if frame.args[1] == '' or frame.args[2] == '' or not frame.args[2] then return nil end frame.args[2] = mw.text.trim(frame.args[2]) if frame.args[2] == 'lat' or frame.args[2] == 'long' then local result, negative = mw.text.split((mw.ustring.match(frame.args[1],'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ') if frame.args[2] == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end result = mw.text.split(result, '°') if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(frame.args[1], 'params=.-_'..frame.args[2]..':(.-)[ _]') end end -- Funzione per eventuale template {{dms2dec}}. function p.dms2dec(frame) local args = frame.args -- {{dms2dec|N|2|3|4}} return DmsCoord:new(args[2], args[3], args[4], args[1]):toDec():getDeg() end -- Funzione per eventuale template {{dec2dms}}. function p.dec2dms(frame) local args = frame.args -- {{dec2dms|1.111|N|S}} return DecCoord:new(args[1], tonumber(args[1]) >= 0 and args[2] or args[3]):toDms() end -- Funzioni ppi l'utilizzo da n'autru mòdulu. function p._main(args) return Coord:new(args):getHTML() end -- Funzione per il template {{Coord}}. function p.main(frame) return select(2, xpcall(function() return p._main(getArgs(frame)) end, errhandler)) end return p biihs8i503suuu07r9ha0gofjewvmp6 Lucianu Canfora 0 67422 782066 2026-05-13T17:03:57Z Franciscus Mirabilis 39714 Creata dalla traduzione della pagina "[[:it:Special:Redirect/revision/150661409|Luciano Canfora]]" 782066 wikitext text/x-wiki {{Biugrafìa | Nomu = Lucianu Canfora | Gèniri = M | LocuNàscita = Bari | LocuNàscitaLijami = https://scn.wikipedia.org/wiki/Bari | JornuMisiNàscita = 5 giugnu | AnnuNàscita = 1942 | Attività = filologu classicu | Attività2 = grecista | Attività3 = storicu | Nazziunalità = talianu }} [[Catigurìa:BioBot]] [[Catigurìa:Cristiani viventi]] [[Catigurìa:Nasciuti ntô 1942]] gsqy8anf43ngg2tsc2y54s63zavdiqc 782067 782066 2026-05-13T17:08:20Z Franciscus Mirabilis 39714 wikilink 782067 wikitext text/x-wiki {{Biugrafìa | Nomu = Lucianu Canfora | Gèniri = M | LocuNàscita = Bari | LocuNàscitaLijami = | JornuMisiNàscita = 5 giugnu | AnnuNàscita = 1942 | Attività = filologu classicu | Attività2 = grecista | Attività3 = storicu | Nazziunalità = talianu }} [[Catigurìa:BioBot]] [[Catigurìa:Cristiani viventi]] [[Catigurìa:Nasciuti ntô 1942]] 8bg2s1wiqd30fosw9s8i7pxykmgkz71 782068 782067 2026-05-13T17:09:05Z Franciscus Mirabilis 39714 cugnomi 782068 wikitext text/x-wiki {{Biugrafìa | Nomu = Lucianu | Gèniri = M | LocuNàscita = Bari | LocuNàscitaLijami = | JornuMisiNàscita = 5 giugnu | AnnuNàscita = 1942 | Attività = filologu classicu | Attività2 = grecista | Attività3 = storicu | Nazziunalità = talianu }} [[Catigurìa:BioBot]] [[Catigurìa:Cristiani viventi]] [[Catigurìa:Nasciuti ntô 1942]] lyv0fl8bkpnjtd0hmqd6o6kqxxoldgu