Wikipedia mgwiki https://mg.wikipedia.org/wiki/Wikipedia:Fandraisana MediaWiki 1.47.0-wmf.15 first-letter Rakitra Manokana Dinika Mpikambana Dinika amin'ny mpikambana Wikipedia Dinika amin'ny Wikipedia Sary Dinika amin'ny sary MediaWiki Dinika amin'ny MediaWiki Endrika Dinika amin'ny endrika Fanoroana Dinika amin'ny fanoroana Sokajy Dinika amin'ny sokajy TimedText TimedText talk Module Discussion module Event Event talk Paris Saint-Germain Football Club 0 5929 1149221 1143013 2026-08-14T07:43:00Z ~2026-44530-63 40719 /* */ 1149221 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Paris Saint-Germain]] {{vangovango}}{{Infobox Wikimania (spéciale)|anarana=Paris Saint Germain|sary=20121209 PSG-Juvisy - Team of Paris Saint-Germain FC Ladies.jpg}} Ny '''Football Club ny Paris Saint-Germain''' ('''Paris SG''' na '''PSG''') dia club-na [[baolina]] [[frantsa]]y noforonina tamin'ny [[1904]], ary [[Stade Saint-Germain]] ny anarany tamin'io fotoana io. I [[Antoine Kombouaré]] no mpitarika an'io club io hatramin'ny [[1 Jiona]] [[2009]]. Any amin'ny [[Ligue 1]] ny Paris Saint-Germain FC no milalao. qkkh30jwep1hef66jjkgd0fewf7hu28 Endrika:User zh-classical 10 7886 1149211 44137 2026-08-14T07:38:44Z ~2026-44530-63 40719 /* */ 1149211 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Template:User lzh]] icelhb87d57g5mzo663cf0n3hoyejg2 Endrika:User zh-classical-1 10 7887 1149212 44139 2026-08-14T07:39:22Z ~2026-44530-63 40719 /* */ 1149212 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Template:User lzh-1]] 88brccwrs26bhdawn8h3c8imf6f9hdu Bayeux (Brazila) 0 44388 1149213 1140502 2026-08-14T07:39:55Z ~2026-44530-63 40719 /* */ 1149213 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Bayeux (Paraíba)]] {{infobox tanàna |anarana=Bayeux (Brazila) |velarantany= 32 |isam-ponina= 92.891 |firenena={{BRA}} }} I '''Bayeux (Brazila)''' dia kaominina ao [[Brazila]], ao amin'i [[Sary:Bandeira da Paraíba.svg|20px]] [[Paraíba]], ao amin'i [[Zona da Mata Paraibana]], [[Faritra madinik'i João Pessoa|João Pessoa]]. == Jeografia == {{...}} Ny velarantanin'ilay tanàna dia 32 kilometatra toradroa. Ny isam-ponina dia 92.891. 5n9dhgy8glhapooou9b1in226vd1o1q Mampikony 0 46141 1149206 1130800 2026-08-14T06:38:17Z ~2026-43677-38 40632 1149206 wikitext text/x-wiki {{coord|-16.092000|47.647000}} {{infobox tanàna |anarana=Mampikony |faritany=[[Faritanin'i Mahajanga|Mahajanga]] |faritra=[[Sofia]] |isam-ponina=28593 |firenena={{Madagasikara}} |sary= Hospital in Mampikony founded by the Foundation, Madagascar.jpg }} I '''Mampikony''' dia kaominina malagasy ao amin'ny distrikan'i [[Distrikan'i Mampikony|Mampikony]], faritra [[Sofia]]. Ny isam-poniny dia 28593 araka ny faminavinana natao tamin'ny taona 2018. ==Lalana== *[[Lalam-pirenena faha-6|Route National 6]] ==Renirano== *[[Mampikony (renirano)]] ==Rohy ivelany == {{reflist}} {{Sofia}} {{commonscat}} [[sokajy:Kaominina any Madagasikara]] [[sokajy:Kaominina any Faritra Sofia]] ru0qpmy38vm76ti3iov4u11epkdaru3 Tanambao Marivorahona 0 46583 1149223 798214 2026-08-14T09:29:50Z Chirocca77 30720 Nanampy sary infobox 1149223 wikitext text/x-wiki {{infobox tanàna |anarana=Tanambao Marivorahona |sary=La mairie -Tanambao Marivorahona Ambilobe 04.jpg |faritany=Antsiranana |isam-ponina=9462 |firenena={{Madagasikara}} }} '''Tanambao Marivorahona''' dia kaominina malagasy ao amin'ny [[distrikan'i Ambilobe]], [[Faritanin'i Antsiranana]]. Ny isam-poniny dia 9462 araka ny faminavinana natao tamin'ny taona 2000. Ny kaodin-kaominina dia 71707 ary ny kaodin-distrika dia 717 == Vokatry ny fambolena == Ny anjaran'ny tantsaha mampiasa zezika simika dia 50-75%. Ny entana faharoa lafo vidy indrindra dia patate douce. Ny zava-bolena lehibe indrindra amin'ny lafin'ny velarantany dia canne a sucre. Ny entana fahatelo lafo vidy indrindra dia coton. Ny isan'omby dia 12000. Ny isan'ny taona nisiam-pesitry ny vorona teo anelanelan'ny taona 1999-2001 dia 3. Ny zava-bolena faharoa lehibe indrindra amin'ny lafin'ny velarantany dia vary. Ny entana lafo vidy indrindra dia tomates. 3 ny mponina no manao asa tanana. 94 ny mponina no miasa tany. 3 ny mponina no miasa amin'ny sampandraharaha. 6200 no isan'ny kisoa. == Ara-tsosialy == Ahitana fikambanan-tantsaha ao. == Fotodrafitrasa == Tongavan'ny lalam-paritra ilay tanàna. Ahitana tobim-pahasalamana ao. Andalovan'ny lalam-pirenena ilay kaominina. Ahitana sekoly ambaratonga fototra. == Fitaterana == Ny fitaovam-pitaterana ampiasaina matetika indrindra dia kamiao kely. Ny faharetan'ny dia mankany amin'ny renivohi-paritany dia 2 ora. Ahitana lalana godorô ao amin'ny kaominina. Ny fotoam-pitaterana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 2 ora. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 25000 Fmg. Misy fikambanan'ny mpampiasa lalan-tany ao. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny haintany dia 25000 Fmg. == Fahasoavana == 100 isan-jaton'ny mponina no atao hoe mahantra. Ny halavan'ny vanim-potoana mety ahalanian'ny vokatry ny taon-dasa dia 7 volana. == Endri-javatra == == Olana == == Rohy ivelany == * [http://www.ilo.cornell.edu/ilo/census.xls ilo.cornell.edu] - Statistika momba ny kaominina malagasy ary loharanom-pahaizana namoronana an'ity lahatsoratra ity. [[Sokajy:Kaominina any Madagasikara]] fnj6mwti7v7t89pn5esg9nmjvpb54yu 1149224 1149223 2026-08-14T09:44:19Z Chirocca77 30720 /* Vokatry ny fambolena */ nanova firafitra 1149224 wikitext text/x-wiki {{infobox tanàna |anarana=Tanambao Marivorahona |sary=La mairie -Tanambao Marivorahona Ambilobe 04.jpg |faritany=Antsiranana |isam-ponina=9462 |firenena={{Madagasikara}} }} '''Tanambao Marivorahona''' dia kaominina malagasy ao amin'ny [[distrikan'i Ambilobe]], [[Faritanin'i Antsiranana]]. Ny isam-poniny dia 9462 araka ny faminavinana natao tamin'ny taona 2000. Ny kaodin-kaominina dia 71707 ary ny kaodin-distrika dia 717 == Vokatry ny fambolena == Ny tantsaha ao tanambao Marivorahona dia mamokatra fary izay volena amin'ny velarantany lehibe indrindra, mamboly vary, landihazo(coton), Ny entana lao vidy indrindra dia ny voatabia, ny faharoa lafo vidy indrindra dia mangahazo. Ny isan'omby dia 12000. Ny isan'ny taona nisiam-pesitry ny vorona teo anelanelan'ny taona 1999-2001 .Manao asa tànana koa ny mponina ao,94 ny mponina no miasa tany. 3 ny mponina no miasa amin'ny sampandraharaha. 6200 no isan'ny kisoa. == Ara-tsosialy == Ahitana fikambanan-tantsaha ao. == Fotodrafitrasa == Tongavan'ny lalam-paritra ilay tanàna. Ahitana tobim-pahasalamana ao. Andalovan'ny lalam-pirenena ilay kaominina. Ahitana sekoly ambaratonga fototra. == Fitaterana == Ny fitaovam-pitaterana ampiasaina matetika indrindra dia kamiao kely. Ny faharetan'ny dia mankany amin'ny renivohi-paritany dia 2 ora. Ahitana lalana godorô ao amin'ny kaominina. Ny fotoam-pitaterana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 2 ora. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 25000 Fmg. Misy fikambanan'ny mpampiasa lalan-tany ao. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny haintany dia 25000 Fmg. == Fahasoavana == 100 isan-jaton'ny mponina no atao hoe mahantra. Ny halavan'ny vanim-potoana mety ahalanian'ny vokatry ny taon-dasa dia 7 volana. == Endri-javatra == == Olana == == Rohy ivelany == * [http://www.ilo.cornell.edu/ilo/census.xls ilo.cornell.edu] - Statistika momba ny kaominina malagasy ary loharanom-pahaizana namoronana an'ity lahatsoratra ity. [[Sokajy:Kaominina any Madagasikara]] bftls4epw6mc24mi0h5k8qdgjagsjg3 Cafelândia (San Paolo) 0 67587 1149216 1145793 2026-08-14T07:40:59Z ~2026-44530-63 40719 /* */ 1149216 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Cafélândia (São Paulo)]] {{infobox tanàna |anarana=Cafelândia (São Paulo) |velarantany= 919,860 |isam-ponina= 16.073 |firenena={{BRA}} }} I '''Cafelândia (São Paulo)''' dia kaominina ao [[Brazila]], ao amin'i [[Image:Bandeira do Estado de São Paulo.sv, ao amin'i [[Mesoregione di Baur, [[Microregione di Lin. == Jeografia == {{...}} Ny velarantanin'ilay tanàna dia 919,860 kilometatra toradroa. Ny isam-ponina dia 16.073. nnbeyk8g21124p6xz16xb7z9aqfgwd6 Cafelândia (São Paolo) 0 69430 1149220 1145796 2026-08-14T07:42:35Z ~2026-44530-63 40719 /* */ 1149220 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Cafélândia (São Paulo)]] {{infobox tanàna |anarana=Cafelândia (São Paulo) |velarantany= 919,860 |isam-ponina= 16.073 |firenena={{BRA}} }} I '''Cafelândia (São Paulo)''' dia kaominina ao [[Brazila]], ao amin'i [[Sary:Bandeira do estado de São Paulo.svg|20px]] [[São Paulo|São Paulo]], ao amin'i [[Mesoregione di Bauru|Bauru]], [[Microregione di Lins|Lins]]. == Jeografia == {{...}} Ny velarantanin'ilay tanàna dia 919,860 kilometatra toradroa. Ny isam-ponina dia 16.073. 3594rycpyez50esqm8e3d7s3lg0abbk Brissac-Quincé 0 166482 1149225 971462 2026-08-14T09:49:39Z JackyM59 37857 Photograhs updated 1149225 wikitext text/x-wiki {{Coord|47.3558|-0.447}} {{infobox tanàna |tanàna=Brissac-Quincé |firenena={{Frantsa}} |faritany=[[Pays de la Loire]] |velarantany=9.76 |isam-ponina=2898 |ben'ny tanàna=Philippe Cauwel }} [[Sary:Château de Brissac - Sud Est.jpg|vignette|Château de Brissac]] I '''Brissac-Quincé''' dia kaominina ao amin'ny fivondronan'i Angers, ao amin'ny departemantan'i [[Maine-et-Loire]], ao amin'ny faritr'i [[Pays de la Loire]], ao [[Frantsa]]. Ny INSEE dia mampiasa ny kaodim-paositra 49050. I Philippe Cauwel no ben'ny tanàna mandritry ny taona 2001&ndash;2008. Ilay kaominina dia kaominina mpikambana amin'ny fivondronan-kaominin'i Loire Aubance == Jeografia == Ny isam-ponin'i Brissac-Quincé dia 2898 mponina araka ny fanisana natao tamin'ny taona 2009. Ny haavon'ny toerana ambany indrindra dia 33 metatra. Ny haavon'ny toerana avo indrindra dia 78 metatra. Ny fisiana ara-daharampehintany ary ara-daharanjarahasin'ilay kaominina dia 47.3558° ary -0.447° amin'ny soratra desimaly. Ny faritr'ora dia GMT+1. == Rohy ivelany == * : Tranonkala * [http://www.communes.com/recherche/?q=Brissac-Quincé Eo amin'i www.communes.com] <references/> [[Sokajy:Tanàna ao amin'ny faritr'i Maine-et-Loire]] p1cgpivusfve2owxexi9umkqf7l7po1 Zanadralambo 0 167696 1149184 1149183 2026-08-13T12:59:03Z ~2026-43849-27 40659 /* Ny razambe telo nipoiran' ny sokajin' ny Zanadralambo */ 1149184 wikitext text/x-wiki Ny '''Zanadralambo''' dia iray amin' ireo sokajin' [[andriana]] nisy tao amin' ny [[Fanjakan' Imerina|Fanjakana Merina]]. Taranaky ny mpanjaka [[Ralambo]] na havany akaiky izy ireo, ankoatr’ireo hova mendrika nasandratra ho andriana izay nampidirina tao amin’io sokajy io tamin’ny andron’ny mpanjaka hafa taty aoriana. Nanambady maro ny mpanjaka Ralambo, mpanjakan' [[Imerina]], nonina sy nanjaka teo [[Ambohidrabiby]] Hasin' Imerina tamin' ny taona 1575-1600, ary niterahany maro ireo andriambavy vadiny. Mba hisorohana ny ady fanjakana teo amin' ireo taranany sy ireo andriana maro havany teo amin' ny fanjakany dia namorona sokajin' andriana efatra izy, izay nipoiran' ny mpanjaka teto Imerina, dia: ny [[Andriantompokoindrindra]], ny [[Zanadralambo amin' Andrianjaka|Zanadralambo amin'Andrianjaka]], ny [[Andrianamboninolona (foko)|Andrianamboninolona]], ary ny [[Andriandranando]]. Ny sokajy faharoa amin' ny andriana dia nampitondrain-dRalambo ny anarany ka nataony hoe "Zanadralambo". Ankoatr' izany, misy amin' ny tarana-dRalambo no tsy natao ho isan' ny Zanadralambo toy ireo tera-dRalambo sy Rabehavina, dia i Andriatompokoindrindra lahimatoany sy i Ravaomasina anabaviny. Ny zana-dRalambo tamin-dRatsitohinimanjaka, renin’ny mpanjaka Andrianjaka lahiaivony dia nataon-dRalambo ho isan' ny [[Zanadralambo amin' Andrianjaka]]. == Ny razambe telo nipoiran' ny sokajin' ny Zanadralambo == Misy karazany telo ny razambe niandohan' ny sokajy Zanadralambo dia ny taranaky ny mpanjaka Ralambo tamin' ireo vadiny hafa ankoatr’i Rabehavina, ireo havany akaiky izay nosokajiany ho Zanadralambo ary ny [[Hova]] lasa andriana ka natao ho isan' ny Zanadralambo taty aoriana. Ny mpanjaka Ralambo dia teo androvan' Ambohidrabiby no nonina ary ireo Zanadralambo voalohany sy ireo taranany dia nomena zara-tany manodidina an' Ambohidrabiby renivohim-panjakana. === Ny tarana-dRalambo tamin' ny andriambavy hafa ankoatr’i Rabehavina renin’Andriantompokoindrindra === Ireo taranaky ny mpanjaka Ralambo tamin'ny vadikeliny izay natao hoe "[[Zanadralambo amin' Andrianjaka]]" dia avy amin’ny zanany efa-dahy ireto avy: Andriampolofantsy, Andriampanarivomanga, Andriamasoandro, ary Andriantompombe. Andriampolofantsy no lahimatoan' ny Zanadralambo amin' Andrianjaka. Amin' ny maha-lahimatoa azy dia tao avaratr' Ambohidrabiby eo atsimon' i [[Talata Volonondry]], ary somary avaratry Falimanjaka tao Ambohimanarivo no zara-tany nomen' ny mpanjaka Ralambo an' Andriampolofantsy tany amboalohany. Tato aoriana dia nifindra nonina tao Ankadimanga izay mbola eo avaratr' Ambohidrabiby ary atsimon' i Talata Volonondry i Andriampolofantsy sy ny ankohonany ary ireo mpanaraka azy. Rehefa izany dia niala teo Ankadimanga izy ka nifindra nonina teo Ankazobe izay eroa andafy antsinanana-atsimon' Ambohidrabiby. Ary avy eo Ankazobe indray vao nifindra nonina nankeo Atsomangy ao atsimon' Ambohidrabiby. Nanan-janaka roa lahy izy ka ny lahy matoa izay natao hoe Andriamahatsiraina dia napetrany tao avaratr' Atsomangy amin' ny toerana hoe Andafiavaratra ary ny faralahy kosa Andriamasina dia nidina nonina teo ambany atsimon' Atsomangy amin' ny toerana atao hoe Ambany Atsimo. Avy eo Atsomangy kosa no nisy nifindra monina nankeo Ambohitrantenaina ny taranaka. Andriantompombe dia tao andafy avaratra antsinanan' Ambohidrabiby atsimon' ny Falimanjaka, amin' ny tanàna atao hoe Ambohidalona, no zara-tany nomen' ny mpanjaka Ralambo rainy azy ary mbola ao ny fasany. Ny taranak' Andriantompombe kosa dia niala teo ka nifindra monina any atsimon' Ambohidrabiby dia ao Ambatofotsy avaradrano sy ao [[Sabotsy Namehana]]. Andriamasoandro kosa dia napetraky ny mpanjaka Ralambo rainy tao andafy atsimon' Ambohidrabiby ao Manandriana. Andriampanarivomanga indray dia teroa andafy atsimo andrefan' Ambohidrabiby no zara-tany nomen' ny mpanjaka Ralambo azy. Rehefa nanambady an' i Ravadifo zanak' Andriampanarivomanga teo Lazaina moa ny mpanjaka Andrianjaka dia novaina ho ny terak' Andriampanarivomanga indray no zokiny amin' ny Zanadralambo amin' Andrianjaka. Ankoatr’ireo efa-dahy ireo dia misy ihany koa ny taranaky ny mpanjaka Ralambo hafa, toy ny "Zana-dRambavy" ao Masindray ambadik' Ambohimanambola. Rambavy moa dia zanaka vavin’i Ralambo tamin’i Ratomponivololona, izay zanak’ Andrianamboninolona sy Ramanga. Nataon’ ny mpanjaka Andrianampoinimerina ho sokajy Zanadralambo ny firazanan' ireo taranaka avy ao Masindray ireo. ''Fanamarihana'': Ny taranak’i Ralambo tamin-dRavoromanga mpihira nalaza, izay natao hoe [[Zafindravoromanga]], dia mitonona ho isan' ny Zanadralambo ihany koa saingy efa sokajy hova no misy azy noho ny antony manokana. Ravoromanga dia niara-nonina tamin' ny mpanjaka Ralambo sy ny zanany telolahy tao androvan' Ambohidrabiby ary nafenina ao ambany antsinanan' Ambohidrabiby ao atsimon' Anjanakarivo andrefana. Ny zanaka telolahin' ny mpanjaka Ralambo tamin-dRavoromanga kosa dia nomen'ny mpanjaka Ralambo zaratany any avaratr'Ambohidrabiby dia tao Ambohitrolomahitsy ary tato aoriana dia nifindra monina ao Ambohijanamasoandro avaratr'Ambohimanga. === Zanadralambo fianakavian-dRalambo === Ireo Zanadralambo tsy mba nateraky Ralambo fa fianakavian-dRalambo no natao ho isan' ny sokajin' ny Zanadralambo ny ankamaroany. Voalohany amin' izany ny Andriamaneforalambo izay nomen' ny mpanjaka Ralambo zaratany any avaratra antsinanan' Ambohidrabiby dia ao Ankorombe avaratry Talata volonondry. Araka ny [[lovantsofina]] dia tarana-dRabiby raiben-dRalambo ity Andriamaneforalambo ity ary fianakavian' ireo [[Andriandoriamanjaka]] koa. Vinanton-dRalambo rahateo koa Andriamaneforalambo satria ny vadiny dia zanaka nateraky Ralambo. Izany rehetra izany angamba no isan' ny nanasokajian-dRalambo ny terak' Andriamaneforalambo ho isan' ny Zanadralambo ary izy ihany amin' ny Zanadralambo no mitondra ny anarana "Ralambo". Arak' izany, ny Zanadralambo avy amin'[[Andriamaneforalambo]] dia tarana-dRalambo avy amin' ny vadin' Andriamaneforalambo fa tsy avy amin' Andriamaneforalambo razambe akory. Misy lovantsofina milaza fa Rafotsimarovahoaka razan' ny ampahany amin' ny Zanadralambo ao Ambodifahitra dia taranak' Ankorombe no nifindra monina teo. Ary farany, ny taranak' [[Andrianakotrina]] izay nomen' ny mpanjaka Ralambo zaratany any antsinanan' Ambohidrabiby dia ao Ambohimahatsinjo ao andrefan' Ambohimalaza. Andrianakotrina moa araka ny lovantsofina dia andriana tompon' ny faritra akaikin' i Manandriana-Avaradrano sy Namehana iny tamin' ny andron-dRalambo. Fianakavian-dRalambo rahateo moa Andrianakotrina no nanoa azy, ary izy ihany koa no nitondra ny vary taty anivontany ka nosokajian-dRalambo ho isan' ny Zanadralambo izy. Ny lovantsofina sy ny [[tetiarana]] ao amin' ny Terak' Andrianakotrina ao Ambohimahatsinjo dia manambara fa tena zanaky ny mpanjaka Ralambo izy ireo. === Hova lasa Zanadralambo === Misy koa [[Hova]] vitsy nataon' ny mpanjaka [[Andrianampoinimerina]] ho isan' ny andriana ka nosokajiana ho Zanadralambo izy ireny. Tany amboalohany dia tsy nanaiky hifanambady tamin' ireo nasondrotra andriana ireo Zanadralambo na taranaka na fianakavian' ny mpanjaka Ralambo. Saingy tato aoriana dia nifanakalo vady aman-janaka ny vitsy fa tsy izy rehetra akory. Isan' ireny natao ho Zanadralambo ireny i Raberanto sy ny fianakaviany tao Ambodifahitra. Mbola maro koa ireo vohitra no mitonona ho isan' ny Zanadralambo ary mety ho tena Zanadralambo tokoa saingy tsy neken' ny mpanjaka nifandimby ho isan' ny Zanadralambo izy ireny. Misy amin' ireny vohitra ireny aza no niandry aman-taona maro vao neken' ny mpanjaka tato aoriana fa isan' ny Zanadralambo raha tsy nanaiky izany ny mpanjaka tany aloha. Isan' izany ny Zanadralambo amin' ny [[Vakinisisaony]]. Fehiny, ny teny hoe ''Zanadralambo'' dia tsy midika avy hatrany fa taranaky ny mpanjaka Ralambo. Marihina anefa fa nanana ny maha izy azy manokana amin' ny Zanadralambo ny terak' Andriampanarivomanga ao Lazaina sy ny terak' Andriampolofantsy ao Antsomangy ary ny tera-dRaberanto ao Ambodifahitra. Terak' i Lazaina i Rabedasy izay lehiben' ny Zanadralambo rehetra [tamin-d[[Ranavalona III]]]. Tamin' ny Zanadralambo rehetra dia Raberanto sy ny ankohonany avy ao Ambodifahitra no hany nomen' Andrianampoinimerina zaratany tao amin' ny faritra voahodidina hadivory manodidina an' Andohalo tao [[Antananarivo]] ka niaranonina tamin' ny solotenan' ny [[Andriamasinavalona (foko)|Andriamasinavalona]], ny Andriandranando, ny Andrianamboninolona, ny Andriatompokoindrindra, ny [[Andriandoriamanjaka]], ary ny [[Zazamarolahy]] teo. == Ny toerana ahitana ny Zanadralambo == Saika nahitana ny Zanadralambo ny lafivalo teto Imerina. Tamin' ny nanjakan-dRalambo dia teo saika nanodidina ny vohitr' Ambohidrabiby Hasin' Imerina iny no nonina ireo Zanadralambo dia tao [[Ambohidrabiby]], [[Falimanjaka]], [[Ankorombe]], [[Ambodifahitra]], [[Lazaina]], [[Antsomangy]], Manandriana, Ambatofotsy, Ambohidrano Antsinanana, Andranovelona, Ambohimahatsinjo ary amin' ny faritra atsimo ao Kilonjy. Tato aoriana dia niely tsikelikely teo amin' ny fanjakan' Imerina ireny Zanadralambo ireny satria ny Zanadralambo dia tsy mba nahazo nivoaka ny faritr' Imerina Enin-toko ka avy amin' izany ny fiteny hoe Zanadralambo Enin-toko. Amin' ny lafiny atsimo ao Ikilonjy sy amin' ny lafiny atsimo ao amin' ny rovan' Ambohijanaka dia misy Zanadralambo. Eny hatrany amin' ny Vakinimananara amin' ny faritr' [[Anjozorobe]] dia misy Zanadralambo. Ireo andriana taranaka taty aoriana araka ny vanimpotoana nifandimby ihany no nanana zo hivoaka an' Imerina raha hanitatra fanjakana na hametram-pihavanana amin' ny fanjakana manodidina na hanorina fanjakana mihintsy. == Ny andraikitry ny Zanadralambo == Ny Zanadralambo dia nanana andraikitra manokana teo amin' ny fanjakan' andriana. Ny Zanadralambo dia loharanon' andriana manjaka. Ny Zanadralambo amin' Andrianjaka no akaiky ny mpanjaka [[Andrianjaka]] raha nanjaka tao Antananarivo izy. Natao isan' ny mpanozon-doha na mpanome [[tangena]] ny Zanadralambo. Raha nisy mpanjaka efa hiamboho (manary aina) dia ny Zanadralambo no antsoina hialany aina sy hiamparany. Tato aoriana dia natao isan' ny mpamono fatin' andriamanjaka ny Zanadralambo satria tsy misy mahazo mikasika ny taolambalon' ny mpanjaka raha tsy andriana ny firazanany dia nisy Zanadralambo nahazo nanao izany. Nisy tamin' ny Zanadralambo koa anefa toy ny ao Manadriana-Avaradrano no nahazo andraikitra ho mpanenona ny firavaka [[volamena]] sy [[Volafotsy|volafotsi]]<nowiki/>n' ny mpanjaka. Hatramin' ny andron-dRalambo rainy hono dia Andriamasoandro no mpitohy sy mpanamboatra ny voahangy sampan-dRalambo. Ny Zanadralambo avy amin' ny fianakavian-dRabedasy kosa no nanefy ny volan' ny fanjakana merina ary Rabedasy no lehiben' ny Zanadralambo tamin' ny faran' ny fanjakan' andriana merina. Betsaka andriana manam-pahaizana ny Zanadralambo amin' Andrianjaka ankehitriny, toa ny Andriana Alfred Ramangasoavina filoha-lefitry ny Repoblika Voalohany sady minisitry ny Fitsarana. Ny andriana Émile Ramarosaona, ministra ny Planina. Ny andriana Profesora [[Siméon Rajaona]] mpampianatra [[Fiteny malagasy|teny malagasy]] teny amin' ny Oniversite ary olomanga-pirenena koa. == Ny fomban' ny Zanadralambo == Ny samy Zanadralambo dia saika nifanambady. Tsy [[lova tsy mifindra]] anefa izany noho ireo Zanadralambo samy hafa reny ary mety tsy ho tarana-dRalambo mihintsy ny sasany aminy. Tsy mba nanana [[Sampy (malagasy)|sampy]] manokana koa ny Zanadralambo raha nanana ny azy manokana ireo sokajin' andriana sasany, angamba noho ny maha samy hafa reny ireo vohitry ny Zanadralambo maro. Na izany aza, dia saika nanan-karena ny Zanadralambo. == Jereo koa == * [[Zanakandriana]] * [[Andriantompokoindrindra (foko)|Andriantompokoindrindra]] * [[Andrianamboninolona (foko)|Andrianamboninolona]] * [[Andriandranando]] * [[Zanadralambo]] * [[Zanadralambo amin' Andrianjaka]] * [[Zazamarolahy]] * [[Andriamasinavalona (foko)|Andriamasinavalona]] * [[Andriantompokoindrindra (foko)|Andriantompokoindrindra]] * [[Andrianamboninolona (foko)|Andrianamboninolona]] [[sokajy:Tantaran'i Madagasikara]] bjqpr3perm4emsjoc947i3fr2vsrrc4 Bayeux (Brasile) 0 190688 1149214 1140650 2026-08-14T07:39:56Z ~2026-44530-63 40719 /* */ 1149214 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #FIHODINANA [[Bayeux (Paraíba)]] s479i5gu5xjclwl2cgahlhb9wn59mfd Alexander Merkel 0 204406 1149195 1071321 2026-08-14T02:19:40Z ~2026-43677-38 40632 1149195 wikitext text/x-wiki {{infobox olona |sary=Alexander Merkel.jpg |anarana=Alexander Merkel |teraka=22 Febroary 1992 |toerana = [[Almaty]] |maty= |firenena={{Alemaina}} |mpiaraka= |asa= * [[mpilalao baolina kitra]] |taona niasàna= }} '''Alexander Merkel''' (Fiteny kazàka: Александр Меркель) dia mpilalao baolina kitra mizaka ny zom-pirenen'i {{Alemaina}} teraka ny 22 Febroary 1992. == Jereo koa == {{CLEDETRI:Merkel, Alexander}} {{commonscat}} [[sokajy:mpilalao baolina kitra alemainy]] [[sokajy:mpilalao baolina kitra kazàka]] [[sokajy:Teraka tamin'ny taona 1992]] i2gqe44eftywksmp7hx97bmg5ytokok Lois Abbingh 0 207146 1149194 759584 2026-08-13T23:28:06Z Dostojewskij 7697 Sokajy:Teraka tamin'ny taona 1992 1149194 wikitext text/x-wiki {{infobox olona |sary= |anarana=Lois Abbingh |teraka=13 Aogositra 1992 |maty= |firenena= |mpiaraka= |asa= * [[mpilalao baolina kitra]] |taona niasàna= }} '''Lois Abbingh''' dia mpilalao baolina kitra teraka ny 13 Aogositra 1992 == Jereo koa == * [[Biôgrafia]] [[sokajy:Biôgrafia]] {{vangovango}} {{DEFAULTSORT:Abbingh, Lois}} [[sokajy:mpilalao baolina kitra]] [[Sokajy:Teraka tamin'ny taona 1992]] kvzczqlg8pz86ntwuatpq2ekbk5qk2f Macrin 0 229163 1149215 1138398 2026-08-14T07:40:18Z ~2026-44530-63 40719 /* */ 1149215 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Macrinus]] {{infobox olona |sary= |anarana=Macrinus |teraka=1 Janoary 164 |maty=1 Janoary 218 |firenena=Empira Romana |mpiaraka= |asa= * [[mpanao politika]] |taona niasàna= }} '''Macrin''' dia mpanao politika mizaka ny zom-pirenen'i [[Empira Romana]] teraka ny 1 Janoary 164 ary maty ny 8 Jona 218. Nantsoiny hoe ''Marcus Oellius Severus Macrinus'' ny tenany tamin’ny naha mpanjaka azy. ==Ny fiainany manokana== Ny vadiny dia Nonia Celsa. Ny zanany dia Diadumenian. == Emperora romanina == {|border="1" align="center" style="border: 10px solid #0; background-color:#FFFFFF" |-align="center" bgcolor="DDEEFF" !nodimbiasany ![[Sary:Vexilloid of the Roman Empire.svg|40px]] [[Empira Rômana|Emperora romanina]] !mpandimby |-align="center" | [[Caracalla]] 211–217 <br/>sy [[Geta (emperora)|Geta]]<br/> 211 || [[Macrin|Macrinus]]<br/> 217-218 || [[Elagabalus]]<br/> 218-222 |-bgcolor="#DDEEFF" |- |} == Jereo koa == f1h2dv7z4xsoppst8mfhd4rnqtn592h Ravoahangy-Andrianavalona Joseph 0 230042 1149197 1141439 2026-08-14T06:05:28Z ~2026-43677-38 40632 [[Fianarantsoa] 1149197 wikitext text/x-wiki {{Infobox olona |anarana=Ravoahangy-Andrianavalona Joseph |teraka=22 0ktobra 1893| toerana=[[Fianarantsoa]] |maty=21 aogositra 1971 |firenena={{Madagasikara}} |asa=Mpanao politika}} '''Ravoahangy-Andrianavalona Joseph''' dia Malagasy nizaka ny [[zom-pirenena frantsay]], mpanao pôlitika sy mpitsabo. Teraka tamin' ny 28 Oktobra 1893 tao [[Fianarantsoa]] ary maty tamin' ny 21 Aogositra 1970 tao [[Antananarivo]]. Mpikambana ao amin' ny Antenimieram-pirenena frantsay izy nanomboka amin' ny 21 Oktobra 1945 ka hatramin' ny 10 Jona 1946, tao amin' ny Antenimieram-pirenena mpanorina (''Assemblée nationale constituante'') faha-2 tamin' ny 2 Jona 1946 hatramin' ny 27 Novambra 1946 ary tao amin' ny Antenimieram-pirenena amin' ny fe-potoam-piasana voalohany tamin' ny 10 Novambra 1946 ka hatramin' ny 4 Jolay 1951. Mpitari-tolona niady tamin' ny [[fanjanahantany]] izy ary anisan' ireo namorona ny antoko [[Vy Vato Sakelika]] (V.V.S.) sy ny [[Mouvement démocratique de la rénovation malgache]] (M.D.R.M.) niaraka amin' i [[Raseta Joseph|Joseph Raseta]] sy i [[Rabemananjara Jacques|Jacques Rabemananjara]]. = Ny tantarany = === Ny fiaviany sy ny fianarany === Teraka tao [[Fianarantsoa]] tamin' ny 28 Oktobra 1893 i Ravoahangy. Zana-dRakotonavalona Joël sy Ramanantenasoa Rose (samy avy amin' ny firazanana [[Andriamasinavalona]])<ref name=":0">[https://tanikomadagascar.com/2017/06/26/joseph-ravoahangy-andrianavalona-biographie/ Joseph Ravoahangy Andrianavalona: Biographie « TANIKO Madagascar]</ref>. Nanaraka ny ambaratonga voalohany tamina sekoly samihafa tao [[Fianarantsoa]] izy. Nanohy ny fianarany tao amin' ny sekoly [[Le Myre de Vilers]] ao Antananarivo izy ary afa-panadinana ho mpianatra mpitsabo tamin' ny taona 1912. === Ny niatombohany nitolona === Ny taona 1913, dia anisan' ireo izay namorona ny [[Vy Vato Sakelika]] (V.V.S.) Ravoahangy ary nosamborina noho izany tamin' ny taona 1915. Voaheloka hiasa an-terivozona mandra-pahafatiny izy tamin' ny 18 Febroary 1916 (fitsarana natao tao [[Andafiavaratra]]) ary nalefa sesitany tany [[Mayotte]]. Nohalefahina ho [[asa an-terivozona]] mandritra ny 15 taona izany saziny izany nefa nofoanana mihitsy tamin' ny taona 1922. Niverina nanohy ny fianarany ho mpitsabo izy ary tafavoaka ho mpitsabo herintaona taty aoriana. Rehefa mpitsabo izy dia niditra tao amin' ny [[A.M.I]] ary notendrena hiasa any [[Toliara]] hatramin' ny taona 1927. Rehefa tapitra ny fifanekena nataony tamin' ny fanjakana, dia lasa nakany [[Antsiranana|Diégo]] "hiara-miasa" tamin-d[[Ralaimongo Jean|Ralaimongo]],<ref name=":0" /> kanefa dia voarara tsy nahazo manao ny asan' ny mpitsabo tany amin' io toerana io izy. Izy sy i [[Dussac Paul]] no niara-nanohy ny famoahana ny gazety ''[[L'Opinion]]'', rehefa naiditra am-ponja Ralaimongo tamin' ny taona 1928, ka lafin-kevitra roa lehibe no nitoloman'izy ireo tamin'izany, dia ny fanafoanana ny "[[indigénat]]" sy ny fanafoanana ny lalàna naha-zanatany frantsay an' i [[Madagasikara]] tamin' ny 6 Aogositra 1896 mba ho fananganana ny fanjakan' i Madagasikara. Tamin' ny 29 Mey 1929, na dia tsy nandray anjara mivantana amin'ny hetsika natao aza Ravoahangy, dia tsy navela handia faritany tao [[Maintirano]] nandritra ny 5 taona, kanefa mbola nanohy ny fanoratana an-gazety ihany. Hoy izy tao amin'ny lahatsoratra navoakany tao amin'ny gazety ''L'Opinion'' tamin' ny 24 Septambra 1934: "Takinay hatrany ny fahaleovantenan' i Madagasikara". Niverina teto [[Antananarivo]] tamin' ny taona 1936 sy niara-namorona tamin-dRalaimongo sy i Dussac Paul ny gazety ''[[La Nation Malgache]]'' sy ''[[Le Prolétariat malgache]]'' izy ary anisan' ny namorona ny hetsika sendikaly voalohany. Tamin' ny taona 1939, tamin' ny fiandohan'ny [[Ady Lehibe Faharoa|Ady lehibe faha-II]], dia niato tsy nanao pôlitika Ravoahangy, kanefa izany dia tsy nahasakana ny fanjakana tamin' izany fotoana izany (akaiky an' i Vichy) hanao fisavana matetika ny tokantranony izany. Voafidy ho mpanolotsainan' ny Tananan' Antananarivo tamin' ny taona 1945 izy, nefa nofoanana izany, vokatry ny fanamelohana samihafa azony hatramin' ny taona 1916. Na izany aza dia voafidy ho [[solombavambahoaka]] tao amin' ny Antenimiera mpamolavola tany Frantsa ny volana Novambra ary mbola voafidy hitana io toerana io ihany na tamin' ny volana Jona na tamin' ny voalana Novambra 1946.<ref>[https://maitron.fr/ravoahangy-andrianavalona-joseph-notice-en-cours/ <nowiki>RAVOAHANGY-ANDRIANAVALONA Joseph [notice en cours] – Maitron</nowiki>]</ref> === Ny M.D.R.M sy ny raharaha 29 Martsa 1947 === Tamin' ny taona 1946, dia anisan' ireo niara-namorona ny antoko ''[[Mouvement démocratique de la rénovation malgache]]'' (M.D.R.M.) . Voaheloka ho faty noho ny raharaha 29 Marsa 1947 araka ny fitsarana natao teo Andafiavaratra izy, nefa izany sazy izany dia nivadika ho figadrana mandra-pahafaty anaty faritra voambina tamin' ny taona 1949, ka nahiboka tany [[Mwali]] ao [[Kômôro]] izy ary nafindra tany [[Calvi]] (nosy [[Corse]]) avy eo. Nampanao "Tsia" tamin' ny [[fitsapan-kevi-bahoaka]] natao tamin' ny 28 Septambra 1958 izy. Rehefa tafaverina teto an-tanindrazana izy, dia voafidy ho solombavambahoakan' Antananarivo tamin' ny 4 Septambra 1960.<ref name=":0" /> === Ny niafarany === Tamin' ny taona 1961 dia niditra ho mpikambana ao amin' ny [[Parti social démocrate malgache]] (PSD) izy ary voatendry ho ministra na minisi-panjakana hatramin' ny fotoana nahafatesany tamin' ny 21 Aogositra 1970, <ref name=":0" />ary nalevina am-boninahitra sy nisaonan' i [[Madagasikara]]. == Jereo koa == * [[Ralaimongo Jean|Jean Ralaimongo]] * [[Raseta Joseph Delphin|Joseph Raseta]] * [[Ny Avana Ramanantoanina]] = Loharano = {{Reflist}} * Ilaitangena, ''Feon' ny Merina'' lah. faha-163, 18 Jolay 1997. * [[Hopitaly Université Joseph Ravoahangy Andrianavalona]] ([[Antananarivo]]) ==Jereo koa == [[Sokajy:Mpitsabo malagasy]] [[Sokajy:Mpanao politika malagasy]] 8v24g5jl7h2hav3rpkp6d4zig99nuyh Mampikony I 0 231122 1149205 797910 2026-08-14T06:32:22Z ~2026-43677-38 40632 1149205 wikitext text/x-wiki {{infobox tanàna |anarana=Mampikony I |faritra=[[Sofia]] |faritany=[[Faritanin'i Mahajanga|Mahajanga]] |isam-ponina=14225 |firenena={{Madagasikara}} |sary = Hospital in Mampikony founded by the Foundation, Madagascar.jpg }} '''Mampikony I''' dia kaominina malagasy ao amin'ny [[distrikan'i Mampikony]], [[Faritra Sofia]], [[Faritanin'i Mahajanga]]. Ny isam-poniny dia 14225 araka ny faminavinana natao tamin'ny taona 2000. Ny kaodin-kaominina dia 42399 ary ny kaodin-distrika dia 423 == Vokatry ny fambolena == Ny anjaran'ny tantsaha mampiasa zezika simika dia 50-75%. Ny entana faharoa lafo vidy indrindra dia vary. Ny zava-bolena lehibe indrindra amin'ny lafin'ny velarantany dia vary. Ny entana fahatelo lafo vidy indrindra dia mangahazo. Ny isan'omby dia 550. Ny isan'ny taona nisiam-pesitry ny vorona teo anelanelan'ny taona 1999-2001 dia 3. Ny zava-bolena faharoa lehibe indrindra amin'ny lafin'ny velarantany dia tongolo. Ny entana lafo vidy indrindra dia tongolo. 75 ny mponina no miasa tany. 10 ny mponina no miasa amin'ny fiompiana. 15 ny mponina no miasa amin'ny sampandraharaha. 250 no isan'ny kisoa. == Ara-tsosialy == Ahitana fikambanan-tantsaha ao. == Fotodrafitrasa == Misy seranam-piaramanidina akaikin'ilay tanàna. Ahitana hopitaly na toeram-pitsaboana ao. Ahitana tobim-pahasalamana ao. Misy tsena isan'andro any. Ijanon'ny taksiborosy ilay kaominina. Misy fianarana ambaratonga faharoa (lise). Andalovan'ny lalam-pirenena ilay kaominina. Ahitana sekoly ambaratonga fototra. Ahitana kolejy ao amin'ilay tanàna. Tsy ny JIRAMA no manome ny rano. Ny JIRAMA no manome ny rano. Misy biraom-paositra ao. == Fitaterana == Ny fitaovam-pitaterana ampiasaina matetika indrindra dia fiara maivana base. Ny faharetan'ny dia mankany amin'ny renivohi-paritany dia 9 ora. Ny fotoam-pitaterana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 27 ora. Ny lalan-tany dia azo aleha mandavan-taona. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 75000 Fmg. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny haintany dia 50000 Fmg. == Fahasoavana == 10 isan-jaton'ny mponina no tena mahantra dia mahantra. 40 isan-jaton'ny mponina no atao hoe mahantra. Ny halavan'ny vanim-potoana mety ahalanian'ny vokatry ny taon-dasa dia 3 volana. 10 isan-jaton'ny mponina no atao hoe manan-karena. 40 isan-jaton'ny mponina no manana fari-piainana antonontonony. == Endri-javatra == Misy masoivohon'ny ministeran'ny fiompiana. Misy masoivohon'ny ministeran'ny fiompiana. Misy masoivohon'ny ministeran'ny fahasalamana. Misy masoivohon'ny ministeran'ny fahasalamana. Misy masoivohon'ny ministeran'ny rano sy ny ala. Misy masoivohon'ny ministeran'ny rano sy ny ala. Misy masoivohon'ny ministeran'ny asa tany. Misy masoivohon'ny ministeran'ny asa tany. Misy masoivohon'ny ministeran'ny fiarovana. Misy masoivohon'ny ministeran'ny fiarovana. Misy masoivohon'ny ministeran'ny fanabeazana. Misy masoivohon'ny ministeran'ny fanabeazana. Misy masoivohon'ny ministeran'ny mponina. Misy masoivohon'ny ministeran'ny mponina. == Olana == Ny isan'ny vono olona tanatin'ny taona 1999-2001 dia 16. Tapaka in-3 ny lalana tao anatin'ny taona 1999-2001. Ao amin'ny atao hoe faritra mena ilay kaominina. Ny isan'ny vakitrano tanatin'ny taona 1999-2001 dia 48. Ahitana zandary ao amin'ilay kaominina. 4 no isan'ireo mpamono olona tratra tanatin'ny taona 1999-2001. == Rohy ivelany == * [http://www.ilo.cornell.edu/ilo/census.xls ilo.cornell.edu] - Statistika momba ny kaominina malagasy ary loharanom-pahaizana namoronana an'ity lahatsoratra ity. {{commonscat}} [[Sokajy:Kaominina any Madagasikara]] [[Sokajy:Kaominina any Faritra Sofia]] 1q1rax88byse048h7itkepmwxxzbdea 1149208 1149205 2026-08-14T06:39:05Z ~2026-43677-38 40632 Pejy fihodinana mankany [[Mampikony]] 1149208 wikitext text/x-wiki #REDIRECT [[Mampikony]] {{infobox tanàna |anarana=Mampikony I |faritra=[[Sofia]] |faritany=[[Faritanin'i Mahajanga|Mahajanga]] |isam-ponina=14225 |firenena={{Madagasikara}} |sary = Hospital in Mampikony founded by the Foundation, Madagascar.jpg }} '''Mampikony I''' dia kaominina malagasy ao amin'ny [[distrikan'i Mampikony]], [[Faritra Sofia]], [[Faritanin'i Mahajanga]]. Ny isam-poniny dia 14225 araka ny faminavinana natao tamin'ny taona 2000. Ny kaodin-kaominina dia 42399 ary ny kaodin-distrika dia 423 == Vokatry ny fambolena == Ny anjaran'ny tantsaha mampiasa zezika simika dia 50-75%. Ny entana faharoa lafo vidy indrindra dia vary. Ny zava-bolena lehibe indrindra amin'ny lafin'ny velarantany dia vary. Ny entana fahatelo lafo vidy indrindra dia mangahazo. Ny isan'omby dia 550. Ny isan'ny taona nisiam-pesitry ny vorona teo anelanelan'ny taona 1999-2001 dia 3. Ny zava-bolena faharoa lehibe indrindra amin'ny lafin'ny velarantany dia tongolo. Ny entana lafo vidy indrindra dia tongolo. 75 ny mponina no miasa tany. 10 ny mponina no miasa amin'ny fiompiana. 15 ny mponina no miasa amin'ny sampandraharaha. 250 no isan'ny kisoa. == Ara-tsosialy == Ahitana fikambanan-tantsaha ao. == Fotodrafitrasa == Misy seranam-piaramanidina akaikin'ilay tanàna. Ahitana hopitaly na toeram-pitsaboana ao. Ahitana tobim-pahasalamana ao. Misy tsena isan'andro any. Ijanon'ny taksiborosy ilay kaominina. Misy fianarana ambaratonga faharoa (lise). Andalovan'ny lalam-pirenena ilay kaominina. Ahitana sekoly ambaratonga fototra. Ahitana kolejy ao amin'ilay tanàna. Tsy ny JIRAMA no manome ny rano. Ny JIRAMA no manome ny rano. Misy biraom-paositra ao. == Fitaterana == Ny fitaovam-pitaterana ampiasaina matetika indrindra dia fiara maivana base. Ny faharetan'ny dia mankany amin'ny renivohi-paritany dia 9 ora. Ny fotoam-pitaterana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 27 ora. Ny lalan-tany dia azo aleha mandavan-taona. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny andro fahavaratra dia 75000 Fmg. Ny saran-dalan'ny olona tokana mankany amin'ny tanàn-dehibem-paritany amin'ny haintany dia 50000 Fmg. == Fahasoavana == 10 isan-jaton'ny mponina no tena mahantra dia mahantra. 40 isan-jaton'ny mponina no atao hoe mahantra. Ny halavan'ny vanim-potoana mety ahalanian'ny vokatry ny taon-dasa dia 3 volana. 10 isan-jaton'ny mponina no atao hoe manan-karena. 40 isan-jaton'ny mponina no manana fari-piainana antonontonony. == Endri-javatra == Misy masoivohon'ny ministeran'ny fiompiana. Misy masoivohon'ny ministeran'ny fiompiana. Misy masoivohon'ny ministeran'ny fahasalamana. Misy masoivohon'ny ministeran'ny fahasalamana. Misy masoivohon'ny ministeran'ny rano sy ny ala. Misy masoivohon'ny ministeran'ny rano sy ny ala. Misy masoivohon'ny ministeran'ny asa tany. Misy masoivohon'ny ministeran'ny asa tany. Misy masoivohon'ny ministeran'ny fiarovana. Misy masoivohon'ny ministeran'ny fiarovana. Misy masoivohon'ny ministeran'ny fanabeazana. Misy masoivohon'ny ministeran'ny fanabeazana. Misy masoivohon'ny ministeran'ny mponina. Misy masoivohon'ny ministeran'ny mponina. == Olana == Ny isan'ny vono olona tanatin'ny taona 1999-2001 dia 16. Tapaka in-3 ny lalana tao anatin'ny taona 1999-2001. Ao amin'ny atao hoe faritra mena ilay kaominina. Ny isan'ny vakitrano tanatin'ny taona 1999-2001 dia 48. Ahitana zandary ao amin'ilay kaominina. 4 no isan'ireo mpamono olona tratra tanatin'ny taona 1999-2001. == Rohy ivelany == * [http://www.ilo.cornell.edu/ilo/census.xls ilo.cornell.edu] - Statistika momba ny kaominina malagasy ary loharanom-pahaizana namoronana an'ity lahatsoratra ity. {{commonscat}} [[Sokajy:Kaominina any Madagasikara]] [[Sokajy:Kaominina any Faritra Sofia]] 3mpcnbppmatgw71ltvo4rgfzplqb5yg Itaporanga d'Ajuda 0 290399 1149222 1140905 2026-08-14T07:43:56Z ~2026-44530-63 40719 /* */ 1149222 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Itaporanga d’Ajuda]] {{Coord|11|00|S|37|19|W}} {{infobox tanàna |anarana=Itaporanga d'Ajuda |velarantany= 757 |isam-ponina= 34.411 |firenena={{BRA}} |faritany= {{Sergipe}} |sary= |saina=Bandeira Itaporanga d'Ajuda.jpg }} [[File:Itaporanga.PNG|thumb|left|Itaporanga]] I '''Itaporanga d'Ajuda''' dia kaominina ao [[Brazila]], ao amin'i {{Sergipe}}. Ny velarantanin'ilay tanàna dia 757 kilometatra toradroa. Ny isam-ponina dia 14.085. qtz4gkhbibmgsi7qcxy0mtsmuj7sqmg Flavius ​​Zeno 0 293447 1149219 1141201 2026-08-14T07:41:58Z ~2026-44530-63 40719 /* */ 1149219 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Zeno (emperora)]] [[File:Zeno Solidus RIC 0910.jpg|thumb|Zeno Solidus]] '''Zeno''', ([[Fiteny grika|grika]]: ήνων, [[Fiteny latina|latina]]: '''Flavius ​​Zeno''') (* 425 -† 9 Aprily, 491), dia nanomboka tamin'ny 29 Janoary, 474 mandra-pahafatiny (atsinanana) Emperora Romana. Amin'ny maha mpitondra tokana azy, dia nanjaka 474 tamin'ny volana novambra izy, nanelingelina ny sesitany 20 volana nanomboka tamin'ny Janoary 475 ka hatramin'ny 476 Jolay. Ny fikomiana ny olona sy ny tolona elatry ny elatra ara-pivavahana dia namorona ny fanjakany, fa tamin'ny fahasarotana lehibe dia nahavita nanery ny Romanina atsinanana izy. Ny rainy dia [[Leo I (emperora)]] [[sokajy:Maty tamin'ny taona 491]] [[Sokajy:Emperora Bizantina]] [[sokajy:Teraka tamin'ny taona 425]] k3eqczeuf3jg8i49p80166kcymzrxzx Hopitaly miaramila Antananarivo 0 295307 1149204 1138289 2026-08-14T06:29:31Z ~2026-43677-38 40632 1149204 wikitext text/x-wiki Ny '''hopitaly Miaramila Antananarivo''' izay nitondra ny anarana hoe "Trano Fitsaboana Isoavinandriana'''"''' sy hoe " Girard et Robic " ho fanomezam-boninahitra an’ireo dokotera frantsay roa, dia notokanan'i mpanjakavavy [[Ranavalona III]] sy ny praiministra [[Rainilaiarivony]] ny 13 Aogositra 1891<ref>[https://www.lexpress.mg/2026/08/sante-lhopital-militaire-porte-le-poids.html SANTÉ - L’hôpital militaire porte le poids de ses 135 ans]</ref>. Ny Trano Fitsaboana Isoavinandriana no hopitaly voalohany teto [[Madagasikara]] taorian'ny nisokafan'ny dispensaire Analakely ouvert izay nisokatra tamin'ny taona 1864.<ref>[https://2424.mg/sante-le-centre-hospitalier-soavinandriana-ex-homi-ex-girard-et-robic-ex-hopital-colonial-ex-trano-fitsabo-isoavinandriana-souffle-ses-130-bougies/ SANTE - Le Centre hospitalier Soavinandriana, ex-Homi, ex-Girard et Robic, ex-Hôpital colonial, ex-Trano Fitsabo Isoavinandriana, souffle ses 130 bougies | 2424.mg - L'actualité à Madagascar en temps réel]</ref> == Tantarany<ref>{{Article |langue=français |auteur1=RASAMINANJA Nambitsoa Herin’ny Aina Orlando |titre=ETUDE DE LA SATISFACTION DES CLIENTS ET DE LA QUALITE DES SERVICES PUBLICS : CAS CENTRE HOSPITALIER DE SOAVINANDRIANA |périodique=2009/2010 |date=25/08/2010 |lire en ligne=1 |pages=3 }}</ref> == Tamin’ny 14 febroary 1889 no naorina teo amin’ny velaran-tany mirefy 3,34 ha ny Trano Fitsaboana Isoavinandriana, nomena ny LMS sy ny FFMA, teo amin’ny havoanan’i [[Soavinandriana]]. Io no hopitaly voalohany teto amin’ny Nosy, taorian’ny nisokafan’ny dispensaire Analakely tamin’ny 1864. Ny 13 aogositra 1891 no notokanan' ny Mpanjakavavy [[Ranavalona III]] sy ny praiministra [[Rainilaiarivony]] tamin’ny fomba ofisialy izany hopitaly izany. Tamin'ny 30 Septambra 1895, rehefa nazon'i jeneraly Jacques Duschene i Antananarivo, dia nanangana ny sainan'ny vokovoko mena ny hopitaly ary nitsabo miaramila malagasy sy miaramila frantsay 80 ny hopitaly. Tamin'ny 15 novambra 1896, nalain'ny jeneraly [[Joseph Simon Gallieni]] ny hopitaly . Novana anarana ho Girar et Robic ho fahatsiaraovana ireo dokotera roa ireo, izay dokotera nahita voalohany ny vaksiny fanefitra ny [[Pesta]]. Noravan'ny fanjakana mpanjanatany tamin'ny taona 1958 ny trano naorina voalohany ; tamin'ny 3 Jolay1963, notokanan'ny filoha [[Tsiranana Philibert]] ny trano vaoavao. Tamin'ny taona 1977, noraisin'ny fanjakana malagasy an-tànana ny hopitaly ka nomena anarana hoe hopitaly miaramila Antananarivo. Nanomboka ny 12 Janvier 1993 no nanovana ny anarany ho Trano fitsaboana Soavinandriana ary ny jeneraly Razanamparany Jeannot Marc no manamboninahitra malagasy voalohany voatendry hitanatana ity hopitaly ity. == Jereo koa == * [[Institut Pasteur eto Madagasikara]] * [[Louis Pasteur]] * [[Hopitaly Université Joseph Ravoahangy Andrianavalona]] {{Portail|médecine|Madagascar}} [[Sokajy:Hopitaly any Madagasikara]] [[Sokajy:Antananarivo]] bmhnad1wo94khja1ocryourvefmxs8r Roberto Duarte 0 298368 1149218 1142744 2026-08-14T07:41:41Z ~2026-44530-63 40719 /* */ 1149218 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #REDIRECT [[Roberto Duarte Jr.]] {{infobox olona |sary= Dep. Roberto Duarte.jpg |anarana=Roberto Duarte |teraka= 25 Aprily 1975 |toerana=[[Porto Alegre]] |maty= |firenena={{Brazila}} |mpiaraka= |asa= * [[mpanao politika]] |taona niasàna= }} '''Roberto Duarte''' (teraka ny 25 Aprily 1975 tao [[Porto Alegre]]) dia [[mpanao politika]] [[brezila|breziliana]], mpikambana ao amin'ny antoko [[Republicanos (Brasil)|Republicano]], voafidy tamin'ny 2022 ho solombavambahoaka federaly ho an'i [[Acre]].<ref>(pt) [https://www.camara.leg.br/deputados/220588/biografia Tantaram-piainana ao amin'ny: www.camara.leg.br]</ref> 717dmak34l6utu2qpikxd28svybdjk1 Wikipedia:Efemerida/14 Aogositra 4 298644 1149186 1133857 2026-08-13T15:05:20Z JianJi 36396 1149186 wikitext text/x-wiki '''Androany [[14 Aogositra|14 aogositra]]''': * '''[[1971]]''' - Fahaleovantenan'i [[Bareina|Bahrein]] manoloana ny [[Fanjakana Mitambatra]] * '''[[2013]]''' - Fanombohan'ny hetsika manohitra ny fanonganam-panjakana an'i [[Mohamed Morsi]] tao [[Ejipta]]. ocfokphrebnn408kfxqeyvi2c203x62 Wikipedia:Efemerida/15 Aogositra 4 298645 1149196 1133858 2026-08-14T04:48:07Z JianJi 36396 1149196 wikitext text/x-wiki '''Androany [[15 Aogositra|15 aogositra]]''': * '''[[1914]]''' - Nosokafana tamin'ny fomba ofisialy ny lakandranon'i [[Panamà|Panama]]. * '''[[1947]]''' - Fahaleovantenan' [[India]] manoloana ny [[Fanjakana Mitambatra]]. * '''[[1969]]''' - Fetiben'i [[Woodstock (CDP), New York|Woodstock]], fetiben-kira Hippie goavana indrindra manerantany * '''[[2021]]''' - Azon'ny [[Talibana|Taliban]], vondrona mitam-piadiana any [[Afganistàna|Afghanistan]], indray i [[Kabul]] renivohitra. qn64tq7anaukqcnouw4v1nean215bsj Kampania 0 300765 1149217 1144243 2026-08-14T07:41:20Z ~2026-44530-63 40719 /* */ 1149217 wikitext text/x-wiki {{Arovy|Tapaka ny redirection}} #FIHODINANA [[Campania]] rnmmyn383gpntaobw51pzl94krvp00i Ombavy 0 301455 1149210 1147734 2026-08-14T06:48:06Z Thelezifor 15140 Fianakaviana 1149210 wikitext text/x-wiki Ny '''ombavy''' dia zavamaniry samihafa ao amin' ny fianakaviana ''[[Annonaceae]]'' sy ''[[Malvaceae]]'': * ''[[Humbertianthus cardiostegius]]'' <small>Hochr.</small> (''Malvaceae'') * ''[[Fenerivia emarginata]]'' <small>(Diels) R.M.K. Saunders</small> (← ''Polyalthia emarginata'' <small>Diels</small>) (''Annonaceae'') * ''[[Fenerivia ghesquiereana]]'' <small>(Cavaco & Keraudren) R.M.K. Saunders</small> (← ''Polyalthia ghesquiereana'' <small>Cavaco & Keraudren</small>.) (''Annonaceae'') * ''[[Isolona madagascariensis]]'' <small>(Baill.) Engl.</small> (''Annonaceae'') * ''[[Polyalthia lamii]]'' <small>Cavaco & Keraudren</small> (''Annonaceae'') == Jereo koa == * ''[[Humbertianthus]]'' * ''[[Fenerivia]]'' * ''[[Isolona]]'' * ''[[Polyalthia]]'' rx5494vqn4u44vckvgytuoa3q2eevmc Takodara afrikana 0 301631 1149185 1148934 2026-08-13T13:07:17Z EmausBot 2486 Rôbô : mamaha olam-pihodinana mankany amin'i [[Upupa epops africana]] 1149185 wikitext text/x-wiki #FIHODINANA [[Upupa epops africana]] h2y0wakix0zi7uhfbfjaxbqrttmpijz Module:Wikidata 828 301663 1149187 2026-08-13T16:52:45Z ~2026-44555-09 40710 Pejy noforonina tamin'ny « --script that retrieves basic data stored in Wikidata, for the datamodel, see https://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua -- luacheck: globals mw local wd = {} -- creation of a subobject to store comparison funtions, used for sorting claims -- to be able to build more complex sorts like topological sorts wd.compare = {} local databases = { } local modules = { } local databasesNames = { -- modules de données statiques pouvant être appelé... » 1149187 Scribunto text/plain --script that retrieves basic data stored in Wikidata, for the datamodel, see https://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua -- luacheck: globals mw local wd = {} -- creation of a subobject to store comparison funtions, used for sorting claims -- to be able to build more complex sorts like topological sorts wd.compare = {} local databases = { } local modules = { } local databasesNames = { -- modules de données statiques pouvant être appelés avec mw.loadData(), ne nécessitant pas require() i18n = 'Module:Wikidata/I18n', globes = 'Module:Wikidata/Globes', langhierarchy = 'Module:Wikidata/Hiérarchie des langues', langcodes = 'Module:Dictionnaire Wikidata/Codes langue', -- big, infrequently used invertedlangcodes = 'Module:Dictionnaire Wikidata/Codes langue/inversé' } local modulesNames = { reference = 'Module:Wikidata/Références', linguistic = 'Module:Linguistique', datemodule = 'Module:Date', formatDate = 'Module:Date complexe', formatNum = 'Module:Conversion', langmodule = 'Module:Langue', cite = 'Module:Biblio', weblink = 'Module:Weblink' } local function loadDatabase( t, key ) if databasesNames[key] then local m = mw.loadData( databasesNames[key] ) t[key] = m return m end end local function loadModule( t, key ) if modulesNames[key] then local m = require( modulesNames[key] ) t[key] = m return m end end setmetatable( databases, { __index = loadDatabase } ) setmetatable( modules, { __index = loadModule } ) -- ainsi le require() sera opéré seulement si nécessaire par modules.(nom du module) local datequalifiers = {'P585', 'P571', 'P580', 'P582', 'P1319', 'P1326'} -- === I18n === local defaultlang = mw.getContentLanguage():getCode() function wd.translate(str, rep1, rep2) str = databases.i18n[str] or str if rep1 and (type (rep1) == 'string') then str = str:gsub('$1', rep1) end if rep2 and (type (rep2) == 'string')then str = str:gsub('$2', rep2) end return str end local function addCat(cat, sortkey) if sortkey then return '[[Category:' .. cat .. '|' .. sortkey .. ']]' end return '[[Category:' .. cat .. ']]' end local function formatError( key , category, debug) if debug then return error(databases.i18n[key] or key) end if category then return addCat(category, key) else return addCat(databases.i18n['cat-unsorted-issue'], key) end end -- function wd.isSpecial(snak) return (snak.snaktype ~= 'value') end function wd.getId(snak) if (snak.snaktype == 'value') then return snak.datavalue.value['id'] end end function wd.getNumericId(snak) if (snak.snaktype == 'value') then return snak.datavalue.value['numeric-id'] end end function wd.getMainId(claim) return wd.getId(claim.mainsnak) end function wd.entityId(entity) if type(entity) == 'string' then return entity elseif type(entity) == 'table' then return entity.id end end function wd.getEntityIdForCurrentPage() return mw.wikibase.getEntityIdForCurrentPage() end -- function that returns true if the "qid" parameter is the qid -- of the item that is linked to the calling page function wd.isPageOfQId(qid) local self_id = mw.wikibase.getEntityIdForCurrentPage() return self_id ~= nil and qid == self_id end function wd.getEntity( val ) if type(val) == 'table' then return val end if val == '-' then return nil end if val == '' then val = nil end return mw.wikibase.getEntity(val) end function wd.splitStr(val) -- transforme en table les chaînes venant du Wikitexte qui utilisent des virgules de séparation if type(val) == 'string' then val = mw.text.split(val, ",") end return val end function wd.isHere(searchset, val, matchfunction) for i, j in pairs(searchset) do if matchfunction then if matchfunction(val,j) then return true end else if val == j then return true end end end return false end local function wikidataLink(entity) local name =':d:' if type(entity) == 'string' then if entity:match("P[0-9]+") then entity = "Property:" .. entity end return name .. entity elseif type(entity) == 'table' then if entity["type"] == "property" then name = ":d:Property:" end return name .. entity.id elseif type(entity) == nil then return formatError('entity-not-found') end end function wd.siteLink(entity, project, lang) -- returns 3 values: a sitelink (with the relevant prefix) a project name and a language lang = lang or defaultlang if (type(project) ~= 'string') then project = 'wiki' end project = project:lower() if project == 'wikipedia' then project = 'wiki' end if type(entity) == 'string' and (project == 'wiki') and ( (not lang or lang == defaultlang) ) then -- évite de charger l'élément entier local link = mw.wikibase.getSitelink(entity) if link then local test_redirect = mw.title.new(link) -- remplacement des redirections (retirer si trop coûteux) if test_redirect.isRedirect and test_redirect.redirectTarget then link = test_redirect.redirectTarget.fullText if link == mw.title.getCurrentTitle().text then return nil end --redirection vers l'article de départ : pas de lien plutôt qu'une mise en gras end end return link, 'wiki', defaultlang end if project == 'wikidata' then return wikidataLink(entity), 'wikidata' end local projects = { -- nom = {préfixe sur Wikidata, préfix pour les liens sur Wikipédia, ajouter préfixe de langue} wiki = {'wiki', nil, true}, -- wikipedia commons = {'commonswiki', 'commons', false}, commonswiki = {'commonswiki', 'commons', false}, wikiquote = {'wikiquote', 'q', true}, wikivoyage = {'wikivoyage', 'voy', true}, wikibooks = {'wikibooks', 'b', true}, wikinews = {'wikinews', 'n', true}, wikiversity = {'wikiversity', 'v', true}, wikisource = {'wikisource', 's', true}, wiktionary = {'wiktionary', 'wikt', true}, specieswiki = {'specieswiki', 'species', false}, metawiki = {'metawiki', 'm', false}, incubator = {'incubator', 'incubator', false}, outreach = {'outreach', 'outreach', false}, mediawiki = {'mediawiki', 'mw', false} } local entityid = entity.id or entity local projectdata = projects[project:lower()] if not projectdata then -- defaultlink might be in the form "dewiki" rather than "project: 'wiki', lang: 'de' " for k, v in pairs(projects) do if project:match( k .. '$' ) and mw.language.isKnownLanguageTag(project:sub(1, #project-#k)) then lang = project:sub(1, #project-#k) project = project:sub(#lang + 1, #project) projectdata = projects[project] break end end if not mw.language.isKnownLanguageTag(lang) then return --formatError('invalid-project-code', projet or 'nil') end end if not projectdata then return -- formatError('invalid-project-code', projet or 'nil') end local linkcode = projectdata[1] local prefix = projectdata[2] local multiversion = projectdata[3] if multiversion then linkcode = lang .. linkcode end local link = mw.wikibase.getSitelink(entityid, linkcode) if not link then return nil end if prefix then link = prefix .. ':' .. link end if multiversion then link = ':' .. lang .. ':' .. link end return link, project, lang end -- add new values to a list, avoiding duplicates function wd.addNewValues(olditems, newitems, maxnum, stopval) if not newitems then return olditems end for _, qid in pairs(newitems) do if stopval and (qid == stopval) then table.insert(olditems, qid) return olditems end if maxnum and (#olditems >= maxnum) then return olditems end if not wd.isHere(olditems, qid) then table.insert(olditems, qid) end end return olditems end --=== FILTER CLAIMS ACCORDING TO VARIOUS CRITERIA : FUNCTION GETCLAIMS et alii === local function notSpecial(claim) local type if claim.mainsnak ~= nil then type = claim.mainsnak.snaktype else -- condition respectée quand showonlyqualifier est un paramètre renseigné -- dans ce cas, claim n'est pas une déclaration entière, mais UNE snak qualifiée du main snak type = claim.snaktype end return type == 'value' end local function hasTargetValue(claim, targets) -- retourne true si la valeur est dans la liste des target, ou si c'est une valeur spéciale filtrée séparément par excludespecial local id = wd.getMainId(claim) local targets = wd.splitStr(targets) return wd.isHere(targets, id) or wd.isSpecial(claim.mainsnak) end local function excludeValues(claim, values) -- true si la valeur n'est pas dans la liste, ou si c'est une valeur spéciale (filtrée à part par excludespecial) return wd.isSpecial(claim.mainsnak) or not ( hasTargetValue(claim, values) ) end local function hasTargetClass(claim, targets, maxdepth) -- retourne true si la valeur est une instance d'une classe dans la liste des target, ou si c'est une valeur spéciale filtrée séparément par excludespecial local id = wd.getMainId(claim) local targets = wd.splitStr(targets) local maxdepth = maxdepth or 10 local matchfunction = function(value, target) return wd.isInstance(target, value, maxdepth) end return wd.isHere(targets, id, matchfunction) or wd.isSpecial(claim.mainsnak) end local function excludeClasses(claim, classes, maxdepth) -- true si la valeur n'est pas une instance d'une classe dans la liste, ou si c'est une valeur spéciale (filtrée à part par excludespecial) return wd.isSpecial(claim.mainsnak) or not ( hasTargetClass(claim, classes, maxdepth) ) end local function hasTargetSuperclass(claim, targets, maxdepth) -- retourne true si la valeur est une sous-classe d'une classe dans la liste des target, ou si c'est une valeur spéciale filtrée séparément par excludespecial local id = wd.getMainId(claim) local targets = wd.splitStr(targets) local maxdepth = maxdepth or 10 local matchfunction = function(value, target) return wd.isSubclass(target, value, maxdepth) end return wd.isHere(targets, id, matchfunction) or wd.isSpecial(claim.mainsnak) end local function excludeSuperclasses(claim, classes, maxdepth) -- true si la valeur n'est pas une sous-classe d'une classe dans la liste, ou si c'est une valeur spéciale (filtrée à part par excludespecial) return wd.isSpecial(claim.mainsnak) or not ( hasTargetSuperclass(claim, classes, maxdepth) ) end local function bestRanked(claims) if not claims then return nil end local preferred, normal = {}, {} for i, j in pairs(claims) do if j.rank == 'preferred' then table.insert(preferred, j) elseif j.rank == 'normal' then table.insert(normal, j) end end if #preferred > 0 then return preferred else return normal end end local function withRank(claims, target) if target == 'best' then return bestRanked(claims) end local newclaims = {} for pos, claim in pairs(claims) do if target == 'valid' then if claim.rank ~= 'deprecated' then table.insert(newclaims, claim) end elseif claim.rank == target then table.insert(newclaims, claim) end end return newclaims end function wd.hasQualifier(claim, acceptedqualifs, acceptedvals, excludequalifiervalues) local claimqualifs = claim.qualifiers if (not claimqualifs) then return false end acceptedqualifs = wd.splitStr(acceptedqualifs) acceptedvals = wd.splitStr( acceptedvals) local function ok(qualif) -- vérification pour un qualificatif individuel if not claimqualifs[qualif] then return false end if not (acceptedvals) then -- si aucune valeur spécifique n'est demandée, OK return true end for i, wanted in pairs(acceptedvals) do for j, actual in pairs(claimqualifs[qualif]) do --On regarde si la valeur de l'élément correspond à un Qid cherché, puis à une chaîne de caractères cherchée. --Cela suppose qu'un élément n'a pas comme valeur le Qid recherché exactement, mais c'est improbable. if wd.getId(actual) == wanted or wd.getDataValue(actual) == wanted then return true end end end end for i, qualif in pairs(acceptedqualifs) do if ok(qualif) then return true end end return false end local function hasSource(claim, targetsource, sourceproperty) sourceproperty = sourceproperty or 'P248' if targetsource == "-" then return true end if (not claim.references) then return false end local candidates = claim.references[1].snaks[sourceproperty] -- les snaks utilisant la propriété demandée if (not candidates) then return false end if (targetsource == "any") then -- si n'importe quelle valeur est acceptée tant qu'elle utilise en ref la propriété demandée return true end targetsource = wd.splitStr(targetsource) for _, source in pairs(candidates) do local s = wd.getId(source) for i, target in pairs(targetsource) do if s == target then return true end end end return false end local function excludeQualifier(claim, qualifier, qualifiervalues) return not wd.hasQualifier(claim, qualifier, qualifiervalues) end local function hasLink(claim, site, lang) if (claim.mainsnak.snaktype ~= 'value') then -- ne pas supprimer les valeurs spéciales, il y a une fonction dédiée pour ça return true end local id = wd.getMainId(claim) local link = wd.siteLink(id, site, lang) if link then return true end end local function isInLanguage(claim, lang) if type(lang) == 'table' then -- si c'est une table de language séparées par des virgules, on les accepte toutes for i, l in pairs(lang) do local v = isInLanguage(claim, l) if v then return true end end end if type(lang) ~= ('string') then return --? end if (lang == '-') then return true end if (lang == 'locallang') then lang = mw.getContentLanguage():getCode() end -- pour les monolingual text local snak = claim.mainsnak or claim if snak.snaktype == 'value' and snak.datavalue.type == 'monolingualtext' then if snak.datavalue.value.language == lang then return true end return false end -- pour les autres types de données : recherche dans les qualificatifs if (lang == 'fr') then lang = 'Q150' elseif (lang == 'en') then lang = 'Q1860' else lang = databases.invertedlangcodes[lang] end if claim.qualifiers and claim.qualifiers.P407 then if wd.hasQualifier(claim, {'P407'}, {lang}) then return true else return false end end return true -- si on ne ne sait pas la langue, on condière que c'est bon end local function firstVals(claims, numval) -- retourn les numval premières valeurs de la table claims local numval = tonumber(numval) or 0 -- raise a error if numval is not a positive integer ? if not claims then return nil end while (#claims > numval) do table.remove(claims) end return claims end local function lastVals(claims, numval2) -- retourn les valeurs de la table claims à partir de numval2 local numval2 = tonumber(numval2) or 0 -- raise a error if numval is not a positive integer ? if not claims then return nil end for i=1,numval2 do table.remove(claims, 1) end return claims end -- retourne les valeurs de la table claims à partir de removedupesdate, -- sans les dates en doublons avec conversion entre les calendrier julien et grégorien, -- ou uniquement en catégorisant si le paramètre removedupesdate est égale à 'cat' local function removeDupesDate(claims, removedupesdate) if not claims or #claims < 2 then return claims, '' end local cat = '' local newClaims = {} local newIsos = {} local function findIndex(searchset, val) -- similaire à wd.isHere mais retourne l'index de la valeur trouvée for i, j in pairs(searchset) do if val == j then return i end end return -1 end for _, claim in ipairs( claims ) do local snak = claim.mainsnak or claim if (snak.snaktype == 'value') and (snak.datatype == 'time') and snak.datavalue.value.precision >= 11 then -- s'il s'agit d'un time et que la précision est au moins l'année local iso = snak.datavalue.value.time _, _, iso = string.find(iso, "(+%d+-%d+-%d+T)") local deleteIfDuplicate = false if snak.datavalue.value.calendarmodel == 'http://www.wikidata.org/entity/Q1985727' then -- si la date est grégorienne if modules.formatDate.before('+1582', iso) then -- si avant 1582 on calcule la date julienne _, _, y, m, d = string.find(iso, "+(%d+)-(%d+)-(%d+)T") y, m , d = modules.datemodule.gregorianToJulian(y, m , d) if m < 10 then m = '0' .. m end if d < 10 then d = '0' .. d end iso = '+' .. y .. '-' .. m .. '-' .. d .. 'T' deleteIfDuplicate = true end local index = findIndex(newIsos, iso) if index >= 0 then -- si la date est déjà présente cat = cat .. '[[Catégorie:Article avec des dates identiques venant de wikidata dans le code de l\'infobox]]' if removedupesdate == "cat" then -- ne faire que catégoriser table.insert(newIsos, iso) table.insert(newClaims, claim) elseif not deleteIfDuplicate then -- supprimer l'autre date si la date courante n'a pas été convertie newClaims[index] = claim end -- sinon supprimer la date courante else -- pas de doublon table.insert(newIsos, iso) table.insert(newClaims, claim) end elseif snak.datavalue.value.calendarmodel == 'http://www.wikidata.org/entity/Q1985786' then -- si date julienne if not modules.formatDate.before('+1582', iso) then -- si après 1582 on calcule la date grégorienne _, _, y, m, d = string.find(iso, "+(%d+)-(%d+)-(%d+)T") y, m , d = modules.datemodule.julianToGregorian(y, m , d) if m < 10 then m = '0' .. m end if d < 10 then d = '0' .. d end iso = '+' .. y .. '-' .. m .. '-' .. d .. 'T' deleteIfDuplicate = true end local index = findIndex(newIsos, iso) if index >= 0 then -- si date déjà présente cat = cat .. '[[Catégorie:Article avec des dates identiques venant de wikidata dans le code de l\'infobox]]' if removedupesdate == "cat" then -- ne faire que catégoriser table.insert(newIsos, iso) table.insert(newClaims, claim) elseif not deleteIfDuplicate then -- supprimer l'autre date si la date courante n'a pas été convertie newClaims[index] = claim end -- sinon supprimer la date courante else -- pas de doublon table.insert(newIsos, iso) table.insert(newClaims, claim) end else -- autre calendrier table.insert(newIsos, iso) table.insert(newClaims, claim) end else -- précision insuffisante table.insert(newIsos, iso) table.insert(newClaims, claim) end end return newClaims, cat end local function timeFromQualifs(claim, qualifs) local claimqualifs = claim.qualifiers if not claimqualifs then return nil end for i, qualif in ipairs(qualifs or datequalifiers) do local vals = claimqualifs[qualif] if vals and (vals[1].snaktype == 'value') then return vals[1].datavalue.value.time, vals[1].datavalue.value.precision end end end local function atDate(claim, mydate) if mydate == "today" then mydate = os.date("!%Y-%m-%dT%TZ") end -- determines required precision depending on the atdate format local d = mw.text.split(mydate, "-") local myprecision if d[3] then myprecision = 11 -- day elseif d[2] then myprecision = 10 -- month else myprecision = 9 -- year end -- with point in time local d, storedprecision = timeFromQualifs(claim, {'P585'}) if d then return modules.formatDate.equal(mydate, d, math.min(myprecision, storedprecision)) end -- with start or end date -- TODO: precision local mindate = timeFromQualifs(claim, {'P580'}) local maxdate = timeFromQualifs(claim, {'P582'}) if modules.formatDate.before(mydate, mindate) and modules.formatDate.before(maxdate, mydate) then return true end return false end local function check(claim, condition) if type(condition) == 'function' then -- cas standard return condition(claim) end return formatError('invalid type', 'function', type(condition)) end local function minPrecision(claim, minprecision) local snak if claim.qualifiers then -- si une date est donnée en qualificatif, c'est elle qu'on utilise de préférence au mainsnak for i, j in ipairs(datequalifiers) do if claim.qualifiers[j] then snak = claim.qualifiers[j][1] break end end end if not snak then snak = claim.mainsnak or claim end if (snak.snaktype == 'value') and (snak.datatype == 'time') and (snak.datavalue.value.precision < minprecision) then return false end return true end function wd.sortClaims(claims, sorttype) if not claims then return nil end if wd.isHere({'chronological', 'order', 'inverted', 'age', 'ageinverted'}, sorttype) then return wd.chronoSort(claims, sorttype) elseif sorttype == 'ascending' then return wd.quantitySort(claims) elseif sorttype == 'descending' then return wd.quantitySort(claims, true) elseif sorttype == 'alphabetical' then return wd.alphabetSort(claims) elseif sorttype == "language" then return wd.sortByLanguage(claims) elseif type(sorttype) == 'function' then table.sort(claims, sorttype) return claims elseif type(sorttype) == 'string' and sorttype:sub(1, 1) == 'P' then return wd.numericPropertySort(claims, sorttype) end return claims end function wd.filterClaims(claims, args) --retire de la tables de claims celles qui sont éliminés par un des filters de la table des filters args.excludevalues = args.excludevalues or args.excludevalue --support du singulier pour des arguments normalement au pluriel args.excludeclasses = args.excludeclasses or args.excludeclass args.excludesuperclasses = args.excludesuperclasses or args.excludesuperclass local function filter(condition, filterfunction, funargs) if not args[condition] then return end for i = #claims, 1, -1 do if not( filterfunction(claims[i], args[funargs[1]], args[funargs[2]], args[funargs[3]]) ) then table.remove(claims, i) end end end filter('isinlang', isInLanguage, {'isinlang'} ) filter('excludespecial', notSpecial, {} ) filter('condition', check, {'condition'} ) if claims[1] and claims[1].mainsnak then filter('targetvalue', hasTargetValue, {'targetvalue','maxdepth'} ) filter('targetclass', hasTargetClass, {'targetclass','maxdepth'} ) filter('targetsuperclass', hasTargetSuperclass, {'targetsuperclass'} ) filter('atdate', atDate, {'atdate'} ) filter('qualifier', wd.hasQualifier, {'qualifier', 'qualifiervalue'} ) filter('excludequalifier', excludeQualifier, {'excludequalifier', 'excludequalifiervalue'} ) filter('withsource', hasSource, {'withsource', 'sourceproperty'} ) filter('excludevalues', excludeValues, {'excludevalues'}) filter('excludeclasses', excludeClasses, {'excludeclasses','maxdepth'}) filter('excludesuperclasses', excludeSuperclasses, {'excludesuperclasses','maxdepth'}) filter('withlink', hasLink, {'withlink', 'linklang'} ) filter('minprecision', minPrecision, {'minprecision'} ) claims = withRank(claims, args.rank or 'best') end if #claims == 0 then return nil end if args.sorttype then claims = wd.sortClaims(claims, args.sorttype) end if args.numval2 then claims = lastVals(claims, args.numval2) end if args.numval then claims = firstVals(claims, args.numval) end return claims end function wd.loadEntity(entity, cache) if type(entity) ~= 'table' then if cache then if not cache[entity] then cache[entity] = mw.wikibase.getEntity(entity) mw.log("cached") end return cache[entity] else if entity == '' or (entity == '-') then entity = nil end return mw.wikibase.getEntity(entity) end else return entity end end function wd.getClaims( args ) -- returns a table of the claims matching some conditions given in args if args.claims then -- if claims have already been set, return them return args.claims end local properties = args.property if type(properties) == 'string' then properties = wd.splitStr(string.upper(args.property)) end if not properties then return formatError( 'property-param-not-provided' ) end --Get entity local entity = args.entity if type(entity) == 'string' then if entity == '' then entity = nil end elseif type(entity) == 'table' then entity = entity.id end if (not entity) then entity = mw.wikibase.getEntityIdForCurrentPage() end if (not entity) or (entity == '-') or (entity == wd.translate('somevalue')) or (entity == modules.linguistic.ucfirst(wd.translate('somevalue'))) then return nil end if args.labelformat and args.labelformat == 'gendered' then args.labelformat = wd.getgender(entity) end local claims = {} if #properties == 1 then claims = mw.wikibase.getAllStatements(entity, properties[1]) -- do not use mw.wikibase.getBestStatements at this stage, as it may remove the best ranked values that match other criteria in the query else for i, prop in ipairs(properties) do local newclaims = mw.wikibase.getAllStatements(entity, prop) if newclaims and #newclaims > 0 then for j, claim in ipairs(newclaims) do table.insert(claims, claim) end end end end if (not claims) or (#claims == 0) then return nil end return wd.filterClaims(claims, args) end --=== ENTITY FORMATTING === function wd.getLabel(entity, lang1, lang2) if (not entity) then return nil -- ou option de gestion des erreurs ? end entity = entity.id or ( type(entity) == "string" and entity) if not(type(entity) == 'string') then return nil end lang1 = lang1 or defaultlang local str, lang --str : texte rendu, lang : langue de celui-ci if lang1 == defaultlang then -- le plus économique str, lang = mw.wikibase.getLabelWithLang(entity) -- le libellé peut être en français ou en anglais else str = mw.wikibase.getLabelByLang(entity, lang1) if str then lang = lang1 end end if str and (lang == lang1 or lang == "mul") then --pas de catégorie "à traduire" si on a obtenu un texte dans la langue désirée (normalement fr) ou multilingue return str end if lang2 then -- langue secondaire, avec catégorie "à traduire" str2 = mw.wikibase.getLabelByLang(entity, lang2) if str2 then lang = lang2 str = str2 end end if not str then --si ni lang1, ni lang2 ni l'anglais ne sont présents, parcours de la hiérarchie des langues for _, trylang in ipairs(databases.langhierarchy.codes) do str = mw.wikibase.getLabelByLang(entity, trylang) if str then lang = trylang break end end end if str then local translationCat = databases.i18n['to translate'] translationCat = translationCat .. (databases.langhierarchy.cattext[lang] or '') translationCat = addCat(translationCat) return str, translationCat end end function wd.formatEntity( entity, params ) if (not entity) then return nil --formatError('entity-not-found') end local id = entity if type(id) == 'table' then id = id.id end params = params or {} local lang = params.lang or defaultlang local speciallabels = params.speciallabels local displayformat = params.displayformat local labelformat = params.labelformat local labelformat2 = params.labelformat2 local defaultlabel = params.defaultlabel or id local linktype = params.link local defaultlink = params.defaultlink local defaultlinkquery = params.defaultlinkquery if speciallabels and speciallabels[id] then --speciallabels override the standard label + link combination return speciallabels[id] end if params.displayformat == 'raw' then return id end if wd.isGender[params.labelformat] then labelformat = function(objectid) return wd.genderedlabel(objectid, params.labelformat) end end local label, translationCat if type(labelformat) == 'function' then -- sert à des cas particuliers label, translationCat = labelformat(entity) end if not label then label, translationCat = wd.getLabel(entity, lang, params.wikidatalang) end if labelformat == 'bold' or labelformat2 == 'bold' then --mises en forme typographiques simples accessibles depius le wikicode labelformat2 = function(str) if label then return "'''" .. str .. "'''" end end end if labelformat == 'italic' or labelformat2 == 'italic' then labelformat2 = function(str) if label then return "''" .. str .. "''" end end end if type(labelformat2) == 'function' and label then label = labelformat2(label) end translationCat = translationCat or "" -- sera toujours ajoutée au résultat mais sera vide si la catégorie de maintenance n'est pas nécessaire if not label then if (defaultlabel == '-') then return nil end local link = wd.siteLink(id, 'wikidata') return '[[' .. link .. '|' .. id .. ']]' .. translationCat -- si pas de libellé, on met un lien vers Wikidata pour qu'on comprenne à quoi ça fait référence end if params.ucfirst_entity then label = modules.linguistic.ucfirst(label) end -- détermination du fait qu'on soit ou non en train de rendre l'élément sur la page de son article local rendering_entity_on_its_page = wd.isPageOfQId(id) if (linktype == '-') or rendering_entity_on_its_page then return label .. translationCat end local link = wd.siteLink(entity, linktype, lang) -- defaultlinkquery will try to link to another page on this Wiki if (not link) and defaultlinkquery then if type(defaultlinkquery) == 'string' then defaultlinkquery = {property = defaultlinkquery} end defaultlinkquery.excludespecial = true defaultlinkquery.entity = entity local claims = wd.getClaims(defaultlinkquery) if claims then for i, j in pairs(claims) do local id = wd.getMainId(j) link = wd.siteLink(id, linktype, lang) if link then break end end end end if link then if link:match('^Category:') or link:match('^Catégorie:') then -- attention, le « é » est multibyte -- lier vers une catégorie au lieu de catégoriser link = ':' .. link end return '[[' .. link .. '|' .. label .. ']]' .. translationCat end -- if not link, you can use defaultlink: a sidelink to another Wikimedia project if (not defaultlink) then defaultlink = {'enwiki'} end if defaultlink and (defaultlink ~= '-') then local linktype local sidelink, site, langcode if type(defaultlink) == 'string' then defaultlink = {defaultlink} end for i, j in ipairs(defaultlink) do sidelink, site, langcode = wd.siteLink(entity, j, lang) if sidelink then break end end if not sidelink then sidelink, site = wd.siteLink(entity, 'wikidata') end local icon, class, title = site, nil, nil -- le texte affiché du lien if site == 'wiki' then icon, class, title = langcode, "indicateur-langue", wd.translate('see-another-language', mw.language.fetchLanguageName(langcode, defaultlang)) elseif site == 'wikidata' then icon, class, title = 'd', "indicateur-langue", wd.translate('see-wikidata') else title = wd.translate('see-another-project', site) end local val = '[[' .. sidelink .. '|' .. '<span class = "' .. (class or '').. '" title = "' .. (title or '') .. '">' .. icon .. '</span>]]' return label .. ' <small>(' .. val .. ')</small>' .. translationCat end return label .. translationCat end function wd.addTrackingCat(prop, cat) -- doit parfois être appelé par d'autres modules if type(prop) == 'table' then local catTable = {} for i, v in ipairs(prop) do catTable[i] = wd.addTrackingCat(v,cat) end return table.concat(catTable) end if not prop and not cat then return formatError("property-param-not-provided") end if not cat then cat = wd.translate('trackingcat', prop or 'P??') end return addCat(cat) end local function unknownValue(snak, label) local str = label if type(str) == "function" then str = str(snak) end if (not str) then if snak.datatype == 'time' then str = wd.translate('sometime') else str = wd.translate('somevalue') end end if type(str) ~= "string" then return formatError(snak.datatype) end return str end local function noValue(displayformat) if not displayformat then return wd.translate('novalue') end if type(displayformat) == 'string' then return displayformat end return formatError() end local function getLangCode(entityid) return databases.langcodes[tonumber(entityid:sub(2))] end local function showLang(statement) -- retourne le code langue entre parenthèses avant la valeur (par exemple pour les biblios et liens externes) local mainsnak = statement.mainsnak if mainsnak.snaktype ~= 'value' then return nil end local langlist = {} if mainsnak.datavalue.type == 'monolingualtext' then langlist = {mainsnak.datavalue.value.language} elseif (not statement.qualifiers) or (not statement.qualifiers.P407) then return else for i, j in pairs( statement.qualifiers.P407 ) do if j.snaktype == 'value' then local langentity = wd.getId(j) local langcode = getLangCode(langentity) table.insert(langlist, langcode) end end end if (#langlist > 1) or (#langlist == 1 and langlist[1] ~= defaultlang) then -- si c'est en français, pas besoin de le dire langlist.maxLang = 3 return modules.langmodule.indicationMultilingue(langlist) end end -- === DATE HANDLING === local function fuzzydate(str, precision) -- ajoute le qualificatif "vers" à une date if not str then return nil end if (precision >= 11) or (precision == 7) or (precision == 6) then --dates avec jour, siècles, millénaires return "vers le " .. str end if (precision == 8) then --décennies ("années ...") return "vers les " .. str end return "vers " .. str end function wd.addStandardQualifs(str, statement, onlygeneral) -- qualificateurs de date ou de lieu approximatif ou d'info globalement incertaine ; onlygenereal=true pour rerstreindre à ces derniers if (not statement) or (not statement.qualifiers) then return str end if not str then return error()-- what's that ? end if statement.qualifiers.P1480 then for i, j in pairs(statement.qualifiers.P1480) do local v = wd.getId(j) if (v == "Q21818619") and not onlygeneral then --"à proximité de" str = wd.translate('approximate-place', str) elseif (v == "Q18122778") or (v == "Q18912752") or (v == "Q56644435") or (v == "Q30230067") then --"présumé", "controversé", "probablement", "possible" str = wd.translate('uncertain-information', str) elseif (v == "Q5727902") and not onlygeneral and statement.mainsnak.datatype == 'time' then --date approximative local datevalue = statement.mainsnak.datavalue if datevalue then str = fuzzydate(str, datevalue.value.precision) end end end end return str end function wd.getDateFromQualif(statement, qualif) if (not statement) or (not statement.qualifiers) or not (statement.qualifiers[qualif]) then return nil end local v = statement.qualifiers[qualif][1] if v.snaktype ~= 'value' then -- que faire dans ce cas ? return nil end return modules.formatDate.dateObject(v.datavalue.value) end function wd.getDate(statement) local period = wd.getDateFromQualif(statement, 'P585') -- retourne un dateobject if period then return period end local begin, ending = wd.getDateFromQualif(statement, 'P580'), wd.getDateFromQualif(statement, 'P582') if begin or ending then return modules.formatDate.rangeObject(begin, ending) -- retourne un rangeobject fait de deux dateobject end return nil end function wd.getFormattedDate(statement, params) if not statement then return nil end local str --cherche la date avec les qualifs P580/P582 local datetable = wd.getDate(statement) if datetable then str = modules.formatDate.objectToText(datetable, params) end -- puis limite intérieur / supérieur if not str then local start, ending = wd.getDateFromQualif(statement, 'P1319'), wd.getDateFromQualif(statement, 'P1326') str = modules.formatDate.between(start, ending, params) end local fromqualif = false if str then fromqualif = true end --si la date est tirée des qualificateurs, on n'y ajoute pas l'éventuel "vers ..." -- sinon, le mainsnak, pour les données de type time if (not str) and (statement.mainsnak.datatype == 'time') then local mainsnak = statement.mainsnak if (mainsnak.snaktype == 'value') or (mainsnak.snaktype == 'somevalue') then str = wd.formatSnak(mainsnak, params) end end if str and params and (params.addstandardqualifs ~= '-') then str = wd.addStandardQualifs(str, statement, fromqualif) end return str end wd.compare.by_quantity = function(c1, c2) local v1 = wd.getDataValue(c1.mainsnak) local v2 = wd.getDataValue(c2.mainsnak) if not (v1 and v2) then return true end return v1 < v2 end --[[ tri chronologique générique : retourne une fonction de tri de liste de déclaration en fonction d’une fonction qui calcule la clé de tri et d’une fonction qui compare les clés de tri paramètres nommés: (appel type wikidata.compare.chrono_key_sort{sortKey="nom clé"}) sortKey (optionnel) : chaine, le nom de la clé utilisée pour un tri (pour éviter de rentrer en collision avec "dateSortKey" utilisé par chronoSort au besoin) snak_key_get_function : fonction qui calcule la valeur de la clé à partir d’un snak ou d’une déclaration, (obligatoire) le résultat n’est calculé qu’une fois et est stocké en cache dans claim[sortKey] key_compare_function : fonction de comparaison des clés calculées par snak_key_get_function (optionnel) --]] function wd.chrono_key_sort(arg) local snak_key_get_function = arg.snak_key_get_function local sortKey = arg.sortKey or "dateSortKey" local key_compare_function = arg.key_compare_function or function(c1, c2) return c1 < c2 end return function(claims) for _, claim in ipairs( claims ) do if not claim[sortKey] then local key = snak_key_get_function(claim) if key then claim[sortKey] = wd.compare.get_claim_date(key) else claim[sortKey] = 0 end end end table.sort( claims, function(c1, c2) return key_compare_function(c1[sortKey], c2[sortKey]) end ) return claims end end function wd.quantitySort(claims, inverted) local function sort(c1, c2) local v1 = wd.getDataValue(c1.mainsnak) local v2 = wd.getDataValue(c2.mainsnak) if not (v1 and v2) then return true end if inverted then return v2 < v1 end return v1 < v2 end table.sort(claims, sort ) return claims end function wd.alphabetSort(claims) local function sort(c1, c2) local v1 = wd.getDataValue(c1.mainsnak, {link = '-', displayformat = {monolingualtext = 'raw'}}) local v2 = wd.getDataValue(c2.mainsnak, {link = '-', displayformat = {monolingualtext = 'raw'}}) if not (v1 and v2) then return true end return modules.linguistic.makeSortkey(v1) < modules.linguistic.makeSortkey(v2) end table.sort(claims, sort ) return claims end function wd.compare.get_claim_date(claim, datetype) -- rend une date au format numérique pour faire des comparaisons local snak = claim.mainsnak or claim if datetype and datetype == 'personbirthdate' then -- fonctionne avec un claim dont la valeur est une personne dont on va rendre la date de naissance if (snak.snaktype == 'value') and (snak.datatype == 'wikibase-item') then local personid = wd.getId(snak) local birthclaims = wd.getClaims({ entity = personid, property = 'P569', numval = 1}) if birthclaims then return wd.compare.get_claim_date(birthclaims[1] or birthclaims) else return math.huge end else return math.huge end -- en cas de donnée manquante, valeur infinie qui entraîne le classement en fin de liste end local iso, datequalif, isonumber if (snak.snaktype == 'value') and (snak.datatype == 'time') then iso = snak.datavalue.value.time else for i, dqualif in ipairs(datequalifiers) do iso = timeFromQualifs(claim, {dqualif}) if iso then datequalif = dqualif break end end if not iso then return math.huge end end -- transformation en nombre (indication de la base car gsub retourne deux valeurs) isonumber = tonumber( iso:gsub( '(%d)%D', '%1' ), 10 ) -- ajustement de la date tenant compte du qualificatif dont elle est issue : un fait se terminant à une date est antérieur à un autre commençant à cette date if datequalif == 'P582' then --date de fin isonumber = isonumber - 2 elseif datequalif == 'P1326' then -- date au plus tard isonumber = isonumber - 1 elseif datequalif == 'P1319' then -- date au plus tôt isonumber = isonumber + 1 elseif datequalif == 'P571' or datequalif == 'P580' then -- date de début et date de création isonumber = isonumber + 2 end return isonumber end function wd.compare.chronoCompare(c1, c2) return wd.compare.get_claim_date(c1) < wd.compare.get_claim_date(c2) end -- fonction pour renverser l’ordre d’une autre fonction function wd.compare.rev(comp_criteria) return function(c1, c2) -- attention les tris en lua attendent des fonctions de comparaison strictement inférieur, on doit -- vérifier la non égalité quand on inverse l’ordre d’un critère, d’ou "and comp_criteria(c2,c1)" return not(comp_criteria(c1,c2)) and comp_criteria(c2,c1) end end -- Fonction qui trie des Claims de type time selon l'ordre chronologique -- Une clé de tri nomée « dateSortKey » est ajouté à chaque claim. -- Si des clés de tri de ce nom existent déjà, elles sont utilisées sans modification. function wd.chronoSort( claims, sorttype ) for _, claim in ipairs( claims ) do if not claim.dateSortKey then if sorttype and (sorttype == 'age' or sorttype == 'ageinverted') then claim.dateSortKey = wd.compare.get_claim_date(claim, 'personbirthdate') else claim.dateSortKey = wd.compare.get_claim_date(claim) end if sorttype and (sorttype == 'inverted' or sorttype == 'ageinverted') and claim.dateSortKey == math.huge then claim.dateSortKey = -math.huge -- quand la donnée est manquante on lui assigne la valeur qui entraîne le classement en fin de liste end end end table.sort( claims, function ( c1, c2 ) if sorttype and (sorttype == 'inverted' or sorttype == 'ageinverted') then return c2.dateSortKey < c1.dateSortKey end return c1.dateSortKey < c2.dateSortKey end ) return claims end -- Function to prioritize certain languages in a multilingual label context -- prioritize french, mul, roman languages, english if not all values needed function wd.sortByLanguage(claims) -- Arbitrary order for now, ask to make it a parameter if needed local priority = { fr=1, mul=2, ["en-gb"]=3, en=4, es=5, it=6, de=7 } -- maybe something to generalize a bit : -- local wikilang = mw.getContentLanguage() -- local priority = wikilang:getFallbackLanguages() -- priority.insert(priority, 1, wikilang.code) local function get_priority(lang) local attempt = priority[lang] if attempt ~= nil then return attempt else return math.huge end end local function get_snak_value(mainsnak) if mainsnak.datavalue and mainsnak.datavalue.value then return mainsnak.datavalue.value end end -- get the main val as an object local function get_main_value(claim) if claim.mainsnak then return get_snak_value(claim.mainsnak) end end local function sortfunction(v1, v2) -- get a value if they are statements or qualifiers as well local str1 = get_main_value(v1) or get_snak_value(v1) local str2 = get_main_value(v2) or get_snak_value(v2) if str1 ~= nil and str2 ~= nil then local prio1 = get_priority(str1.language) local prio2 = get_priority(str2.language) return prio1 < prio2 elseif str1 then return true else return false end end table.sort(claims, sortfunction) return claims end local function get_numeric_claim_value(claim, propertySort) local val local claimqualifs = claim.qualifiers if claimqualifs then local vals = claimqualifs[propertySort] if vals and vals[1].snaktype == 'value' then val = vals[1].datavalue.value end end return tonumber(val or 0) end function wd.compare.numeric(propertySort) return function(c1, c2) return get_numeric_claim_value(c1, propertySort) < get_numeric_claim_value(c2, propertySort) end end -- Fonction qui trie des Claims de type value selon l'ordre de la propriété fournit -- Une clé de tri nomée « dateSortKey » est ajouté à chaque claim. -- Si des clés de tri de ce nom existent déjà, elles sont utilisées sans modification. function wd.numericPropertySort( claims, propertySort ) for _, claim in ipairs( claims ) do if not claim.dateSortKey then local val = get_numeric_claim_value(claim, propertySort) claim.dateSortKey = tonumber(val or 0) end end table.sort( claims, function ( c1, c2 ) return c1.dateSortKey < c2.dateSortKey end ) return claims end --[[ test possible en console pour la fonction précédente : = p.formatStatements{entity = "Q375946", property = 'P50', sorttype = 'P1545', linkback = "true"} --]] -- =================== function wd.getReferences(statement) local refdata = statement.references if not refdata then return nil end local refs = {} local hashes = {} for i, ref in pairs(refdata) do local s local function hasValue(prop) -- checks that the prop is here with valid value if ref.snaks[prop] and ref.snaks[prop][1].snaktype == 'value' then return true end return false end if ref.snaks.P248 then -- cas lorsque P248 (affirmé dans) est utilisé for j, source in pairs(ref.snaks.P248) do if source.snaktype == 'value' then local page, accessdate, quotation if hasValue('P304') then -- page page = wd.formatSnak(ref.snaks.P304[1]) end if hasValue('P813') then -- date de consultation accessdate = wd.formatSnak(ref.snaks.P813[1]) end if hasValue('P1683') then -- citation quotation = wd.formatSnak(ref.snaks.P1683[1]) end local sourceId = wd.getId(source) s = modules.reference.citeitem(sourceId, {['page'] = page, ['accessdate'] = accessdate, ['citation'] = quotation}) table.insert(refs, s) table.insert(hashes, ref.hash .. sourceId) end end elseif hasValue('P8091') or hasValue('P854') then -- cas lorsque P8091 (Archival Resource Key) ou P854 (URL de la référence)est utilisé local arkKey, url, title, author, publisher, accessdate, publishdate, publishlang, quotation, description if hasValue('P8091') then arkKey = wd.formatSnak(ref.snaks.P8091[1], {text = "-"}) url = 'https://n2t.net/' .. arkKey if hasValue('P1476') then title = wd.formatSnak(ref.snaks.P1476[1]) else title = arkKey end elseif hasValue('P854') then url = wd.formatSnak(ref.snaks.P854[1], {text = "-"}) if hasValue('P1476') then title = wd.formatSnak(ref.snaks.P1476[1]) else title = mw.ustring.gsub(url, '^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])', 'http%1://%3') end end --todo : handle multiple values for author, etc. if hasValue('P1810') then -- sous le nom description = 'sous le nom ' .. wd.formatSnak(ref.snaks.P1810[1]) end if hasValue('P813') then -- date de consultation accessdate = wd.formatSnak(ref.snaks.P813[1]) end if hasValue('P50') then -- author (item type) author = wd.formatSnak(ref.snaks.P50[1]) elseif hasValue('P2093') then -- author (string type) author = wd.formatSnak(ref.snaks.P2093[1]) end if hasValue('P123') then -- éditeur publisher = wd.formatSnak(ref.snaks.P123[1]) end if hasValue('P1683') then -- citation quotation = wd.formatSnak(ref.snaks.P1683[1]) end if hasValue('P577') then -- date de publication publishdate = wd.formatSnak(ref.snaks.P577[1]) end if hasValue('P407') then -- langue de l'œuvre local id = wd.getId(ref.snaks.P407[1]) publishlang = getLangCode(id) end s = modules.cite.lienWeb{titre = title, url = url, auteur = author, editeur = publisher, langue = publishlang, ['en ligne le'] = publishdate, ['consulté le'] = accessdate, ['citation'] = quotation, ['description'] = description} table.insert(hashes, ref.hash) table.insert(refs, s) elseif ref.snaks.P854 and ref.snaks.P854[1].snaktype == 'value' then s = wd.formatSnak(ref.snaks.P854[1], {text = "-"}) table.insert(hashes, ref.snaks.P854[1].hash) table.insert(refs, s) end end if #refs > 0 then if #hashes == #refs then return refs, hashes end return refs end end function wd.sourceStr(sources, hashes) if not sources or (#sources == 0) then return nil end local useHashes = hashes and #hashes == #sources for i, j in ipairs(sources) do local refArgs = {name = 'ref', content = j} if useHashes and hashes[i] ~= '-' then refArgs.args = {name = 'wikidata-' .. hashes[i]} end sources[i] = mw.getCurrentFrame():extensionTag(refArgs) end return table.concat(sources, '<sup class="reference cite_virgule">,</sup>') end function wd.getDataValue(snak, params) if not params then params = {} end local speciallabels = params.speciallabels -- parfois on a besoin de faire une liste d'éléments pour lequel le libellé doit être changé, pas très pratique d'utiliser une fonction pour ça if snak.snaktype ~= 'value' then return nil end local datatype = snak.datatype local value = snak.datavalue.value local displayformat = params.displayformat if type(displayformat) == 'table' then displayformat = displayformat[datatype] end if type(displayformat) == 'function' then return displayformat(snak, params) end if datatype == 'wikibase-item' then return wd.formatEntity(wd.getId(snak), params) end if datatype == 'url' then if params.displayformat == 'raw' then return value else return modules.weblink.makelink(value, params.text) end end if datatype == 'math' then return mw.getCurrentFrame():extensionTag( "math", value) end if datatype == 'tabular-data' then return mw.ustring.sub(value, 6, 100) -- returns the name of the file, without the "Data:" prefix end if (datatype == 'string') or (datatype == 'external-id') or (datatype == 'commonsMedia') then -- toutes les données de type string sauf "math" if params.urlpattern then local urlpattern = params.urlpattern if type(urlpattern) == 'function' then urlpattern = urlpattern(value) end -- encodage de l'identifiant qui se retrouve dans le path de l'URL, à l'exception des slashes parfois rencontrés, qui sont des séparateurs à ne pas encoder local encodedValue = mw.uri.encode(value, 'PATH'):gsub('%%2F', '/') -- les parenthèses autour du encodedValue:gsub() sont nécessaires, sinon sa 2e valeur de retour est aussi passée en argument au mw.ustring.gsub() parent local url = mw.ustring.gsub(urlpattern, '$1', (encodedValue:gsub('%%', '%%%%'))) value = '[' .. url .. ' ' .. (params.text or value) .. ']' end return value end if datatype == 'time' then -- format example: +00000001809-02-12T00:00:00Z if displayformat == 'raw' then return value.time else local dateobject = modules.formatDate.dateObject(value, {precision = params.precision}) return modules.formatDate.objectToText(dateobject, params) end end if datatype == 'globe-coordinate' then -- retourne une table avec clés latitude, longitude, précision et globe à formater par un autre module (à changer ?) if displayformat == 'latitude' then return value.latitude elseif displayformat == 'longitude' then return value.longitude else local coordvalue = mw.clone( value ) coordvalue.globe = databases.globes[value.globe] -- transforme l'ID du globe en nom anglais utilisable par geohack return coordvalue -- note : les coordonnées Wikidata peuvent être utilisée depuis Module:Coordinates. Faut-il aussi autoriser à appeler Module:Coordiantes ici ? end end if datatype == 'quantity' then -- todo : gérer les paramètres précision local amount, unit = value.amount, value.unit if unit then unit = unit:match('Q%d+') end if not unit then unit = 'dimensionless' end local raw if displayformat == "raw" then raw = true end return modules.formatNum.displayvalue(amount, unit, {targetunit = params.targetunit, raw = raw, rounding = params.rounding, showunit = params.showunit or 'short', showlink = params.showlink} ) end if datatype == 'monolingualtext' then if value.language == defaultlang or displayformat == 'raw' then return value.text else return modules.langmodule.langue({value.language, value.text, nocat=true}) end end return formatError('unknown-datavalue-type' ) end function wd.stringTable(args) -- like getClaims, but get a list of string rather than a list of snaks, for easier manipulation local claims = args.claims local cat = '' if not claims then claims = wd.getClaims(args) end if not claims or claims == {} then return {}, {}, cat end if args.removedupesdate and (args.removedupesdate ~= '-') then claims, cat = removeDupesDate(claims, args.removedupesdate) end local props = {} -- liste des propriétés associété à chaque string pour catégorisation et linkback for i, j in pairs(claims) do claims[i] = wd.formatStatement(j, args) table.insert(props, j.mainsnak.property) end if args.removedupes and (args.removedupes ~= '-') then claims = wd.addNewValues({}, claims) -- devrait aussi supprimer de props celles qui ne sont pas utilisées end return claims, props, cat end function wd.getQualifiers(statement, qualifs, params) if not statement.qualifiers then return nil end local vals = {} if type(qualifs) == 'string' then qualifs = wd.splitStr(qualifs) end for i, j in pairs(qualifs) do if statement.qualifiers[j] then for k, l in pairs(statement.qualifiers[j]) do table.insert(vals, l) end end end if #vals == 0 then return nil end return vals end function wd.getFormattedQualifiers(statement, qualifs, params) if not params then params = {} end local qualiftable = wd.getQualifiers(statement, qualifs) if not qualiftable then return nil end qualiftable = wd.filterClaims(qualiftable, params) or {} -- Sorting to prioritize languages if(params.showonlyqualifier ~= nil) then qualiftable = wd.sortClaims(qualiftable, params.sorttype or params.qualifsorttype) end for i, j in pairs(qualiftable) do qualiftable[i] = wd.formatSnak(j, params) end return modules.linguistic.conj(qualiftable, params.conjtype) end function wd.showQualifiers(str, statement, args) local qualifs = args.showqualifiers if not qualifs then return str -- or error ? end if type(qualifs) == 'string' then qualifs = wd.splitStr(qualifs) end local qualifargs = args.qualifargs or {} -- formatage des qualificatifs = args commençant par "qualif", ou à défaut, les mêmes que pour la valeur principale qualifargs.displayformat = args.qualifdisplayformat or args.displayformat qualifargs.labelformat = args.qualiflabelformat or args.labelformat qualifargs.labelformat2 = args.qualiflabelformat2 or args.labelformat2 qualifargs.link = args.qualiflink or args.link qualifargs.linktopic = args.qualiflinktopic or args.linktopic qualifargs.conjtype = args.qualifconjtype qualifargs.precision = args.qualifprecision qualifargs.targetunit = args.qualiftargetunit qualifargs.defaultlink = args.qualifdefaultlink or args.defaultlink qualifargs.defaultlinkquery = args.qualifdefaultlinkquery or args.defaultlinkquery if args.qualiflabelformat == 'objectgender' then local objectid = wd.getId(statement.mainsnak) qualifargs.labelformat = wd.getgender(objectid) end local formattedqualifs if args.qualifformat and type (args.qualifformat) == 'function' then formattedqualifs = args.qualifformat(statement, qualifs, qualifargs) else formattedqualifs = wd.getFormattedQualifiers(statement, qualifs, qualifargs) end if formattedqualifs and formattedqualifs ~= "" then str = str .. " (" .. formattedqualifs .. ")" end return str end function wd.formatSnak( snak, params ) if not params then params = {} end -- pour faciliter l'appel depuis d'autres modules if snak.snaktype == 'somevalue' then return unknownValue(snak, params.unknownlabel) elseif snak.snaktype == 'novalue' then return noValue(params.novaluelabel) elseif snak.snaktype == 'value' then return wd.getDataValue( snak, params) else return formatError( 'unknown-snak-type' ) end end function wd.formatStatement( statement, args ) -- FONCTION A REORGANISER (pas très lisible) if not args then args = {} end if not statement.type or statement.type ~= 'statement' then return formatError( 'unknown-claim-type' ) end local prop = statement.mainsnak.property local str -- special displayformat f if args.statementformat and (type(args.statementformat) == 'function') then str = args.statementformat(statement, args) elseif (statement.mainsnak.datatype == 'time') and (statement.mainsnak.dateformat ~= '-') then if args.displayformat == 'raw' and statement.mainsnak.snaktype == 'value' then str = statement.mainsnak.datavalue.value.time else str = wd.getFormattedDate(statement, args) end elseif args.showonlyqualifier and (args.showonlyqualifier ~= '') then str = wd.getFormattedQualifiers(statement, args.showonlyqualifier, args) if not str then return nil end if args.addstandardqualifs ~= '-' then str = wd.addStandardQualifs(str, statement, true) end else str = wd.formatSnak( statement.mainsnak, args ) if (args.addstandardqualifs ~= '-') and (args.displayformat ~= 'raw') then str = wd.addStandardQualifs(str, statement) end end -- ajouts divers if args.showlang == true then local indicateur = showLang(statement) if indicateur then str = indicateur .. '&nbsp;' .. str end end if args.showqualifiers then str = wd.showQualifiers(str, statement, args) end if args.showdate then -- when "showdate and chronosort are both set, date retrieval is performed twice local period = wd.getFormattedDate(statement, args, "-") -- 3 arguments indicate the we should not use additional qualifiers, already added by wd.formatStatement if period then str = str .. " <small>(" .. period .. ")</small>" end end if args.showsource and args.showsource ~= '-' and args.showsource ~= "false" then if args.showsource == "only" then str="" end -- si showsource="only", alors ne montrer que la (les) source(s), -- sans la valeur qui, auparavant, était enregistrée dans str -- Utilisé par le modèle {{PH census}} local sources, hashes = wd.getReferences(statement) if sources then local source = wd.sourceStr(sources, hashes) if source then str = str .. source end end end return str end function wd.addLinkBack(str, id, property) if not id or id == '' then id = wd.getEntityIdForCurrentPage() end if not id then return str end if type(property) == 'table' then property = property[1] end id = mw.text.trim(wd.entityId(id)) local class = '' if property then class = 'wd_' .. string.lower(property) end local icon = '[[File:Blue pencil.svg|%s|10px|baseline|class=noviewer|link=%s]]' local title = wd.translate('see-wikidata-value') local url = mw.uri.fullUrl('d:' .. id, 'uselang=fr') url.fragment = property -- ajoute une #ancre si paramètre "property" défini url = tostring(url) local v = mw.html.create('span') :addClass(class) :wikitext(str) :tag('span') :addClass('noprint wikidata-linkback skin-invert') :wikitext(icon:format(title, url)) :allDone() return tostring(v) end function wd.addRefAnchor(str, id) --[[ Insère une ancre pour une référence générée à partir d'un élément wd. L'id Wikidata sert d'identifiant à l'ancre, à utiliser dans les modèles type "harvsp" --]] return tostring( mw.html.create('span') :attr('id', id) :attr('class', "ouvrage") :wikitext(str) ) end --=== FUNCTIONS USING AN ENTITY AS ARGUMENT === local function formatStatementsGrouped(args, type) -- regroupe les affirmations ayant la même valeur en mainsnak, mais des qualificatifs différents -- (seulement pour les propriétés de type élément) local claims = wd.getClaims(args) if not claims then return nil end local groupedClaims = {} -- regroupe les affirmations par valeur de mainsnak local function addClaim(claim) local id = wd.getMainId(claim) for i, j in pairs(groupedClaims) do if (j.id == id) then table.insert(groupedClaims[i].claims, claim) return end end table.insert(groupedClaims, {id = id, claims = {claim}}) end for i, claim in pairs(claims) do addClaim(claim) end local stringTable = {} -- instructions ad hoc pour les paramètres concernant la mise en forme d'une déclaration individuelle local funs = { {param = "showqualifiers", fun = function(str, claims) local qualifs = {} for i, claim in pairs(claims) do local news = wd.getFormattedQualifiers(claim, args.showqualifiers, args) if news then table.insert(qualifs, news) end end local qualifstr = modules.linguistic.conj(qualifs, wd.translate("qualif-separator")) if qualifstr and qualifstr ~= "" then str = str .. " (" .. qualifstr .. ")" end return str end }, {param = "showdate", fun = function(str, claims) -- toutes les dates sont regroupées à l'intérieur des mêmes parenthèses ex "médaille d'or (1922, 1924)" local dates = {} for i, statement in pairs(claims) do local s = wd.getFormattedDate(statement, args, true) if statement then table.insert(dates, s) end end local datestr = modules.linguistic.conj(dates) if datestr and datestr ~= "" then str = str .. " <small>(" .. datestr .. ")</small>" end return str end }, {param = "showsource", fun = function(str, claims) -- les sources sont toutes affichées au même endroit, à la fin -- si deux affirmations ont la même source, on ne l'affiche qu'une fois local sources = {} local hashes = {} local function dupeRef(old, new) for i, j in pairs(old) do if j == new then return true end end end for i, claim in pairs(claims) do local refs, refHashes = wd.getReferences(claim) if refs then for i, j in pairs(refs) do if not dupeRef(sources, j) then table.insert(sources, j) local hash = (refHashes and refHashes[i]) or '-' table.insert(hashes, hash) end end end end return str .. (wd.sourceStr(sources, hashes) or "") end } } for i, group in pairs(groupedClaims) do -- bricolage pour utiliser les arguments de formatStatements local str = wd.formatEntity(group.id, args) if not str then str = '???' -- pour éviter erreur Lua si formatEntity a retourné nil end for i, fun in pairs(funs) do if args[fun.param] then str = fun.fun(str, group.claims, args) end end table.insert(stringTable, str) end args.valuetable = stringTable return wd.formatStatements(args) end function wd.formatStatements( args )--Format statement and concat them cleanly if args.value == '-' then return nil end -- If a value is already set: use it, except if it's the special value {{WD}} (use wikidata) if args.value and args.value ~= '' then local valueexpl = wd.translate("activate-query") if args.value ~= valueexpl then return args.value end -- There is no value set, and args.expl disables wikidata on empty values elseif args.expl then return nil end if args.grouped and args.grouped ~= '' then args.grouped = false return formatStatementsGrouped(args) end local valuetable = args.valuetable -- dans le cas où les valeurs sont déjà formatées local props -- les propriétés réellement utilisées (dans certains cas, ce ne sont pas toutes celles de args.property local cat = '' if not valuetable then -- cas le plus courant valuetable, props, cat = wd.stringTable(args) end if args.ucfirst == '-' and args.conjtype == 'new line' then args.conjtype = 'lowercase new line' end local str = modules.linguistic.conj(valuetable, args.conjtype) if not str then return args.default end if not props then props = wd.splitStr(args.property)[1] end if args.ucfirst ~= '-' then str = modules.linguistic.ucfirst(str) end if args.addcat and (args.addcat ~= '-') then str = str .. wd.addTrackingCat(props) .. cat end if args.linkback and (args.linkback ~= '-') then str = wd.addLinkBack(str, args.entity, props) end if args.returnnumberofvalues then return str, #valuetable end return str end function wd.formatAndCat(args) if not args then return nil end args.linkback = args.linkback or true args.addcat = true if args.value then -- do not ignore linkback and addcat, as formatStatements do if args.value == '-' then return nil end local val = args.value .. wd.addTrackingCat(args.property) val = wd.addLinkBack(val, args.entity, args.property) return val end return wd.formatStatements( args ) end function wd.getTheDate(args) local claims = wd.getClaims(args) if not claims then return nil end local formattedvalues = {} for i, j in pairs(claims) do local v = wd.getFormattedDate(j, args) if v then table.insert(formattedvalues, v ) end end local val = modules.linguistic.conj(formattedvalues) if not val then return nil end if args.addcat == true then val = val .. wd.addTrackingCat(args.property) end val = wd.addLinkBack(val, args.entity, args.property) return val end function wd.keyDate (event, item, params) params = params or {} params.entity = item if type(event) == 'table' then for i, j in pairs(event) do params.targetvalue = nil -- réinitialisation barbare des paramètres modifiés local s = wd.keyDate(j, item, params) if s then return s end end elseif type(event) ~= 'string' then return formatError('invalid-datatype', type(event), 'string') elseif string.sub(event, 1, 1) == 'Q' then -- on demande un élément utilisé dans P:P793 (événement clé) params.property = 'P793' params.targetvalue = event params.addcat = params.addcat or true return wd.getTheDate(params) elseif string.sub(event, 1, 1) == 'P' then -- on demande une propriété params.property = event return wd.formatAndCat(params) else return formatError('invalid-entity-id', event) end end function wd.mainDate(entity) -- essaye P580/P582 local args = {entity = entity, addcat = true} args.property = 'P580' local startpoint = wd.formatStatements(args) args.property = 'P582' local endpoint = wd.formatStatements(args) local str if (startpoint or endpoint) then str = modules.formatDate.daterange(startpoint, endpoint, params) str = wd.addLinkBack(str, entity, 'P582') return str end -- défaut : P585 args.property = {'P585', 'P571'} args.linkback = true return wd.formatStatements(args) end -- ==== Fonctions sur le genre ==== function wd.getgender(id) local vals = { ['Q6581072'] = 'f', -- féminin ['Q6581097'] = 'm', -- masculin ['Q1052281'] = 'f', -- femme transgenre ['Q2449503'] = 'm', -- homme transgenre ['Q17148251'] = 'f', -- en:Travesti (gender identity) ['Q43445'] = 'f', -- femelle ['Q44148'] = 'm', -- mâle default = '?' } local gender = wd.formatStatements{entity = id, property = 'P21', displayformat = 'raw', numval = 1} return vals[gender] or vals.default end wd.isGender = {m = true, male = true, f = true, female = true} --reconnaissance des chaînes de caractères désignant un genre -- catégories de genre/nombre function wd.getgendernum(claims) local personid, gender local anym = false local anyf = false local anyunknown = false for i, claim in pairs(claims) do local snak = claim.mainsnak or claim if(snak.snaktype == 'value') and (snak.datatype == 'wikibase-item') then personid = wd.getId(snak) gender = wd.getgender(personid) anym = anym or (gender == 'm') anyf = anyf or (gender == 'f') anyunknown = anyunknown or (gender == '?') else anyunknown = true end end local gendernum if #claims > 1 then if anyunknown then gendernum = 'p' else if anym and not anyf then gendernum = 'mp' end if anyf and not anym then gendernum = 'fp' end if anym and anyf then gendernum = 'mixtep' end end else gendernum = 's' if anym then gendernum = 'ms' end if anyf then gendernum = 'fs' end end return gendernum end -- récupération des libellés genrés de Wikidata function wd.genderedlabel(id, labelgender) local label if not labelgender then return nil end if labelgender == 'f' or labelgender == 'female' then -- femme : chercher le libellé dans P2521 (libellé féminin) label = wd.formatStatements{entity = id, property = 'P2521', isinlang = 'fr', numval = 1, ucfirst = '-'} elseif labelgender == 'm' or labelgender == 'male' then -- homme : chercher le libellé dans P3321 (libellé masculin) label = wd.formatStatements{entity = id, property = 'P3321', isinlang = 'fr', numval = 1, ucfirst = '-'} end if not label then label = wd.getLabel(id) end return label end -- === FUNCTIONS FOR TRANSITIVE PROPERTIES === function wd.getIds(item, query) query.excludespecial = true query.displayformat = 'raw' query.entity = item query.addstandardqualifs = '-' return wd.stringTable(query) end -- recursively adds a list of qid to an existing list, based on the results of a query function wd.addVals(list, query, maxdepth, maxnodes, stopval) maxdepth = tonumber(maxdepth) or 10 maxnodes = tonumber(maxnodes) or 100 if (maxdepth < 0) then return list end if stopval and wd.isHere(list, stopval) then return list end local origsize = #list for i = 1, origsize do -- tried a "checkpos" param instead of starting to 1 each time, but no impact on performance local candidates = wd.getIds(list[i], query) list = wd.addNewValues(list, candidates, maxnodes, stopval) if list[#list] == stopval then return list end if #list >= maxnodes then return list end end if (#list == origsize) then return list end return wd.addVals(list, query, maxdepth - 1, maxnodes, stopval, origsize + 1) end -- returns a list of items transitively matching a query (orig item is not included in the list) function wd.transitiveVals(item, query, maxdepth, maxnodes, stopval) maxdepth = tonumber(maxdepth) or 5 if type(query) == "string" then query = {property = query} end -- récupération des valeurs local vals = wd.getIds(item, query) if not vals then return nil end local v = wd.addVals(vals, query, maxdepth - 1, maxnodes, stopval) if not v then return nil end -- réarrangement des valeurs if query.valorder == "inverted" then local a = {} for i = #v, 1, -1 do a[#a+1] = v[i] end v = a end return v end -- returns true if an item is the value of a query, transitively function wd.inTransitiveVals(searchedval, sourceval, query, maxdepth, maxnodes ) local vals = wd.transitiveVals(sourceval, query, maxdepth, maxnodes, searchedval ) if (not vals) then return false end for _, val in ipairs(vals) do if (val == searchedval) then return true end end return false end -- returns true if an item is a superclass of another, based on P279 function wd.isSubclass(class, item, maxdepth) local query = {property = 'P279'} if class == item then -- item is a subclass of itself iff it is a class if wd.getIds(item, query) then return true end return false end return wd.inTransitiveVals(class, item, query, maxdepth ) end -- returns true if one of the best ranked P31 values of an item is the target or a subclass of the target -- rank = 'valid' would seem to make sense, but it would need to check for date qualifiers as some P31 values have begin or end date function wd.isInstance(targetclass, item, maxdepth) maxdepth = maxdepth or 10 local directclasses = wd.transitiveVals(item, {property = 'P31'}, 1) if not directclasses then return false end for i, class in pairs(directclasses) do if wd.isSubclass(targetclass, class, maxdepth - 1) then return true end end return false end -- return the first value in a transitive query that belongs to a particular class. For instance find a value of P131 that is a province of Canada function wd.findVal(sourceitem, targetclass, query, recursion, instancedepth) if type(query) == "string" then query = {property = query} end local candidates = wd.getIds(sourceitem, query) if candidates then for i, j in pairs(candidates) do if wd.isInstance(targetclass, j, instancedepth) then return j end end if not recursion then recursion = 3 else recursion = recursion - 1 end if recursion < 0 then return nil end for i, candidate in pairs(candidates) do return wd.findVal(candidate, targetclass, query, recursion, instancedepth) end end end -- === VARIA === function wd.getDescription(entity, lang) lang = lang or defaultlang local description if lang == defaultlang then return mw.wikibase.description(qid) end if not entity.descriptions then return wd.translate('no description') end local descriptions = entity.descriptions if not descriptions then return nil end if descriptions[lang] then return descriptions[delang].value end return entity.id end function wd.Dump(entity) entity = wd.getEntity(entity) if not entity then return formatError("entity-param-not-provided") end return "<pre>"..mw.dumpObject(entity).."</pre>" end function wd.frameFun(frame) local args = frame.args local funname = args[1] table.remove(args, 1) return wd[funname](args) end return wd sz7ua54sahwall80rbqbw58c3rdypzl Endrika:Vol. 10 301664 1149188 2026-08-13T17:04:18Z ~2026-44555-09 40710 Pejy noforonina tamin'ny « vol.&nbsp;{{{1<includeonly>|{{color|red|Missing parameter! (Template:Vol.)}}</includeonly>}}}<noinclude> {{Documentation}} </noinclude> » 1149188 wikitext text/x-wiki vol.&nbsp;{{{1<includeonly>|{{color|red|Missing parameter! (Template:Vol.)}}</includeonly>}}}<noinclude> {{Documentation}} </noinclude> o3wns9v425ho5wjekhlxfar51yhfwkj Endrika:N° 10 301665 1149189 2026-08-13T17:06:44Z ~2026-44555-09 40710 Pejy noforonina tamin'ny « No.&nbsp;{{{1|}}}<noinclude> {{documentation}}</noinclude> » 1149189 wikitext text/x-wiki No.&nbsp;{{{1|}}}<noinclude> {{documentation}}</noinclude> ekmmdc5cortk6wiachrol1y1im3p7gu 1149190 1149189 2026-08-13T17:07:46Z NDG 35988 Requesting deletion 1149190 wikitext text/x-wiki {{delete|No useful content}}No.&nbsp;{{{1|}}}<noinclude> {{documentation}}</noinclude> jx305x05ka0ldyumrpdlh22yqyjptby Endrika:Ne 10 301666 1149191 2026-08-13T17:11:00Z ~2026-44555-09 40710 Pejy noforonina tamin'ny « <span title="Anarana tamin'ny nahaterahana">[[Birth name#Maiden and married names|né]]{{#if:{{{1|}}}|&nbsp;{{trim|{{{1|}}}}}}}</span><noinclude> {{documentation}} </noinclude> » 1149191 wikitext text/x-wiki <span title="Anarana tamin'ny nahaterahana">[[Birth name#Maiden and married names|né]]{{#if:{{{1|}}}|&nbsp;{{trim|{{{1|}}}}}}}</span><noinclude> {{documentation}} </noinclude> m4kv4nciyndtuzd9ypxi0far9gpt5fu Endrika:Nbsp 10 301667 1149192 2026-08-13T17:13:11Z ~2026-44555-09 40710 Pejy fihodinana mankany [[Endrika:Spaces]] 1149192 wikitext text/x-wiki #REDIRECT [[Endrika:Spaces]] 260avzf0qsp5zpyywouc3pf4t0pbghh Endrika:Hyphen 10 301668 1149193 2026-08-13T17:14:05Z ~2026-44555-09 40710 Pejy noforonina tamin'ny « &#45;<noinclude> {{documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> » 1149193 wikitext text/x-wiki &#45;<noinclude> {{documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> 09l9sz67lahkr2wgp3ic5qglysvkflo Hopitaly Université Joseph Ravoahangy Andrianavalona 0 301669 1149198 2026-08-14T06:09:28Z ~2026-43677-38 40632 Pejy noforonina tamin'ny « '''Hopitaly Université Joseph Ravoahangy Andrianavalona''' ([[Fiteny frantsay|frantsay]]: ''Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona'' na ''CHU-JRA'') no [[hôpitaly]] lehibe indrindra eto {{Madagasikara}}. Eto [[Antananarivo]] no misy azy ary niorina tamin’ny taona 1965. Avy amin’ny dokotera sady mpanao politika malagasy [[Ravoahangy-Andrianavalona Joseph]] no anarany. Fampisehoana ny andrim-panjakana tamin'ny taona 2015: Naor... » 1149198 wikitext text/x-wiki '''Hopitaly Université Joseph Ravoahangy Andrianavalona''' ([[Fiteny frantsay|frantsay]]: ''Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona'' na ''CHU-JRA'') no [[hôpitaly]] lehibe indrindra eto {{Madagasikara}}. Eto [[Antananarivo]] no misy azy ary niorina tamin’ny taona 1965. Avy amin’ny dokotera sady mpanao politika malagasy [[Ravoahangy-Andrianavalona Joseph]] no anarany. Fampisehoana ny andrim-panjakana tamin'ny taona 2015: Naorina tamin'ny taona 1965 teo amin'ny tany mirefy 7 hektara Tanjona: Fandidiana (nanomboka tamin'ny taona 1981) sy fanadihadiana paraklinika (sary sy fitiliana laboratoara). Anarana ankehitriny: Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona Mpiasa: mpiasa 700, fandriana: 621<ref>[https://www.madagascar-tribune.com/L-hopital-Ravoahangy,21158.html L’hôpital Ravoahangy Andrianavalona fête ses 40 ans (Madagascar Tribune, 2015)]</ref> ==Jereo koa== * [[Institut Pasteur eto Madagasikara]] * [[Hopitaly miaramila Antananarivo]] *[https://www.lexpress.mg/2026/08/hjra-les-greffes-de-cornee-reprennent.html HJRA - Les greffes de cornée reprennent] [[fr:Hôpital Joseph Ravoahangy Andrianavalona]] [[Sokajy:Antananarivo]] [[Sokajy:Hopitaly any Madagasikara]] 06dd2bh929dyu4ojmnau9h6q5uz5h58 1149201 1149198 2026-08-14T06:13:11Z ~2026-43677-38 40632 1149201 wikitext text/x-wiki '''Hopitaly Université Joseph Ravoahangy Andrianavalona''' ([[Fiteny frantsay|frantsay]]: ''Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona'' na ''CHU-JRA'' na ''HJRA'') no [[hôpitaly]] lehibe indrindra eto {{Madagasikara}}. Eto [[Antananarivo]] no misy azy ary niorina tamin’ny taona 1965. Avy amin’ny dokotera sady mpanao politika malagasy [[Ravoahangy-Andrianavalona Joseph]] no anarany. Fampisehoana ny andrim-panjakana tamin'ny taona 2015: Naorina tamin'ny taona 1965 teo amin'ny tany mirefy 7 hektara Tanjona: Fandidiana (nanomboka tamin'ny taona 1981) sy fanadihadiana paraklinika (sary sy fitiliana laboratoara). Anarana ankehitriny: Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona Mpiasa: mpiasa 700, fandriana: 621<ref>[https://www.madagascar-tribune.com/L-hopital-Ravoahangy,21158.html L’hôpital Ravoahangy Andrianavalona fête ses 40 ans (Madagascar Tribune, 2015)]</ref> ==Jereo koa== * [[Institut Pasteur eto Madagasikara]] * [[Hopitaly miaramila Antananarivo]] *[https://www.lexpress.mg/2026/08/hjra-les-greffes-de-cornee-reprennent.html HJRA - Les greffes de cornée reprennent] [[fr:Hôpital Joseph Ravoahangy Andrianavalona]] [[Sokajy:Antananarivo]] [[Sokajy:Hopitaly any Madagasikara]] qzhmox36pyln9za9udcfkginsyxl166 1149202 1149201 2026-08-14T06:14:04Z ~2026-43677-38 40632 1149202 wikitext text/x-wiki '''Hopitaly Université Joseph Ravoahangy Andrianavalona''' ([[Fiteny frantsay|frantsay]]: ''Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona'' na '''CHU-JRA''' na '''HJRA''') no [[hôpitaly]] lehibe indrindra eto {{Madagasikara}}. Eto [[Antananarivo]] no misy azy ary niorina tamin’ny taona 1965. Avy amin’ny dokotera sady mpanao politika malagasy [[Ravoahangy-Andrianavalona Joseph]] no anarany. Fampisehoana ny andrim-panjakana tamin'ny taona 2015: Naorina tamin'ny taona 1965 teo amin'ny tany mirefy 7 hektara Tanjona: Fandidiana (nanomboka tamin'ny taona 1981) sy fanadihadiana paraklinika (sary sy fitiliana laboratoara). Anarana ankehitriny: Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona Mpiasa: mpiasa 700, fandriana: 621<ref>[https://www.madagascar-tribune.com/L-hopital-Ravoahangy,21158.html L’hôpital Ravoahangy Andrianavalona fête ses 40 ans (Madagascar Tribune, 2015)]</ref> ==Jereo koa== * [[Institut Pasteur eto Madagasikara]] * [[Hopitaly miaramila Antananarivo]] *[https://www.lexpress.mg/2026/08/hjra-les-greffes-de-cornee-reprennent.html HJRA - Les greffes de cornée reprennent] [[fr:Hôpital Joseph Ravoahangy Andrianavalona]] [[Sokajy:Antananarivo]] [[Sokajy:Hopitaly any Madagasikara]] q1dtfbrf2vg1mxy1jrfl0gaoyatdxh6 1149203 1149202 2026-08-14T06:14:43Z ~2026-43677-38 40632 1149203 wikitext text/x-wiki '''Hopitaly Université Joseph Ravoahangy Andrianavalona''' ([[Fiteny frantsay|frantsay]]: ''Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona'' na '''CHU-JRA''' na '''HJRA''') no [[hôpitaly]] lehibe indrindra eto {{Madagasikara}}. Eto [[Antananarivo]] no misy azy ary niorina tamin’ny taona 1965. Avy amin’ny dokotera sady mpanao politika malagasy [[Ravoahangy-Andrianavalona Joseph]] no anarany. Fampisehoana ny andrim-panjakana tamin'ny taona 2015: Naorina tamin'ny taona 1965 teo amin'ny tany mirefy 7 hektara Tanjona: Fandidiana (nanomboka tamin'ny taona 1981) sy fanadihadiana paraklinika (sary sy fitiliana laboratoara). *Anarana ankehitriny: Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona *Mpiasa: mpiasa 700, fandriana: 621<ref>[https://www.madagascar-tribune.com/L-hopital-Ravoahangy,21158.html L’hôpital Ravoahangy Andrianavalona fête ses 40 ans (Madagascar Tribune, 2015)]</ref> ==Jereo koa== * [[Institut Pasteur eto Madagasikara]] * [[Hopitaly miaramila Antananarivo]] *[https://www.lexpress.mg/2026/08/hjra-les-greffes-de-cornee-reprennent.html HJRA - Les greffes de cornée reprennent] [[fr:Hôpital Joseph Ravoahangy Andrianavalona]] [[Sokajy:Antananarivo]] [[Sokajy:Hopitaly any Madagasikara]] e6fyz0dw8wmvm0i2dh9ikqs2tzplczp 1149209 1149203 2026-08-14T06:45:49Z ~2026-43677-38 40632 1149209 wikitext text/x-wiki [[File:Hôpital HJRA.jpg|thumb|Hopitaly HJRA]] '''Hopitaly Université Joseph Ravoahangy Andrianavalona''' ([[Fiteny frantsay|frantsay]]: ''Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona'' na '''CHU-JRA''' na '''HJRA''') no [[hôpitaly]] lehibe indrindra eto {{Madagasikara}}. Eto [[Antananarivo]] no misy azy ary niorina tamin’ny taona 1965. Avy amin’ny dokotera sady mpanao politika malagasy [[Ravoahangy-Andrianavalona Joseph]] no anarany. Fampisehoana ny andrim-panjakana tamin'ny taona 2015: Naorina tamin'ny taona 1965 teo amin'ny tany mirefy 7 hektara Tanjona: Fandidiana (nanomboka tamin'ny taona 1981) sy fanadihadiana paraklinika (sary sy fitiliana laboratoara). *Anarana ankehitriny: Centre Hospitalier Universitaire Joseph Ravoahangy Andrianavalona *Mpiasa: mpiasa 700, fandriana: 621<ref>[https://www.madagascar-tribune.com/L-hopital-Ravoahangy,21158.html L’hôpital Ravoahangy Andrianavalona fête ses 40 ans (Madagascar Tribune, 2015)]</ref> ==Jereo koa== * [[Institut Pasteur eto Madagasikara]] * [[Hopitaly miaramila Antananarivo]] *[https://www.lexpress.mg/2026/08/hjra-les-greffes-de-cornee-reprennent.html HJRA - Les greffes de cornée reprennent] [[fr:Hôpital Joseph Ravoahangy Andrianavalona]] [[Sokajy:Antananarivo]] [[Sokajy:Hopitaly any Madagasikara]] 67oyrdjw3wfl63cbg5kua8pedncoaez HJRA 0 301670 1149199 2026-08-14T06:10:16Z ~2026-43677-38 40632 Pejy fihodinana mankany [[Hopitaly Université Joseph Ravoahangy Andrianavalona]] 1149199 wikitext text/x-wiki #REDIRECT [[Hopitaly Université Joseph Ravoahangy Andrianavalona]] rsglf3d9s90zn3hqv8dmetgx824gcl3 CHU-JRA 0 301671 1149200 2026-08-14T06:10:50Z ~2026-43677-38 40632 Pejy fihodinana mankany [[Hopitaly Université Joseph Ravoahangy Andrianavalona]] 1149200 wikitext text/x-wiki #REDIRECT [[Hopitaly Université Joseph Ravoahangy Andrianavalona]] rsglf3d9s90zn3hqv8dmetgx824gcl3 Sokajy:Redirections connectées à un élément Wikidata 14 301672 1149207 2026-08-14T06:38:59Z PK2 2490 Namorona pejy fotsy 1149207 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1