ဝီႇၶီႇၽီးတီးယႃး shnwiki https://shn.wikipedia.org/wiki/%E1%81%BC%E1%82%83%E1%82%88%E1%82%81%E1%80%B0%E1%80%9D%E1%80%BA%E1%82%81%E1%82%85%E1%81%B5%E1%80%BA%E1%82%88 MediaWiki 1.44.0-wmf.8 first-letter သိုဝ်ႇၶၢဝ်ႇ ၶိုၵ်ႉတွၼ်း ဢုပ်ႇၵုမ် ၽူႈၸႂ်ႉတိုဝ်း ဢုပ်ႇၵုမ် ၽူႈၸႂ်ႉတိုဝ်း ဝီႇၶီႇၽီးတီးယႃး ဢုပ်ႇၵုမ် ဝီႇၶီႇၽီးတီးယႃး ၾၢႆႇ ဢုပ်ႇၵုမ် ၾၢႆႇ မီႇတီႇယႃႇဝီႇၶီႇ ဢုပ်ႇၵုမ် မီႇတီႇယႃႇဝီႇၶီႇ ထႅမ်းပလဵတ်ႉ ဢုပ်ႇၵုမ် ထႅမ်းပလဵတ်ႉ လွင်ႈၸွႆႈထႅမ် ဢုပ်ႇၵုမ် လွင်ႈၸွႆႈထႅမ် ပိူင်ထၢၼ်ႈ ဢုပ်ႇၵုမ် ပိူင်ထၢၼ်ႈ ၵိူၼ်ႇတူ တွၼ်ႈဢုပ်ႇ ၵိူၼ်ႇတူ TimedText TimedText talk မေႃႇၵျူး ဢုပ်ႇၵုမ် မေႃႇၵျူး မိူင်းၸွမ်ပွင်ၸိုင်ႈ ၶျႅၵ်ႈ 0 17514 66312 66284 2025-01-03T00:18:52Z InternetArchiveBot 2342 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 66312 wikitext text/x-wiki {{Short description|မိူင်းဢၼ်မီးတီႈ ယူးရူပ်ႉ ပွတ်းၵၢင်}} {{Infobox country | conventional_long_name = မိူင်းၸွမ်ပွင်ၸိုင်ႈ ၶျႅၵ်ႈ | common_name = ၶျႅၵ်ႈ | linking_name = the Czech Republic<!--to link to "[Topic] of the Czech Republic" articles--> | native_name = {{native name|cs|Česká republika}} | image_flag = Flag of the Czech Republic.svg | image_coat = Coat of arms of the Czech Republic.svg | coa_size = 80 | symbol_type = {{nowrap|[[Coat of arms of the Czech Republic|Coat of arms]]}} | national_motto = {{native phrase|cs|[[Truth prevails|Pravda vítězí]]|nolink=yes}}<br />"Truth prevails" | national_anthem = {{native phrase|cs|[[Kde domov můj]]|nolink=yes}}<br />"Where My Home Is"<br /><div style="display:inline-block;margin-top:0.5em;">[[File:Czech anthem.ogg]]</div> | image_map = {{Switcher|[[File:Czech Republic (orthographic projection).svg|upright=1.15|frameless]]|Show globe|[[File:EU-Czechia.svg|upright=1.15|frameless]]|Show map of the European Union|default=2}} | map_caption = {{map caption |countryprefix=the |location_color=dark green |region=Europe |region_color=dark gray |subregion=the European Union |subregion_color=green |legend=EU-Czechia.svg}} | image_map2 = | capital = [[Prague]] | coordinates = {{Coord|50|05|N|14|28|E|type:city}} | largest_city = capital | languages_type = Official language | languages = [[Czech language|Czech]]<ref>{{cite web |url=http://www.czech.cz/en/67019-czech-language |title=Czech language |work=Czech Republic – Official website |publisher=[[Ministry of Foreign Affairs (Czech Republic)|Ministry of Foreign Affairs of the Czech Republic]] |access-date=14 November 2011 |archive-url=https://web.archive.org/web/20111106000422/http://www.czech.cz/en/67019-czech-language |archive-date=6 November 2011 |url-status=live}}</ref> | languages2_type = {{raise|0.3em |{{nobold|Officially recognized languages<ref name="languages">Citizens belonging to minorities, which traditionally and on a long-term basis live within the territory of the Czech Republic, enjoy the right to use their language in communication with authorities and in courts of law (for the list of recognized minorities see [http://www.vlada.cz/en/pracovni-a-poradni-organy-vlady/rnm/historie-a-soucasnost-rady-en-16666/ National Minorities Policy of the Government of the Czech Republic] {{Webarchive|url=https://web.archive.org/web/20120607051111/http://www.vlada.cz/en/pracovni-a-poradni-organy-vlady/rnm/historie-a-soucasnost-rady-en-16666/ |date=7 June 2012}}, Belarusian and Vietnamese since 4 July 2013, see [http://zpravy.idnes.cz/vietnamci-oficialni-narodnostni-mensinou-fiq-/domaci.aspx?c=A130703_133019_domaci_jj Česko má nové oficiální národnostní menšiny. Vietnamce a Bělorusy] {{Webarchive|url=https://web.archive.org/web/20130708074104/http://zpravy.idnes.cz/vietnamci-oficialni-narodnostni-mensinou-fiq-/domaci.aspx?c=A130703_133019_domaci_jj |date=8 July 2013}}). Article 25 of the Czech [[Charter of Fundamental Rights and Freedoms]] ensures the right of the national and ethnic minorities to education and communication with the authorities in their own language. Act No. 500/2004 Coll. (''The Administrative Rule'') in its paragraph 16 (4) (''Procedural Language'') ensures that a citizen of the Czech Republic who belongs to a national or an ethnic minority, which traditionally and on a long-term basis lives within the territory of the Czech Republic, has the right to address an administrative agency and proceed before it in the language of the minority. If the administrative agency has no employee with knowledge of the language, the agency is bound to obtain a translator at the agency's own expense. According to Act No. 273/2001 (''Concerning the Rights of Members of Minorities'') paragraph 9 (''The right to use language of a national minority in dealing with authorities and in front of the courts of law'') the same also applies to members of national minorities in the courts of law.</ref><ref>The Slovak language may be considered an official language in the Czech Republic under certain circumstances, as defined by several laws – e.g. law 500/2004, 337/1992. Source: http://portal.gov.cz {{Webarchive|url=https://web.archive.org/web/20050410043930/http://www.portal.gov.cz/ |date=10 April 2005}}. Cited: "Například Správní řád (zákon č. 500/2004 Sb.) stanovuje: "V řízení se jedná a písemnosti se vyhotovují v českém jazyce. Účastníci řízení mohou jednat a písemnosti mohou být předkládány i v jazyce slovenském&nbsp;..." (§&nbsp;16, odstavec 1). Zákon o správě daní a poplatků (337/1992 Sb.) "Úřední jazyk: Před správcem daně se jedná v jazyce českém nebo slovenském. Veškerá písemná podání se předkládají v češtině nebo slovenštině&nbsp;..." (§&nbsp;3, odstavec 1). http://portal.gov.cz</ref>}} }} | languages2 = | ethnic_groups = {{vunblist | 89% [[Czechs]] | 3.3% [[Moravians]] | 0.9% [[Slovaks in the Czech Republic|Slovaks]] | 0.7% [[Ukrainians in the Czech Republic|Ukrainians]] | 2.1% [[Demographics of the Czech Republic|other]] | 4.0% two nationalities }} | ethnic_groups_year = 2021 | ethnic_groups_ref = <ref name="census2021">{{cite web|title=Národnost|url=https://www.czso.cz/csu/scitani2021/narodnost|work=Census 2021|publisher=[[Czech Statistical Office]]|language=cs|access-date=13 January 2022|archive-date=15 January 2022|archive-url=https://web.archive.org/web/20220115083026/https://www.czso.cz/csu/scitani2021/narodnost|url-status=dead}}</ref> | religion = {{ublist |item_style=white-space:nowrap; |56.9% [[Irreligion in the Czech Republic|no religion]] |{{Tree list}} * 11.7% [[Christianity]] ** 9.3% [[Catholic Church in the Czech Republic|Catholicism]] ** 2.4% other [[List of Christian denominations|Christian]] {{Tree list/end}} |1.2% [[Religion in Czech Republic|other]]|30.1% unanswered}} | religion_ref = <ref>{{cite web|title=Náboženská víra|url=https://www.czso.cz/csu/scitani2021/nabozenska-vira|work=Census 2021|publisher=[[Czech Statistical Office]]|language=cs|access-date=13 January 2022|archive-date=22 January 2022|archive-url=https://web.archive.org/web/20220122135853/https://www.czso.cz/csu/scitani2021/nabozenska-vira|url-status=dead}}</ref> | religion_year = 2021 | demonym = [[Czechs|Czech]] | government_type = [[Unitary parliamentary republic]] | leader_title1 = [[President of the Czech Republic|President]] | leader_name1 = [[Petr Pavel]] | leader_title2 = [[Prime Minister of the Czech Republic|Prime Minister]] | leader_name2 = [[Petr Fiala]] | legislature = [[Parliament of the Czech Republic|Parliament]] | upper_house = [[Senate of the Czech Republic|Senate]] | lower_house = [[Chamber of Deputies of the Czech Republic|Chamber of Deputies]] | sovereignty_type = [[History of the Czech lands|Establishment]] | established_event1 = [[Duchy of Bohemia]] | established_date1 = {{circa}} 870 | established_event2 = {{nowrap|[[Kingdom of Bohemia]]}} | established_date2 = 1198 | established_event3 = [[First Czechoslovak Republic|Czechoslovakia]] | established_date3 = 28 October 1918 | established_event4 = [[Dissolution of Czechoslovakia|Czech Republic]] | established_date4 = 1 January 1993 | area_km2 = 78,871 | area_footnote = <ref name=landuse>{{cite web |url=https://vdb.czso.cz/vdbvo2/faces/en/index.jsf?page=vystup-objekt-vyhledavani&vyhltext=plochy&bkvt=cGxvY2h5&katalog=all&pvo=ZPR15|title=Land use (as at 31 December)|work=Public database|publisher=[[Czech Statistical Office]]|access-date=11 May 2023}}</ref> | area_rank = 115th <!-- Area rank should match [[List of countries and dependencies by area]] --> | area_sq_mi = 30,452 <!--Do not remove per [[Wikipedia:Manual of Style/Dates and numbers]]--> | percent_water = 2.16 (as of 2022)<ref name=landuse/> | population_estimate = {{IncreaseNeutral}} 10,900,555<ref>{{cite web|title=Population of cohesion regions, regions and districts of the Czech Republic, 1 January 2024|url=https://www.czso.cz/documents/10180/218418152/1300722401.pdf/61fe01a6-d309-4e44-be63-b30c279fd184?version=1.0|publisher=[[Czech Statistical Office]]|date=17 May 2024|access-date=1 January 2025|archive-date=17 May 2024|archive-url=https://web.archive.org/web/20240517095052/https://www.czso.cz/documents/10180/218418152/1300722401.pdf/61fe01a6-d309-4e44-be63-b30c279fd184?version=1.0}}</ref> | population_census = {{IncreaseNeutral}} 10,524,167<ref name="census2021"/> | population_estimate_year = 2024 | population_estimate_rank = 85th | population_census_year = 2021 | population_density_km2 = 133 | population_density_sq_mi = 345 <!--Do not remove per [[Wikipedia:Manual of Style/Dates and numbers]]--> | population_density_rank = 91st | GDP_PPP = {{increase}} $619.881&nbsp;billion<ref name="IMFWEO.CZ">{{cite web |url=https://www.imf.org/en/Publications/WEO/weo-database/2024/October/weo-report?c=935,&s=NGDPD,PPPGDP,NGDPDPC,PPPPC,&sy=2022&ey=2029&ssm=0&scsm=1&scc=0&ssd=1&ssc=0&sic=0&sort=country&ds=.&br=1 |title=World Economic Outlook Database, October 2024 Edition. (Czechia) |publisher=[[International Monetary Fund]] |website=www.imf.org |date=22 October 2024 |access-date=9 November 2024}}</ref> | GDP_PPP_year = 2024 | GDP_PPP_rank = 46th | GDP_PPP_per_capita = {{increase}} $56,686<ref name="IMFWEO.CZ" /> | GDP_PPP_per_capita_rank = 38th | GDP_nominal = {{decrease}} $342.992&nbsp;billion<ref name="IMFWEO.CZ" /> | GDP_nominal_year = 2024 | GDP_nominal_rank = 47th | GDP_nominal_per_capita = {{decrease}} $31,365<ref name="IMFWEO.CZ" /> | GDP_nominal_per_capita_rank = 38th | Gini = 24.4 <!--number only--> | Gini_year = 2023 | Gini_change = decrease <!--increase/decrease/steady--> | Gini_ref = <ref name="eurogini">{{cite web|url=https://ec.europa.eu/eurostat/databrowser/view/tessi190/default/table?lang=en |title=Gini coefficient of equivalised disposable income – EU-SILC survey|publisher=[[Eurostat]] |website=ec.europa.eu |access-date=4 May 2024}}</ref> | Gini_rank = | HDI = 0.895 <!--number only--> | HDI_year = 2022<!-- Please use the year to which the data refers, not the publication year--> | HDI_change = increase <!--increase/decrease/steady--> | HDI_ref = <ref name="UNHDR">{{cite web|url=https://hdr.undp.org/system/files/documents/global-report-document/hdr2023-24reporten.pdf|title=Human Development Report 2023/24|language=en|publisher=[[United Nations Development Programme]]|date=13 March 2024|access-date=13 March 2024}}</ref> | HDI_rank = 32nd | currency = [[Czech koruna]] | currency_code = CZK | time_zone = [[Central European Time|CET]] | utc_offset = +1 | utc_offset_DST = +2 | time_zone_DST = [[Central European Summer Time|CEST]] | date_format = d. m. yyyy | drives_on = right | calling_code = [[Telephone numbers in the Czech Republic|+420]]{{efn|Code 42 was shared with [[Slovakia]] until 1997.}} | patron_saint = [[Wenceslaus I, Duke of Bohemia|St. Wenceslaus]] | iso3166code = CZ | cctld = [[.cz]]{{Efn|Also [[.eu]], shared with other European Union member states.}} | flag_p1 = Flag of the Czech Republic.svg | today = }} ==မၢႆတွင်း== {{Notelist}} ==ၽိုၼ်ဢိင်== {{Reflist|colwidth=30em}} 35aslslszcf45f1fbndhbazejwztkg4 မိူင်းၼၢႆႇၵျီးရီးယႃး 0 17730 66313 65902 2025-01-03T00:19:11Z InternetArchiveBot 2342 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 66313 wikitext text/x-wiki {{Infobox country | ၸိုဝ်ႈမိူင်းဢၼ်တဵမ်ထူၼ်ႈ = မိူင်းၸွမ်ပွင်ၸိုင်ႈ ၾႅတ်ႇတရႄႇ<br/>ၼၢႆႇၵျီးရီးယႃး | common_name = ၼၢႆႇၵျီးရီးယႃး | ၸိုဝ်ႈတႄႉတႄႉ = {{unbulleted list|item_style=font-size:78%; |{{native name|ha|Jamhuriyar Taraiyar Najeriya}} |{{native name|ig|Ọ̀hàńjíkọ̀ Ọ̀hànézè Naìjíríyà}} |{{native name|yo|Orílẹ̀-èdè Olómìniira Àpapọ̀ Nàìjíríà}}}} | ႁၢင်ႈ_ၸွမ်ပိဝ် = Flag of Nigeria.svg | ႁၢင်ႈ_မိၵ်ႈမၢႆ = Coat of arms of Nigeria.svg | ၶေႃႈၶၼ်ပၢၵ်ႇၸိုင်ႈမိူင်း = "Unity and Faith, Peace and Progress" | ၵႂၢမ်းၸိုင်ႈမိူင်း = "[[Arise, O Compatriots]]"<br />{{brk|1}}<div style="display:inline-block;margin-top:0.4em;">{{center|}}</div> | ႁၢင်ႈ_ဢွင်ႈတီႈ = Nigeria_(orthographic_projection).svg | ဝဵင်းငဝ်ႈၸိုင်ႈ = [[Abuja]] | coordinates = {{Coord|9|4|N|7|29|E|type:city}} | ဝဵင်းယႂ်ႇသေပိူၼ်ႈ = | ၸႄႈမိူင်းယႂ်ႇသေပိူၼ်ႈ = [[Lagos]]<br />{{small|{{coord|6|27|N|3|23|E|display=inline}}}} | ဢေႇရိယႃႇ = 923, 768 km² (356,667 sq mi) | ၸၼ်ႉဢေႇရိယႃႇ = 32 | ႁူဝ်ပၢၵ်ႇဢေႇရိယႃႇၼမ်ႉ = 1.4 | ၽႃႇသႃႇၵႂၢမ်းၸႂ်ႉၼႂ်းလုမ်း = [[ၽႃႇသႃႇဢိင်းၵလဵတ်ႈ|ဢိင်းၵလဵတ်ႈ]] | population_estimate = 204,630,269<ref>{{citation|url=https://population.un.org/wpp/DataQuery/|title=UN Projection|website=World Population Prospects 2017|access-date=2020-06-09|archive-date=2020-06-15|archive-url=https://web.archive.org/web/20200615001511/https://population.un.org/wpp/DataQuery/|dead-url=yes}}</ref> | population_census = 140,431,691 | population_estimate_year = 2020 | population_estimate_rank = 7th | population_census_year = 2006 | population_density_km2 = 218 | population_density_sq_mi = 565 <!--Do not remove per [[WP:MOSNUM]]--> | population_density_rank = 42nd | မဵဝ်းမိူင်း = မိူင်းၸွမ်ပွင်ၸိုင်ႈ ၾႅတ်ႇတရႄႇ | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(1) = ၸွမ်ပွင်ၸိုင်ႈ | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(1) = {{nowrap|[[Muhammadu Buhari]]}} | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(2) = ၵႅမ်ၸွမ်ပွင်ၸိုင်ႈ | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(2) = [[Yemi Osinbajo]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(1) = ၼၢႆႇၵျီးရီးယႃး ႁွင်ႇလႄႈၸၢၼ်း ႁူမ်ႈၵၼ် | ပီ_လွင်ႈပူၵ်းတင်ႈ(1)= [[1914]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(2) = လွတ်ႈလႅဝ်းသဝ်းၶေႃ<br/>(တီႈ ယူႇၶေႇ) | ပီ_လွင်ႈပူၵ်းတင်ႈ(2) = [[1960]]၊ [[ဢွၵ်ႇထူဝ်ႇပႃႇ 1]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(3) = ပူၵ်းတင်ႈ မိူင်းၸွမ်ပွင်ၸိုင်ႈ | ပီ_လွင်ႈပူၵ်းတင်ႈ(3) = [[1963]]၊ [[ဢွၵ်ႇထူဝ်ႇပႃႇ 1]] | GDP_PPP = $1.275 trillion<ref name=IMF2019>{{cite web |url=https://www.imf.org/external/pubs/ft/weo/2018/02/weodata/weorept.aspx?sy=2018&ey=2023&scsm=1&ssd=1&sort=country&ds=.&br=1&pr1.x=47&pr1.y=9&c=694&s=NGDPD%2CPPPGDP%2CNGDPDPC%2CPPPPC&grp=0&a=|accessdate=20 October 2018 |title=World Economic Outlook Database, October 2018 – Nigeria|work=International Monetary Fund}}</ref> | GDP_PPP_year = 2020 | GDP_PPP_rank = 23rd | GDP_PPP_per_capita = $6,232 | GDP_PPP_per_capita_rank = 129th | GDP_nominal = $504.57 billion<ref name=IMF2019/> | GDP_nominal_year = 2020 | GDP_nominal_rank = 27th | GDP_nominal_per_capita = $2,465 | GDP_nominal_per_capita_rank = 137th | Gini = 35.1 <!--number only--> | Gini_year = 2020 | Gini_change = decrease <!--increase/decrease/steady--> | Gini_ref = <ref>{{Cite web |title=Poverty and Inequality Index |url=https://www.nigerianstat.gov.ng/download/1092 |access-date=2020-06-08 |website=National Bureau of Statistics |archive-date=2021-04-13 |archive-url=https://web.archive.org/web/20210413210925/https://www.nigerianstat.gov.ng/download/1092 }}</ref> | HDI = 0.534 <!--number only--> | HDI_year = 2018<!-- Please use the year to which the data refers, not the publication year--> | HDI_change = increase <!--increase/decrease/steady--> | HDI_ref = <ref name="UNHDR">{{cite web|url=http://hdr.undp.org/en/content/2019-human-development-index-ranking|title=Human Development Report 2019|language=en|publisher=[[United Nations Development Programme]]|date=10 December 2019|accessdate=10 December 2019|format=PDF|archivedate=30 April 2020|archiveurl=https://web.archive.org/web/20200430080741/http://hdr.undp.org/en/content/2019-human-development-index-ranking}}</ref> | HDI_ၸၼ်ႉ = 158th | ငိုၼ်း = [[Nigerian naira|Naira]] (₦) | currency_code = NGN | time_zone = [[West Africa Time|WAT]] | utc_offset = +01:00 | drives_on = မိုဝ်းၶႂႃ | calling_code = [[+234]] | cctld = [[.ng]] }} ==ၽိုၼ်ဢိင်== {{Reflist}} 3dyu7qxsojsqeh6u9nzylcljc7f8qq1 မိူင်းမႃႇလႃႇဝီႇ 0 17830 66310 64182 2025-01-03T00:15:25Z InternetArchiveBot 2342 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 66310 wikitext text/x-wiki {{Infobox country | ၸိုဝ်ႈမိူင်းဢၼ်တဵမ်ထူၼ်ႈ = မိူင်းၸွမ်ပွင်ၸိုင်ႈ မႃႇလႃႇဝီႇ | common_name = မႃႇလႃႇဝီႇ | ၸိုဝ်ႈတႄႉတႄႉ = {{nowrap|{{lang|ny|Dziko la Malaŵi}}}} ([[Chewa language|Chichewa]])<br>{{nowrap|{{lang|ny|Charu cha Malaŵi}}}} ([[Tumbuka language|Chitumbuka]]) | ႁၢင်ႈ_ၸွမ်ပိဝ် = Flag of Malawi.svg | ႁၢင်ႈ_မိၵ်ႈမၢႆ = Coat of arms of Malawi.svg | ၶေႃႈၶၼ်ပၢၵ်ႇၸိုင်ႈမိူင်း = "Unity and Freedom" | ၵႂၢမ်းၸိုင်ႈမိူင်း = {{native name|ny|[[Mulungu dalitsani Malaŵi]]|nolink=yes}}<br />({{Lang-en|"O God Bless Our Land of Malawi"}}){{lower|0.1em|<ref>{{cite web |url=http://www.lyricsondemand.com/miscellaneouslyrics/nationalanthemslyrics/malawinationalanthemlyrics.html |title=Malawi National Anthem Lyrics |work=National Anthem Lyrics |publisher=Lyrics on Demand |accessdate=24 August 2008 |archive-url=https://web.archive.org/web/20110510015032/http://www.lyricsondemand.com/miscellaneouslyrics/nationalanthemslyrics/malawinationalanthemlyrics.html |archive-date=10 May 2011 |url-status=dead }}</ref>}}<br /><center>[[File:Malawian national anthem.oga]]</center> | ႁၢင်ႈ_ဢွင်ႈတီႈ = File:Location Malawi AU Africa.svg | map_caption = | image_map2 = | ဝဵင်းငဝ်ႈၸိုင်ႈ = [[Lilongwe]] | coordinates = {{Coord|13|57|S|33|42|E|type:city}} | ဝဵင်းယႂ်ႇသေပိူၼ်ႈ = | ၸႄႈမိူင်းယႂ်ႇသေပိူၼ်ႈ = ဝဵင်းငဝ်ႈၸိုင်ႈ | ဢေႇရိယႃႇ = 118,484 km2 (45,747 sq mi) | ၸၼ်ႉဢေႇရိယႃႇ = 98 | ႁူဝ်ပၢၵ်ႇဢေႇရိယႃႇၼမ်ႉ = 20.6% | တီႈသုင်သုတ်း = | မႄႈၼမ်ႉယၢဝ်းသုတ်း = | ၼွင်ယႂ်ႇသုတ်း = | ၽင်ႇပၢင်ႇလၢႆ = | ၽႃႇသႃႇၵႂၢမ်းၸႂ်ႉၼႂ်းလုမ်း = [[English language|English]]<br>[[Chewa language|Chewa]] | regional_languages = {{collapsible list |titlestyle = background:green ;text-align:left;font-weight:normal; |liststyle = text-align: left;border-top:1px solid #aaa; | [[Yao language|Yao]] | [[Tumbuka language|Tumbuka]] | [[Tonga (Nyasa) language|Tonga]] | [[Sena language|Sena]] | [[Lomwe language|Lomwe]] | [[Nyakyusa language|Ngonde]] | [[Lambya language|Lambya]] }} | population_estimate = {{Increase}} 19,129,952 <ref>{{Cite web |url=https://population.un.org/wpp/Download/Files/1_Indicators%20(Standard)/EXCEL_FILES/1_Population/WPP2019_POP_F01_1_TOTAL_POPULATION_BOTH_SEXES.xlsx |title=Archive copy |access-date=2020-06-12 |archive-date=2021-02-27 |archive-url=https://web.archive.org/web/20210227235642/https://population.un.org/wpp/Download/Files/1_Indicators%20(Standard)/EXCEL_FILES/1_Population/WPP2019_POP_F01_1_TOTAL_POPULATION_BOTH_SEXES.xlsx }}</ref> | population_census = 17,563,749<ref name="Census2018"/> | population_estimate_year = 2020 | population_estimate_rank = 62nd | population_census_year = 2018 | population_density_km2 = 153.1 | population_density_sq_mi = 396.5 <!--Do not remove per [[WP:MOSNUM]]--> | population_density_rank = 56th | ethnic_groups = {{unbulleted list | 34.4% [[Chewa people|Chewa]] | 18.9% [[Lomwe people|Lomwe]] | 13.3% [[Yao people (East Africa)|Yao]] | 10.4% [[Ngoni people|Ngoni]] | 9.2% [[Tumbuka people|Tumbuka]] | 3.8% [[Sena people|Sena]] | 3.2% [[Mang'anja people|Mang'anja]] | 1.9% [[Nyanja people|Nyanja]] | 1.8% [[Tonga people of Malawi|Tonga]] | 1.0% [[Nyakyusa people|Ngonde]] | 0.6% [[Lambya people|Lambya]] | 0.5% [[Sukwa people|Sukwa]] | 1.1% others }} | ethnic_groups_year = 2018 Census<ref name="Census2018">{{cite web|url=http://www.nsomalawi.mw/images/stories/data_on_line/demography/census_2018/2018%20Malawi%20Population%20and%20Housing%20Census%20Main%20Report.pdf|title=2018 Population and Housing Census Main Report|publisher=Malawi National Statistical Office|accessdate=25 December 2019|archive-date=8 June 2020|archive-url=https://web.archive.org/web/20200608191931/http://www.nsomalawi.mw/images/stories/data_on_line/demography/census_2018/2018%20Malawi%20Population%20and%20Housing%20Census%20Main%20Report.pdf}}</ref> | demonym = [[Malawian]] | ပွႆး = | မဵဝ်းမိူင်း = တီႇမူဝ်ႇၶရေႇၸီႇ | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(1) = ၸွမ်ပွင်ၸိုင်ႈ | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(1) = [[Peter Mutharika]] | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(2) = ၵႅမ်ၸွမ်ပွင်ၸိုင်ႈ | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(2) = [[Saulos Chilima]] | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(3) = | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(3) = | ၽူႈၵိူဝ်းၵုမ်ၸိုင်ႈမိူင်း = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(1) = လွတ်ႈလႅဝ်းသဝ်းၶေႃ<br/>(တီႈ ယူႇၶေႇ) | ပီ_လွင်ႈပူၵ်းတင်ႈ(1)= [[1964]]၊ [[ၵျူႇလၢႆႇ 6]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(2) = republic | ပီ_လွင်ႈပူၵ်းတင်ႈ(2) = [[1966]]၊ [[ၵျူႇလၢႆႇ 6]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(3) = လၵ်းမိူင်းယၢမ်းလဵဝ် | ပီ_လွင်ႈပူၵ်းတင်ႈ(3) = [[1994]]၊ [[မေႇ 18]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(4) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(4) = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(5) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(5) = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(6) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(6) = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(7) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(7) = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(8) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(8) = | GDP_PPP = $25.037 billion | GDP_PPP_year = 2019 | GDP_PPP_per_capita = $1,234<ref name="auto">{{Cite web|url=https://www.imf.org/external/pubs/ft/weo/2019/01/weodata/weorept.aspx?pr.x=62&pr.y=7&sy=2019&ey=2024&scsm=1&ssd=1&sort=country&ds=.&br=1&c=676&s=NGDPD,PPPGDP,NGDPDPC,PPPPC&grp=0&a=|title=Report for Selected Countries and Subjects|website=www.imf.org}}</ref> | GDP_nominal = $7.436 billion | GDP_nominal_year = 2019 | GDP_nominal_per_capita = $367<ref name="auto"/> | Gini = 43.9 <!--number only--> | Gini_year = 2010 | Gini_change = <!--increase/decrease/steady--> | Gini_ref = <ref name="wb-gini">{{cite web |url=http://data.worldbank.org/indicator/SI.POV.GINI/ |title=Gini Index |publisher=World Bank |accessdate=2 March 2011}}</ref> | Gini_rank = | HDI = 0.485 <!--number only--> | HDI_year = 2018<!-- Please use the year to which the data refers, not the publication year--> | HDI_change = increase <!--increase/decrease/steady--> | HDI_ref = <ref name="UNHDR">{{cite web|url=http://hdr.undp.org/en/content/2019-human-development-index-ranking|title=Human Development Report 2019|language=en|publisher=[[United Nations Development Programme]]|date=10 December 2019|accessdate=10 December 2019|format=PDF|archivedate=30 April 2020|archiveurl=https://web.archive.org/web/20200430080741/http://hdr.undp.org/en/content/2019-human-development-index-ranking}}</ref> | HDI_ၸၼ်ႉ = 172nd | ငိုၼ်း = [[Malawian kwacha|Kwacha]] (D) | currency_code = MWK | time_zone = [[Central Africa Time|CAT]] | utc_offset = +2 | utc_offset_DST= | time_zone_DST = | drives_on = မိုဝ်းသၢႆႉ | calling_code = [[Telephone numbers in Malawi|+265]]<ref name="BBC">{{cite news |url=http://news.bbc.co.uk/1/hi/world/africa/country_profiles/1068913.stm |title=Country profile: Malawi |publisher=[[BBC News]] |date=13 March 2008 |accessdate=17 August 2008}}</ref> | cctld = [[.mw]]<ref name="BBC" /> | footnotes = * Population estimates for this country explicitly take into account the effects of excess mortality due to [[HIV/AIDS|AIDS]]; this can result in lower life expectancy, higher infant mortality and death rates, lower population and growth rates, and changes in the distribution of population by age and sex than would otherwise be expected. * Information is drawn from the CIA ''[[World Factbook]]'' unless otherwise noted. }} ==ၽိုၼ်ဢိင်== {{Reflist}} ikch6ajn077sldw9x64cvsks4seougl မိူင်းလိပ်ႉပျႃး 0 17887 66311 49337 2025-01-03T00:15:49Z InternetArchiveBot 2342 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 66311 wikitext text/x-wiki {{Infobox country | ၸိုဝ်ႈမိူင်းဢၼ်တဵမ်ထူၼ်ႈ = မိူင်းလိပ်ႉပျႃး | common_name = လိပ်ႉပျႃး | ၸိုဝ်ႈတႄႉတႄႉ = {{native name|ar|دولة ليبيا}}<br/>''{{transl|ar|Dawlat Lībiyā}}'' | ႁၢင်ႈ_ၸွမ်ပိဝ် = Flag of Libya.svg | ႁၢင်ႈ_မိၵ်ႈမၢႆ = The emblem on the passport of Libya.svg | ၶေႃႈၶၼ်ပၢၵ်ႇၸိုင်ႈမိူင်း = | ၵႂၢမ်းၸိုင်ႈမိူင်း = {{lang|ar|ليبيا ليبيا ليبيا}}<br />"[[Libya, Libya, Libya]]"<div style="padding-top:0.5em;" class="center">[[File:Libya, Libya, Libya instrumental.ogg]]</div> | ႁၢင်ႈ_ဢွင်ႈတီႈ = Libya (centered orthographic projection).svg | map_caption = | image_map2 = | ဝဵင်းငဝ်ႈၸိုင်ႈ = [[Tripoli]]<ref>{{cite web|title=The World Factbook Africa: Libya|url=https://www.cia.gov/library/publications/the-world-factbook/geos/ly.html|website=[[The World Factbook]]|publisher=[[CIA]]|accessdate=28 May 2015|date=18 May 2015|url-status=live|archiveurl=https://web.archive.org/web/20161224023634/https://www.cia.gov/library/publications/the-world-factbook/geos/ly.html|archivedate=24 December 2016}}</ref><!--"Libya is a recent construction, cemented into a single state by Italian occupiers in the 1930s. Tensions between the regions of Tripolitania in the west, Cyrenaica in the east, and Fezzan to the south are ever-present. To those is added Tripoli now being under the control of Libyan Dawn, with the newly elected government decamping to the city of Tobruk in Cyrenaica. Some in Cyrenaica think separation is the answer, noting that the region contains two-thirds of the oil of Libya, which holds the largest reserves in Africa. The government itself is determined to reconnect with the rest of the country, but it lacks the armed forces to take back Tripoli, making de-facto partition the present reality." [https://www.theguardian.com/world/2014/aug/29/-sp-briefing-war-in-libya] --- even through the current NATO-backed government is in Tobruk, a partition may lead to new countries with the aforementioned roman names, so leave this as Tripoli--> | coordinates = {{Coord|32|52|N|13|11|E|type:city}} | ဝဵင်းယႂ်ႇသေပိူၼ်ႈ = ဝဵင်းငဝ်ႈၸိုင်ႈ | ၸႄႈမိူင်းယႂ်ႇသေပိူၼ်ႈ = | ဢေႇရိယႃႇ = 1,759,541 km2 (679,359 sq mi) | ၸၼ်ႉဢေႇရိယႃႇ = 16 | ႁူဝ်ပၢၵ်ႇဢေႇရိယႃႇၼမ်ႉ = | တီႈသုင်သုတ်း = | မႄႈၼမ်ႉယၢဝ်းသုတ်း = | ၼွင်ယႂ်ႇသုတ်း = | ၽင်ႇပၢင်ႇလၢႆ = | ၽႃႇသႃႇၵႂၢမ်းၸႂ်ႉၼႂ်းလုမ်း = [[ၽႃႇသႃႇဢႃႇရၢပ်ႈ|ဢႃႇရၢပ်ႈ]] | population_estimate = 6,871,287<ref name="unpop">{{cite web|url=https://population.un.org/wpp/Download/Files/1_Indicators%20(Standard)/EXCEL_FILES/1_Population/WPP2019_POP_F01_1_TOTAL_POPULATION_BOTH_SEXES.xlsx|title=World Population Prospects 2019|author=United Nations|access-date=2020-06-13|archive-date=2021-02-27|archive-url=https://web.archive.org/web/20210227235642/https://population.un.org/wpp/Download/Files/1_Indicators%20(Standard)/EXCEL_FILES/1_Population/WPP2019_POP_F01_1_TOTAL_POPULATION_BOTH_SEXES.xlsx}}</ref> | population_census = 5,670,688 | population_estimate_year = {{UN_Population|Year}} | population_estimate_rank = 108th | population_census_year = 2006 | population_density_km2 = 3.74 | population_density_sq_mi = 9.2 <!--Do not remove per [[WP:MOSNUM]]--> | population_density_rank = 218th | ethnic_groups = {{vunblist | {{nowrap|97% [[Arab-Berber]]}} | 3% Others}} | religion = [[ၽႃႇသႃႇဢိတ်ႇသလၢမ်ႇ|ဢိတ်ႇသလၢမ်ႇ]] | demonym = [[Demographics of Libya|Libyan]] | ပွႆး = | မဵဝ်းမိူင်း = မိူင်းၸွမ်ပွင်ၸိုင်ႈ ၵူၼ်းမိူင်း | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(1) = ၸွမ်ပွင်ၸိုင်ႈ | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(1) = [[Fayez al-Sarraj]] | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(2) = ၸွမ်ၽွင်းလူင်(GNA)<ref>{{cite news|url=https://www.theguardian.com/world/2016/mar/30/chief-libyas-un-backed-government-fayez-sarraj-arrives-tripoli|title=Chief of Libya's new UN-backed government arrives in Tripoli|first=Chris|last=Stephen|date=30 March 2016|url-status=live|archiveurl=https://web.archive.org/web/20160331020606/http://www.theguardian.com/world/2016/mar/30/chief-libyas-un-backed-government-fayez-sarraj-arrives-tripoli|archivedate=31 March 2016|newspaper=The Guardian}}</ref> | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(2) = [[Fayez al-Sarraj]] | ၸၼ်ႉထၢၼ်ႈ_ၽူႈဢွၼ်ႁူဝ်(3) = | ၸိုဝ်ႈ_ၽူႈဢွၼ်ႁူဝ်(3) = | ၽူႈၵိူဝ်းၵုမ်ၸိုင်ႈမိူင်း = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(1) = လွတ်ႈလႅဝ်းသဝ်းၶေႃ<br/>(တီႈ [[ဢီႇတႃႇလီႇ]]) | ပီ_လွင်ႈပူၵ်းတင်ႈ(1)= [[1947]]၊ [[ၾႅပ်ႇဝႃႇရီႇ 10]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(2) = လွတ်ႈလႅဝ်းသဝ်းၶေႃ<br/>(တီႈ [[ၾရၢင်ႇသဵတ်ႈ]] လႄႈ [[ဢိင်ႇၵလႅၼ်ႇ]] | ပီ_လွင်ႈပူၵ်းတင်ႈ(2) = [[1951]]၊ [[တီႇသႅမ်ႇပႃႇ 24]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(3) = သိမ်းဢႃႇၼႃႇ | ပီ_လွင်ႈပူၵ်းတင်ႈ(3) = [[1969]]၊ [[သႅပ်ႇထႅမ်ႇပႃႇ 1]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(4) =Socialist People's Libyan Arab Jamahiriya | ပီ_လွင်ႈပူၵ်းတင်ႈ(4) = [[1977]]၊ [[ၼူဝ်ႇဝႅမ်ႇပႃႇ 19]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(5) = ဝၼ်းလုၵ်ႉၽိုၼ်ႉ | ပီ_လွင်ႈပူၵ်းတင်ႈ(5) = [[2011]]၊ [[ၾႅပ်ႇဝႃႇရီႇ 17]] | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(6) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(6) = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(7) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(7) = | ၸိုဝ်ႈ_လွင်ႈပူၵ်းတင်ႈ(8) = | ပီ_လွင်ႈပူၵ်းတင်ႈ(8) = | GDP_PPP = $79.595&nbsp;billion<ref name="imf2">{{cite web|url=https://www.imf.org/external/pubs/ft/weo/2018/02/weodata/weorept.aspx?pr.x=58&pr.y=9&sy=2018&ey=2023&scsm=1&ssd=1&sort=country&ds=.&br=1&c=672&s=NGDPD%2CPPPGDP%2CNGDPDPC%2CPPPPC&grp=0&a=|title=IMF Database|publisher=IMF|accessdate=2020-06-13|archivedate=2020-06-13|archiveurl=https://web.archive.org/web/20200613100522/https://www.imf.org/external/pubs/ft/weo/2018/02/weodata/weorept.aspx?pr.x=58&pr.y=9&sy=2018&ey=2023&scsm=1&ssd=1&sort=country&ds=.&br=1&c=672&s=NGDPD,PPPGDP,NGDPDPC,PPPPC&grp=0&a=}}</ref> | GDP_PPP_year = 2019 | GDP_PPP_rank = | GDP_PPP_per_capita = $12,100<ref name="imf2" /> | GDP_PPP_per_capita_rank = | GDP_nominal = $51.330&nbsp;billion<ref name="imf2" /> | GDP_nominal_year = 2019 | GDP_nominal_rank = 98 | GDP_nominal_per_capita = $7,803<ref name="imf2" /> | GDP_nominal_per_capita_rank = | Gini = <!--number only--> | Gini_year = | Gini_change = <!--increase/decrease/steady--> | Gini_ref = | Gini_rank = | HDI = 0.708 <!--number only--> | HDI_year = 2018<!-- Please use the year to which the data refers, not the publication year--> | HDI_change = increase <!--increase/decrease/steady--> | HDI_ref = <ref name="UNHDR">{{cite web|url=http://hdr.undp.org/en/content/2019-human-development-index-ranking|title=Human Development Report 2019|publisher=[[United Nations Development Programme]]|date=10 December 2019|accessdate=10 December 2019|format=PDF|archivedate=30 April 2020|archiveurl=https://web.archive.org/web/20200430080741/http://hdr.undp.org/en/content/2019-human-development-index-ranking}}</ref> | HDI_ၸၼ်ႉ = 110th | ငိုၼ်း = [[Libyan dinar]] | currency_code = LYD | time_zone = [[Eastern European Time|EET]] | utc_offset = +2 | drives_on = မိုဝ်းၶႂႃ | calling_code = [[Telephone numbers in Libya|+218]] | cctld = [[.ly]]<br />ليبيا. }} ==ၽိုၼ်ဢိင်== {{Reflist}} bdpmcyn701j6u78oy0p9p8kbj7772iv မေႃႇၵျူး:Transcluder 828 29919 66297 64998 2025-01-02T12:47:02Z Sophivorus 3590 Update from [[d:Special:GoToLinkedPage/enwiki/Q96679044|master]] using [[mw:Synchronizer| #Synchronizer]] 66297 Scribunto text/plain -- Module:Transcluder is a general-purpose transclusion engine -- Documentation and master version: https://en.wikipedia.org/wiki/Module:Transcluder -- Authors: User:Sophivorus, User:Certes & others -- License: CC-BY-SA-3.0 local p = {} -- Helper function to test for truthy and falsy values -- @todo Somehow internationalize it local function truthy(value) if not value or value == '' or value == 0 or value == '0' or value == 'false' or value == 'no' or value == 'non' then return false end return true end -- Helper function to match from a list of regular expressions -- Like so: match pre..list[1]..post or pre..list[2]..post or ... local function matchAny(text, pre, list, post, init) local match = {} for i = 1, #list do match = { mw.ustring.match(text, pre .. list[i] .. post, init) } if match[1] then return unpack(match) end end return nil end -- Like matchAny but for Category/File links with less overhead local function matchAnyLink(text, list) local match for _, v in ipairs(list) do match = string.match(text, '%[%[%s*' .. v .. '%s*:.*%]%]') if match then break end end return match end -- Helper function to escape a string for use in regexes local function escapeString(str) return string.gsub(str, '[%^%$%(%)%.%[%]%*%+%-%?%%]', '%%%0') end -- Helper function to remove a string from a text local function removeString(text, str) local pattern = escapeString(str) if #pattern > 9999 then -- strings longer than 10000 bytes can't be put into regexes pattern = escapeString(mw.ustring.sub(str, 1, 999)) .. '.-' .. escapeString(mw.ustring.sub(str, -999)) end return string.gsub(text, pattern, '') end -- Helper function to convert a comma-separated list of numbers or min-max ranges into a list of booleans -- @param flags Comma-separated list of numbers or min-max ranges, for example '1,3-5' -- @return Map from integers to booleans, for example {1=true,2=false,3=true,4=true,5=true} -- @return Boolean indicating whether the flags should be treated as a blacklist or not local function parseFlags(value) local flags = {} local blacklist = false if not value then return nil, false end if type(value) == 'number' then if value < 0 then value = -value blacklist = true end flags = { [value] = true } elseif type(value) == 'string' then if string.sub(value, 1, 1) == '-' then blacklist = true value = string.sub(value, 2) end local ranges = mw.text.split(value, ',') -- split ranges: '1,3-5' to {'1','3-5'} for _, range in pairs(ranges) do range = mw.text.trim(range) local min, max = mw.ustring.match(range, '^(%d+)%s*[-–—]%s*(%d+)$') -- '3-5' to min=3 max=5 if not max then min, max = string.match(range, '^((%d+))$') end -- '1' to min=1 max=1 if max then for i = min, max do flags[i] = true end else flags[range] = true -- if we reach this point, the string had the form 'a,b,c' rather than '1,2,3' end end -- List has the form { [1] = false, [2] = true, ['c'] = false } -- Convert it to { [1] = true, [2] = true, ['c'] = true } -- But if ANY value is set to false, treat the list as a blacklist elseif type(value) == 'table' then for i, v in pairs(value) do if v == false then blacklist = true end flags[i] = true end end return flags, blacklist end -- Helper function to see if a value matches any of the given flags local function matchFlag(value, flags) if not value then return false end value = tostring(value) local lang = mw.language.getContentLanguage() local lcvalue = lang:lcfirst(value) local ucvalue = lang:ucfirst(value) for flag in pairs(flags) do if value == tostring(flag) or lcvalue == flag or ucvalue == flag or ( not tonumber(flag) and mw.ustring.match(value, flag) ) then return true end end end -- Helper function to convert template arguments into an array of options fit for get() local function parseArgs(frame) local args = {} for key, value in pairs(frame:getParent().args) do args[key] = value end for key, value in pairs(frame.args) do args[key] = value end -- args from Lua calls have priority over parent args from template return args end -- Error handling function -- Throws a Lua error or returns an empty string if error reporting is disabled local function throwError(key, value) local TNT = require('Module:TNT') local ok, message = pcall(TNT.format, 'I18n/Module:Transcluder.tab', 'error-' .. key, value) if not ok then message = key end error(message, 2) end -- Error handling function -- Returns a wiki friendly error or an empty string if error reporting is disabled local function getError(key, value) local TNT = require('Module:TNT') local ok, message = pcall(TNT.format, 'I18n/Module:Transcluder.tab', 'error-' .. key, value) if not ok then message = key end message = mw.html.create('div'):addClass('error'):wikitext(message) return message end -- Helper function to get the local name of a namespace and all its aliases -- @param name Canonical name of the namespace, for example 'File' -- @return Local name of the namespace and all aliases, for example {'File','Image','Archivo','Imagen'} local function getNamespaces(name) local namespaces = mw.clone(mw.site.namespaces[name].aliases) -- Clone because https://en.wikipedia.org/w/index.php?diff=1056921358 table.insert(namespaces, mw.site.namespaces[name].name) table.insert(namespaces, mw.site.namespaces[name].canonicalName) return namespaces end -- Get the page wikitext, following redirects -- Also returns the page name, or the target page name if a redirect was followed, or false if no page was found -- For file pages, returns the content of the file description page local function getText(page, noFollow) page = mw.text.decode(page) local title = mw.title.new(page) if not title then return false, false end local target = title.redirectTarget if target and not noFollow then title = target end local text = title:getContent() if not text then return false, title.prefixedText end -- Remove <noinclude> tags text = string.gsub(text, '<[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>.-</[Nn][Oo][Ii][Nn][Cc][Ll][Uu][Dd][Ee]>', '') -- remove noinclude bits -- Keep <onlyinclude> tags if string.find(text, 'onlyinclude') then -- avoid expensive search if possible text = text :gsub('</onlyinclude>.-<onlyinclude>', '') -- remove text between onlyinclude sections :gsub('^.-<onlyinclude>', '') -- remove text before first onlyinclude section :gsub('</onlyinclude>.*', '') -- remove text after last onlyinclude section end return text, title.prefixedText end -- Get the requested files from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of files to return, for example 2 or '1,3-5'. Omit to return all files. -- @return Sequence of strings containing the wikitext of the requested files. -- @return Original wikitext minus requested files. local function getFiles(text, flags) local files = {} local flags, blacklist = parseFlags(flags) local fileNamespaces = getNamespaces('File') local name local count = 0 for file in string.gmatch(text, '%b[]') do if matchAnyLink(file, fileNamespaces) then name = string.match(file, '%[%[[^:]-:([^]|]+)') count = count + 1 if not blacklist and ( not flags or flags[count] or matchFlag(name, flags) ) or blacklist and flags and not flags[count] and not matchFlag(name, flags) then table.insert(files, file) else text = removeString(text, file) end end end return files, text end -- Get the requested tables from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of tables to return, for example 2 or '1,3-5'. Omit to return all tables. -- @return Sequence of strings containing the wikitext of the requested tables. -- @return Original wikitext minus requested tables. local function getTables(text, flags) local tables = {} local flags, blacklist = parseFlags(flags) local id local count = 0 for t in string.gmatch('\n' .. text, '\n%b{}') do if string.sub(t, 1, 3) == '\n{|' then id = string.match(t, '\n{|[^\n]-id%s*=%s*["\']?([^"\'\n]+)["\']?[^\n]*\n') count = count + 1 if not blacklist and ( not flags or flags[count] or flags[id] ) or blacklist and flags and not flags[count] and not flags[id] then table.insert(tables, t) else text = removeString(text, t) end end end return tables, text end -- Get the requested templates from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of templates to return, for example 2 or '1,3-5'. Omit to return all templates. -- @return Sequence of strings containing the wikitext of the requested templates. -- @return Original wikitext minus requested templates. local function getTemplates(text, flags) local templates = {} local flags, blacklist = parseFlags(flags) local name local count = 0 for template in string.gmatch(text, '{%b{}}') do if string.sub(template, 1, 3) ~= '{{#' then -- skip parser functions like #if name = mw.text.trim( string.match(template, '{{([^}|\n]+)') or "" ) -- get the template name if name ~= "" then count = count + 1 if not blacklist and ( not flags or flags[count] or matchFlag(name, flags) ) or blacklist and flags and not flags[count] and not matchFlag(name, flags) then table.insert(templates, template) else text = removeString(text, template) end end end end return templates, text end -- Get the requested template parameters from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of parameters to return, for example 2 or '1,3-5'. Omit to return all parameters. -- @return Map from parameter name to value, NOT IN THE ORIGINAL ORDER -- @return Original wikitext minus requested parameters. -- @return Order in which the parameters were parsed. local function getParameters(text, flags) local parameters, parameterOrder = {}, {} local flags, blacklist = parseFlags(flags) local params, count, parts, key, value for template in string.gmatch(text, '{%b{}}') do params = string.match(template, '{{[^|}]-|(.*)}}') if params then count = 0 -- Temporarily replace pipes in subtemplates and links to avoid chaos for subtemplate in string.gmatch(params, '{%b{}}') do params = string.gsub(params, escapeString(subtemplate), string.gsub(subtemplate, ".", {["%"]="%%", ["|"]="@@:@@", ["="]="@@_@@"}) ) end for link in string.gmatch(params, '%b[]') do params = string.gsub(params, escapeString(link), string.gsub(link, ".", {["%"]="%%", ["|"]="@@:@@", ["="]="@@_@@"}) ) end for parameter in mw.text.gsplit(params, '|') do parts = mw.text.split(parameter, '=') key = mw.text.trim(parts[1]) if #parts == 1 then value = key count = count + 1 key = count else value = mw.text.trim(table.concat(parts, '=', 2)) end value = string.gsub(string.gsub(value, '@@:@@', '|'), '@@_@@', '=') if not blacklist and ( not flags or matchFlag(key, flags) ) or blacklist and flags and not matchFlag(key, flags) then table.insert(parameterOrder, key) parameters[key] = value else text = removeString(text, parameter) end end end end return parameters, text, parameterOrder end -- Get the requested lists from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of lists to return, for example 2 or '1,3-5'. Omit to return all lists. -- @return Sequence of strings containing the wikitext of the requested lists. -- @return Original wikitext minus requested lists. local function getLists(text, flags) local lists = {} local flags, blacklist = parseFlags(flags) local count = 0 for list in string.gmatch('\n' .. text .. '\n\n', '\n([*#].-)\n[^*#]') do count = count + 1 if not blacklist and ( not flags or flags[count] ) or blacklist and flags and not flags[count] then table.insert(lists, list) else text = removeString(text, list) end end return lists, text end -- Get the requested paragraphs from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of paragraphs to return, for example 2 or '1,3-5'. Omit to return all paragraphs. -- @return Sequence of strings containing the wikitext of the requested paragraphs. -- @return Original wikitext minus requested paragraphs. local function getParagraphs(text, flags) local paragraphs = {} local flags, blacklist = parseFlags(flags) -- Remove non-paragraphs local elements local temp = '\n' .. text .. '\n' elements, temp = getLists(temp, 0) -- remove lists elements, temp = getFiles(temp, 0) -- remove files temp = mw.text.trim((temp :gsub('\n%b{} *\n', '\n%0\n') -- add spacing between tables and block templates :gsub('\n%b{} *\n', '\n') -- remove tables and block templates :gsub('\n==+[^=]+==+ *\n', '\n') -- remove section titles )) -- Assume that anything remaining is a paragraph local count = 0 for paragraph in mw.text.gsplit(temp, '\n\n+') do if mw.text.trim(paragraph) ~= '' then count = count + 1 if not blacklist and ( not flags or flags[count] ) or blacklist and flags and not flags[count] then table.insert(paragraphs, paragraph) else text = removeString(text, paragraph) end end end return paragraphs, text end -- Get the requested categories from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of categories to return, for example 2 or '1,3-5'. Omit to return all categories. -- @return Sequence of strings containing the wikitext of the requested categories. -- @return Original wikitext minus requested categories. local function getCategories(text, flags) local categories = {} local flags, blacklist = parseFlags(flags) local categoryNamespaces = getNamespaces('Category') local name local count = 0 for category in string.gmatch(text, '%b[]') do if matchAnyLink(category, categoryNamespaces) then name = string.match(category, '%[%[[^:]-:([^]|]+)') count = count + 1 if not blacklist and ( not flags or flags[count] or matchFlag(name, flags) ) or blacklist and flags and not flags[count] and not matchFlag(name, flags) then table.insert(categories, category) else text = removeString(text, category) end end end return categories, text end -- Get the requested references from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of references to return, for example 2 or '1,3-5'. Omit to return all references. -- @return Sequence of strings containing the wikitext of the requested references. -- @return Original wikitext minus requested references. local function getReferences(text, flags) local references = {} -- Remove all references, including citations, when 0 references are requested -- This is kind of hacky but currently necessary because the rest of the code -- doesn't remove citations like <ref name="Foo" /> if Foo is defined elsewhere if flags and not truthy(flags) then text = string.gsub(text, '<%s*[Rr][Ee][Ff][^>/]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>', '') text = string.gsub(text, '<%s*[Rr][Ee][Ff][^>/]*/%s*>', '') return references, text end local flags, blacklist = parseFlags(flags) local name local count = 0 for reference in string.gmatch(text, '<%s*[Rr][Ee][Ff][^>/]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>') do name = string.match(reference, '<%s*[Rr][Ee][Ff][^>]*name%s*=%s*["\']?([^"\'>/]+)["\']?[^>]*%s*>') count = count + 1 if not blacklist and ( not flags or flags[count] or matchFlag(name, flags) ) or blacklist and flags and not flags[count] and not matchFlag(name, flags) then table.insert(references, reference) else text = removeString(text, reference) if name then for citation in string.gmatch(text, '<%s*[Rr][Ee][Ff][^>]*name%s*=%s*["\']?' .. escapeString(name) .. '["\']?[^/>]*/%s*>') do text = removeString(text, citation) end end end end return references, text end -- Get the lead section from the given wikitext. -- @param text Required. Wikitext to parse. -- @return Wikitext of the lead section. local function getLead(text) text = string.gsub('\n' .. text, '\n==.*', '') text = mw.text.trim(text) if not text then return throwError('lead-empty') end return text end -- Get the requested sections from the given wikitext. -- @param text Required. Wikitext to parse. -- @param flags Range of sections to return, for example 2 or '1,3-5'. Omit to return all sections. -- @return Sequence of strings containing the wikitext of the requested sections. -- @return Original wikitext minus requested sections. local function getSections(text, flags) local sections = {} local flags, blacklist = parseFlags(flags) local count = 0 local prefix, section, suffix for title in string.gmatch('\n' .. text .. '\n==', '\n==+%s*([^=]+)%s*==+') do count = count + 1 prefix, section, suffix = string.match('\n' .. text .. '\n==', '\n()==+%s*' .. escapeString(title) .. '%s*==+(.-)()\n==') if not blacklist and ( not flags or flags[count] or matchFlag(title, flags) ) or blacklist and flags and not flags[count] and not matchFlag(title, flags) then sections[title] = section else text = string.sub(text, 1, prefix) .. string.sub(text, suffix) text = string.gsub(text, '\n?==$', '') -- remove the trailing \n== end end return sections, text end -- Get the requested section or <section> tag from the given wikitext (including subsections). -- @param text Required. Wikitext to parse. -- @param section Required. Title of the section to get (in wikitext), for example 'History' or 'History of [[Athens]]'. -- @return Wikitext of the requested section. local function getSection(text, section) section = mw.text.trim(section) local escapedSection = escapeString(section) -- First check if the section title matches a <section> tag if string.find(text, '<%s*[Ss]ection%s+begin%s*=%s*["\']?%s*' .. escapedSection .. '%s*["\']?%s*/>') then -- avoid expensive search if possible text = mw.text.trim((text :gsub('<%s*[Ss]ection%s+end=%s*["\']?%s*'.. escapedSection ..'%s*["\']?%s*/>.-<%s*[Ss]ection%s+begin%s*=%s*["\']?%s*' .. escapedSection .. '%s*["\']?%s*/>', '') -- remove text between section tags :gsub('^.-<%s*[Ss]ection%s+begin%s*=%s*["\']?%s*' .. escapedSection .. '%s*["\']?%s*/>', '') -- remove text before first section tag :gsub('<%s*[Ss]ection%s+end=%s*["\']?%s*'.. escapedSection ..'%s*["\']?%s*/>.*', '') -- remove text after last section tag )) if text == '' then return throwError('section-tag-empty', section) end return text end local level, text = string.match('\n' .. text .. '\n', '\n(==+)%s*' .. escapedSection .. '%s*==.-\n(.*)') if not text then return throwError('section-not-found', section) end local nextSection = '\n==' .. string.rep('=?', #level - 2) .. '[^=].*' text = string.gsub(text, nextSection, '') -- remove later sections with headings at this level or higher text = mw.text.trim(text) if text == '' then return throwError('section-empty', section) end return text end -- Replace the first call to each reference defined outside of the text for the full reference, to prevent undefined references -- Then prefix the page title to the reference names to prevent conflicts -- that is, replace <ref name="Foo"> for <ref name="Title of the article Foo"> -- and also <ref name="Foo" /> for <ref name="Title of the article Foo" /> -- also remove reference groups: <ref name="Foo" group="Bar"> for <ref name="Title of the article Foo"> -- and <ref group="Bar"> for <ref> -- @todo The current regex may fail in cases with both kinds of quotes, like <ref name="Darwin's book"> local function fixReferences(text, page, full) if not full then full = getText(page) end local refNames = {} local refName local refBody local position = 1 while position < mw.ustring.len(text) do refName, position = mw.ustring.match(text, '<%s*[Rr][Ee][Ff][^>]*name%s*=%s*["\']?([^"\'>]+)["\']?[^>]*/%s*>()', position) if refName then refName = mw.text.trim(refName) if not refNames[refName] then -- make sure we process each ref name only once table.insert(refNames, refName) refName = escapeString(refName) refBody = mw.ustring.match(text, '<%s*[Rr][Ee][Ff][^>]*name%s*=%s*["\']?%s*' .. refName .. '%s*["\']?[^>/]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>') if not refBody then -- the ref body is not in the excerpt refBody = mw.ustring.match(full, '<%s*[Rr][Ee][Ff][^>]*name%s*=%s*["\']?%s*' .. refName .. '%s*["\']?[^/>]*>.-<%s*/%s*[Rr][Ee][Ff]%s*>') if refBody then -- the ref body was found elsewhere text = mw.ustring.gsub(text, '<%s*[Rr][Ee][Ff][^>]*name%s*=%s*["\']?%s*' .. refName .. '%s*["\']?[^>]*/?%s*>', mw.ustring.gsub(refBody, '%%', '%%%%'), 1) end end end else position = mw.ustring.len(text) end end page = string.gsub(page, '"', '') -- remove any quotation marks from the page title text = mw.ustring.gsub(text, '<%s*[Rr][Ee][Ff][^>]*name%s*=%s*["\']?([^"\'>/]+)["\']?[^>/]*(/?)%s*>', '<ref name="' .. page .. ' %1"%2>') text = mw.ustring.gsub(text, '<%s*[Rr][Ee][Ff]%s*group%s*=%s*["\']?[^"\'>/]+["\']%s*>', '<ref>') return text end -- Replace the bold title or synonym near the start of the page by a link to the page local function linkBold(text, page) local lang = mw.language.getContentLanguage() local position = mw.ustring.find(text, "'''" .. lang:ucfirst(page) .. "'''", 1, true) -- look for "'''Foo''' is..." (uc) or "A '''foo''' is..." (lc) or mw.ustring.find(text, "'''" .. lang:lcfirst(page) .. "'''", 1, true) -- plain search: special characters in page represent themselves if position then local length = mw.ustring.len(page) text = mw.ustring.sub(text, 1, position + 2) .. "[[" .. mw.ustring.sub(text, position + 3, position + length + 2) .. "]]" .. mw.ustring.sub(text, position + length + 3, -1) -- link it else -- look for anything unlinked in bold, assumed to be a synonym of the title (e.g. a person's birth name) text = mw.ustring.gsub(text, "()'''(.-'*)'''", function(a, b) if not mw.ustring.find(b, "%[") and not mw.ustring.find(b, "%{") then -- if not wikilinked or some weird template return "'''[[" .. page .. "|" .. b .. "]]'''" -- replace '''Foo''' by '''[[page|Foo]]''' else return nil -- instruct gsub to make no change end end, 1) -- "end" here terminates the anonymous replacement function(a, b) passed to gsub end return text end -- Remove non-free files. -- @param text Required. Wikitext to clean. -- @return Clean wikitext. local function removeNonFreeFiles(text) local fileNamespaces = getNamespaces('File') local fileName local fileDescription local frame = mw.getCurrentFrame() for file in string.gmatch(text, '%b[]') do if matchAnyLink(file, fileNamespaces) then fileName = 'File:' .. string.match(file, '%[%[[^:]-:([^]|]+)') fileDescription, fileName = getText(fileName) if fileName then if not fileDescription or fileDescription == '' then fileDescription = frame:preprocess('{{' .. fileName .. '}}') -- try Commons end if fileDescription and string.match(fileDescription, '[Nn]on%-free') then text = removeString(text, file) end end end end return text end -- Remove any self links local function removeSelfLinks(text) local lang = mw.language.getContentLanguage() local page = escapeString(mw.title.getCurrentTitle().prefixedText) local ucpage = lang:ucfirst(page) local lcpage = lang:lcfirst(page) text = text :gsub('%[%[(' .. ucpage .. ')%]%]', '%1') :gsub('%[%[(' .. lcpage .. ')%]%]', '%1') :gsub('%[%[' .. ucpage .. '|([^]]+)%]%]', '%1') :gsub('%[%[' .. lcpage .. '|([^]]+)%]%]', '%1') return text end -- Remove all wikilinks local function removeLinks(text) text = text :gsub('%[%[[^%]|]+|([^]]+)%]%]', '%1') :gsub('%[%[([^]]+)%]%]', '%1') :gsub('%[[^ ]+ ([^]]+)%]', '%1') :gsub('%[([^]]+)%]', '%1') return text end -- Remove HTML comments local function removeComments(text) text = string.gsub(text, '<!%-%-.-%-%->', '') return text end -- Remove behavior switches, such as __NOTOC__ local function removeBehaviorSwitches(text) text = string.gsub(text, '__[A-Z]+__', '') return text end -- Remove bold text local function removeBold(text) text = string.gsub(text, "'''", '') return text end -- Main function for modules local function get(page, options) if not options then options = {} end -- Make sure the page exists if not page then return throwError('no-page') end page = mw.text.trim(page) page = mw.text.decode(page) if page == '' then return throwError('no-page') end local page, hash, section = string.match(page, '([^#]+)(#?)(.*)') local text, temp = getText(page, options.noFollow) if not temp then return throwError('invalid-title', page) end page = temp if not text then return throwError('page-not-found', page) end local full = text -- save the full text for fixReferences below -- Get the requested section if truthy(section) then text = getSection(text, section) elseif truthy(hash) then text = getLead(text) end -- Keep only the requested elements local elements if options.only then if options.only == 'sections' then elements = getSections(text, options.sections) end if options.only == 'lists' then elements = getLists(text, options.lists) end if options.only == 'files' then elements = getFiles(text, options.files) end if options.only == 'tables' then elements = getTables(text, options.tables) end if options.only == 'templates' then elements = getTemplates(text, options.templates) end if options.only == 'parameters' then elements = getParameters(text, options.parameters) end if options.only == 'paragraphs' then elements = getParagraphs(text, options.paragraphs) end if options.only == 'categories' then elements = getCategories(text, options.categories) end if options.only == 'references' then elements = getReferences(text, options.references) end text = '' if elements then for key, element in pairs(elements) do text = text .. '\n' .. element .. '\n' end end end -- Filter the requested elements if options.sections and options.only ~= 'sections' then elements, text = getSections(text, options.sections) end if options.lists and options.only ~= 'lists' then elements, text = getLists(text, options.lists) end if options.files and options.only ~= 'files' then elements, text = getFiles(text, options.files) end if options.tables and options.only ~= 'tables' then elements, text = getTables(text, options.tables) end if options.templates and options.only ~= 'templates' then elements, text = getTemplates(text, options.templates) end if options.parameters and options.only ~= 'parameters' then elements, text = getParameters(text, options.parameters) end if options.paragraphs and options.only ~= 'paragraphs' then elements, text = getParagraphs(text, options.paragraphs) end if options.categories and options.only ~= 'categories' then elements, text = getCategories(text, options.categories) end if options.references and options.only ~= 'references' then elements, text = getReferences(text, options.references) end -- Misc options if truthy(options.fixReferences) then text = fixReferences(text, page, full) end if truthy(options.linkBold) and not truthy(section) then text = linkBold(text, page) end if truthy(options.noBold) then text = removeBold(text) end if truthy(options.noLinks) then text = removeLinks(text) end if truthy(options.noSelfLinks) then text = removeSelfLinks(text) end if truthy(options.noNonFreeFiles) then text = removeNonFreeFiles(text) end if truthy(options.noBehaviorSwitches) then text = removeBehaviorSwitches(text) end if truthy(options.noComments) then text = removeComments(text) end -- Remove multiple newlines left over from removing elements text = string.gsub(text, '\n\n\n+', '\n\n') text = mw.text.trim(text) return text end -- Main invocation function for templates local function main(frame) local args = parseArgs(frame) local page = args[1] local ok, text = pcall(get, page, args) if not ok then return getError(text) end local raw = args['raw'] if raw then return text end return frame:preprocess(text) end -- Entry points for templates function p.main(frame) return main(frame) end -- Entry points for modules function p.get(page, options) return get(page, options) end function p.getText(page, noFollow) return getText(page, noFollow) end function p.getLead(text) return getLead(text) end function p.getSection(text, section) return getSection(text, section) end function p.getSections(text, flags) return getSections(text, flags) end function p.getParagraphs(text, flags) return getParagraphs(text, flags) end function p.getParameters(text, flags) return getParameters(text, flags) end function p.getCategories(text, flags) return getCategories(text, flags) end function p.getReferences(text, flags) return getReferences(text, flags) end function p.getTemplates(text, flags) return getTemplates(text, flags) end function p.getTables(text, flags) return getTables(text, flags) end function p.getLists(text, flags) return getLists(text, flags) end function p.getFiles(text, flags) return getFiles(text, flags) end function p.getError(message, value) return getError(message, value) end -- Expose handy methods function p.truthy(value) return truthy(value) end function p.parseArgs(frame) return parseArgs(frame) end function p.matchAny(text, pre, list, post, init) return matchAny(text, pre, list, post, init) end function p.matchFlag(value, flags) return matchFlag(value, flags) end function p.getNamespaces(name) return getNamespaces(name) end function p.removeBold(text) return removeBold(text) end function p.removeLinks(text) return removeLinks(text) end function p.removeSelfLinks(text) return removeSelfLinks(text) end function p.removeNonFreeFiles(text) return removeNonFreeFiles(text) end function p.removeBehaviorSwitches(text) return removeBehaviorSwitches(text) end function p.removeComments(text) return removeComments(text) end return p r793wtg8xbakh0ufb53jtpua6gklh85