Wikipedia cebwiki https://ceb.wikipedia.org/wiki/Unang_Panid MediaWiki 1.47.0-wmf.10 first-letter Medya Espesyal Hisgot Gumagamit Hisgot sa Gumagamit Wikipedia Hisgot sa Wikipedia Payl Hisgot sa Payl MediaWiki Hisgot sa MediaWiki Plantilya Hisgot sa Plantilya Tabang Hisgot sa Tabang Kategoriya Hisgot sa Kategoriya TimedText TimedText talk Module Module talk Event Event talk Abril 7 0 2046 37023868 33810523 2026-07-11T01:18:29Z Dostojewskij 18196 /* Mga gipanganak sumad ning adlawa */ + [[Jackie Chan]] 37023868 wikitext text/x-wiki {{Kalendaryo|month=April|float=right|show_year=true}} Ang '''Abril 7''' ang ika-[[7 (isip)|7]] nga adlaw sa tuig sa [[kalendaryong Gregoryan]]. 268 pa ka adlaw ang nahabilin sa tuig. == Mga dagkong panghitabo sumad ning adlawa == == Mga gipanganak sumad ning adlawa == * 1954: [[Jackie Chan]], aktor == Mga nangamatay sumad ning adlawa == == Mga selebrasyon ning adlawa == == Mga eksternal nga link == * [http://news.bbc.co.uk/onthisday/hi/dates/stories/april/7 BBC: On This Day] * [http://www.tnl.net/when/4/7 Today in History: April 7] {{Webarchive|url=https://web.archive.org/web/20051028041741/http://www.tnl.net/when/4/7 |date=2005-10-28 }} {{mga bulan sa tuig}} [[Kategoriya:Mga adlaw sa tuig]] 5mghzdnsmczxexsxth9q9d93aacs4m1 Hulyo 9 0 2171 37023862 34913970 2026-07-10T17:34:20Z Dostojewskij 18196 /* Mga gipanganak sumad ning adlawa */ + [[Courtney Love]] 37023862 wikitext text/x-wiki {{Kalendaryo|month=July|float=right|show_year=true}} Ang '''Hulyo 9''' ang ika-[[190 (isip)|190]] nga adlaw sa tuig sa [[kalendaryong Gregoryan]]. 175 pa ka adlaw ang nahabilin sa tuig. == Mga dagkong panghitabo sumad ning adlawa == == Mga gipanganak sumad ning adlawa == * 1964: [[Courtney Love]], Amerikanong mag-aawit, kompositor ug aktres == Mga nangamatay sumad ning adlawa == == Mga selebrasyon ning adlawa == == Mga eksternal nga link == * [http://news.bbc.co.uk/onthisday/hi/dates/stories/july/9 BBC: On This Day] * [http://www.tnl.net/when/7/9 Today in History: July 9] {{Webarchive|url=https://web.archive.org/web/20051028021502/http://www.tnl.net/when/7/9 |date=2005-10-28 }} {{mga bulan sa tuig}} [[Kategoriya:Mga adlaw sa tuig]] fomk2boazefrgw10i13mynvfybyu3m2 Hulyo 10 0 2172 37023861 34913942 2026-07-10T17:29:19Z Dostojewskij 18196 /* Mga gipanganak sumad ning adlawa */ + [[Nikola Tesla]] 37023861 wikitext text/x-wiki {{Kalendaryo|month=July|float=right|show_year=true}} Ang '''Hulyo 10''' ang ika-[[191 (isip)|191]] nga adlaw sa tuig sa [[kalendaryong Gregoryan]]. 174 pa ka adlaw ang nahabilin sa tuig. == Mga dagkong panghitabo sumad ning adlawa == == Mga gipanganak sumad ning adlawa == * 1856: [[Nikola Tesla]], Sirberyano-Amerikano nga imbentor, ihinyero, pisisista, ug futurist == Mga nangamatay sumad ning adlawa == == Mga selebrasyon ning adlawa == == Mga eksternal nga link == * [http://news.bbc.co.uk/onthisday/hi/dates/stories/july/10 BBC: On This Day] * [http://www.tnl.net/when/7/10 Today in History: July 10] {{Webarchive|url=https://web.archive.org/web/20051123163747/http://www.tnl.net/when/7/10 |date=2005-11-23 }} {{mga bulan sa tuig}} [[Kategoriya:Mga adlaw sa tuig]] arm5sqb1of1w8yb2ark2yk9lpw2gn33 Valencia, Bukidnon 0 3052 37023854 37023618 2026-07-10T13:26:12Z ~2026-38999-20 145955 /* Mga Medya */ 37023854 wikitext text/x-wiki [[Payl:Ph_locator_bukidnon_valencia.png|right|Mapa sa Bukidnon nga nagapakita kon asa ang Dakbayan sa Valencia]] Ang '''Dakbayan sa Valencia''' ikaduhang klaseng dakbayan nahimutang sa probensya sa [[Bukidnon]], [[Pilipinas]]. Adunay kinatibok-an gidak-on nga 587.29 kilometros quadrado ug nahimutang ikaduhang distrito. <br> Sumala sa census ni acting 2024, dunay 223,620 katawo sa 52,184 ka bubong. Ang gitudlo nga kodigo postal mao ang 8709. ==Mga Hisgot== ===Herbz Med Pharma Corporation=== Sa 2023 Ang Audiovisual Communicators, Inc. ug ABJ Radio Broadcasting Services Corporation Herbz Med Pharma Corporation estasyon sa Radyo DXHH News Radyo Sincero sa 1233 kHz sa Arlyn Ayon == Mga Barangay == Ang Dakbayan sa Valencia may 31 ka [[barangay]]. <table border=0><tr> <td valign=top> * Bagontaas * Banlag * Barobo * Batangan * Catumbalon * Colonia * Concepcion * Dagat-Kidavao * Guinoyuran * Kahapunan * Laligan </td><td valign=top> * Lilingayon * Lourdes * Lumbayao * Lumbo * Lurogan * Maapag * Mabuhay * Mailag * Mt. Nebo * Nabago </td><td valign=top> * Pinatilan * Poblacion * San Carlos * San Isidro * Sinabuagan * Sinayawan * Sugod * Tongantongan * Tugaya * Vintar </td></tr></table> ==Mga Medya== *DXAA-AM 738 kHz (Advanced Media Broadcasting System) *DXHH Radyo Sincero 1233 kHz (Audiovisual Communicators ug ABJ Radio Broadcasting Services/Herbz Med Pharma Corporation) *DXCR Hope Radio 1386 kHz (ABJ Radio Broadcasting Services Corporation) *Prime FM 94.5 (DXDK; Prime Broadcasting Network) *97.7 Radyo Sincero Valencia (DXSR Sarraga Integrated and Management Corporation usa ka subsidiary sa Audiovisual Communicators, Inc. ug ABJ Radio Broadcasting Services/Herbz Med Pharma Corporation dating AR Broadcast Media Corporation) ==Mga transmiter== *DXHH News 1233 kHz (DXHH-AM; AR Broadcast Media Corporation usa ka subsidiary sa Audiovisual Communicators, Inc.) *DXCR News 1386 kHz (Mountain View College ug ABJ Radio Broadcasting Services (Herbz Med Pharma Corporation)) *97.7 Radyo Sincero (DXSR; Sarraga Integrated and Management Corporation subsidiary sa Audiovisual Communicators, Inc. ug ABJ Radio Broadcasting Services Corporation) ==Mga sumpay sa gawas== * [http://www.nscb.gov.ph/activestats/psgc/default.asp Philippine Standard Geographic Code] {{Webarchive|url=https://web.archive.org/web/20120413163013/http://www.nscb.gov.ph/activestats/psgc/default.asp |date=2012-04-13 }} * [http://www.census.gov.ph/census2000/index.html 2000 Philippines Census Information] {{Webarchive|url=https://web.archive.org/web/20100130095048/http://www.census.gov.ph/census2000/index.html |date=2010-01-30 }} {{Bukidnon}}{{pilipinas-saha}} {{DEFAULTSORT:Valencia}} [[Kategoriya:Mga lungsod ug dakbayan sa Bukidnon]] [[Kategoriya:Mga dakbayan sa Mindanao]] 6q01i61hnxpkyytxgpujzgowjdzmhd7 Trachusa interrupta 0 1053388 37023879 36121208 2026-07-11T09:01:01Z Mike Duchstein 144561 picture added 37023879 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|buyog|date=2021-08}} {{Taxobox | name = ''Trachusa interrupta'' | status = | image =Trachusa interrupta Anthidium interruptum Anthidiini Resin bee Harzbiene MD284.jpg | image_caption =Trachusa interrupta - male | domain = | regnum = [[Animalia]] | phylum = [[Arthropoda]] | classis = [[Insecta]] | ordo = [[Hymenoptera]] | familia = [[Megachilidae]] | genus = [[Trachusa]] | species = '''Trachusa interrupta''' | binomial = Trachusa interrupta | binomial_authority = ([[Fabricius (awtor)|Fabricius]], 1781) | range_map = | range_map_caption = | image2 = | image2_caption = | subphylum = [[Hexapoda]] | superfamilia = [[Buyog|Apoidea]] | synonyms = }} Kaliwatan sa [[buyog]] ang '''''Trachusa interrupta'''''.<ref name = "COL"/> Una ning gihulagway ni [[Fabricius (awtor)|Fabricius]] ni adtong 1781.<ref name = "col6964402"/> Ang ''Trachusa interrupta'' sakop sa [[kahenera]] nga ''[[Trachusa]]'', ug [[pamilya (biyolohiya)|kabanay]] nga [[Megachilidae]].<ref name = "COL"/><ref name = "source"/> Walay nalista nga matang nga sama niini.<ref name = "COL"/> <!-- katapusan sa gisulat --> == Ang mga gi basihan niini == <references> <ref name = "COL">{{cite web |url= http://www.catalogueoflife.org/DCA_Export/zip-fixed/2019-annual.zip|title= Species 2000 & ITIS Catalogue of Life: 2019 Annual Checklist.|author= Roskov Y., Kunze T., Orrell T., Abucay L., Paglinawan L., Culham A., Bailly N., Kirk P., Bourgoin T., Baillargeon G., Decock W., De Wever A., Didžiulis V.|year= 2019|publisher= Species 2000: Naturalis, Leiden, the Netherlands. ISSN 2405-884X. TaxonID: 6964402|accessdate= 2019-11-11}}</ref> <ref name = "col6964402"> (2008) , manuscript, World Bee Checklist Project - update 2008-09</ref> <ref name = "source">Ruggiero M., Ascher J. & al. (2019). ITIS Bees: World Bee Checklist (version Sep 2009). In: Species 2000 & ITIS Catalogue of Life, 2019 Annual Checklist (Roskov Y., Ower G., Orrell T., Nicolson D., Bailly N., Kirk P.M., Bourgoin T., DeWalt R.E., Decock W., Nieukerken E. van, Zarucchi J., Penev L., eds.). Digital resource at www.catalogueoflife.org/annual-checklist/2019. Species 2000: Naturalis, Leiden, the Netherlands. ISSN 2405-884X.</ref> </references> [[Kategoriya:Buyog]] [[Kategoriya:Trachusa]] 4ezasagmak93w530ivnyr9hqay6wzk5 Leoganger Steinberge 0 3564914 37023859 26733352 2026-07-10T16:32:22Z Carsten Steger 80265 Aerial image of the Leogang Mountains inserted. 37023859 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Ostriya|date=2015-12}} {{geobox | 1 = Range <!-- *** Header *** --> | name = Leoganger Steinberge | native_name = | other_name = | category = Kabukiran | etymology = <!-- *** Image *** --> | image = Aerial image of the Leogang Mountains (view from the south).jpg | image_caption = <!-- *** Admin *** --> | country = {{flag|Ostriya}} | country_flag = | state = [[Salzburg (estado pederal)|Salzburg]] | region = <!-- *** Associated with *** --> | range = | border = | part = | city = | landmark = | river = <!-- *** Location and height *** --> | highest = | highest_location = [[Birnhorn]] | highest_region = | highest_country = | highest_elevation = 2634 | highest_elevation_note = | highest_lat_d = 47.4748 | highest_lat_m = | highest_lat_s = | highest_lat_NS = | highest_long_d = 12.7338 | highest_long_m = | highest_long_s = | highest_long_EW = | lowest = | lowest_location = | lowest_region = | lowest_country = | lowest_elevation = | lowest_elevation_note = <!-- *** Dimensions *** --> | length = 13 | length_orientation = sidlakan-kasadpan | width = | width_orientation = | area = | area_note = <!-- *** Properties *** --> | geology = | orogeny = | period = | biome = | plant = | animal = <!-- *** Free *** --> | free = | free_type = <!-- *** Maps *** --> | map = | map_caption = <!-- *** Notes *** --> | footnotes = | lat_d = 47.47167 | long_d = 12.74694 | state_type = Estado pederal | elevation = 1998 | timezone_label = Europe/Vienna | utc_offset = +1 | utc_offset_DST = +2 | timezone = [[Central European Time|CET]] | timezone_DST = [[Central European Summer Time|CEST]] }} <!--T.MTS-->[[Kabukiran]] ang '''Leoganger Steinberge''' sa [[Ostriya]].<ref name = "gn2772638"/> Nahimutang ni sa estado pederal sa <!--ADM1-->[[Salzburg (estado pederal)|Salzburg]], sa sentro nga bahin sa nasod, {{formatnum:280}} km sa kasadpan sa [[Vienna (ulohang dakbayan)|Vienna]] ang ulohan sa nasod. Leoganger Steinberge mihatag alang sa {{formatnum:12.8}} km sa usa ka sidlakan-kasadpan nga direksyon.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang labing taas nga punto mao ang [[Birnhorn]], {{formatnum:2634}} metros ibabaw sa dagat nga lebel. Ang mosunod nga mga bukid sa mga bahin sa Leoganger Steinberge: * [[Birnhorn]] * [[Brandlhorn]] * [[Dürrkarhorn]] * [[Greißner Hochbrett]] * [[Großes Rothorn]] * [[Heueck]] * [[Hochdurchkogel]] * [[Jungfrau (tumoy sa bukid)|Jungfrau]] * [[Kleines Rothorn]] * [[Kuchelhorn]] * [[Lahnerhorn]] * [[Mitterhorn (tumoy sa bukid sa Ostriya)|Mitterhorn]] * [[Plattenkopf (tumoy sa bukid)|Plattenkopf]] * [[Rothörndl]] {{Location map|Austria |float = right |width=300 | caption = Nahimutangan sa Leoganger Steinberge sa Ostriya. | label = Leoganger Steinberge|position=right|background=white|lat=47.47167|long=12.74694}} Hapit nalukop sa [[kasagbotan]] ang palibot sa Leoganger Steinberge.<ref name = "nasalandcover"/> Dunay mga {{formatnum:34}} ka tawo kada kilometro kwadrado sa palibot sa Leoganger Steinberge medyo gamay nga populasyon.<ref name = "nasapop"/> Ang kasarangang giiniton {{formatnum:3}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:14}}&nbsp;[[°C]], ug ang kinabugnawan Enero, sa {{formatnum:-10}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:2073}} milimetro matag tuig. Ang kinabasaan nga bulan Agosto, sa {{formatnum:231}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:104}} milimetro.<ref name = "nasarain"/> == Saysay == <references group="saysay"/> == Ang mga gi basihan niini == <references> <ref name = "gn2772638">[{{Geonameslink|gnid=2772638|name=leoganger%20steinberge}} Leoganger Steinberge] sa [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2012-01-18; database download sa 2015-06-27</ref> <ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref> <ref name = "nasapop">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=SEDAC_POP|title= NASA Earth Observations: Population Density|access-date = 30 Enero 2016 |publisher= NASA/SEDAC}}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> <ref name = "nasalandcover">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=MCD12C1_T1|title= NASA Earth Observations: Land Cover Classification|access-date = 30 Enero 2016 |publisher= NASA/MODIS}}</ref> </references> == Gikan sa gawas nga tinubdan== {{commonscat|Leoganger Steinberge|Leoganger Steinberge}} [[Kategoriya:Kabukiran sa Salzburg (estado pederal)]] [[Kategoriya:Kabukiran sa Ostriya nga mas taas kay sa 1000 metros ibabaw sa dagat nga lebel]] [[Kategoriya:Kabukiran sa Ostriya nga mas taas kay sa 2000 metros ibabaw sa dagat nga lebel]] 4q76dbkugb7mdg72xzqkmrquksbbecx Zerf (munisipyo) 0 3857716 37023855 20841250 2026-07-10T13:45:21Z -wuppertaler 52674 CoA + Commons added 37023855 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Alemanya|date=2016-01}} :''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Zerf]].'' {{geobox | 1 = Region <!-- *** Header *** --> | name = Zerf | native_name = | other_name = | category = Munisipyo | official_name = | etymology = | motto = | nickname = <!-- *** Image *** --> | image = | image_caption = <!-- *** Symbols *** --> | flag = | symbol = DEU Zerf COA.svg <!-- *** Admin *** --> | country = {{flag|Alemanya}} | country_flag = | state = [[Rheinland-Pfalz]] | state_type = Estado pederal | region = | region_type = | district = | district_type = | economic_region = | economic_region_type = <!-- *** Associated with *** --> | border = | part = | city = | landmark = | river = <!-- *** Location *** --> | capital = | capital_type = | capital_location = | capital_region = | capital_country = | capital_elevation = | capital_lat_d = | capital_lat_m = | capital_lat_s = | capital_lat_NS = | capital_long_d = | capital_long_m = | capital_long_s = | capital_long_EW = | highest = | highest_location = | highest_region = | highest_country = | highest_elevation = | highest_lat_d = | highest_lat_m = | highest_lat_s = | highest_lat_NS = | highest_long_d = | highest_long_m = | highest_long_s = | highest_long_EW = | lowest = | lowest_location = | lowest_region = | lowest_country = | lowest_elevation = | lowest_lat_d = | lowest_lat_m = | lowest_lat_s = | lowest_lat_NS = | lowest_long_d = | lowest_long_m = | lowest_long_s = | lowest_long_EW = <!-- *** Dimensions *** --> | length = | length_orientation = | width = | width_orientation = | area = | area_decimals = <!-- *** Population *** --> | population = 1563 | population_date = 2014-01-02 | population_density = <!-- *** History and politics *** --> | established = | date = | government_location = | government_region = | government_country = | government_elevation = | government_lat_d = | government_lat_m = | government_lat_s = | government_lat_NS = | government_long_d = | government_long_m = | government_long_s = | government_long_EW = | leader = | leader_party = <!-- *** Codes *** --> | timezone = [[Central European Time|CET]] | utc_offset = +1 | timezone_DST = [[Central European Summer Time|CEST]] | utc_offset_DST = +2 | postal_code = | area_code = | code = <!-- *** Free *** --> | free = | free_type = <!-- *** Maps *** --> | map = | map_size = | map_caption = | map_locator_x = | map_locator_y = <!-- *** Website *** --> | website = <!-- *** Notes *** --> | footnotes = | lat_d = 49.6 | long_d = 6.68333 | elevation = 364 | population_note = <ref name = "gn6554810"/> | timezone_label = Europe/Berlin | geonames = 6554810 }} <!--A.ADM4-->[[administratibo nga mga dibisyon sa Alemanya|Munisipyo]] ang '''Zerf''' sa [[Alemanya]].<ref name = "gn6554810"/> Nahimutang ni sa estado pederal sa <!--ADM1-->[[Rheinland-Pfalz]], sa habagatan-kasadpang bahin sa nasod, {{formatnum:600}} km sa habagatan-kasadpan sa [[Berlin (ulohang dakbayan)|Berlin]] ang ulohan sa nasod. Adunay <!--pop-->{{formatnum:1563}} ka molupyo.<ref name = "gn6554810"/> {{Location map|Germany |float = right |width=300 | caption = Nahimutangan sa Zerf sa Alemanya. | label = Zerf|position=right|background=white|lat=49.6|long=6.68333}} Hapit nalukop sa [[lasang]] nga [[sagolsagol]] ang palibot sa Zerf.<ref name = "nasalandcover"/> Dunay mga {{formatnum:166}} ka tawo kada kilometro kwadrado sa palibot sa Zerf medyo hilabihan populasyon.<ref name = "nasapop"/> Ang klima [[klima sa kontinente]]. Ang kasarangang giiniton {{formatnum:8}} [[°C]]. Ang kinainitan nga bulan Agosto, sa {{formatnum:17}}&nbsp;[[°C]], ug ang kinabugnawan Enero, sa {{formatnum:-5}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1031}} milimetro matag tuig. Ang kinabasaan nga bulan Oktubre, sa {{formatnum:120}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:24}} milimetro.<ref name = "nasarain"/> {| |- |{{climate chart | Zerf | -6| -4| 98 | -3| 4| 60 | -1| 7| 24 | 4| 14| 63 | 9| 17| 111 | 12| 20| 92 | 12| 18| 107 | 14| 20| 78 | 9| 16| 72 | 9| 11| 120 | -1| 6| 90 | -5| -2| 115 |float=left |clear=left |source = <ref name = "nasa"/> }} |} == Ang mga gi basihan niini == <references> <ref name = "gn6554810">[{{Geonameslink|gnid=6554810|name=zerf}} Zerf] sa [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2014-01-02; database download sa 2015-05-23</ref> <ref name = "nasapop">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=SEDAC_POP|title= NASA Earth Observations: Population Density|access-date = 30 Enero 2016 |publisher= NASA/SEDAC}}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> <ref name = "nasalandcover">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=MCD12C1_T1|title= NASA Earth Observations: Land Cover Classification|access-date = 30 Enero 2016 |publisher= NASA/MODIS}}</ref> </references> {{Commonscat|Zerf}} [[Kategoriya:Mga subdibisyon sa Rheinland-Pfalz]] sidjudb3a3y9063me79w810p8cyo3bm Hattenhofen (munisipyo sa Alemanya, Bavaria, Upper Bavaria, lat 48,22, long 11,12) 0 3859297 37023873 31225242 2026-07-11T05:46:11Z Gliwi 35323 ([[c:GR|GR]]) [[File:Wappen Hattenhofen (Bayern).png]] → [[File:DEU Hattenhofen (Bayern) COA.svg]] PNG → SVG 37023873 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Alemanya|date=2016-01}} :''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Hattenhofen]].'' {{geobox | 1 = Region <!-- *** Header *** --> | name = Hattenhofen | native_name = | other_name = | category = Munisipyo | official_name = | etymology = | motto = | nickname = <!-- *** Image *** --> | image = Haspelmoor1.JPG | image_caption = <!-- *** Symbols *** --> | flag = | symbol = DEU Hattenhofen (Bayern) COA.svg | country = {{flag|Alemanya}} | country_flag = | state = [[Bavaria]] | state_type = Estado pederal | region = [[Upper Bavaria]] | region_type = Distrito nga gobyerno | district = | district_type = | economic_region = | economic_region_type = <!-- *** Associated with *** --> | border = | part = | city = | landmark = | river = <!-- *** Location *** --> | capital = | capital_type = | capital_location = | capital_region = | capital_country = | capital_elevation = | capital_lat_d = | capital_lat_m = | capital_lat_s = | capital_lat_NS = | capital_long_d = | capital_long_m = | capital_long_s = | capital_long_EW = | highest = | highest_location = | highest_region = | highest_country = | highest_elevation = | highest_lat_d = | highest_lat_m = | highest_lat_s = | highest_lat_NS = | highest_long_d = | highest_long_m = | highest_long_s = | highest_long_EW = | lowest = | lowest_location = | lowest_region = | lowest_country = | lowest_elevation = | lowest_lat_d = | lowest_lat_m = | lowest_lat_s = | lowest_lat_NS = | lowest_long_d = | lowest_long_m = | lowest_long_s = | lowest_long_EW = <!-- *** Dimensions *** --> | length = | length_orientation = | width = | width_orientation = | area = 7.17 | area_decimals = <!-- *** Population *** --> | population = 1423 | population_date = 2014-01-02 | population_density = auto | established = | date = | government_location = | government_region = | government_country = | government_elevation = | government_lat_d = | government_lat_m = | government_lat_s = | government_lat_NS = | government_long_d = | government_long_m = | government_long_s = | government_long_EW = | leader = | leader_party = <!-- *** Codes *** --> | timezone = [[Central European Time|CET]] | utc_offset = +1 | timezone_DST = [[Central European Summer Time|CEST]] | utc_offset_DST = +2 | postal_code = {{#property:P281}} | area_code = | code = <!-- *** Free *** --> | free = | free_type = <!-- *** Maps *** --> | map = | map_size = | map_caption = | map_locator_x = | map_locator_y = <!-- *** Website *** --> | website = <!-- *** Notes *** --> | footnotes = | lat_d = 48.2167 | long_d = 11.1167 | elevation = 540 | population_note = <ref name = "gn6556222"/> | timezone_label = Europe/Berlin | map2 = Hattenhofen in FFB.svg }} <!--A.ADM4-->[[administratibo nga mga dibisyon sa Alemanya|Munisipyo]] ang '''Hattenhofen''' sa [[Alemanya]].<ref name = "gn6556222"/> Nahimutang ni sa distrito nga gobyerno sa <!--ADM2-->[[Upper Bavaria]] ug estado pederal sa <!--ADM1-->[[Bavaria]], sa habagatang bahin sa nasod, {{formatnum:500}} km sa habagatan sa [[Berlin (ulohang dakbayan)|Berlin]] ang ulohan sa nasod. Adunay <!--pop-->{{formatnum:1423}} ka molupyo.<ref name = "gn6556222"/> Naglangkob kin og {{formatnum:7.2}} ka kilometro kwadrado. Ang yuta sa Hattenhofen daghan kaayong patag.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} {{Location map|Germany |float = right |width=300 | caption = Nahimutangan sa Hattenhofen sa Alemanya. | label = Hattenhofen|position=right|background=white|lat=48.2167|long=11.1167}} Hapit nalukop sa [[kaumahan]] ang palibot sa Hattenhofen.<ref name = "nasalandcover"/> Dunay mga {{formatnum:459}} ka tawo kada kilometro kwadrado sa palibot sa Hattenhofen nga hilabihan populasyon.<ref name = "nasapop"/> Ang klima [[baybayon]].<ref name = "koppen"/> Ang kasarangang giiniton {{formatnum:8}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:18}}&nbsp;[[°C]], ug ang kinabugnawan Enero, sa {{formatnum:-6}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1211}} milimetro matag tuig. Ang kinabasaan nga bulan Agosto, sa {{formatnum:162}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:39}} milimetro.<ref name = "nasarain"/> {| |- |{{climate chart | Hattenhofen | -8| -4| 124 | -6| 2| 60 | -2| 8| 39 | 3| 16| 66 | 8| 20| 123 | 12| 23| 160 | 12| 25| 115 | 13| 22| 162 | 8| 19| 108 | 7| 14| 96 | -3| 5| 84 | -8| -2| 75 |float=left |clear=left |source = <ref name = "nasa"/> }} |} == Saysay == <references group="saysay"/> == Ang mga gi basihan niini == <references> <ref name = "gn6556222">[{{Geonameslink|gnid=6556222|name=hattenhofen}} Hattenhofen] sa [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2014-01-02; database download sa 2015-05-23</ref> <ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref> <ref name = "nasapop">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=SEDAC_POP|title= NASA Earth Observations: Population Density|access-date = 30 Enero 2016 |publisher= NASA/SEDAC}}</ref> <ref name = "koppen">{{cite journal |last= Peel|first= M C|last2= Finlayson|first2= B L|date= |title= Updated world map of the Köppen-Geiger climate classification| url = http://www.hydrol-earth-syst-sci.net/11/1633/2007/hess-11-1633-2007.html |journal= Hydrology and Earth System Sciences|publisher= |volume= 11|issue= |pages= 1633-1644|doi= 10.5194/hess-11-1633-2007|access-date=30 Enero 2016}}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> <ref name = "nasalandcover">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=MCD12C1_T1|title= NASA Earth Observations: Land Cover Classification|access-date = 30 Enero 2016 |publisher= NASA/MODIS}}</ref> </references> == Gikan sa gawas nga tinubdan== {{commonscat|Hattenhofen (Bavaria)|Hattenhofen}} [[Kategoriya:Mga subdibisyon sa Bavaria]] ep1mc7ajp0b8ghh6qjbn9rlgnpatd35 Römerswil (lungsod) 0 4063360 37023880 31369801 2026-07-11T09:08:49Z Ziv 111351 ([[c:GR|GR]]) [[File:CHE Roemerswil COA.png]] → [[File:CHE Römerswil COA.svg]] → File replacement: jpg/png/gif to svg vector image ([[c::c:GR]]) 37023880 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Nasod nga Swiss|date=2016-03}} :''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Römerswil]].'' {{geobox | 1 = Settlement <!-- *** Header *** --> | name = Römerswil | native_name = | other_name = | category = Lungsod | etymology = | official_name = | motto = | nickname = <!-- *** Image *** --> | image = | image_caption = <!-- *** Symbols *** --> | flag = | symbol = CHE Römerswil COA.svg | symbol_type = <!-- *** Admin *** --> | country = {{flag|Nasod nga Swiss}} | country_flag = | state = [[Kanton Luzern]] | state_type = Kanton | region = [[Hochdorf District]] | region_type = Distrito | district = | district_type = | municipality = | municipality_type = <!-- *** Associated with *** --> | part = | landmark = | river = <!-- *** Location *** --> | location = | elevation = 713 | lat_d = 47.16813 | lat_m = | lat_s = | lat_NS = | long_d = 8.24643 | long_m = | long_s = | long_EW = | highest = | highest_note = | highest_elevation = | highest_elevation_note = | lowest = | lowest_note = | lowest_elevation = | lowest_elevation_note = <!-- *** Dimensions *** --> | length = | length_orientation = | width = | width_orientation = | area = | area_decimals = | area_land = | area_land_decimals = | area_water = | area_water_decimals = | area_urban = | area_urban_decimals = | area_metro = | area_metro_decimals = | area_municipal = | area_municipal_decimals = <!-- *** Population *** --> | population = 1882 | population_date = 2014-03-29 | population_note = <ref name = "gn2658983"/> | population_urban = | population_urban_date = | population_urban_note = | population_metro = | population_metro_date = | population_metro_note = | population_municipal = | population_municipal_date = | population_municipal_note = | population_density = | population_density_note = | population_urban_density = | population_urban_density_note = | population_metro_density = | population_metro_density_note = | population_municipal_density = | population_municipal_density_note = <!-- *** People *** --> | population1 = | population1_type = | population2 = | population2_type = | population3 = | population3_type = <!-- *** History and politics *** --> | established = | established_type = | date = | date_type = | government = | government_location = | government_region = | government_state = | mayor = | mayor_party = | leader = | leader_type = <!-- *** Codes *** --> | timezone = [[Central European Time|CET]] | utc_offset = +1 | timezone_DST = [[Central European Summer Time|CEST]] | utc_offset_DST = +2 | postal_code = | postal_code_type = | area_code = | area_code_type = | code = | code_type = | code1 = | code1_type = <!-- *** Free *** --> | free = | free_type = | free1 = | free1_type = <!-- *** Maps *** --> | map = | map_caption = | map_locator = | map_locator_x = | map_locator_y = <!-- *** Website *** --> | website = <!-- *** Notes *** --> | footnotes = | timezone_label = Europe/Zurich | map2 = Karte Gemeinde Römerswil 2013.png }} <!--P.PPL-->[[Lungsod]] ang '''Römerswil''' sa [[Nasod nga Swiss]].<ref name = "gn2658983"/> Nahimutang ni sa distrito sa <!--ADM2-->[[Hochdorf District]] ug kanton sa <!--ADM1-->[[Kanton Luzern]], sa sentro nga bahin sa nasod, {{formatnum:70}} km sa sidlakan sa [[Bern (ulohang dakbayan)|Bern]] ang ulohan sa nasod. {{formatnum:713}} metros ibabaw sa dagat kahaboga ang nahimutangan sa Römerswil<ref name = "gn2658983"/>, ug adunay <!--pop-->{{formatnum:1882}} ka molupyo.<ref name = "gn2658983"/> Ang yuta palibot sa Römerswil kabungtoran sa amihang-kasadpan, apan sa habagatang-sidlakan nga kini mao ang patag. Römerswil nahimutang sa usa ka gitas-on.{{efn|group=saysay|Kalkulado gikan sa pakigbingkil sa tanan nga gitas-on data (DEM 3") gikan sa Viewfinder Panoramas, sa sulod sa 10 ka kilometro radius.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kinahabogang dapit sa palibot dunay gihabogon nga {{formatnum:767}} ka metro ug {{formatnum:1.0 }} km sa amihanan-kasadpan sa Römerswil.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Dunay mga {{formatnum:108}} ka tawo kada kilometro kwadrado sa palibot sa Römerswil medyo hilabihan populasyon.<ref name = "nasapop"/> Ang kinadul-ang mas dakong lungsod mao ang [[Luzern (kapital sa kanton)|Luzern]], {{formatnum:13.8}} km sa habagatan sa Römerswil. Hapit nalukop sa [[kaumahan]] ang palibot sa Römerswil.<ref name = "nasalandcover"/> Sa rehiyon palibot sa Römerswil, mga lanaw talagsaon komon.{{efn|group=saysay|Mas sulod sa 20 ka kilometro gilay-on itandi sa average nga densidad sa Yuta, sumala sa GeoNames.<ref name = "gn2658983"/>}} Ang klima [[boreal]].<ref name = "koppen"/> Ang kasarangang giiniton {{formatnum:8}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:19}}&nbsp;[[°C]], ug ang kinabugnawan Disyembre, sa {{formatnum:-6}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1854}} milimetro matag tuig. Ang kinabasaan nga bulan Nobiyembre, sa {{formatnum:202}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:76}} milimetro.<ref name = "nasarain"/> {{Location map|Switzerland |float = right |width=300 | caption = Nahimutangan sa Römerswil sa Nasod nga Swiss. | label = Römerswil|position=right|background=white|lat=47.16813|long=8.24643}} == Saysay == <references group="saysay"/> == Ang mga gi basihan niini == <references> <ref name = "gn2658983">[{{Geonameslink|gnid=2658983|name=roemerswil}} Römerswil] at [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2014-03-29; database download sa 2016-01-03</ref> <ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref> <ref name = "nasapop">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=SEDAC_POP|title= NASA Earth Observations: Population Density|access-date = 30 Enero 2016 |publisher= NASA/SEDAC}}</ref> <ref name = "nasalandcover">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=MCD12C1_T1|title= NASA Earth Observations: Land Cover Classification|access-date = 30 Enero 2016 |publisher= NASA/MODIS}}</ref> <ref name = "koppen">{{cite journal |last= Peel|first= M C|last2= Finlayson|first2= B L|date= |title= Updated world map of the Köppen-Geiger climate classification| url = http://www.hydrol-earth-syst-sci.net/11/1633/2007/hess-11-1633-2007.html |journal= Hydrology and Earth System Sciences|publisher= |volume= 11|issue= |pages= 1633-1644|doi= 10.5194/hess-11-1633-2007|access-date=30 Enero 2016}}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> </references> == Gikan sa gawas nga tinubdan== {{commonscat|Römerswil|Römerswil}} [[Kategoriya:Mga lungsod sa Kanton Luzern]] 9es0qow3yxuxlto1iuebek68zlqio93 Hohenrain (lungsod) 0 4064669 37023886 31346965 2026-07-11T09:55:42Z Ziv 111351 ([[c:GR|GR]]) [[File:CHE Hohenrain COA.png]] → [[File:CHE Hohenrain COA.svg]] → File replacement: jpg/png/gif to svg vector image ([[c::c:GR]]) 37023886 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Nasod nga Swiss|date=2016-03}} :''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Hohenrain]].'' {{geobox | 1 = Settlement <!-- *** Header *** --> | name = Hohenrain | native_name = | other_name = | category = Lungsod | etymology = | official_name = | motto = | nickname = <!-- *** Image *** --> | image = | image_caption = <!-- *** Symbols *** --> | flag = | symbol = CHE Hohenrain COA.svg | symbol_type = <!-- *** Admin *** --> | country = {{flag|Nasod nga Swiss}} | country_flag = | state = [[Kanton Luzern]] | state_type = Kanton | region = [[Hochdorf District]] | region_type = Distrito | district = | district_type = | municipality = | municipality_type = <!-- *** Associated with *** --> | part = | landmark = | river = <!-- *** Location *** --> | location = | elevation = 604 | lat_d = 47.18083 | lat_m = | lat_s = | lat_NS = | long_d = 8.31802 | long_m = | long_s = | long_EW = | highest = | highest_note = | highest_elevation = | highest_elevation_note = | lowest = | lowest_note = | lowest_elevation = | lowest_elevation_note = <!-- *** Dimensions *** --> | length = | length_orientation = | width = | width_orientation = | area = | area_decimals = | area_land = | area_land_decimals = | area_water = | area_water_decimals = | area_urban = | area_urban_decimals = | area_metro = | area_metro_decimals = | area_municipal = | area_municipal_decimals = <!-- *** Population *** --> | population = 2090 | population_date = 2014-03-29 | population_note = <ref name = "gn2660322"/> | population_urban = | population_urban_date = | population_urban_note = | population_metro = | population_metro_date = | population_metro_note = | population_municipal = | population_municipal_date = | population_municipal_note = | population_density = | population_density_note = | population_urban_density = | population_urban_density_note = | population_metro_density = | population_metro_density_note = | population_municipal_density = | population_municipal_density_note = <!-- *** People *** --> | population1 = | population1_type = | population2 = | population2_type = | population3 = | population3_type = <!-- *** History and politics *** --> | established = | established_type = | date = | date_type = | government = | government_location = | government_region = | government_state = | mayor = | mayor_party = | leader = | leader_type = <!-- *** Codes *** --> | timezone = [[Central European Time|CET]] | utc_offset = +1 | timezone_DST = [[Central European Summer Time|CEST]] | utc_offset_DST = +2 | postal_code = {{#property:P281}} | postal_code_type = | area_code = | area_code_type = | code = | code_type = | code1 = | code1_type = <!-- *** Free *** --> | free = | free_type = | free1 = | free1_type = <!-- *** Maps *** --> | map = | map_caption = | map_locator = | map_locator_x = | map_locator_y = <!-- *** Website *** --> | website = <!-- *** Notes *** --> | footnotes = | timezone_label = Europe/Zurich | map2 = Karte Gemeinde Hohenrain 2009.png }} <!--P.PPL-->[[Lungsod]] ang '''Hohenrain''' sa [[Nasod nga Swiss]].<ref name = "gn2660322"/> Nahimutang ni sa distrito sa <!--ADM2-->[[Hochdorf District]] ug kanton sa <!--ADM1-->[[Kanton Luzern]], sa sentro nga bahin sa nasod, {{formatnum:70}} km sa sidlakan sa [[Bern (ulohang dakbayan)|Bern]] ang ulohan sa nasod. {{formatnum:604}} metros ibabaw sa dagat kahaboga ang nahimutangan sa Hohenrain<ref name = "gn2660322"/>, ug adunay <!--pop-->{{formatnum:2090}} ka molupyo.<ref name = "gn2660322"/> Ang yuta palibot sa Hohenrain kabungtoran sa amihanan, apan sa habagatan nga kini mao ang patag.{{efn|group=saysay|Kalkulado gikan sa pakigbingkil sa tanan nga gitas-on data (DEM 3") gikan sa Viewfinder Panoramas, sa sulod sa 10 ka kilometro radius.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kinahabogang dapit sa palibot dunay gihabogon nga {{formatnum:740}} ka metro ug {{formatnum:1.9 }} km sa amihanan sa Hohenrain.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Dunay mga {{formatnum:185}} ka tawo kada kilometro kwadrado sa palibot sa Hohenrain medyo hilabihan populasyon.<ref name = "nasapop"/> Ang kinadul-ang mas dakong lungsod mao ang [[Luzern (kapital sa kanton)|Luzern]], {{formatnum:14.5}} km sa habagatan sa Hohenrain. Hapit nalukop sa [[kaumahan]] ang palibot sa Hohenrain.<ref name = "nasalandcover"/> Ang kasarangang giiniton {{formatnum:8}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:20}}&nbsp;[[°C]], ug ang kinabugnawan Disyembre, sa {{formatnum:-5}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1854}} milimetro matag tuig. Ang kinabasaan nga bulan Nobiyembre, sa {{formatnum:202}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:76}} milimetro.<ref name = "nasarain"/> {| |- |{{climate chart | Hohenrain | -5| -1| 144 | -7| 2| 127 | -1| 10| 76 | 4| 16| 158 | 8| 20| 172 | 13| 24| 160 | 15| 25| 198 | 14| 24| 170 | 10| 20| 134 | 6| 13| 156 | -1| 4| 202 | -7| -3| 157 |float=left |clear=left |source = <ref name = "nasa"/> }} |} {{Location map|Switzerland |float = right |width=300 | caption = Nahimutangan sa Hohenrain sa Nasod nga Swiss. | label = Hohenrain|position=right|background=white|lat=47.18083|long=8.31802}} == Saysay == <references group="saysay"/> == Ang mga gi basihan niini == <references> <ref name = "gn2660322">[{{Geonameslink|gnid=2660322|name=hohenrain}} Hohenrain] at [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2014-03-29; database download sa 2016-01-03</ref> <ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref> <ref name = "nasapop">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=SEDAC_POP|title= NASA Earth Observations: Population Density|access-date = 30 Enero 2016 |publisher= NASA/SEDAC}}</ref> <ref name = "nasalandcover">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=MCD12C1_T1|title= NASA Earth Observations: Land Cover Classification|access-date = 30 Enero 2016 |publisher= NASA/MODIS}}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> </references> == Gikan sa gawas nga tinubdan== {{commonscat|Hohenrain|Hohenrain}} [[Kategoriya:Mga lungsod sa Kanton Luzern]] tpb73obbw5tc78or4jsv4ia3klskuzp Dagmersellen (lungsod) 0 4065438 37023875 31341504 2026-07-11T08:31:48Z Ziv 111351 ([[c:GR|GR]]) [[File:CHE Dagmersellen COA.png]] → [[File:CHE Dagmersellen COA.svg]] → File replacement: jpg/png/gif to svg vector image ([[c::c:GR]]) 37023875 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Nasod nga Swiss|date=2016-03}} :''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Dagmersellen]].'' {{geobox | 1 = Settlement <!-- *** Header *** --> | name = Dagmersellen | native_name = | other_name = | category = Lungsod | etymology = | official_name = | motto = | nickname = <!-- *** Image *** --> | image = Dagmersellen restoracio Roessli kaj trafikcirklo 356.jpg | image_caption = <!-- *** Symbols *** --> | flag = | symbol = CHE Dagmersellen COA.svg | symbol_type = <!-- *** Admin *** --> | country = {{flag|Nasod nga Swiss}} | country_flag = | state = [[Kanton Luzern]] | state_type = Kanton | region = [[Willisau District]] | region_type = Distrito | district = | district_type = | municipality = | municipality_type = <!-- *** Associated with *** --> | part = | landmark = | river = <!-- *** Location *** --> | location = | elevation = 479 | lat_d = 47.21366 | lat_m = | lat_s = | lat_NS = | long_d = 7.98466 | long_m = | long_s = | long_EW = | highest = | highest_note = | highest_elevation = | highest_elevation_note = | lowest = | lowest_note = | lowest_elevation = | lowest_elevation_note = <!-- *** Dimensions *** --> | length = | length_orientation = | width = | width_orientation = | area = | area_decimals = | area_land = | area_land_decimals = | area_water = | area_water_decimals = | area_urban = | area_urban_decimals = | area_metro = | area_metro_decimals = | area_municipal = | area_municipal_decimals = <!-- *** Population *** --> | population = 3300 | population_date = 2014-03-29 | population_note = <ref name = "gn2661057"/> | population_urban = | population_urban_date = | population_urban_note = | population_metro = | population_metro_date = | population_metro_note = | population_municipal = | population_municipal_date = | population_municipal_note = | population_density = | population_density_note = | population_urban_density = | population_urban_density_note = | population_metro_density = | population_metro_density_note = | population_municipal_density = | population_municipal_density_note = <!-- *** People *** --> | population1 = | population1_type = | population2 = | population2_type = | population3 = | population3_type = <!-- *** History and politics *** --> | established = | established_type = | date = | date_type = | government = | government_location = | government_region = | government_state = | mayor = | mayor_party = | leader = | leader_type = <!-- *** Codes *** --> | timezone = [[Central European Time|CET]] | utc_offset = +1 | timezone_DST = [[Central European Summer Time|CEST]] | utc_offset_DST = +2 | postal_code = | postal_code_type = | area_code = | area_code_type = | code = | code_type = | code1 = | code1_type = <!-- *** Free *** --> | free = | free_type = | free1 = | free1_type = <!-- *** Maps *** --> | map = | map_caption = | map_locator = | map_locator_x = | map_locator_y = <!-- *** Website *** --> | website = <!-- *** Notes *** --> | footnotes = | timezone_label = Europe/Zurich | map2 = Karte Gemeinde Dagmersellen 2013.png }} <!--P.PPL-->[[Lungsod]] ang '''Dagmersellen''' sa [[Nasod nga Swiss]].<ref name = "gn2661057"/> Nahimutang ni sa distrito sa <!--ADM2-->[[Willisau District]] ug kanton sa <!--ADM1-->[[Kanton Luzern]], sa sentro nga bahin sa nasod, {{formatnum:50}} km sa amihanan-sidlakan sa [[Bern (ulohang dakbayan)|Bern]] ang ulohan sa nasod. {{formatnum:479}} metros ibabaw sa dagat kahaboga ang nahimutangan sa Dagmersellen{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}}, ug adunay <!--pop-->{{formatnum:3300}} ka molupyo.<ref name = "gn2661057"/> Ang yuta palibot sa Dagmersellen kasagaran kabungtoran, apan sa amihang-kasadpan nga kini mao ang patag. Dagmersellen nahimutang sa usa ka walog.{{efn|group=saysay|Kalkulado gikan sa pakigbingkil sa tanan nga gitas-on data (DEM 3") gikan sa Viewfinder Panoramas, sa sulod sa 10 ka kilometro radius.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kinahabogang dapit sa palibot dunay gihabogon nga {{formatnum:661}} ka metro ug {{formatnum:1.1 }} km sa amihanan-sidlakan sa Dagmersellen.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Dunay mga {{formatnum:139}} ka tawo kada kilometro kwadrado sa palibot sa Dagmersellen medyo hilabihan populasyon.<ref name = "nasapop"/> Ang kinadul-ang mas dakong lungsod mao ang [[Zofingen (kapital sa distrito)|Zofingen]], {{formatnum:8.7}} km sa amihanan sa Dagmersellen. Hapit nalukop sa [[kaumahan]] ang palibot sa Dagmersellen.<ref name = "nasalandcover"/> Ang kasarangang giiniton {{formatnum:8}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:18}}&nbsp;[[°C]], ug ang kinabugnawan Disyembre, sa {{formatnum:-6}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1854}} milimetro matag tuig. Ang kinabasaan nga bulan Nobiyembre, sa {{formatnum:202}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:76}} milimetro.<ref name = "nasarain"/> {{Location map|Switzerland |float = right |width=300 | caption = Nahimutangan sa Dagmersellen sa Nasod nga Swiss. | label = Dagmersellen|position=right|background=white|lat=47.21366|long=7.98466}} == Saysay == <references group="saysay"/> == Ang mga gi basihan niini == <references> <ref name = "gn2661057">[{{Geonameslink|gnid=2661057|name=dagmersellen}} Dagmersellen] at [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2014-03-29; database download sa 2016-01-03</ref> <ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref> <ref name = "nasapop">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=SEDAC_POP|title= NASA Earth Observations: Population Density|access-date = 30 Enero 2016 |publisher= NASA/SEDAC}}</ref> <ref name = "nasalandcover">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=MCD12C1_T1|title= NASA Earth Observations: Land Cover Classification|access-date = 30 Enero 2016 |publisher= NASA/MODIS}}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> </references> == Gikan sa gawas nga tinubdan== {{commonscat|Dagmersellen|Dagmersellen}} [[Kategoriya:Mga lungsod sa Kanton Luzern]] [[Kategoriya:Mga lungsod sa Nasod nga Swiss nga mas dako pa kay sa 3000 ka mga tawo]] 6dqh9kkq0041gorge2qxbj1aqir9ef6 Buchrain (munisipyo) 0 4076707 37023877 31329710 2026-07-11T08:39:25Z Ziv 111351 ([[c:GR|GR]]) [[File:CHE Buchrain COA.png]] → [[File:CHE Buchrain COA.svg]] → File replacement: jpg/png/gif to svg vector image ([[c::c:GR]]) 37023877 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Nasod nga Swiss|date=2016-03}} :''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Buchrain]].'' {{geobox | 1 = Region <!-- *** Header *** --> | name = Buchrain | native_name = | other_name = | category = Munisipyo | official_name = | etymology = | motto = | nickname = <!-- *** Image *** --> | image = | image_caption = <!-- *** Symbols *** --> | flag = | symbol = CHE Buchrain COA.svg | country = {{flag|Nasod nga Swiss}} | country_flag = | state = [[Kanton Luzern]] | state_type = Kanton | region = [[Lucerne-Land District]] | region_type = Distrito | district = | district_type = | economic_region = | economic_region_type = <!-- *** Associated with *** --> | border = | part = | city = | landmark = | river = <!-- *** Location *** --> | capital = | capital_type = | capital_location = | capital_region = | capital_country = | capital_elevation = | capital_lat_d = | capital_lat_m = | capital_lat_s = | capital_lat_NS = | capital_long_d = | capital_long_m = | capital_long_s = | capital_long_EW = | highest = | highest_location = | highest_region = | highest_country = | highest_elevation = | highest_lat_d = | highest_lat_m = | highest_lat_s = | highest_lat_NS = | highest_long_d = | highest_long_m = | highest_long_s = | highest_long_EW = | lowest = | lowest_location = | lowest_region = | lowest_country = | lowest_elevation = | lowest_lat_d = | lowest_lat_m = | lowest_lat_s = | lowest_lat_NS = | lowest_long_d = | lowest_long_m = | lowest_long_s = | lowest_long_EW = <!-- *** Dimensions *** --> | length = | length_orientation = | width = | width_orientation = | area = 4.80 | area_decimals = <!-- *** Population *** --> | population = 6049 | population_date = 2014-04-04 | population_density = auto | established = | date = | government_location = | government_region = | government_country = | government_elevation = | government_lat_d = | government_lat_m = | government_lat_s = | government_lat_NS = | government_long_d = | government_long_m = | government_long_s = | government_long_EW = | leader = | leader_party = <!-- *** Codes *** --> | timezone = [[Central European Time|CET]] | utc_offset = +1 | timezone_DST = [[Central European Summer Time|CEST]] | utc_offset_DST = +2 | postal_code = {{#property:P281}} | area_code = | code = <!-- *** Free *** --> | free = | free_type = <!-- *** Maps *** --> | map = | map_size = | map_caption = | map_locator_x = | map_locator_y = <!-- *** Website *** --> | website = <!-- *** Notes *** --> | footnotes = | lat_d = 47.10175 | long_d = 8.34792 | elevation = 418 | population_note = <ref name = "gn7285370"/> | timezone_label = Europe/Zurich | map2 = Karte Gemeinde Buchrain 2010.png }} <!--A.ADM3-->[[administratibo nga mga dibisyon sa Nasod nga Swiss|Munisipyo]] ang '''Buchrain''' sa [[Nasod nga Swiss]].<ref name = "gn7285370"/> Nahimutang ni sa distrito sa <!--ADM2-->[[Lucerne-Land District]] ug kanton sa <!--ADM1-->[[Kanton Luzern]], sa sentro nga bahin sa nasod, {{formatnum:70}} km sa sidlakan sa [[Bern (ulohang dakbayan)|Bern]] ang ulohan sa nasod. Adunay <!--pop-->{{formatnum:6049}} ka molupyo.<ref name = "gn7285370"/> Naglangkob kin og {{formatnum:4.8}} ka kilometro kwadrado. Buchrain mopakigbahin sa usa ka utlanan sa Dierikon, 義大利語維基百科, [[Ebikon (lungsod)|Ebikon]], 義大利語維基百科, Eschenbach, [[Inwil (lungsod)|Inwil]], [[Root (munisipyo)|Root]], 義大利語維基百科, ug [[Emmen (lungsod sa Nasod nga Swiss, Kanton Luzern, Hochdorf District, lat 47,09, long 8,30)|Emmen]]. Ang yuta sa Buchrain patag.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kasarangang giiniton {{formatnum:9}} [[°C]]. Ang kinainitan nga bulan Agosto, sa {{formatnum:20}}&nbsp;[[°C]], ug ang kinabugnawan Disyembre, sa {{formatnum:-4}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1854}} milimetro matag tuig. Ang kinabasaan nga bulan Nobiyembre, sa {{formatnum:202}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:76}} milimetro.<ref name = "nasarain"/> {| |- |{{climate chart | Buchrain | -4| 1| 144 | -7| 3| 127 | -1| 8| 76 | 4| 15| 158 | 11| 18| 172 | 14| 22| 160 | 14| 23| 198 | 17| 23| 170 | 11| 18| 134 | 7| 12| 156 | -2| 6| 202 | -7| -1| 157 |float=left |clear=left |source = <ref name = "nasa"/> }} |} {{Location map|Switzerland |float = right |width=300 | caption = Nahimutangan sa Buchrain sa Nasod nga Swiss. | label = Buchrain|position=right|background=white|lat=47.10175|long=8.34792}} == Saysay == <references group="saysay"/> == Ang mga gi basihan niini == <references> <ref name = "gn7285370">[{{Geonameslink|gnid=7285370|name=buchrain}} Buchrain] sa [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2014-04-04; database download sa 2016-01-03</ref> <ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> </references> == Gikan sa gawas nga tinubdan== {{commonscat|Buchrain|Buchrain}} [[Kategoriya:Mga subdibisyon sa Kanton Luzern]] 50y6vune2wini2sis69uos1d8nkoml5 Meggen (munisipyo) 0 4077779 37023883 31355934 2026-07-11T09:23:22Z Ziv 111351 ([[c:GR|GR]]) [[File:CHE Meggen COA.png]] → [[File:CHE Meggen COA.svg]] → File replacement: jpg/png/gif to svg vector image ([[c::c:GR]]) 37023883 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Nasod nga Swiss|date=2016-03}} :''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Meggen]].'' {{geobox | 1 = Region <!-- *** Header *** --> | name = Meggen | native_name = | other_name = | category = Munisipyo | official_name = | etymology = | motto = | nickname = <!-- *** Image *** --> | image = Schloss Meggenhorn, mit Sicht auf das luzerner Seebecken.jpg | image_caption = <!-- *** Symbols *** --> | flag = | symbol = CHE Meggen COA.svg | country = {{flag|Nasod nga Swiss}} | country_flag = | state = [[Kanton Luzern]] | state_type = Kanton | region = [[Lucerne-Land District]] | region_type = Distrito | district = | district_type = | economic_region = | economic_region_type = <!-- *** Associated with *** --> | border = | part = | city = | landmark = | river = <!-- *** Location *** --> | capital = | capital_type = | capital_location = | capital_region = | capital_country = | capital_elevation = | capital_lat_d = | capital_lat_m = | capital_lat_s = | capital_lat_NS = | capital_long_d = | capital_long_m = | capital_long_s = | capital_long_EW = | highest = | highest_location = | highest_region = | highest_country = | highest_elevation = | highest_lat_d = | highest_lat_m = | highest_lat_s = | highest_lat_NS = | highest_long_d = | highest_long_m = | highest_long_s = | highest_long_EW = | lowest = | lowest_location = | lowest_region = | lowest_country = | lowest_elevation = | lowest_lat_d = | lowest_lat_m = | lowest_lat_s = | lowest_lat_NS = | lowest_long_d = | lowest_long_m = | lowest_long_s = | lowest_long_EW = <!-- *** Dimensions *** --> | length = | length_orientation = | width = | width_orientation = | area = 13.93 | area_decimals = <!-- *** Population *** --> | population = 6752 | population_date = 2014-04-04 | population_density = auto | established = | date = | government_location = | government_region = | government_country = | government_elevation = | government_lat_d = | government_lat_m = | government_lat_s = | government_lat_NS = | government_long_d = | government_long_m = | government_long_s = | government_long_EW = | leader = | leader_party = <!-- *** Codes *** --> | timezone = [[Central European Time|CET]] | utc_offset = +1 | timezone_DST = [[Central European Summer Time|CEST]] | utc_offset_DST = +2 | postal_code = {{#property:P281}} | area_code = | code = <!-- *** Free *** --> | free = | free_type = <!-- *** Maps *** --> | map = | map_size = | map_caption = | map_locator_x = | map_locator_y = <!-- *** Website *** --> | website = <!-- *** Notes *** --> | footnotes = | lat_d = 47.05143 | long_d = 8.37221 | elevation = 552 | population_note = <ref name = "gn7286468"/> | timezone_label = Europe/Zurich | map2 = Karte Gemeinde Meggen 2010.png }} <!--A.ADM3-->[[administratibo nga mga dibisyon sa Nasod nga Swiss|Munisipyo]] ang '''Meggen''' sa [[Nasod nga Swiss]].<ref name = "gn7286468"/> Nahimutang ni sa distrito sa <!--ADM2-->[[Lucerne-Land District]] ug kanton sa <!--ADM1-->[[Kanton Luzern]], sa sentro nga bahin sa nasod, {{formatnum:70}} km sa sidlakan sa [[Bern (ulohang dakbayan)|Bern]] ang ulohan sa nasod. Adunay <!--pop-->{{formatnum:6752}} ka molupyo.<ref name = "gn7286468"/> Naglangkob kin og {{formatnum:13.9}} ka kilometro kwadrado. Meggen nga nahimutang sa mga lanaw sa [[Lake of Lucerne]] [[Urnersee]] [[Küssnachtersee]], ug [[Alpnachersee]].{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Meggen mopakigbahin sa usa ka utlanan sa [[Adligenswil (lungsod)|Adligenswil]], [[Greppen (lungsod)|Greppen]], 義大利語維基百科, [[Horw (lungsod)|Horw]], 義大利語維基百科, [[Stansstad (lungsod)|Stansstad]], 義大利語維基百科, [[Weggis (lungsod)|Weggis]], 義大利語維基百科, [[Luzern (kapital sa kanton)|Luzern]], ug [[Küssnacht (kapital sa distrito)|Küssnacht]]. Ang yuta sa Meggen patag sa habagatan, apan sa amihanan nga kini mao ang kabungtoran.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kasarangang giiniton {{formatnum:8}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:18}}&nbsp;[[°C]], ug ang kinabugnawan Disyembre, sa {{formatnum:-4}}&nbsp;°C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1854}} milimetro matag tuig. Ang kinabasaan nga bulan Nobiyembre, sa {{formatnum:202}} milimetro nga ulan, ug ang kinaugahan Marso, sa {{formatnum:76}} milimetro.<ref name = "nasarain"/> {| |- |{{climate chart | Meggen | -6| -1| 144 | -5| 3| 127 | -1| 7| 76 | 3| 13| 158 | 9| 16| 172 | 13| 20| 160 | 14| 21| 198 | 13| 21| 170 | 11| 17| 134 | 7| 12| 156 | 2| 6| 202 | -7| -2| 157 |float=left |clear=left |source = <ref name = "nasa"/> }} |} {{Location map|Switzerland |float = right |width=300 | caption = Nahimutangan sa Meggen sa Nasod nga Swiss. | label = Meggen|position=right|background=white|lat=47.05143|long=8.37221}} == Saysay == <references group="saysay"/> == Ang mga gi basihan niini == <references> <ref name = "gn7286468">[{{Geonameslink|gnid=7286468|name=meggen}} Meggen] sa [{{Geonamesabout}} GeoNames.Org (cc-by)]; post updated 2014-04-04; database download sa 2016-01-03</ref> <ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref> <ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref> <ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M&year=2014|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref> </references> == Gikan sa gawas nga tinubdan== {{commonscat|Meggen|Meggen}} [[Kategoriya:Mga subdibisyon sa Kanton Luzern]] nk5scj5alordijvaynofnsv6cw8j4zk Lusushwana 0 8214965 37023874 34138034 2026-07-11T05:53:30Z Virant 13442 37023874 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|Habagatang Aprika|date=2017-06}} {{geobox | 1 = River <!-- *** Header *** --> | name = Lusushwana | native_name = | other_name = Sushwana | category = Suba | etymology = | nickname = <!-- *** Image *** --> | image = | image_caption = <!-- *** Admin *** --> | country = {{flag|Habagatang Aprika}} | country_flag = | state = | region = | district = | municipality = <!-- *** Associated with *** --> | parent = | city = | landmark = <!-- *** Tributaries *** --> | tributary_left = | tributary_right = <!-- *** Source and mouth *** --> | source = | source_location = | source_region = | source_country = | source_elevation = | source_lat_d = | source_lat_m = | source_lat_s = | source_lat_NS = | source_long_d = | source_long_m = | source_long_s = | source_long_EW = | source1 = | source1_location = | source1_region = | source1_country = | source1_elevation = | source1_lat_d = | source1_lat_m = | source1_lat_s = | source1_lat_NS = | source1_long_d = | source1_long_m = | source1_long_s = | source1_long_EW = | source_confluence = | source_confluence_location = | source_confluence_region = | source_confluence_country = | source_confluence_elevation = | source_confluence_lat_d = | source_confluence_lat_m = | source_confluence_lat_s = | source_confluence_lat_NS = | source_confluence_long_d = | source_confluence_long_m = | source_confluence_long_s = | source_confluence_long_EW = | mouth = | mouth_location = | mouth_region = | mouth_country = | mouth_elevation = | mouth_lat_d = | mouth_lat_m = | mouth_lat_s = | mouth_lat_NS = | mouth_long_d = | mouth_long_m = | mouth_long_s = | mouth_long_EW = <!-- *** Size *** --> | length = | width = | depth = | volume = | watershed = | watershed_decimals = <!-- *** Flow *** --> | discharge = | discharge_max = | discharge_min = <!-- *** Free *** --> | free = | free_type = <!-- *** Maps *** --> | map = | map_caption = | map_locator_x = | map_locator_y = <!-- *** Notes *** --> | footnotes = | other_name1 = Klein Usutu | other_name2 = Little Usutu | other_name3 = Klein Usutu River | other_name4 = Little Usutu River | other_name5 = Lusushwane | lat_d = -26.63333 | long_d = 31.36667 | country1 = {{flag|Eswatini}} | elevation = 356 | timezone_label = Africa/Johannesburg | utc_offset = +2 | timezone = [[Central Africa Time|CAT]] | geonames = 981254 }} {{Location map|South Africa|float=right|width=250|caption = Nahimutangan sa Lusushwana sa Habagatang Aprika.|label=Lusushwana|position=left|background=white|lat=-26.63333|long=31.36667}} <!--H.STM-->[[Suba]] ang '''Lusushwana''' sa [[Habagatang Aprika]], sa ibabaw sa utlanan sa Eswatini.<ref name = "gn981254"/> Nahimutang ni sa sidlakang bahin sa nasod, {{formatnum:300}} km sa sidlakan sa [[Pretoria (ulohang dakbayan)|Pretoria]] ang ulohan sa nasod. Ang Lusushwana mao ang bahin sa [[tubig-saluran]] sa [[Lusutfu]], ug usa ka sanga sa [[Lusutfu]]. == Ang mga gi basihan niini == <references> <ref name = "gn981254">[{{Geonameslink|gnid=981254|name=lusushwana}} Lusushwana] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2014-03-07; database download sa 2017-02-28</ref> </references> [[Kategoriya:Lusutfu tubig-saluran]] [[Kategoriya:Mga suba sa Habagatang Aprika]] b4bod1vdtw4b52u83o7owpu6jdu74xs Module:Wd 828 9869120 37023858 37019611 2026-07-10T16:28:55Z Uzume 4367 Update from [[d:Special:GoToLinkedPage/enwiki/Q24733825|master]] using [[mw:Synchronizer| #Synchronizer]] 37023858 Scribunto text/plain -- Original module located at [[:en:Module:Wd]] and [[:en:Module:Wd/i18n]]. require("strict") local p = {} local module_arg = ... local i18n local i18nPath local function loadI18n(aliasesP, frame) local title if frame then -- current module invoked by page/template, get its title from frame title = frame:getTitle() else -- current module included by other module, get its title from ... title = module_arg end if not i18n then i18nPath = title .. "/i18n" i18n = require(i18nPath).init(aliasesP) end end p.claimCommands = { property = "property", properties = "properties", qualifier = "qualifier", qualifiers = "qualifiers", reference = "reference", references = "references" } p.generalCommands = { label = "label", title = "title", description = "description", alias = "alias", aliases = "aliases", badge = "badge", badges = "badges" } p.flags = { linked = "linked", short = "short", raw = "raw", multilanguage = "multilanguage", unit = "unit", ------------- preferred = "preferred", normal = "normal", deprecated = "deprecated", best = "best", future = "future", current = "current", former = "former", edit = "edit", editAtEnd = "edit@end", mdy = "mdy", single = "single", sourced = "sourced" } p.args = { eid = "eid", page = "page", date = "date", globalSiteId = "globalSiteId" } local aliasesP = { coord = "P625", ----------------------- image = "P18", author = "P50", authorNameString = "P2093", publisher = "P123", importedFrom = "P143", wikimediaImportURL = "P4656", statedIn = "P248", pages = "P304", language = "P407", hasPart = "P527", publicationDate = "P577", startTime = "P580", endTime = "P582", chapter = "P792", retrieved = "P813", referenceURL = "P854", sectionVerseOrParagraph = "P958", archiveURL = "P1065", title = "P1476", formatterURL = "P1630", quote = "P1683", shortName = "P1813", definingFormula = "P2534", archiveDate = "P2960", inferredFrom = "P3452", typeOfReference = "P3865", column = "P3903", subjectNamedAs = "P1810", wikidataProperty = "P1687", publishedIn = "P1433", lastUpdate = "P5017" } local aliasesQ = { percentage = "Q11229", prolepticJulianCalendar = "Q1985786", citeWeb = "Q5637226", citeQ = "Q22321052" } local parameters = { property = "%p", qualifier = "%q", reference = "%r", alias = "%a", badge = "%b", separator = "%s", general = "%x" } local formats = { property = "%p[%s][%r]", qualifier = "%q[%s][%r]", reference = "%r", propertyWithQualifier = "%p[ <span style=\"font-size:85\\%\">(%q)</span>][%s][%r]", alias = "%a[%s]", badge = "%b[%s]" } local hookNames = { -- {level_1, level_2} [parameters.property] = {"getProperty"}, [parameters.reference] = {"getReferences", "getReference"}, [parameters.qualifier] = {"getAllQualifiers"}, [parameters.qualifier.."\\d"] = {"getQualifiers", "getQualifier"}, [parameters.alias] = {"getAlias"}, [parameters.badge] = {"getBadge"} } -- default value objects, should NOT be mutated but instead copied local defaultSeparators = { ["sep"] = {" "}, ["sep%s"] = {","}, ["sep%q"] = {"; "}, ["sep%q\\d"] = {", "}, ["sep%r"] = nil, -- none ["punc"] = nil -- none } local rankTable = { ["preferred"] = 1, ["normal"] = 2, ["deprecated"] = 3 } local function replaceAlias(id) if aliasesP[id] then id = aliasesP[id] end return id end local function errorText(code, ...) local text = i18n["errors"][code] if arg then text = mw.ustring.format(text, unpack(arg)) end return text end local function throwError(errorMessage, ...) error(errorText(errorMessage, unpack(arg))) end local function replaceDecimalMark(num) return mw.ustring.gsub(num, "[.]", i18n['numeric']['decimal-mark'], 1) end local function padZeros(num, numDigits) local numZeros local negative = false if num < 0 then negative = true num = num * -1 end num = tostring(num) numZeros = numDigits - num:len() for _ = 1, numZeros do num = "0"..num end if negative then num = "-"..num end return num end local function replaceSpecialChar(chr) if chr == '_' then -- replace underscores with spaces return ' ' else return chr end end local function replaceSpecialChars(str) local chr local esc = false local strOut = "" for i = 1, #str do chr = str:sub(i,i) if not esc then if chr == '\\' then esc = true else strOut = strOut .. replaceSpecialChar(chr) end else strOut = strOut .. chr esc = false end end return strOut end local function buildWikilink(target, label) if not label or target == label then return "[[" .. target .. "]]" else return "[[" .. target .. "|" .. label .. "]]" end end -- used to make frame.args mutable, to replace #frame.args (which is always 0) -- with the actual amount and to simply copy tables local function copyTable(tIn) if not tIn then return nil end local tOut = {} for i, v in pairs(tIn) do tOut[i] = v end return tOut end -- used to merge output arrays together; -- note that it currently mutates the first input array local function mergeArrays(a1, a2) for i = 1, #a2 do a1[#a1 + 1] = a2[i] end return a1 end local function split(str, del) local out = {} local i, j = str:find(del) if i and j then out[1] = str:sub(1, i - 1) out[2] = str:sub(j + 1) else out[1] = str end return out end local function parseWikidataURL(url) local id if url:match('^http[s]?://') then id = split(url, "Q") if id[2] then return "Q" .. id[2] end end return nil end local function parseDate(dateStr, precision) precision = precision or "d" local i, j, index, ptr local parts = {nil, nil, nil} if dateStr == nil then return parts[1], parts[2], parts[3] -- year, month, day end -- 'T' for snak values, '/' for outputs with '/Julian' attached i, j = dateStr:find("[T/]") if i then dateStr = dateStr:sub(1, i-1) end local from = 1 if dateStr:sub(1,1) == "-" then -- this is a negative number, look further ahead from = 2 end index = 1 ptr = 1 i, j = dateStr:find("-", from) if i then -- year parts[index] = tonumber(dateStr:sub(ptr, i-1), 10) -- explicitly give base 10 to prevent error if parts[index] == -0 then parts[index] = tonumber("0") -- for some reason, 'parts[index] = 0' may actually store '-0', so parse from string instead end if precision == "y" then -- we're done return parts[1], parts[2], parts[3] -- year, month, day end index = index + 1 ptr = i + 1 i, j = dateStr:find("-", ptr) if i then -- month parts[index] = tonumber(dateStr:sub(ptr, i-1), 10) if precision == "m" then -- we're done return parts[1], parts[2], parts[3] -- year, month, day end index = index + 1 ptr = i + 1 end end if dateStr:sub(ptr) ~= "" then -- day if we have month, month if we have year, or year parts[index] = tonumber(dateStr:sub(ptr), 10) end return parts[1], parts[2], parts[3] -- year, month, day end local function datePrecedesDate(aY, aM, aD, bY, bM, bD) if aY == nil or bY == nil then return nil end aM = aM or 1 aD = aD or 1 bM = bM or 1 bD = bD or 1 if aY < bY then return true end if aY > bY then return false end if aM < bM then return true end if aM > bM then return false end if aD < bD then return true end return false end local function getHookName(param, index) if hookNames[param] then return hookNames[param][index] elseif param:len() > 2 then return hookNames[param:sub(1, 2).."\\d"][index] else return nil end end local function alwaysTrue() return true end -- The following function parses a format string. -- -- The example below shows how a parsed string is structured in memory. -- Variables other than 'str' and 'child' are left out for clarity's sake. -- -- Example: -- "A %p B [%s[%q1]] C [%r] D" -- -- Structure: -- [ -- { -- str = "A " -- }, -- { -- str = "%p" -- }, -- { -- str = " B ", -- child = -- [ -- { -- str = "%s", -- child = -- [ -- { -- str = "%q1" -- } -- ] -- } -- ] -- }, -- { -- str = " C ", -- child = -- [ -- { -- str = "%r" -- } -- ] -- }, -- { -- str = " D" -- } -- ] -- local function parseFormat(str) local chr, esc, param, root, cur, prev, new local params = {} local function newObject(array) local obj = {} -- new object obj.str = "" array[#array + 1] = obj -- array{object} obj.parent = array return obj end local function endParam() if param > 0 then if cur.str ~= "" then cur.str = "%"..cur.str cur.param = true params[cur.str] = true cur.parent.req[cur.str] = true prev = cur cur = newObject(cur.parent) end param = 0 end end root = {} -- array root.req = {} cur = newObject(root) prev = nil esc = false param = 0 for i = 1, #str do chr = str:sub(i,i) if not esc then if chr == '\\' then endParam() esc = true elseif chr == '%' then endParam() if cur.str ~= "" then cur = newObject(cur.parent) end param = 2 elseif chr == '[' then endParam() if prev and cur.str == "" then table.remove(cur.parent) cur = prev end cur.child = {} -- new array cur.child.req = {} cur.child.parent = cur cur = newObject(cur.child) elseif chr == ']' then endParam() if cur.parent.parent then new = newObject(cur.parent.parent.parent) if cur.str == "" then table.remove(cur.parent) end cur = new end else if param > 1 then param = param - 1 elseif param == 1 then if not chr:match('%d') then endParam() end end cur.str = cur.str .. replaceSpecialChar(chr) end else cur.str = cur.str .. chr esc = false end prev = nil end endParam() -- make sure that at least one required parameter has been defined if not next(root.req) then throwError("missing-required-parameter") end -- make sure that the separator parameter "%s" is not amongst the required parameters if root.req[parameters.separator] then throwError("extra-required-parameter", parameters.separator) end return root, params end local function sortOnRank(claims) local rankPos local ranks = {{}, {}, {}, {}} -- preferred, normal, deprecated, (default) local sorted = {} for _, v in ipairs(claims) do rankPos = rankTable[v.rank] or 4 ranks[rankPos][#ranks[rankPos] + 1] = v end sorted = ranks[1] sorted = mergeArrays(sorted, ranks[2]) sorted = mergeArrays(sorted, ranks[3]) return sorted end local function isValueInTable(searchedItem, inputTable) for _, item in pairs(inputTable) do if item == searchedItem then return true end end return false end local Config = {} -- allows for recursive calls function Config:new() local cfg = {} setmetatable(cfg, self) self.__index = self cfg.separators = { -- single value objects wrapped in arrays so that we can pass by reference ["sep"] = {copyTable(defaultSeparators["sep"])}, ["sep%s"] = {copyTable(defaultSeparators["sep%s"])}, ["sep%q"] = {copyTable(defaultSeparators["sep%q"])}, ["sep%r"] = {copyTable(defaultSeparators["sep%r"])}, ["punc"] = {copyTable(defaultSeparators["punc"])} } cfg.entity = nil cfg.entityID = nil cfg.propertyID = nil cfg.propertyValue = nil cfg.qualifierIDs = {} cfg.qualifierIDsAndValues = {} cfg.bestRank = true cfg.ranks = {true, true, false} -- preferred = true, normal = true, deprecated = false cfg.foundRank = #cfg.ranks cfg.flagBest = false cfg.flagRank = false cfg.periods = {true, true, true} -- future = true, current = true, former = true cfg.flagPeriod = false cfg.atDate = {parseDate(os.date('!%Y-%m-%d'))} -- today as {year, month, day} cfg.mdyDate = false cfg.singleClaim = false cfg.sourcedOnly = false cfg.editable = false cfg.editAtEnd = false cfg.inSitelinks = false cfg.langCode = mw.language.getContentLanguage().code cfg.langName = mw.language.fetchLanguageName(cfg.langCode, cfg.langCode) cfg.langObj = mw.language.new(cfg.langCode) cfg.siteID = mw.wikibase.getGlobalSiteId() cfg.states = {} cfg.states.qualifiersCount = 0 cfg.curState = nil cfg.prefetchedRefs = nil return cfg end local State = {} function State:new(cfg, type) local stt = {} setmetatable(stt, self) self.__index = self stt.conf = cfg stt.type = type stt.results = {} stt.parsedFormat = {} stt.separator = {} stt.movSeparator = {} stt.puncMark = {} stt.linked = false stt.rawValue = false stt.shortName = false stt.anyLanguage = false stt.unitOnly = false stt.singleValue = false return stt end -- if id == nil then item connected to current page is used function Config:getLabel(id, raw, link, short) local label = nil local prefix, title= "", nil if not id then id = mw.wikibase.getEntityIdForCurrentPage() if not id then return "" end end id = id:upper() -- just to be sure if raw then -- check if given id actually exists if mw.wikibase.isValidEntityId(id) and mw.wikibase.entityExists(id) then label = id end prefix, title = "d:Special:EntityPage/", label -- may be nil else -- try short name first if requested if short then label = p._property{aliasesP.shortName, [p.args.eid] = id} -- get short name if label == "" then label = nil end end -- get label if not label then label = mw.wikibase.getLabel(id) end end if not label then label = "" elseif link then -- build a link if requested if not title then if id:sub(1,1) == "Q" then title = mw.wikibase.getSitelink(id) elseif id:sub(1,1) == "P" then -- properties have no sitelink, link to Wikidata instead prefix, title = "d:Special:EntityPage/", id end end label = mw.text.nowiki(label) -- escape raw label text so it cannot be wikitext markup if title then label = buildWikilink(prefix .. title, label) end end return label end function Config:getEditIcon() local value = "" local prefix = "" local front = "&nbsp;" local back = "" if self.entityID:sub(1,1) == "P" then prefix = "Property:" end if self.editAtEnd then front = '<span style="float:' if self.langObj:isRTL() then front = front .. 'left' else front = front .. 'right' end front = front .. '">' back = '</span>' end value = "[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px|alt=" .. i18n['info']['edit-on-wikidata'] .. "|link=https://www.wikidata.org/wiki/" .. prefix .. self.entityID .. "?uselang=" .. self.langCode if self.propertyID then value = value .. "#" .. self.propertyID elseif self.inSitelinks then value = value .. "#sitelinks-wikipedia" end value = value .. "|" .. i18n['info']['edit-on-wikidata'] .. "]]" return front .. value .. back end -- used to create the final output string when it's all done, so that for references the -- function extensionTag("ref", ...) is only called when they really ended up in the final output function Config:concatValues(valuesArray) local outString = "" local j, skip for i = 1, #valuesArray do -- check if this is a reference if valuesArray[i].refHash then j = i - 1 skip = false -- skip this reference if it is part of a continuous row of references that already contains the exact same reference while valuesArray[j] and valuesArray[j].refHash do if valuesArray[i].refHash == valuesArray[j].refHash then skip = true break end j = j - 1 end if not skip then -- add <ref> tag with the reference's hash as its name (to deduplicate references) outString = outString .. mw.getCurrentFrame():extensionTag("ref", valuesArray[i][1], {name = valuesArray[i].refHash}) end else outString = outString .. valuesArray[i][1] end end return outString end function Config:convertUnit(unit, raw, link, short, unitOnly) local space = " " local label = "" local itemID if unit == "" or unit == "1" then return nil end if unitOnly then space = "" end itemID = parseWikidataURL(unit) if itemID then if itemID == aliasesQ.percentage then return "%" else label = self:getLabel(itemID, raw, link, short) if label ~= "" then return space .. label end end end return "" end function State:getValue(snak) return self.conf:getValue(snak, self.rawValue, self.linked, self.shortName, self.anyLanguage, self.unitOnly, false, self.type:sub(1,2)) end function Config:getValue(snak, raw, link, short, anyLang, unitOnly, noSpecial, type) if snak.snaktype == 'value' then local datatype = snak.datavalue.type local subtype = snak.datatype local datavalue = snak.datavalue.value if datatype == 'string' then if subtype == 'url' and link then -- create link explicitly if raw then -- will render as a linked number like [1] return "[" .. datavalue .. "]" else return "[" .. datavalue .. " " .. datavalue .. "]" end elseif subtype == 'commonsMedia' then if link then return buildWikilink("c:File:" .. datavalue, datavalue) elseif not raw then return "[[File:" .. datavalue .. "]]" else return datavalue end elseif subtype == 'geo-shape' and link then return buildWikilink("c:" .. datavalue, datavalue) elseif subtype == 'math' and not raw then local attribute = nil if (type == parameters.property or (type == parameters.qualifier and self.propertyID == aliasesP.hasPart)) and snak.property == aliasesP.definingFormula then attribute = {qid = self.entityID} end return mw.getCurrentFrame():extensionTag("math", datavalue, attribute) elseif subtype == 'external-id' and link then local url = p._property{aliasesP.formatterURL, [p.args.eid] = snak.property} -- get formatter URL if url ~= "" then url = mw.ustring.gsub(url, "$1", datavalue) return "[" .. url .. " " .. datavalue .. "]" else return datavalue end else return datavalue end elseif datatype == 'monolingualtext' then if anyLang or datavalue['language'] == self.langCode then return datavalue['text'] else return nil end elseif datatype == 'quantity' then local value = "" local unit if not unitOnly then -- get value and strip + signs from front value = mw.ustring.gsub(datavalue['amount'], "^%+(.+)$", "%1") if raw then return value end -- replace decimal mark based on locale value = replaceDecimalMark(value) -- add delimiters for readability value = i18n.addDelimiters(value) end unit = self:convertUnit(datavalue['unit'], raw, link, short, unitOnly) if unit then value = value .. unit end return value elseif datatype == 'time' then local y, m, d, p, yDiv, yRound, yFull, value, calendarID, dateStr local yFactor = 1 local sign = 1 local prefix = "" local suffix = "" local mayAddCalendar = false local calendar = "" local precision = datavalue['precision'] if precision == 11 then p = "d" elseif precision == 10 then p = "m" else p = "y" yFactor = 10^(9-precision) end y, m, d = parseDate(datavalue['time'], p) if y < 0 then sign = -1 y = y * sign end -- if precision is tens/hundreds/thousands/millions/billions of years if precision <= 8 then yDiv = y / yFactor -- if precision is tens/hundreds/thousands of years if precision >= 6 then mayAddCalendar = true if precision <= 7 then -- round centuries/millenniums up (e.g. 20th century or 3rd millennium) yRound = math.ceil(yDiv) if not raw then if precision == 6 then suffix = i18n['datetime']['suffixes']['millennium'] else suffix = i18n['datetime']['suffixes']['century'] end suffix = i18n.getOrdinalSuffix(yRound) .. suffix else -- if not verbose, take the first year of the century/millennium -- (e.g. 1901 for 20th century or 2001 for 3rd millennium) yRound = (yRound - 1) * yFactor + 1 end else -- precision == 8 -- round decades down (e.g. 2010s) yRound = math.floor(yDiv) * yFactor if not raw then prefix = i18n['datetime']['prefixes']['decade-period'] suffix = i18n['datetime']['suffixes']['decade-period'] end end if raw and sign < 0 then -- if BCE then compensate for "counting backwards" -- (e.g. -2019 for 2010s BCE, -2000 for 20th century BCE or -3000 for 3rd millennium BCE) yRound = yRound + yFactor - 1 end else local yReFactor, yReDiv, yReRound -- round to nearest for tens of thousands of years or more yRound = math.floor(yDiv + 0.5) if yRound == 0 then if precision <= 2 and y ~= 0 then yReFactor = 1e6 yReDiv = y / yReFactor yReRound = math.floor(yReDiv + 0.5) if yReDiv == yReRound then -- change precision to millions of years only if we have a whole number of them precision = 3 yFactor = yReFactor yRound = yReRound end end if yRound == 0 then -- otherwise, take the unrounded (original) number of years precision = 5 yFactor = 1 yRound = y mayAddCalendar = true end end if precision >= 1 and y ~= 0 then yFull = yRound * yFactor yReFactor = 1e9 yReDiv = yFull / yReFactor yReRound = math.floor(yReDiv + 0.5) if yReDiv == yReRound then -- change precision to billions of years if we're in that range precision = 0 yFactor = yReFactor yRound = yReRound else yReFactor = 1e6 yReDiv = yFull / yReFactor yReRound = math.floor(yReDiv + 0.5) if yReDiv == yReRound then -- change precision to millions of years if we're in that range precision = 3 yFactor = yReFactor yRound = yReRound end end end if not raw then if precision == 3 then suffix = i18n['datetime']['suffixes']['million-years'] elseif precision == 0 then suffix = i18n['datetime']['suffixes']['billion-years'] else yRound = yRound * yFactor if yRound == 1 then suffix = i18n['datetime']['suffixes']['year'] else suffix = i18n['datetime']['suffixes']['years'] end end else yRound = yRound * yFactor end end else yRound = y mayAddCalendar = true end if mayAddCalendar then calendarID = parseWikidataURL(datavalue['calendarmodel']) if calendarID and calendarID == aliasesQ.prolepticJulianCalendar then if not raw then if link then calendar = " ("..buildWikilink(i18n['datetime']['julian-calendar'], i18n['datetime']['julian'])..")" else calendar = " ("..i18n['datetime']['julian']..")" end else calendar = "/"..i18n['datetime']['julian'] end end end if not raw then local ce = nil if sign < 0 then ce = i18n['datetime']['BCE'] elseif precision <= 5 then ce = i18n['datetime']['CE'] end if ce then if link then ce = buildWikilink(i18n['datetime']['common-era'], ce) end suffix = suffix .. " " .. ce end value = tostring(yRound) if m then dateStr = self.langObj:formatDate("F", "1-"..m.."-1") if d then if self.mdyDate then dateStr = dateStr .. " " .. d .. "," else dateStr = d .. " " .. dateStr end end value = dateStr .. " " .. value end value = prefix .. value .. suffix .. calendar else value = padZeros(yRound * sign, 4) if m then value = value .. "-" .. padZeros(m, 2) if d then value = value .. "-" .. padZeros(d, 2) end end value = value .. calendar end return value elseif datatype == 'globecoordinate' then -- logic from https://github.com/DataValues/Geo (v4.0.1) local precision, unitsPerDegree, numDigits, strFormat, value, globe local latitude, latConv, latValue, latLink local longitude, lonConv, lonValue, lonLink local latDirection, latDirectionN, latDirectionS, latDirectionEN local lonDirection, lonDirectionE, lonDirectionW, lonDirectionEN local degSymbol, minSymbol, secSymbol, separator local latDegrees = nil local latMinutes = nil local latSeconds = nil local lonDegrees = nil local lonMinutes = nil local lonSeconds = nil local latDegSym = "" local latMinSym = "" local latSecSym = "" local lonDegSym = "" local lonMinSym = "" local lonSecSym = "" local latDirectionEN_N = "N" local latDirectionEN_S = "S" local lonDirectionEN_E = "E" local lonDirectionEN_W = "W" if not raw then latDirectionN = i18n['coord']['latitude-north'] latDirectionS = i18n['coord']['latitude-south'] lonDirectionE = i18n['coord']['longitude-east'] lonDirectionW = i18n['coord']['longitude-west'] degSymbol = i18n['coord']['degrees'] minSymbol = i18n['coord']['minutes'] secSymbol = i18n['coord']['seconds'] separator = i18n['coord']['separator'] else latDirectionN = latDirectionEN_N latDirectionS = latDirectionEN_S lonDirectionE = lonDirectionEN_E lonDirectionW = lonDirectionEN_W degSymbol = "/" minSymbol = "/" secSymbol = "/" separator = "/" end latitude = datavalue['latitude'] longitude = datavalue['longitude'] if latitude < 0 then latDirection = latDirectionS latDirectionEN = latDirectionEN_S latitude = math.abs(latitude) else latDirection = latDirectionN latDirectionEN = latDirectionEN_N end if longitude < 0 then lonDirection = lonDirectionW lonDirectionEN = lonDirectionEN_W longitude = math.abs(longitude) else lonDirection = lonDirectionE lonDirectionEN = lonDirectionEN_E end precision = datavalue['precision'] if not precision or precision <= 0 then precision = 1 / 3600 -- precision not set (correctly), set to arcsecond end -- remove insignificant detail latitude = math.floor(latitude / precision + 0.5) * precision longitude = math.floor(longitude / precision + 0.5) * precision if precision >= 1 - (1 / 60) and precision < 1 then precision = 1 elseif precision >= (1 / 60) - (1 / 3600) and precision < (1 / 60) then precision = 1 / 60 end if precision >= 1 then unitsPerDegree = 1 elseif precision >= (1 / 60) then unitsPerDegree = 60 else unitsPerDegree = 3600 end numDigits = math.ceil(-math.log10(unitsPerDegree * precision)) if numDigits <= 0 then numDigits = tonumber("0") -- for some reason, 'numDigits = 0' may actually store '-0', so parse from string instead end strFormat = "%." .. numDigits .. "f" if precision >= 1 then latDegrees = strFormat:format(latitude) lonDegrees = strFormat:format(longitude) if not raw then latDegSym = replaceDecimalMark(latDegrees) .. degSymbol lonDegSym = replaceDecimalMark(lonDegrees) .. degSymbol else latDegSym = latDegrees .. degSymbol lonDegSym = lonDegrees .. degSymbol end else latConv = math.floor(latitude * unitsPerDegree * 10^numDigits + 0.5) / 10^numDigits lonConv = math.floor(longitude * unitsPerDegree * 10^numDigits + 0.5) / 10^numDigits if precision >= (1 / 60) then latMinutes = latConv lonMinutes = lonConv else latSeconds = latConv lonSeconds = lonConv latMinutes = math.floor(latSeconds / 60) lonMinutes = math.floor(lonSeconds / 60) latSeconds = strFormat:format(latSeconds - (latMinutes * 60)) lonSeconds = strFormat:format(lonSeconds - (lonMinutes * 60)) if not raw then latSecSym = replaceDecimalMark(latSeconds) .. secSymbol lonSecSym = replaceDecimalMark(lonSeconds) .. secSymbol else latSecSym = latSeconds .. secSymbol lonSecSym = lonSeconds .. secSymbol end end latDegrees = math.floor(latMinutes / 60) lonDegrees = math.floor(lonMinutes / 60) latDegSym = latDegrees .. degSymbol lonDegSym = lonDegrees .. degSymbol latMinutes = latMinutes - (latDegrees * 60) lonMinutes = lonMinutes - (lonDegrees * 60) if precision >= (1 / 60) then latMinutes = strFormat:format(latMinutes) lonMinutes = strFormat:format(lonMinutes) if not raw then latMinSym = replaceDecimalMark(latMinutes) .. minSymbol lonMinSym = replaceDecimalMark(lonMinutes) .. minSymbol else latMinSym = latMinutes .. minSymbol lonMinSym = lonMinutes .. minSymbol end else latMinSym = latMinutes .. minSymbol lonMinSym = lonMinutes .. minSymbol end end latValue = latDegSym .. latMinSym .. latSecSym .. latDirection lonValue = lonDegSym .. lonMinSym .. lonSecSym .. lonDirection value = latValue .. separator .. lonValue if link then globe = parseWikidataURL(datavalue['globe']) if globe then globe = mw.wikibase.getLabelByLang(globe, "en"):lower() else globe = "earth" end latLink = table.concat({latDegrees, latMinutes, latSeconds}, "_") lonLink = table.concat({lonDegrees, lonMinutes, lonSeconds}, "_") value = "[https://geohack.toolforge.org/geohack.php?language="..self.langCode.."&params="..latLink.."_"..latDirectionEN.."_"..lonLink.."_"..lonDirectionEN.."_globe:"..globe.." "..value.."]" end return value elseif datatype == 'wikibase-entityid' then local label local itemID = datavalue['numeric-id'] if subtype == 'wikibase-item' then itemID = "Q" .. itemID elseif subtype == 'wikibase-property' then itemID = "P" .. itemID else return '<strong class="error">' .. errorText('unknown-data-type', subtype) .. '</strong>' end label = self:getLabel(itemID, raw, link, short) if label == "" then label = nil end return label else return '<strong class="error">' .. errorText('unknown-data-type', datatype) .. '</strong>' end elseif snak.snaktype == 'somevalue' and not noSpecial then if raw then return " " -- single space represents 'somevalue' else return i18n['values']['unknown'] end elseif snak.snaktype == 'novalue' and not noSpecial then if raw then return "" -- empty string represents 'novalue' else return i18n['values']['none'] end else return nil end end function Config:getSingleRawQualifier(claim, qualifierID) local qualifiers if claim.qualifiers then qualifiers = claim.qualifiers[qualifierID] end if qualifiers and qualifiers[1] then return self:getValue(qualifiers[1], true) -- raw = true else return nil end end function Config:snakEqualsValue(snak, value) local snakValue = self:getValue(snak, true) -- raw = true if snakValue and snak.snaktype == 'value' and snak.datavalue.type == 'wikibase-entityid' then value = value:upper() end return snakValue == value end function Config:setRank(rank) local rankPos if rank == p.flags.best then self.bestRank = true self.flagBest = true -- mark that 'best' flag was given return end if rank:sub(1,9) == p.flags.preferred then rankPos = 1 elseif rank:sub(1,6) == p.flags.normal then rankPos = 2 elseif rank:sub(1,10) == p.flags.deprecated then rankPos = 3 else return end -- one of the rank flags was given, check if another one was given before if not self.flagRank then self.ranks = {false, false, false} -- no other rank flag given before, so unset ranks self.bestRank = self.flagBest -- unsets bestRank only if 'best' flag was not given before self.flagRank = true -- mark that a rank flag was given end if rank:sub(-1) == "+" then for i = rankPos, 1, -1 do self.ranks[i] = true end elseif rank:sub(-1) == "-" then for i = rankPos, #self.ranks do self.ranks[i] = true end else self.ranks[rankPos] = true end end function Config:setPeriod(period) local periodPos if period == p.flags.future then periodPos = 1 elseif period == p.flags.current then periodPos = 2 elseif period == p.flags.former then periodPos = 3 else return end -- one of the period flags was given, check if another one was given before if not self.flagPeriod then self.periods = {false, false, false} -- no other period flag given before, so unset periods self.flagPeriod = true -- mark that a period flag was given end self.periods[periodPos] = true end function Config:qualifierMatches(claim, id, value) local qualifiers if claim.qualifiers then qualifiers = claim.qualifiers[id] end if qualifiers then for _, v in pairs(qualifiers) do if self:snakEqualsValue(v, value) then return true end end elseif value == "" then -- if the qualifier is not present then treat it the same as the special value 'novalue' return true end return false end function Config:rankMatches(rankPos) if self.bestRank then return (self.ranks[rankPos] and self.foundRank >= rankPos) else return self.ranks[rankPos] end end function Config:timeMatches(claim) local startTime = nil local startTimeY = nil local startTimeM = nil local startTimeD = nil local endTime = nil local endTimeY = nil local endTimeM = nil local endTimeD = nil if self.periods[1] and self.periods[2] and self.periods[3] then -- any time return true end startTime = self:getSingleRawQualifier(claim, aliasesP.startTime) if startTime and startTime ~= "" and startTime ~= " " then startTimeY, startTimeM, startTimeD = parseDate(startTime) end endTime = self:getSingleRawQualifier(claim, aliasesP.endTime) if endTime and endTime ~= "" and endTime ~= " " then endTimeY, endTimeM, endTimeD = parseDate(endTime) end if startTimeY ~= nil and endTimeY ~= nil and datePrecedesDate(endTimeY, endTimeM, endTimeD, startTimeY, startTimeM, startTimeD) then -- invalidate end time if it precedes start time endTimeY = nil endTimeM = nil endTimeD = nil end if self.periods[1] then -- future if startTimeY and datePrecedesDate(self.atDate[1], self.atDate[2], self.atDate[3], startTimeY, startTimeM, startTimeD) then return true end end if self.periods[2] then -- current if (startTimeY == nil or not datePrecedesDate(self.atDate[1], self.atDate[2], self.atDate[3], startTimeY, startTimeM, startTimeD)) and (endTimeY == nil or datePrecedesDate(self.atDate[1], self.atDate[2], self.atDate[3], endTimeY, endTimeM, endTimeD)) then return true end end if self.periods[3] then -- former if endTimeY and not datePrecedesDate(self.atDate[1], self.atDate[2], self.atDate[3], endTimeY, endTimeM, endTimeD) then return true end end return false end function Config:processFlag(flag) if not flag then return false end if flag == p.flags.linked then self.curState.linked = true return true elseif flag == p.flags.raw then self.curState.rawValue = true if self.curState == self.states[parameters.reference] then -- raw reference values end with periods and require a separator (other than none) self.separators["sep%r"][1] = {" "} end return true elseif flag == p.flags.short then self.curState.shortName = true return true elseif flag == p.flags.multilanguage then self.curState.anyLanguage = true return true elseif flag == p.flags.unit then self.curState.unitOnly = true return true elseif flag == p.flags.mdy then self.mdyDate = true return true elseif flag == p.flags.single then self.singleClaim = true return true elseif flag == p.flags.sourced then self.sourcedOnly = true return true elseif flag == p.flags.edit then self.editable = true return true elseif flag == p.flags.editAtEnd then self.editable = true self.editAtEnd = true return true elseif flag == p.flags.best or flag:match('^'..p.flags.preferred..'[+-]?$') or flag:match('^'..p.flags.normal..'[+-]?$') or flag:match('^'..p.flags.deprecated..'[+-]?$') then self:setRank(flag) return true elseif flag == p.flags.future or flag == p.flags.current or flag == p.flags.former then self:setPeriod(flag) return true elseif flag == "" then -- ignore empty flags and carry on return true else return false end end function Config:processFlagOrCommand(flag) local param = "" if not flag then return false end if flag == p.claimCommands.property or flag == p.claimCommands.properties then param = parameters.property elseif flag == p.claimCommands.qualifier or flag == p.claimCommands.qualifiers then self.states.qualifiersCount = self.states.qualifiersCount + 1 param = parameters.qualifier .. self.states.qualifiersCount self.separators["sep"..param] = {copyTable(defaultSeparators["sep%q\\d"])} elseif flag == p.claimCommands.reference or flag == p.claimCommands.references then param = parameters.reference else return self:processFlag(flag) end if self.states[param] then return false end -- create a new state for each command self.states[param] = State:new(self, param) -- use "%x" as the general parameter name self.states[param].parsedFormat = parseFormat(parameters.general) -- will be overwritten for param=="%p" -- set the separator self.states[param].separator = self.separators["sep"..param] -- will be nil for param=="%p", which will be set separately if flag == p.claimCommands.property or flag == p.claimCommands.qualifier or flag == p.claimCommands.reference then self.states[param].singleValue = true end self.curState = self.states[param] return true end function Config:processSeparators(args) local sep for i, v in pairs(self.separators) do if args[i] then sep = replaceSpecialChars(args[i]) if sep ~= "" then self.separators[i][1] = {sep} else self.separators[i][1] = nil end end end end function Config:setFormatAndSeparators(state, parsedFormat) state.parsedFormat = parsedFormat state.separator = self.separators["sep"] state.movSeparator = self.separators["sep"..parameters.separator] state.puncMark = self.separators["punc"] end -- determines if a claim has references by prefetching them from the claim using getReferences, -- which applies some filtering that determines if a reference is actually returned, -- and caches the references for later use function State:isSourced(claim) self.conf.prefetchedRefs = self:getReferences(claim) return (#self.conf.prefetchedRefs > 0) end function State:resetCaches() -- any prefetched references of the previous claim must not be used self.conf.prefetchedRefs = nil end function State:claimMatches(claim) local matches, rankPos -- first of all, reset any cached values used for the previous claim self:resetCaches() -- if a property value was given, check if it matches the claim's property value if self.conf.propertyValue then matches = self.conf:snakEqualsValue(claim.mainsnak, self.conf.propertyValue) else matches = true end -- if any qualifier values were given, check if each matches one of the claim's qualifier values for i, v in pairs(self.conf.qualifierIDsAndValues) do matches = (matches and self.conf:qualifierMatches(claim, i, v)) end -- check if the claim's rank and time period match rankPos = rankTable[claim.rank] or 4 matches = (matches and self.conf:rankMatches(rankPos) and self.conf:timeMatches(claim)) -- if only claims with references must be returned, check if this one has any if self.conf.sourcedOnly then matches = (matches and self:isSourced(claim)) -- prefetches and caches references end return matches, rankPos end function State:out() local result -- collection of arrays with value objects local valuesArray -- array with value objects local sep = nil -- value object local out = {} -- array with value objects local function walk(formatTable, result) local valuesArray = {} -- array with value objects for i, v in pairs(formatTable.req) do if not result[i] or not result[i][1] then -- we've got no result for a parameter that is required on this level, -- so skip this level (and its children) by returning an empty result return {} end end for _, v in ipairs(formatTable) do if v.param then valuesArray = mergeArrays(valuesArray, result[v.str]) elseif v.str ~= "" then valuesArray[#valuesArray + 1] = {v.str} end if v.child then valuesArray = mergeArrays(valuesArray, walk(v.child, result)) end end return valuesArray end -- iterate through the results from back to front, so that we know when to add separators for i = #self.results, 1, -1 do result = self.results[i] -- if there is already some output, then add the separators if #out > 0 then sep = self.separator[1] -- fixed separator result[parameters.separator] = {self.movSeparator[1]} -- movable separator else sep = nil result[parameters.separator] = {self.puncMark[1]} -- optional punctuation mark end valuesArray = walk(self.parsedFormat, result) if #valuesArray > 0 then if sep then valuesArray[#valuesArray + 1] = sep end out = mergeArrays(valuesArray, out) end end -- reset state before next iteration self.results = {} return out end -- level 1 hook function State:getProperty(claim) local value = {self:getValue(claim.mainsnak)} -- create one value object if #value > 0 then return {value} -- wrap the value object in an array and return it else return {} -- return empty array if there was no value end end -- level 1 hook function State:getQualifiers(claim, param) local qualifiers if claim.qualifiers then qualifiers = claim.qualifiers[self.conf.qualifierIDs[param]] end if qualifiers then -- iterate through claim's qualifier statements to collect their values; -- return array with multiple value objects return self.conf.states[param]:iterate(qualifiers, {[parameters.general] = hookNames[parameters.qualifier.."\\d"][2], count = 1}) -- pass qualifier state with level 2 hook else return {} -- return empty array end end -- level 2 hook function State:getQualifier(snak) local value = {self:getValue(snak)} -- create one value object if #value > 0 then return {value} -- wrap the value object in an array and return it else return {} -- return empty array if there was no value end end -- level 1 hook function State:getAllQualifiers(claim, param, result, hooks) local out = {} -- array with value objects local sep = self.conf.separators["sep"..parameters.qualifier][1] -- value object -- iterate through the output of the separate "qualifier(s)" commands for i = 1, self.conf.states.qualifiersCount do -- if a hook has not been called yet, call it now if not result[parameters.qualifier..i] then self:callHook(parameters.qualifier..i, hooks, claim, result) end -- if there is output for this particular "qualifier(s)" command, then add it if result[parameters.qualifier..i] and result[parameters.qualifier..i][1] then -- if there is already some output, then add the separator if #out > 0 and sep then out[#out + 1] = sep end out = mergeArrays(out, result[parameters.qualifier..i]) end end return out end -- level 1 hook function State:getReferences(claim) if self.conf.prefetchedRefs then -- return references that have been prefetched by isSourced return self.conf.prefetchedRefs end if claim.references then -- iterate through claim's reference statements to collect their values; -- return array with multiple value objects return self.conf.states[parameters.reference]:iterate(claim.references, {[parameters.general] = hookNames[parameters.reference][2], count = 1}) -- pass reference state with level 2 hook else return {} -- return empty array end end -- level 2 hook function State:getReference(statement) local citeParamMapping = i18n['cite']['param-mapping'] local citeConfig = i18n['cite']['config'] local citeTypes = i18n['cite']['output-types'] -- will hold rendered properties of the reference which are not directly from statement.snaks, -- Namely, is URL generated from an external ID. local additionalProcessedProperties = {} -- for each citation type, there will be an associative array that associates lists of rendered properties -- to citation-template parameters local candidateParams = {} -- like above, but only associates one rendered property to each parameter; if the above variable -- contains more strings for a parameter, the strings will be assigned to numbered params (e.g. "author1") local citeParams = {} local citeErrors = {} local referenceEmpty = true -- will be set to false if at least one parameter is left unremoved local version = 12 -- increment this each time the below logic is changed to avoid conflict errors if not statement.snaks then return {} end -- don't use bot-added references referencing Wikimedia projects or containing "inferred from" (such references are not usable on Wikipedia) if statement.snaks[aliasesP.importedFrom] or statement.snaks[aliasesP.wikimediaImportURL] or statement.snaks[aliasesP.inferredFrom] then return {} end -- don't include "type of reference" if statement.snaks[aliasesP.typeOfReference] then statement.snaks[aliasesP.typeOfReference] = nil end -- don't include "image" to prevent littering if statement.snaks[aliasesP.image] then statement.snaks[aliasesP.image] = nil end -- don't include "language" if it is equal to the local one if self:getReferenceDetail(statement.snaks, aliasesP.language) == self.conf.langName then statement.snaks[aliasesP.language] = nil end if statement.snaks[aliasesP.statedIn] and not statement.snaks[aliasesP.referenceURL] then -- "stated in" was given but "reference URL" was not. -- get "Wikidata property" properties from the item in "stated in" -- if any of the returned properties of the external-id datatype is in statement.snaks, generate a link from it and use the link in the reference -- find the "Wikidata property" properties in the item from "stated in" local wikidataPropertiesOfSource = mw.text.split(p._properties{p.flags.raw, aliasesP.wikidataProperty, [p.args.eid] = self.conf:getValue(statement.snaks[aliasesP.statedIn][1], true, false)}, ", ", true) for i, wikidataPropertyOfSource in pairs(wikidataPropertiesOfSource) do if statement.snaks[wikidataPropertyOfSource] and statement.snaks[wikidataPropertyOfSource][1].datatype == "external-id" then local tempLink = self:getReferenceDetail(statement.snaks, wikidataPropertyOfSource, false, true) -- not raw, linked if mw.ustring.match(tempLink, "^%[%Z- %Z+%]$") then -- getValue returned a URL in square brackets. -- the link is in wiki markup, so strip the square brackets and the display text -- gsub also returns another, discarted value, therefore the result is assigned to tempLink first tempLink = mw.ustring.gsub(tempLink, "^%[(%Z-) %Z+%]$", "%1") additionalProcessedProperties[aliasesP.referenceURL] = {tempLink} statement.snaks[wikidataPropertyOfSource] = nil break end end end end -- initialize candidateParams and citeParams for _, citeType in ipairs(citeTypes) do candidateParams[citeType] = {} citeParams[citeType] = {} end -- fill candidateParams for _, citeType in ipairs(citeTypes) do -- This will contain value--priority pairs for each param name. local candidateValuesAndPriorities = {} -- fill candidateValuesAndPriorities for refProperty in pairs(statement.snaks) do if citeErrors[citeType] then break end repeat -- just a simple wrapper to emulate "continue" -- set mappingKey and prefix local mappingKey local prefix = "" if statement.snaks[refProperty][1].datatype == 'external-id' then mappingKey = "external-id" prefix = self.conf:getLabel(refProperty) if prefix ~= "" then prefix = prefix .. " " end else mappingKey = refProperty end local paramName = citeParamMapping[citeType][mappingKey] -- skip properties with empty parameter name if paramName == "" then break -- skip this property for this value of citeType end -- handle unknown properties in the reference if not paramName then referenceEmpty = false local error_message = errorText("unknown-property-in-ref", refProperty) assert(error_message) -- Should not be nil citeErrors[citeType] = error_message break end -- set processedProperty local processedProperty local raw = false -- if the value is wanted raw if isValueInTable(paramName, citeConfig[citeType]["raw-value-params"] or {}) then raw = true end if isValueInTable(paramName, citeConfig[citeType]["numbered-params"] or {}) then -- Multiple values may be given. processedProperty = self:getReferenceDetails(statement.snaks, refProperty, raw, self.linked, true) -- anyLang = true else -- If multiple values are given, all but the first suitable one are discarted. processedProperty = {self:getReferenceDetail(statement.snaks, refProperty, raw, self.linked and (statement.snaks[refProperty][1].datatype ~= 'url'), true)} -- link = true/false, anyLang = true end if #processedProperty == 0 then break end referenceEmpty = false -- add an empty entry to candidateValuesAndPriorities, if there isn't one already if not candidateValuesAndPriorities[paramName] then candidateValuesAndPriorities[paramName] = {} end -- find the priority of refProperty local thisPropertyPriority = -1 local thisParamPrioritization = citeConfig[citeType]["prioritization"][paramName] if thisParamPrioritization then for i_priority, i_property in ipairs(thisParamPrioritization) do if i_property == refProperty then thisPropertyPriority = i_priority end end end for _, propertyValue in pairs(processedProperty) do table.insert( candidateValuesAndPriorities[paramName], {prefix .. propertyValue, thisPropertyPriority} ) end until true end -- fill candidateParams[citeType] if not citeErrors[citeType] then local compareValuePriorities = function(pair1, pair2) if pair1[2] == -1 and pair2[2] ~= -1 then return false end if pair1[2] ~= -1 and pair2[2] == -1 then return true end return pair1[2] < pair2[2] end -- fill candidateParams[citeType][paramName] for each used param for paramName, _ in pairs(candidateValuesAndPriorities) do table.sort(candidateValuesAndPriorities[paramName], compareValuePriorities) candidateParams[citeType][paramName] = {} for _, valuePriorityPair in ipairs(candidateValuesAndPriorities[paramName]) do table.insert(candidateParams[citeType][paramName], valuePriorityPair[1]) end end end end -- handle additional properties for refProperty in pairs(additionalProcessedProperties) do for _, citeType in ipairs(citeTypes) do repeat -- skip if there already have been errors if citeErrors[citeType] then break end local paramName = citeParamMapping[citeType][refProperty] -- handle unknown properties in the reference if not paramName then -- Skip this additional property, but do not cause an error. break end if paramName == "" then break end referenceEmpty = false if not candidateParams[citeType][paramName] then candidateParams[citeType][paramName] = {} end for _, propertyValue in pairs(additionalProcessedProperties[refProperty]) do table.insert(candidateParams[citeType][paramName], propertyValue) end until true end end -- fill citeParams for _, citeType in ipairs(citeTypes) do for paramName, paramValues in pairs(candidateParams[citeType]) do if #paramValues == 1 or not isValueInTable(paramName, citeConfig[citeType]["numbered-params"] or {}) then citeParams[citeType][paramName] = paramValues[1] else -- There is more than one value for this parameter - the values will -- go into separate numbered parameters (e.g. "author1", "author2") for paramNum, paramValue in pairs(paramValues) do citeParams[citeType][paramName .. paramNum] = paramValue end end end end -- handle missing mandatory parameters for the templates for _, citeType in ipairs(citeTypes) do for _, requiredCiteParam in pairs(citeConfig[citeType]["mandatory-params"] or {}) do if not citeParams[citeType][requiredCiteParam] then -- The required param is not present. if citeErrors[citeType] then -- Do not override the previous error, if it exists. break end local error_message = errorText("missing-mandatory-param", requiredCiteParam) assert(error_message) -- Should not be nil citeErrors[citeType] = error_message end end end local citeTypeToUse = nil -- choose the output template for _, citeType in ipairs(citeTypes) do if not citeErrors[citeType] then citeTypeToUse = citeType break end end -- set refContent local refContent = "" if citeTypeToUse then local templateToUse = citeConfig[citeTypeToUse]["template"] local paramsToUse = citeParams[citeTypeToUse] if not templateToUse or templateToUse == "" then throwError("no-such-reference-template", tostring(templateToUse), i18nPath, citeTypeToUse) end -- if this module is being substituted then build a regular template call, otherwise expand the template if mw.isSubsting() then for i, v in pairs(paramsToUse) do refContent = refContent .. "|" .. i .. "=" .. v end refContent = "{{" .. templateToUse .. refContent .. "}}" else xpcall( function () refContent = mw.getCurrentFrame():expandTemplate{title=templateToUse, args=paramsToUse} end, function () throwError("no-such-reference-template", templateToUse, i18nPath, citeTypeToUse) end ) end -- If the citation couldn't be displayed using any template, but is not empty (barring ignored propeties), throw an error. elseif not referenceEmpty then refContent = errorText("malformed-reference-header") for _, citeType in ipairs(citeTypes) do refContent = refContent .. errorText("template-failure-reason", citeConfig[citeType]["template"], citeErrors[citeType]) end refContent = refContent .. errorText("malformed-reference-footer") end -- wrap refContent local ref = {} if refContent ~= "" then ref = {refContent} if not self.rawValue then -- this should become a <ref> tag, so save the reference's hash for later ref.refHash = "wikidata-" .. statement.hash .. "-v" .. (tonumber(i18n['version']) + version) end return {ref} else return {} end end -- gets a detail of one particular type for a reference function State:getReferenceDetail(snaks, dType, raw, link, anyLang) local switchLang = anyLang local value = nil if not snaks[dType] then return nil end -- if anyLang, first try the local language and otherwise any language repeat for _, v in ipairs(snaks[dType]) do value = self.conf:getValue(v, raw, link, false, anyLang and not switchLang, false, true) -- noSpecial = true if value then break end end if value or not anyLang then break end switchLang = not switchLang until anyLang and switchLang return value end -- gets the details of one particular type for a reference function State:getReferenceDetails(snaks, dType, raw, link, anyLang) local values = {} if not snaks[dType] then return {} end for _, v in ipairs(snaks[dType]) do -- if nil is returned then it will not be added to the table values[#values + 1] = self.conf:getValue(v, raw, link, false, anyLang, false, true) -- noSpecial = true end return values end -- level 1 hook function State:getAlias(object) local value = object.value local title = nil if value and self.linked then if self.conf.entityID:sub(1,1) == "Q" then title = mw.wikibase.getSitelink(self.conf.entityID) elseif self.conf.entityID:sub(1,1) == "P" then title = "d:Property:" .. self.conf.entityID end if title then value = buildWikilink(title, value) end end value = {value} -- create one value object if #value > 0 then return {value} -- wrap the value object in an array and return it else return {} -- return empty array if there was no value end end -- level 1 hook function State:getBadge(value) value = self.conf:getLabel(value, self.rawValue, self.linked, self.shortName) if value == "" then value = nil end value = {value} -- create one value object if #value > 0 then return {value} -- wrap the value object in an array and return it else return {} -- return empty array if there was no value end end function State:callHook(param, hooks, statement, result) -- call a parameter's hook if it has been defined and if it has not been called before if not result[param] and hooks[param] then local valuesArray = self[hooks[param]](self, statement, param, result, hooks) -- array with value objects -- add to the result if #valuesArray > 0 then result[param] = valuesArray result.count = result.count + 1 else result[param] = {} -- an empty array to indicate that we've tried this hook already return true -- miss == true end end return false end -- iterate through claims, claim's qualifiers or claim's references to collect values function State:iterate(statements, hooks, matchHook) matchHook = matchHook or alwaysTrue local matches = false local rankPos = nil local result, gotRequired for _, v in ipairs(statements) do -- rankPos will be nil for non-claim statements (e.g. qualifiers, references, etc.) matches, rankPos = matchHook(self, v) if matches then result = {count = 0} -- collection of arrays with value objects local function walk(formatTable) local miss for i2, v2 in pairs(formatTable.req) do -- call a hook, adding its return value to the result miss = self:callHook(i2, hooks, v, result) if miss then -- we miss a required value for this level, so return false return false end if result.count == hooks.count then -- we're done if all hooks have been called; -- returning at this point breaks the loop return true end end for _, v2 in ipairs(formatTable) do if result.count == hooks.count then -- we're done if all hooks have been called; -- returning at this point prevents further childs from being processed return true end if v2.child then walk(v2.child) end end return true end gotRequired = walk(self.parsedFormat) -- only append the result if we got values for all required parameters on the root level if gotRequired then -- if we have a rankPos (only with matchHook() for complete claims), then update the foundRank if rankPos and self.conf.foundRank > rankPos then self.conf.foundRank = rankPos end -- append the result self.results[#self.results + 1] = result -- break if we only need a single value if self.singleValue then break end end end end return self:out() end local function getEntityId(arg, eid, page, allowOmitPropPrefix, globalSiteId) local id = nil local prop = nil if arg then if arg:sub(1,1) == ":" then page = arg eid = nil elseif arg:sub(1,1):upper() == "Q" or arg:sub(1,9):lower() == "property:" or allowOmitPropPrefix then eid = arg page = nil else prop = arg end end if eid then if eid:sub(1,9):lower() == "property:" then id = replaceAlias(mw.text.trim(eid:sub(10))) if id:sub(1,1):upper() ~= "P" then id = "" end else id = replaceAlias(eid) end elseif page then if page:sub(1,1) == ":" then page = mw.text.trim(page:sub(2)) end id = mw.wikibase.getEntityIdForTitle(page, globalSiteId) or "" end if not id then id = mw.wikibase.getEntityIdForCurrentPage() or "" end id = id:upper() if not mw.wikibase.isValidEntityId(id) then id = "" end return id, prop end local function nextArg(args) local arg = args[args.pointer] if arg then args.pointer = args.pointer + 1 return mw.text.trim(arg) else return nil end end local function claimCommand(args, funcName) local cfg = Config:new() cfg:processFlagOrCommand(funcName) -- process first command (== function name) local lastArg, parsedFormat, formatParams, claims, value local hooks = {count = 0} -- set the date if given; -- must come BEFORE processing the flags if args[p.args.date] then cfg.atDate = {parseDate(args[p.args.date])} cfg.periods = {false, true, false} -- change default time constraint to 'current' end -- process flags and commands repeat lastArg = nextArg(args) until not cfg:processFlagOrCommand(lastArg) -- get the entity ID from either the positional argument, the eid argument or the page argument cfg.entityID, cfg.propertyID = getEntityId(lastArg, args[p.args.eid], args[p.args.page], false, args[p.args.globalSiteId]) if cfg.entityID == "" then return "" -- we cannot continue without a valid entity ID end cfg.entity = mw.wikibase.getEntity(cfg.entityID) if not cfg.propertyID then cfg.propertyID = nextArg(args) end cfg.propertyID = replaceAlias(cfg.propertyID) if not cfg.entity or not cfg.propertyID then return "" -- we cannot continue without an entity or a property ID end cfg.propertyID = cfg.propertyID:upper() if not cfg.entity.claims or not cfg.entity.claims[cfg.propertyID] then return "" -- there is no use to continue without any claims end claims = cfg.entity.claims[cfg.propertyID] if cfg.states.qualifiersCount > 0 then -- do further processing if "qualifier(s)" command was given if #args - args.pointer + 1 > cfg.states.qualifiersCount then -- claim ID or literal value has been given cfg.propertyValue = nextArg(args) end for i = 1, cfg.states.qualifiersCount do -- check if given qualifier ID is an alias and add it cfg.qualifierIDs[parameters.qualifier..i] = replaceAlias(nextArg(args) or ""):upper() end elseif cfg.states[parameters.reference] then -- do further processing if "reference(s)" command was given cfg.propertyValue = nextArg(args) end -- check for special property value 'somevalue' or 'novalue' if cfg.propertyValue then cfg.propertyValue = replaceSpecialChars(cfg.propertyValue) if cfg.propertyValue ~= "" and mw.text.trim(cfg.propertyValue) == "" then cfg.propertyValue = " " -- single space represents 'somevalue', whereas empty string represents 'novalue' else cfg.propertyValue = mw.text.trim(cfg.propertyValue) end end -- parse the desired format, or choose an appropriate format if args["format"] then parsedFormat, formatParams = parseFormat(args["format"]) elseif cfg.states.qualifiersCount > 0 then -- "qualifier(s)" command given if cfg.states[parameters.property] then -- "propert(y|ies)" command given parsedFormat, formatParams = parseFormat(formats.propertyWithQualifier) else parsedFormat, formatParams = parseFormat(formats.qualifier) end elseif cfg.states[parameters.property] then -- "propert(y|ies)" command given parsedFormat, formatParams = parseFormat(formats.property) else -- "reference(s)" command given parsedFormat, formatParams = parseFormat(formats.reference) end -- if a "qualifier(s)" command and no "propert(y|ies)" command has been given, make the movable separator a semicolon if cfg.states.qualifiersCount > 0 and not cfg.states[parameters.property] then cfg.separators["sep"..parameters.separator][1] = {";"} end -- if only "reference(s)" has been given, set the default separator to none (except when raw) if cfg.states[parameters.reference] and not cfg.states[parameters.property] and cfg.states.qualifiersCount == 0 and not cfg.states[parameters.reference].rawValue then cfg.separators["sep"][1] = nil end -- if exactly one "qualifier(s)" command has been given, make "sep%q" point to "sep%q1" to make them equivalent if cfg.states.qualifiersCount == 1 then cfg.separators["sep"..parameters.qualifier] = cfg.separators["sep"..parameters.qualifier.."1"] end -- process overridden separator values; -- must come AFTER tweaking the default separators cfg:processSeparators(args) -- define the hooks that should be called (getProperty, getQualifiers, getReferences); -- only define a hook if both its command ("propert(y|ies)", "reference(s)", "qualifier(s)") and its parameter ("%p", "%r", "%q1", "%q2", "%q3") have been given for i, v in pairs(cfg.states) do -- e.g. 'formatParams["%q1"] or formatParams["%q"]' to define hook even if "%q1" was not defined to be able to build a complete value for "%q" if formatParams[i] or formatParams[i:sub(1, 2)] then hooks[i] = getHookName(i, 1) hooks.count = hooks.count + 1 end end -- the "%q" parameter is not attached to a state, but is a collection of the results of multiple states (attached to "%q1", "%q2", "%q3", ...); -- so if this parameter is given then this hook must be defined separately, but only if at least one "qualifier(s)" command has been given if formatParams[parameters.qualifier] and cfg.states.qualifiersCount > 0 then hooks[parameters.qualifier] = getHookName(parameters.qualifier, 1) hooks.count = hooks.count + 1 end -- create a state for "properties" if it doesn't exist yet, which will be used as a base configuration for each claim iteration; -- must come AFTER defining the hooks if not cfg.states[parameters.property] then cfg.states[parameters.property] = State:new(cfg, parameters.property) -- if the "single" flag has been given then this state should be equivalent to "property" (singular) if cfg.singleClaim then cfg.states[parameters.property].singleValue = true end end -- if the "sourced" flag has been given then create a state for "reference" if it doesn't exist yet, using default values, -- which must exist in order to be able to determine if a claim has any references; -- must come AFTER defining the hooks if cfg.sourcedOnly and not cfg.states[parameters.reference] then cfg:processFlagOrCommand(p.claimCommands.reference) -- use singular "reference" to minimize overhead end -- set the parsed format and the separators (and optional punctuation mark); -- must come AFTER creating the additonal states cfg:setFormatAndSeparators(cfg.states[parameters.property], parsedFormat) -- process qualifier matching values, analogous to cfg.propertyValue for i, v in pairs(args) do i = tostring(i) if i:match('^[Pp]%d+$') or aliasesP[i] then v = replaceSpecialChars(v) -- check for special qualifier value 'somevalue' if v ~= "" and mw.text.trim(v) == "" then v = " " -- single space represents 'somevalue' end cfg.qualifierIDsAndValues[replaceAlias(i):upper()] = v end end -- first sort the claims on rank to pre-define the order of output (preferred first, then normal, then deprecated) claims = sortOnRank(claims) -- then iterate through the claims to collect values value = cfg:concatValues(cfg.states[parameters.property]:iterate(claims, hooks, State.claimMatches)) -- pass property state with level 1 hooks and matchHook -- if desired, add a clickable icon that may be used to edit the returned values on Wikidata if cfg.editable and value ~= "" then value = value .. cfg:getEditIcon() end return value end local function generalCommand(args, funcName) local cfg = Config:new() cfg.curState = State:new(cfg) local lastArg local value = nil repeat lastArg = nextArg(args) until not cfg:processFlag(lastArg) -- get the entity ID from either the positional argument, the eid argument or the page argument cfg.entityID = getEntityId(lastArg, args[p.args.eid], args[p.args.page], true, args[p.args.globalSiteId]) if cfg.entityID == "" or not mw.wikibase.entityExists(cfg.entityID) then return "" -- we cannot continue without an entity end -- serve according to the given command if funcName == p.generalCommands.label then value = cfg:getLabel(cfg.entityID, cfg.curState.rawValue, cfg.curState.linked, cfg.curState.shortName) elseif funcName == p.generalCommands.title then cfg.inSitelinks = true if cfg.entityID:sub(1,1) == "Q" then value = mw.wikibase.getSitelink(cfg.entityID) end if cfg.curState.linked and value then value = buildWikilink(value) end elseif funcName == p.generalCommands.description then value = mw.wikibase.getDescription(cfg.entityID) else local parsedFormat, formatParams local hooks = {count = 0} cfg.entity = mw.wikibase.getEntity(cfg.entityID) if funcName == p.generalCommands.alias or funcName == p.generalCommands.badge then cfg.curState.singleValue = true end if funcName == p.generalCommands.alias or funcName == p.generalCommands.aliases then if not cfg.entity.aliases or not cfg.entity.aliases[cfg.langCode] then return "" -- there is no use to continue without any aliasses end local aliases = cfg.entity.aliases[cfg.langCode] -- parse the desired format, or parse the default aliases format if args["format"] then parsedFormat, formatParams = parseFormat(args["format"]) else parsedFormat, formatParams = parseFormat(formats.alias) end -- process overridden separator values; -- must come AFTER tweaking the default separators cfg:processSeparators(args) -- define the hook that should be called (getAlias); -- only define the hook if the parameter ("%a") has been given if formatParams[parameters.alias] then hooks[parameters.alias] = getHookName(parameters.alias, 1) hooks.count = hooks.count + 1 end -- set the parsed format and the separators (and optional punctuation mark) cfg:setFormatAndSeparators(cfg.curState, parsedFormat) -- iterate to collect values value = cfg:concatValues(cfg.curState:iterate(aliases, hooks)) elseif funcName == p.generalCommands.badge or funcName == p.generalCommands.badges then if not cfg.entity.sitelinks or not cfg.entity.sitelinks[cfg.siteID] or not cfg.entity.sitelinks[cfg.siteID].badges then return "" -- there is no use to continue without any badges end local badges = cfg.entity.sitelinks[cfg.siteID].badges cfg.inSitelinks = true -- parse the desired format, or parse the default aliases format if args["format"] then parsedFormat, formatParams = parseFormat(args["format"]) else parsedFormat, formatParams = parseFormat(formats.badge) end -- process overridden separator values; -- must come AFTER tweaking the default separators cfg:processSeparators(args) -- define the hook that should be called (getBadge); -- only define the hook if the parameter ("%b") has been given if formatParams[parameters.badge] then hooks[parameters.badge] = getHookName(parameters.badge, 1) hooks.count = hooks.count + 1 end -- set the parsed format and the separators (and optional punctuation mark) cfg:setFormatAndSeparators(cfg.curState, parsedFormat) -- iterate to collect values value = cfg:concatValues(cfg.curState:iterate(badges, hooks)) end end value = value or "" if cfg.editable and value ~= "" then -- if desired, add a clickable icon that may be used to edit the returned value on Wikidata value = value .. cfg:getEditIcon() end return value end -- modules that include this module should call the functions with an underscore prepended, e.g.: p._property(args) local function establishCommands(commandList, commandFunc) for _, commandName in pairs(commandList) do local function wikitextWrapper(frame) local args = copyTable(frame.args) args.pointer = 1 loadI18n(aliasesP, frame) return commandFunc(args, commandName) end p[commandName] = wikitextWrapper local function luaWrapper(args) args = copyTable(args) args.pointer = 1 loadI18n(aliasesP) return commandFunc(args, commandName) end p["_" .. commandName] = luaWrapper end end establishCommands(p.claimCommands, claimCommand) establishCommands(p.generalCommands, generalCommand) -- main function that is supposed to be used by wrapper templates function p.main(frame) if not mw.wikibase then return nil end local f, args loadI18n(aliasesP, frame) -- get the parent frame to take the arguments that were passed to the wrapper template frame = frame:getParent() or frame if not frame.args[1] then throwError("no-function-specified") end f = mw.text.trim(frame.args[1]) if f == "main" then throwError("main-called-twice") end assert(p["_"..f], errorText('no-such-function', f)) -- copy arguments from immutable to mutable table args = copyTable(frame.args) -- remove the function name from the list table.remove(args, 1) return p["_"..f](args) end return p j5a6l03tjwodgrvfnv3lb4x5up93wlv Module:Wd/i18n 828 9869121 37023857 35074656 2026-07-10T16:28:50Z Uzume 4367 Update from [[d:Special:GoToLinkedPage/enwiki/Q29879601|master]] using [[mw:Synchronizer| #Synchronizer]] 37023857 Scribunto text/plain -- The values and functions in this submodule should be localized per wiki. local p = {} function p.init(aliasesP) p = { ["version"] = "8", -- increment this each time the below parameters are changed to avoid reference conflict errors ["errors"] = { ["unknown-data-type"] = "Unknown or unsupported datatype '%s'.", ["missing-required-parameter"] = "No required parameters defined, needing at least one", ["extra-required-parameter"] = "Parameter '%s' must be defined as optional", ["no-function-specified"] = "You must specify a function to call", -- equal to the standard module error message ["main-called-twice"] = 'The function "main" cannot be called twice', ["no-such-function"] = 'The function "%s" does not exist', -- equal to the standard module error message ["no-such-reference-template"] = 'Error: template "%s", which is set in %s as the output template for the citation-output type "%s", does not exist', -- Parts of the error message signalling a malformed reference. ["malformed-reference-header"] = "<span style=\"color:#dd3333\">\nError: Unable to display the reference from Wikidata properly. Technical details:\n", ["malformed-reference-footer"] = "See [[Module:wd/doc#References|the documentation]] for further details.\n</span>\n[[Category:Module:Wd reference errors]]", ["template-failure-reason"] = "* Reason for the failure of {{tl|%s}}: %s\n", ["missing-mandatory-param"] = 'The output template call would miss the mandatory parameter <code>%s</code>.', ["unknown-property-in-ref"] = 'The Wikidata reference contains the property {{property|%s}}, which is not assigned to any parameter of this template.' }, ["info"] = { ["edit-on-wikidata"] = "Edit this on Wikidata" }, ["numeric"] = { ["decimal-mark"] = ".", ["delimiter"] = "," }, ["datetime"] = { ["prefixes"] = { ["decade-period"] = "" }, ["suffixes"] = { ["decade-period"] = "s", ["millennium"] = " millennium", ["century"] = " century", ["million-years"] = " million years", ["billion-years"] = " billion years", ["year"] = " year", ["years"] = " years" }, ["julian-calendar"] = "Julian calendar", -- linked page title ["julian"] = "Julian", ["BCE"] = "BCE", ["CE"] = "CE", ["common-era"] = "Common Era" -- linked page title }, ["coord"] = { ["latitude-north"] = "N", ["latitude-south"] = "S", ["longitude-east"] = "E", ["longitude-west"] = "W", ["degrees"] = "°", ["minutes"] = "'", ["seconds"] = '"', ["separator"] = ", " }, ["values"] = { ["unknown"] = "unknown", ["none"] = "none" }, ["cite"] = { ["output-types"] = {"web", "q"}, -- In this order, the output types will be tried ["param-mapping"] = { ["web"] = { -- <= left side: all allowed reference properties for *web page sources* per https://www.wikidata.org/wiki/Help:Sources -- => right side: corresponding parameter names in (equivalent of) [[:en:Template:Cite web]] (if non-existent, keep empty i.e. "") [aliasesP.statedIn] = "website", [aliasesP.referenceURL] = "url", [aliasesP.publicationDate] = "date", [aliasesP.lastUpdate] = "date", [aliasesP.retrieved] = "access-date", [aliasesP.title] = "title", [aliasesP.subjectNamedAs] = "title", [aliasesP.archiveURL] = "archive-url", [aliasesP.archiveDate] = "archive-date", [aliasesP.language] = "language", [aliasesP.author] = "author", [aliasesP.authorNameString] = "author", [aliasesP.publisher] = "publisher", [aliasesP.quote] = "quote", [aliasesP.pages] = "pages", -- extra option [aliasesP.publishedIn] = "website", [aliasesP.sectionVerseOrParagraph] = "at" }, ["q"] = { -- <= left side: all allowed reference properties for *sources other than web pages* per https://www.wikidata.org/wiki/Help:Sources -- => right side: corresponding parameter names in (equivalent of) [[:en:Template:Cite Q]] (if non-existent, keep empty i.e. "") [aliasesP.statedIn] = "1", [aliasesP.pages] = "pages", [aliasesP.column] = "at", [aliasesP.chapter] = "chapter", [aliasesP.sectionVerseOrParagraph] = "section", ["external-id"] = "id", -- used for any type of database property ID [aliasesP.title] = "title", [aliasesP.publicationDate] = "date", [aliasesP.lastUpdate] = "date", [aliasesP.retrieved] = "access-date" } }, ["config"] = { -- supported fields: -- - template: name of the template used for output -- - numbered-params: citation params accepting an arbitrary number of values by numbering the params (e.g. author1, author2) -- - raw-value-params: params taking a raw value (which means the property is rendered with getValue with raw=true) -- - mandatory-params: params that are required be in the template call (after potentially appending numbers to params listed in numbered-params) -- - prioritization: table associating a list of properties, in the order in which they are preferred, to template parameters; -- properties not mentioned here have the lowest priority; -- prioritization of properties handled through additionalProcessedProperties is unsupported; -- no key of this table can be from numbered-params -- Leaving out the "template" field causes the output type to be ignored. ["web"] = { ["template"] = "Cite web", ["numbered-params"] = {"author"}, ["mandatory-params"] = {"url"}, ["prioritization"] = { ["date"] = {aliasesP.lastUpdate, aliasesP.publicationDate}, ["title"] = {aliasesP.title, aliasesP.subjectNamedAs} } }, ["q"] = { ["template"] = "Cite Q", ["raw-value-params"] = {"1"}, -- the first, unnamed parameter of CiteQ takes a QID, not the name of the item cited ["mandatory-params"] = {"1"}, ["prioritization"] = { ["date"] = {aliasesP.lastUpdate, aliasesP.publicationDate} } } } } } p.getOrdinalSuffix = function(num) if tostring(num):sub(-2,-2) == '1' then return "th" -- 10th, 11th, 12th, 13th, ... 19th end num = tostring(num):sub(-1) if num == '1' then return "st" elseif num == '2' then return "nd" elseif num == '3' then return "rd" else return "th" end end p.addDelimiters = function(n) local left, num, right = string.match(n, "^([^%d]*%d)(%d*)(.-)$") if left and num and right then return left .. (num:reverse():gsub("(%d%d%d)", "%1" .. p['numeric']['delimiter']):reverse()) .. right else return n end end return p end return p pgkxz3kqyoyu0zj2nmtkjkdr0ntnin5 Melicerona listeri 0 9996449 37023887 35232294 2026-07-11T09:56:06Z Llez 11905 37023887 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|buwao|date=2020-12}} {{Taxobox | name = ''Melicerona listeri'' | status = | image = Melicerona listeri listeri 01.JPG | image_caption = | domain = | regnum = [[Animalia]] | phylum = [[Mollusca]] | classis = [[Gastropoda]] | ordo = [[Littorinimorpha]] | familia = [[Buwao|Cypraeidae]] | genus = [[Melicerona]] | species = '''Melicerona listeri''' | binomial = Melicerona listeri | binomial_authority = ([[Gray (awtor)|Gray]], 1824) | range_map = | range_map_caption = | image2 = | image2_caption = | superfamilia = [[Cypraeoidea]] | synonyms = ''Melicerona listeri listeri'' <small>([[Gray (awtor)|Gray]], 1824)</small> }} Kaliwatan sa [[buwao]] ang '''''Melicerona listeri'''''<ref name = "COL"/>. Una ning gihulagway ni [[Gray (awtor)|Gray]] ni adtong 1824. Ang ''Melicerona listeri'' sakop sa [[kahenera]] nga ''[[Melicerona]]'', ug [[pamilya (biyolohiya)|kabanay]] nga [[buwao]].<ref name = "COL"/><ref name = "source"/> Usa ka matang nga nahiubos niini atong makita ''M. l. melvilli''.<ref name="COL"/> [[File:Melicerona listeri_02.jpg|thumb|left]] <!-- katapusan sa gisulat --> == Ang mga gi basihan niini == <references> <ref name = "COL">{{cite web |url= http://www.catalogueoflife.org/DCA_Export/zip-fixed/2019-annual.zip|title= Species 2000 & ITIS Catalogue of Life: 2019 Annual Checklist.|author= Roskov Y., Kunze T., Orrell T., Abucay L., Paglinawan L., Culham A., Bailly N., Kirk P., Bourgoin T., Baillargeon G., Decock W., De Wever A., Didžiulis V.|year= 2019|publisher= Species 2000: Naturalis, Leiden, the Netherlands. ISSN 2405-884X. TaxonID: 54471249|accessdate= 2019-11-11}}</ref> <ref name = "source">MolluscaBase (2019). WoRMS Mollusca: MolluscaBase (version 2019-03-06). In: Species 2000 & ITIS Catalogue of Life, 2019 Annual Checklist (Roskov Y., Ower G., Orrell T., Nicolson D., Bailly N., Kirk P.M., Bourgoin T., DeWalt R.E., Decock W., Nieukerken E. van, Zarucchi J., Penev L., eds.). Digital resource at www.catalogueoflife.org/annual-checklist/2019. Species 2000: Naturalis, Leiden, the Netherlands. ISSN 2405-884X.</ref> </references> [[Kategoriya:Buwao]] [[Kategoriya:Melicerona]] p5usza3tzatba712dak7bo5rl8ci9lc 37023888 37023887 2026-07-11T09:56:52Z Llez 11905 37023888 wikitext text/x-wiki {{paghimo ni bot|Lsjbot|buwao|date=2020-12}} {{Taxobox | name = ''Melicerona listeri'' | status = | image = Melicerona listeri listeri 01.JPG | image_caption = | domain = | regnum = [[Animalia]] | phylum = [[Mollusca]] | classis = [[Gastropoda]] | ordo = [[Littorinimorpha]] | familia = [[Buwao|Cypraeidae]] | genus = [[Melicerona]] | species = '''Melicerona listeri''' | binomial = Melicerona listeri | binomial_authority = ([[Gray (awtor)|Gray]], 1824) | range_map = | range_map_caption = | image2 = | image2_caption = | superfamilia = [[Cypraeoidea]] | synonyms = ''Melicerona listeri listeri'' <small>([[Gray (awtor)|Gray]], 1824)</small> }} [[File:Melicerona listeri_02.jpg|thumb|left]] Kaliwatan sa [[buwao]] ang '''''Melicerona listeri'''''<ref name = "COL"/>. Una ning gihulagway ni [[Gray (awtor)|Gray]] ni adtong 1824. Ang ''Melicerona listeri'' sakop sa [[kahenera]] nga ''[[Melicerona]]'', ug [[pamilya (biyolohiya)|kabanay]] nga [[buwao]].<ref name = "COL"/><ref name = "source"/> Usa ka matang nga nahiubos niini atong makita ''M. l. melvilli''.<ref name="COL"/> <!-- katapusan sa gisulat --> == Ang mga gi basihan niini == <references> <ref name = "COL">{{cite web |url= http://www.catalogueoflife.org/DCA_Export/zip-fixed/2019-annual.zip|title= Species 2000 & ITIS Catalogue of Life: 2019 Annual Checklist.|author= Roskov Y., Kunze T., Orrell T., Abucay L., Paglinawan L., Culham A., Bailly N., Kirk P., Bourgoin T., Baillargeon G., Decock W., De Wever A., Didžiulis V.|year= 2019|publisher= Species 2000: Naturalis, Leiden, the Netherlands. ISSN 2405-884X. TaxonID: 54471249|accessdate= 2019-11-11}}</ref> <ref name = "source">MolluscaBase (2019). WoRMS Mollusca: MolluscaBase (version 2019-03-06). In: Species 2000 & ITIS Catalogue of Life, 2019 Annual Checklist (Roskov Y., Ower G., Orrell T., Nicolson D., Bailly N., Kirk P.M., Bourgoin T., DeWalt R.E., Decock W., Nieukerken E. van, Zarucchi J., Penev L., eds.). Digital resource at www.catalogueoflife.org/annual-checklist/2019. Species 2000: Naturalis, Leiden, the Netherlands. ISSN 2405-884X.</ref> </references> [[Kategoriya:Buwao]] [[Kategoriya:Melicerona]] g42qcmr7uxqgkajuqh3c7m2sc2uv9la Kategoriya:Planet of the Apes 14 10094176 37023856 35080988 2026-07-10T15:27:38Z Shrekiolous 144427 +[[Kategoriya:Mga prangkisa sa mass media]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Mga pelikula sa 20th Century Fox]] using [[Help:Gadget-HotCat|HotCat]] 37023856 wikitext text/x-wiki Mga artikulo nga may kalabotan sa ''[[Planet of the Apes]]'' franchise. [[Kategoriya:Mga pelikula sa 20th Century Fox]] [[Kategoriya:Mga prangkisa sa mass media]] e94k2dxmmukc2fgy8qky3hj3yq4bz6s Toto Cutugno 0 10339476 37023881 36762546 2026-07-11T09:22:09Z IvanScrooge98 25574 /* */ 37023881 wikitext text/x-wiki {{Infobox tawo WD}} '''Toto Cutugno''' ([[Fosdinovo]], 1943 –) [[Italya|italyan]] nga mag-aawit, musikero, manunulat sa mga kanta. == Mga Plato == * ''Voglio l’anima'' (1979) * ''Innamorata, innamorato, innamorati'' (1981) * ''La mia musica'' (1982) * ''Per amore o per gioco'' (1985) * ''Azzura malinconia'' (1986) * ''Mediterraneo'' (1987) * ''Toto Cutugno: sucessi in TV'' (1988) * ''Toto Cutugno'' (1990) * ''Non è facile essere uomini'' (1991) * ''Se mi ami (Mediterraneo)'' (1994) * ''Voglio andare a vivere in campagna'' (1995) * ''Canzoni nascoste'' (1997) * ''Star profile'' (2000) * ''Il treno va...'' (2002) * ''Come noi nessuno al mundo'' (2005) * ''Cantando'' (2006) * ''Un falco chiuso in gabbia'' (2008) == Mga Pakisayran == <references /> [[Kategoriya:Mga natawo sa 1943]] n2i8px2a8wuxl8t6xk6zpont9oj0nab 37023882 37023881 2026-07-11T09:22:47Z IvanScrooge98 25574 /* */ 37023882 wikitext text/x-wiki {{Infobox tawo WD}} '''Toto Cutugno''' ([[Fosdinovo]], 1943 – [[Milano]], 2023) [[Italya|italyan]] nga mag-aawit, musikero, manunulat sa mga kanta. == Mga Plato == * ''Voglio l’anima'' (1979) * ''Innamorata, innamorato, innamorati'' (1981) * ''La mia musica'' (1982) * ''Per amore o per gioco'' (1985) * ''Azzura malinconia'' (1986) * ''Mediterraneo'' (1987) * ''Toto Cutugno: sucessi in TV'' (1988) * ''Toto Cutugno'' (1990) * ''Non è facile essere uomini'' (1991) * ''Se mi ami (Mediterraneo)'' (1994) * ''Voglio andare a vivere in campagna'' (1995) * ''Canzoni nascoste'' (1997) * ''Star profile'' (2000) * ''Il treno va...'' (2002) * ''Come noi nessuno al mundo'' (2005) * ''Cantando'' (2006) * ''Un falco chiuso in gabbia'' (2008) == Mga Pakisayran == <references /> [[Kategoriya:Mga natawo sa 1943]] ndobeyx4l4eqhpkkteslzcgjbgqim0u 37023884 37023882 2026-07-11T09:24:23Z IvanScrooge98 25574 37023884 wikitext text/x-wiki {{Infobox tawo WD}} '''Toto Cutugno''' ([[Fosdinovo (munisipyo)|Fosdinovo]], 1943 – [[Milano (munisipyo sa Italya)|Milano]], 2023) [[italya]]n nga mag-aawit, musikero, manunulat sa mga kanta. == Mga Plato == * ''Voglio l’anima'' (1979) * ''Innamorata, innamorato, innamorati'' (1981) * ''La mia musica'' (1982) * ''Per amore o per gioco'' (1985) * ''Azzura malinconia'' (1986) * ''Mediterraneo'' (1987) * ''Toto Cutugno: sucessi in TV'' (1988) * ''Toto Cutugno'' (1990) * ''Non è facile essere uomini'' (1991) * ''Se mi ami (Mediterraneo)'' (1994) * ''Voglio andare a vivere in campagna'' (1995) * ''Canzoni nascoste'' (1997) * ''Star profile'' (2000) * ''Il treno va...'' (2002) * ''Come noi nessuno al mundo'' (2005) * ''Cantando'' (2006) * ''Un falco chiuso in gabbia'' (2008) == Mga Pakisayran == <references /> [[Kategoriya:Mga natawo sa 1943]] 4lw8c75ts6bw71yj4xwph0o7tlkf1us 37023885 37023884 2026-07-11T09:25:24Z IvanScrooge98 25574 /* Mga Pakisayran */ 37023885 wikitext text/x-wiki {{Infobox tawo WD}} '''Toto Cutugno''' ([[Fosdinovo (munisipyo)|Fosdinovo]], 1943 – [[Milano (munisipyo sa Italya)|Milano]], 2023) [[italya]]n nga mag-aawit, musikero, manunulat sa mga kanta. == Mga Plato == * ''Voglio l’anima'' (1979) * ''Innamorata, innamorato, innamorati'' (1981) * ''La mia musica'' (1982) * ''Per amore o per gioco'' (1985) * ''Azzura malinconia'' (1986) * ''Mediterraneo'' (1987) * ''Toto Cutugno: sucessi in TV'' (1988) * ''Toto Cutugno'' (1990) * ''Non è facile essere uomini'' (1991) * ''Se mi ami (Mediterraneo)'' (1994) * ''Voglio andare a vivere in campagna'' (1995) * ''Canzoni nascoste'' (1997) * ''Star profile'' (2000) * ''Il treno va...'' (2002) * ''Come noi nessuno al mundo'' (2005) * ''Cantando'' (2006) * ''Un falco chiuso in gabbia'' (2008) == Mga Pakisayran == <references /> [[Kategoriya:Mga natawo sa 1943]] [[Kategoriya:Mga namatay sa 2023]] prbbeje1ik0lurcpvluqtbnu01nayf4 Gajraj Bahadur Nagar 0 11344077 37023853 35075442 2026-07-10T13:03:42Z Icodense 28157 Reverted edit by [[Special:Contributions/2401:4900:1CD6:11C1:3CBF:D293:983A:41B1|2401:4900:1CD6:11C1:3CBF:D293:983A:41B1]] ([[User talk:2401:4900:1CD6:11C1:3CBF:D293:983A:41B1|talk]]) to last revision by [[User:Qu0404|Qu0404]] 35054089 wikitext text/x-wiki {{Infobox tawo|name=Gajraj Bahadur Nagar|image=|caption=Gajraj Bahadur Nagar (1928 – 2001)|birth_date=1 October 1928|birth_place=Bhowapur, [[Faridabad]], [[Haryana]], India|spouse=Bhagwan Devi Nagar|relatives=[[CarryMinati|Ajey Nagar]] (grandson)|education=[[Faculty of Law, University of Delhi]], ([[Bachelor of Laws|LL.B]])|years active=1977—2001|death_date=2001|death_place=Faridabad, Haryana}}'''Hi Gajraj Bahadur Nagar''' (1928 – 2001) in uska Indian nga politiko. Siya midaog sa Haryana assembly elections gikan sa Mewla Maharajpur constituency sa Faridabad niadtong 1977 ug nahimong Food and Supplies minister sa kabinete sa Haryana ubos sa ministeryo ni Devi Lal ug namatay niadtong 2001 sa edad nga 73. == Biography == Si Nagar natawo sa usa ka pamilyang Gujjar sa usa ka baryo sa Bhowapur sa Faridabad [[State of Haryāna|Haryana]] . Usa siya ka estudyante sa balaod (LLB) ug nahimong unang presidente sa unyon sa estudyante sa DUSU sa Delhi University 1954–55. Niadtong Pebrero 2021, namatay ang iyang kapikas nga si Bhagwan Devi Nagar. == Mga pakisayran == {{Authority control}} [[Kategoriya:Politika sa Indiya]] [[Kategoriya:Mga tawo sa Indiya]] 13q60uyje7nrkuebgekkyf5ne7sxtc6 Luz Noceda 0 11353921 37023863 37022150 2026-07-10T17:50:05Z Youravreageavaitor 141554 Gitangtang ang sayop nga impormasyon 37023863 wikitext text/x-wiki Si Luz Noceda mao ang nag-unang protagonista sa Disney Channel animated series nga [[The Owl House]], nga gimugna ni Dana Terrace. Medyo malumo siya sa iyang panghunahuna ug kausa nakapunit ug patay nga bitin, pero nakalimot ko kung asa nga episode. Siya usab usa ka neurodivergent nga nagpatin-aw kung nganong iyang gikuha ang patay nga bitin.<ref name=":0">https://www.youtube.com/watch?v=_KU70UFGF2s</ref> Swerte siya nga wa siya matawo sa Australia, buang gyud siya, kay ang matag mananap sa Australia mohimo sa imong kinabuhi nga miserable kung maghilom ka.<ref>https://australian.museum/learn/animals/dangerous-animals/</ref> mydnszoqxleaoa4riasotdfroid8ybs 37023864 37023863 2026-07-10T17:50:26Z Youravreageavaitor 141554 37023864 wikitext text/x-wiki Si Luz Noceda mao ang nag-unang protagonista sa Disney Channel animated series nga [[The Owl House]], nga gimugna ni Dana Terrace. Medyo malumo siya sa iyang panghunahuna ug kausa nakapunit ug patay nga bitin, pero nakalimot ko kung asa nga episode. Siya usab usa ka neurodivergent nga nagpatin-aw kung nganong iyang gikuha ang patay nga bitin.<ref name=":0">https://www.youtube.com/watch?v=_KU70UFGF2s</ref> == Mga reperensya == oks8yxi0o69z6t8fop6c8j0rdqcw9tz GMA News and Public Affairs 0 11354738 37023870 37022924 2026-07-11T03:13:14Z Shrekiolous 144427 added [[Category:Telebisyon sa Pilipinas]] using [[Help:Gadget-HotCat|HotCat]] 37023870 wikitext text/x-wiki Ang GMA Integrated News and Public Affairs (kanhi nailhan nga RBS News Department, GMA Radio-Television News ug GMA Rainbow Satellite News; ug kasagarang nailhan nga GMA News) mao ang dibisyon sa mga programa sa balita ug public affairs sa GMA Network Inc. Ang dibisyon naghimo og mga balita, public affairs, infotainment, ug bag-ohay lang, mga programa sa kalingawan para sa mga estasyon sa telebisyon ug radyo nga gipanag-iya ug kaubanan sa GMA Network ug GMA News TV sa Pilipinas, ug sa tibuok kalibutan pinaagi sa GMA Pinoy TV, GMA Life TV ug GMA News TV International. [[Kategoriya:Telebisyon sa Pilipinas]] sjjwycs9vgii72h6vi45c0m7cr0r7cx DreamWorks Animation 0 11354979 37023865 2026-07-10T22:46:00Z Shrekiolous 144427 Created by translating the page "[[:en:Special:Redirect/revision/1361116339|DreamWorks Animation]]" 37023865 wikitext text/x-wiki <templatestyles src="Reflist/styles.css" />{{Reflist|30em}}Ang '''DreamWorks Animation LLC'''<ref>https://opencorporates.com/companies/us_de/2486689</ref> ('''DWA''', nailhan usab nga '''DreamWorks Animation Studios''' o '''DreamWorks''') usa ka Amerikanong animation studio, nga gipanag-iya sa NBCUniversal sa [[Comcast]] isip kabahin sa [[Universal Pictures]], usa ka dibisyon sa Universal Filmed Entertainment Group. Ang studio nakagama na og 54 ka mga feature film; ang unang pelikula niini, ang ''[[Antz]]'', gipagawas niadtong Oktubre 2, 1998, ug ang pinakabag-o niini nga pelikula, ang ''Gabby's Dollhouse: The Movie'', gipagawas niadtong Septiyembre 26, 2025. Ang umaabot nga mga pelikula niini naglakip sa ''Forgotten Island'' niadtong Septiyembre 25, 2026, ''Cocomelon: The Movie'' niadtong Pebrero 26, 2027, ang [[How to Train Your Dragon 2 (pelikula nga 2027)|live-action remake sa ''How to Train Your Dragon 2'']] sa Hunyo 11, 2027, ''[[Shrek 5]]'' sa Hunyo 30, 2027, ''Donkey'' sa Hunyo 30, 2028, ug duha ka walay titulo nga pelikula sa Septiyembre 24, 2027, ug Septiyembre 22, 2028. {{Efn|Attributed to multiple references:<ref>{{cite news |last1=White |first1=Abbey |title=Jacob Tremblay, Paul Walter Hauser Are a Young Boy and His Biggest Fear in Trailer for 'Orion and the Dark' |url=https://www.hollywoodreporter.com/movies/movie-news/orion-and-the-dark-trailer-jacob-tremblay-paul-walter-hauser-1235643332/ |access-date=November 9, 2023 |date=November 9, 2023}}</ref><ref>{{cite web |last=D'Alessandro |first=Anthony |title=DreamWorks Animation's 'Kung Fu Panda 4' Is Happening; Universal Sets 2024 Release |url=https://deadline.com/2022/08/dreamworks-animations-kung-fu-panda-4-is-happening-universal-sets-2024-release-1235091150/ |website=Deadline |access-date=August 12, 2022 |date=August 12, 2022}}</ref><ref>{{cite web|url=https://deadline.com/2023/12/dreamworks-animation-the-wild-robot-release-date-1235677979/|title=DreamWorks Animation's 'The Wild Robot' to Bring Life to Early Fall 2024 Box Office|website=Deadline Hollywood|last=D'Alessandro|first=Anthony|date=December 19, 2023|access-date=December 19, 2023}}</ref><ref>{{cite web |last1=D'Alessandro |first1=Anthony |title=DreamWorks Animation's 'The Wild Robot' Will Go One Week Later in the Fall |url=https://deadline.com/2024/04/the-wild-robot-release-date-1235893235/ |website=Deadline |access-date=April 23, 2024 |date=April 23, 2024}}</ref><ref>{{cite web |last1=Grobar |first1=Matt |title='Dog Man' Movie Based on Books from 'Captain Underpants' Creator Set for 2025 Release from Universal and DWA |url=https://deadline.com/2024/01/dog-man-movie-release-date-universal-dreamworks-1235807860/ |website=Deadline |access-date=January 29, 2024 |date=January 29, 2024}}</ref><ref>{{cite web |last1=Betancourt |first1=Emiliana |title='How to Train Your Dragon' Live-Action Trailer: Hiccup and Toothless Come to Life After Hit Animated Trilogy |url=https://variety.com/2024/film/news/how-to-train-your-dragon-trailer-live-action-1236208562/ |website=Variety |access-date=November 22, 2024 |date=November 19, 2024}}</ref><ref>{{cite web |last1=D'Alessandro |first1=Anthony |title=DreamWorks Animation Sets 'The Bad Guys 2' For Late Summer 2025 |url=https://deadline.com/2024/03/the-bad-guys-2-release-date-1235868833/ |website=Deadline |access-date=March 26, 2024 |date=March 26, 2024}}</ref><ref>{{cite web |last1=McClintock |first1=Pamela |title='Gabby's Dollhouse: The Movie' to Get the Big-Screen Treatment in 2025 |url=https://www.hollywoodreporter.com/movies/movie-news/gabbys-dollhouse-the-movie-1235881796/ |website=The Hollywood Reporter |access-date=April 25, 2024 |date=April 25, 2024}}</ref><ref>{{cite web | url=https://deadline.com/2025/04/dreamworks-animation-forgotten-island-release-date-1236369039/ | title=DreamWorks Animation Dates 'Forgotten Island' for Fall 2026 | date=April 15, 2025 }}</ref><ref>{{cite web |last1=Couch |first1=Aaron |last2=McClintock |first2=Pamela |url=https://www.hollywoodreporter.com/movies/movie-news/shrek-5-set-for-2026-mike-myers-eddie-murphy-cameron-diaz-1235941271/ |title=''Shrek 5'' Set for 2026 with Mike Myers, Eddie Murphy and Cameron Diaz Returning |date=July 9, 2024 |website=The Hollywood Reporter |access-date=July 9, 2024 |archive-date=July 9, 2024 |archive-url=https://web.archive.org/web/20240709222050/https://www.hollywoodreporter.com/movies/movie-news/shrek-5-set-for-2026-mike-myers-eddie-murphy-cameron-diaz-1235941271/ |url-status=live }}</ref><ref>{{Cite web |last=D'Alessandro |first=Anthony |date=January 10, 2025 |title=Universal Delays 'Shrek 5', Moves Up 'Minions 3' & More |url=https://deadline.com/2025/01/shrek-5-minions-3-release-dates-1236254122/ |access-date=January 10, 2025 |website=Deadline |language=en-US}}</ref><ref>{{Cite web |url=https://www.universalpictures.es/fechasdeestreno/Estrenos-Universal.pdf |title=Fechas de estreno |language=es |website=Universal Pictures International Spain |date=September 22, 2025}}</ref><ref>{{Cite web |url=https://www.universalpictures.at/release |title=Universal Pictures Austria }}</ref>}} Naporma isip usa ka dibisyon sa DreamWorks Pictures niadtong Oktubre 12, 1994, uban sa mga alumni gikan sa kanhi animation arm Amblimation sa Amblin Entertainment, kini nahimo nga usa ka bulag nga kompanya niadtong Oktubre 27, 2004. Ang NBCUniversal mipalit sa DreamWorks Animation sa $3.8 bilyon nga nagkantidad og $3.8 bilyon sugod sa pelikula. ingon man sa tulo ka stop-motion co-productions uban sa [[Aardman Animations]], apan sukad sa 2006, kini karon nagsalig lamang sa computer animation. Bisan pa, kaniadtong 2022, gimandoan ni Presidente Margie Cohn ang studio nga bukas sa tradisyonal nga animation.<ref>https://www.ecartelera.com/noticias/entrevista-margie-cohn-dreamworks-animation-gato-bota-shrek-71190/</ref> Ang mga produksiyon sa studio, lakip ''ang The Prince of Egypt'', ''[[Wallace & Gromit: The Curse of the Were-Rabbit]]'', ug ang ''[[Shrek (franchise)|Shrek]]'', ''Madagascar'', ''Kung Fu Panda'', ''[[How to Train Your Dragon]]'', ''Trolls'', ug ''The Bad Guys'' franchises, nakadawat og lain-laing mga pasidungog, lakip ang tulo ka Academy Awards ug daghang Annie Awards, ingon man daghang nominasyon sa Golden Globe ug BAFTA. Daghan sa ilang mga pelikula ang lakip usab sa mga animated films nga adunay pinakataas nga kita sa tanang panahon, diin ''[[Shrek 2|ang Shrek 2]]'' (2004) mao ang pinakataas sa panahon sa pagpagawas niini. Ang mga pelikula nga gihimo sa DreamWorks Animation orihinal nga giapod-apod sa DreamWorks Pictures hangtod sa 2005. Ang [[Paramount Pictures]] mipuli sa pag-apod-apod gikan sa 2006 hangtod sa 2012, ug ang 20th Century Fox (karon [[20th Century Studios]]) mihimo sa parehas gikan sa 2013 hangtod sa 2017 hangtod nga kini gipalit sa [[The Walt Disney Company]] sa 2019. ang produksyon sa mga pelikula sa DWA gikan sa 2019 pataas resulta sa Universal Pictures, nga nanag-iya usab sa mga katungod sa ilang back catalog.<ref>https://web.archive.org/web/20200805224436/https://deadline.com/2018/09/how-to-train-your-dragon-3-everest-dreamworks-animation-1201864844/</ref> == Mga Reperensya == [[Kategoriya:DreamWorks Animation]] 46k9agomrfsu2yz5qff2k3lufrqnljd 37023867 37023865 2026-07-10T22:55:03Z Shrekiolous 144427 fix 37023867 wikitext text/x-wiki [[Payl:DreamWorks2016.svg|thumb]] Ang '''DreamWorks Animation LLC'''<ref>https://opencorporates.com/companies/us_de/2486689</ref> ('''DWA''', nailhan usab nga '''DreamWorks Animation Studios''' o '''DreamWorks''') usa ka Amerikanong animation studio, nga gipanag-iya sa NBCUniversal sa [[Comcast]] isip kabahin sa [[Universal Pictures]], usa ka dibisyon sa Universal Filmed Entertainment Group. Ang studio nakagama na og 54 ka mga feature film; ang unang pelikula niini, ang ''[[Antz]]'', gipagawas niadtong Oktubre 2, 1998, ug ang pinakabag-o niini nga pelikula, ang ''Gabby's Dollhouse: The Movie'', gipagawas niadtong Septiyembre 26, 2025. Ang umaabot nga mga pelikula niini naglakip sa ''Forgotten Island'' niadtong Septiyembre 25, 2026, ''Cocomelon: The Movie'' niadtong Pebrero 26, 2027, ang [[How to Train Your Dragon 2 (pelikula nga 2027)|live-action remake sa ''How to Train Your Dragon 2'']] sa Hunyo 11, 2027, ''[[Shrek 5]]'' sa Hunyo 30, 2027, ''Donkey'' sa Hunyo 30, 2028, ug duha ka walay titulo nga pelikula sa Septiyembre 24, 2027, ug Septiyembre 22, 2028. {{Efn|Attributed to multiple references:<ref>{{cite news |last1=White |first1=Abbey |title=Jacob Tremblay, Paul Walter Hauser Are a Young Boy and His Biggest Fear in Trailer for 'Orion and the Dark' |url=https://www.hollywoodreporter.com/movies/movie-news/orion-and-the-dark-trailer-jacob-tremblay-paul-walter-hauser-1235643332/ |access-date=November 9, 2023 |date=November 9, 2023}}</ref><ref>{{cite web |last=D'Alessandro |first=Anthony |title=DreamWorks Animation's 'Kung Fu Panda 4' Is Happening; Universal Sets 2024 Release |url=https://deadline.com/2022/08/dreamworks-animations-kung-fu-panda-4-is-happening-universal-sets-2024-release-1235091150/ |website=Deadline |access-date=August 12, 2022 |date=August 12, 2022}}</ref><ref>{{cite web|url=https://deadline.com/2023/12/dreamworks-animation-the-wild-robot-release-date-1235677979/|title=DreamWorks Animation's 'The Wild Robot' to Bring Life to Early Fall 2024 Box Office|website=Deadline Hollywood|last=D'Alessandro|first=Anthony|date=December 19, 2023|access-date=December 19, 2023}}</ref><ref>{{cite web |last1=D'Alessandro |first1=Anthony |title=DreamWorks Animation's 'The Wild Robot' Will Go One Week Later in the Fall |url=https://deadline.com/2024/04/the-wild-robot-release-date-1235893235/ |website=Deadline |access-date=April 23, 2024 |date=April 23, 2024}}</ref><ref>{{cite web |last1=Grobar |first1=Matt |title='Dog Man' Movie Based on Books from 'Captain Underpants' Creator Set for 2025 Release from Universal and DWA |url=https://deadline.com/2024/01/dog-man-movie-release-date-universal-dreamworks-1235807860/ |website=Deadline |access-date=January 29, 2024 |date=January 29, 2024}}</ref><ref>{{cite web |last1=Betancourt |first1=Emiliana |title='How to Train Your Dragon' Live-Action Trailer: Hiccup and Toothless Come to Life After Hit Animated Trilogy |url=https://variety.com/2024/film/news/how-to-train-your-dragon-trailer-live-action-1236208562/ |website=Variety |access-date=November 22, 2024 |date=November 19, 2024}}</ref><ref>{{cite web |last1=D'Alessandro |first1=Anthony |title=DreamWorks Animation Sets 'The Bad Guys 2' For Late Summer 2025 |url=https://deadline.com/2024/03/the-bad-guys-2-release-date-1235868833/ |website=Deadline |access-date=March 26, 2024 |date=March 26, 2024}}</ref><ref>{{cite web |last1=McClintock |first1=Pamela |title='Gabby's Dollhouse: The Movie' to Get the Big-Screen Treatment in 2025 |url=https://www.hollywoodreporter.com/movies/movie-news/gabbys-dollhouse-the-movie-1235881796/ |website=The Hollywood Reporter |access-date=April 25, 2024 |date=April 25, 2024}}</ref><ref>{{cite web | url=https://deadline.com/2025/04/dreamworks-animation-forgotten-island-release-date-1236369039/ | title=DreamWorks Animation Dates 'Forgotten Island' for Fall 2026 | date=April 15, 2025 }}</ref><ref>{{cite web |last1=Couch |first1=Aaron |last2=McClintock |first2=Pamela |url=https://www.hollywoodreporter.com/movies/movie-news/shrek-5-set-for-2026-mike-myers-eddie-murphy-cameron-diaz-1235941271/ |title=''Shrek 5'' Set for 2026 with Mike Myers, Eddie Murphy and Cameron Diaz Returning |date=July 9, 2024 |website=The Hollywood Reporter |access-date=July 9, 2024 |archive-date=July 9, 2024 |archive-url=https://web.archive.org/web/20240709222050/https://www.hollywoodreporter.com/movies/movie-news/shrek-5-set-for-2026-mike-myers-eddie-murphy-cameron-diaz-1235941271/ |url-status=live }}</ref><ref>{{Cite web |last=D'Alessandro |first=Anthony |date=January 10, 2025 |title=Universal Delays 'Shrek 5', Moves Up 'Minions 3' & More |url=https://deadline.com/2025/01/shrek-5-minions-3-release-dates-1236254122/ |access-date=January 10, 2025 |website=Deadline |language=en-US}}</ref><ref>{{Cite web |url=https://www.universalpictures.es/fechasdeestreno/Estrenos-Universal.pdf |title=Fechas de estreno |language=es |website=Universal Pictures International Spain |date=September 22, 2025}}</ref><ref>{{Cite web |url=https://www.universalpictures.at/release |title=Universal Pictures Austria }}</ref>}} Naporma isip usa ka dibisyon sa DreamWorks Pictures niadtong Oktubre 12, 1994, uban sa mga alumni gikan sa kanhi animation arm Amblimation sa Amblin Entertainment, kini nahimo nga usa ka bulag nga kompanya niadtong Oktubre 27, 2004. Ang NBCUniversal mipalit sa DreamWorks Animation sa $3.8 bilyon nga nagkantidad og $3.8 bilyon sugod sa pelikula. ingon man sa tulo ka stop-motion co-productions uban sa [[Aardman Animations]], apan sukad sa 2006, kini karon nagsalig lamang sa computer animation. Bisan pa, kaniadtong 2022, gimandoan ni Presidente Margie Cohn ang studio nga bukas sa tradisyonal nga animation.<ref>https://www.ecartelera.com/noticias/entrevista-margie-cohn-dreamworks-animation-gato-bota-shrek-71190/</ref> Ang mga produksiyon sa studio, lakip ''ang The Prince of Egypt'', ''[[Wallace & Gromit: The Curse of the Were-Rabbit]]'', ug ang ''[[Shrek (franchise)|Shrek]]'', ''Madagascar'', ''Kung Fu Panda'', ''[[How to Train Your Dragon]]'', ''Trolls'', ug ''The Bad Guys'' franchises, nakadawat og lain-laing mga pasidungog, lakip ang tulo ka Academy Awards ug daghang Annie Awards, ingon man daghang nominasyon sa Golden Globe ug BAFTA. Daghan sa ilang mga pelikula ang lakip usab sa mga animated films nga adunay pinakataas nga kita sa tanang panahon, diin ''[[Shrek 2|ang Shrek 2]]'' (2004) mao ang pinakataas sa panahon sa pagpagawas niini. Ang mga pelikula nga gihimo sa DreamWorks Animation orihinal nga giapod-apod sa DreamWorks Pictures hangtod sa 2005. Ang [[Paramount Pictures]] mipuli sa pag-apod-apod gikan sa 2006 hangtod sa 2012, ug ang 20th Century Fox (karon [[20th Century Studios]]) mihimo sa parehas gikan sa 2013 hangtod sa 2017 hangtod nga kini gipalit sa [[The Walt Disney Company]] sa 2019. ang produksyon sa mga pelikula sa DWA gikan sa 2019 pataas resulta sa Universal Pictures, nga nanag-iya usab sa mga katungod sa ilang back catalog.<ref>https://web.archive.org/web/20200805224436/https://deadline.com/2018/09/how-to-train-your-dragon-3-everest-dreamworks-animation-1201864844/</ref> == Mga Reperensya == {{Reflist|30em}} <references group="lower-alpha"/> [[Kategoriya:DreamWorks Animation]] e8ecjdyodbld70eo7snc8gsrhky4cxr Kategoriya:DreamWorks Animation 14 11354980 37023866 2026-07-10T22:47:22Z Shrekiolous 144427 Created page with "[[Kategoriya:Mga kompaniya]]" 37023866 wikitext text/x-wiki [[Kategoriya:Mga kompaniya]] qaqvukvxi7ctg78h4tjfalt2ektkm22 Katharine McPhee 0 11354981 37023869 2026-07-11T02:10:13Z ~2026-36806-07 145980 /* */ creation by mutark2026 37023869 wikitext text/x-wiki Si Katharine Hope McPhee (natawo niadtong Marso 25, 1984) usa ka Amerikanong aktres ug mag-aawit. Niadtong Mayo 2006, siya ang runner-up sa ikalimang season sa American Idol. dc1viqtbkhmvvl45itjkl466xusk3hw 37023871 37023869 2026-07-11T03:20:37Z Shrekiolous 144427 +[[Kategoriya:Mga natawo sa Marso 25]]; +[[Kategoriya:Mga natawo sa 1984]]; +[[Kategoriya:Mga Amerikanong aktor]] using [[Help:Gadget-HotCat|HotCat]] 37023871 wikitext text/x-wiki Si '''Katharine Hope McPhee''' (natawo niadtong Marso 25, 1984) usa ka Amerikanong aktres ug mag-aawit. Niadtong Mayo 2006, siya ang runner-up sa ikalimang season sa ''American Idol''. [[Kategoriya:Mga natawo sa Marso 25]] [[Kategoriya:Mga natawo sa 1984]] [[Kategoriya:Mga Amerikanong aktor]] dog7s2sfm30yejp5xd0odz3gn1gxlmf 37023872 37023871 2026-07-11T03:20:45Z Shrekiolous 144427 added [[Category:Mga Amerikanong maghuhuni]] using [[Help:Gadget-HotCat|HotCat]] 37023872 wikitext text/x-wiki Si '''Katharine Hope McPhee''' (natawo niadtong Marso 25, 1984) usa ka Amerikanong aktres ug mag-aawit. Niadtong Mayo 2006, siya ang runner-up sa ikalimang season sa ''American Idol''. [[Kategoriya:Mga natawo sa Marso 25]] [[Kategoriya:Mga natawo sa 1984]] [[Kategoriya:Mga Amerikanong aktor]] [[Kategoriya:Mga Amerikanong maghuhuni]] 8p5zg9yja3nii2g0i1q38ewtyrs0b4j