Wikipedia gvwiki https://gv.wikipedia.org/wiki/Ard-ghuillag MediaWiki 1.47.0-wmf.24 first-letter Meanyn Er lheh Resooney Ymmydeyr Resooney ymmydeyr Wikipedia Resooney Wikipedia Coadan Resooney coadan MediaWiki Resooney MediaWiki Clowan Resooney clowan Cooney Resooney cooney Ronney Resooney ronney TimedText TimedText talk Module Module talk Event Event talk Yn Egypt 0 1876 394599 394447 2026-10-17T02:10:11Z MacTire02 219 -- 394599 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght Arabagh yn Egypt |ennym_foddey_cadjincliaghtagh= {{Lang|ar|جمهورية مصر العربية}} {{small|([[Arabish]])}}<br/>{{small|{{transliteration|ar|{{not a typo|G}}<!--DON'T CHANGE G TO J, SEE [[MOS:AR]] -->umhūriyyat Miṣr al-ʻArabiyyah}}}} |ennym_gienneydagh = yn Egypt |jalloo_brattagh = Flag of Egypt.svg |jalloo_cleinney = Coat of arms of Egypt.svg |jalloo_caslys = EGY_orthographic.svg |jarroo-raa = none |arrane_ashoonagh = [[Biladi, Biladi, Biladi|بلادي، بلادي، بلادي]] |tessen-lettyraghey_arrane_ashoonagh = Biladi, Biladi, Biladi |çhyndaa_arrane_ashoonagh = My heer, my heer, my heer |çhengey_arrane_ashoonagh = Arabish |arrane_reeoil = |çhengaghyn_oikoil = [[Arabish]] |sorçh_çhengaghyn = [[Çhengey ashoonagh]] |çhengaghyn = [[Arabish yn Egypt]] |preeu-valley = [[Cairo]] |latd=30 |latm=02 |latNS=N |longd=31 |longm=13 |longEW=E |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] unnaneagh fo reiltys [[smaghtys|smaghtagh]]<ref name="Truex & Tavana 2019">{{cite journal |last1=Truex |first1=Rory |last2=Tavana |first2=Daniel L. |title=Implicit Attitudes toward an Authoritarian Regime |journal=The Journal of Politics |date=Jerrey Souree 2019 |volume=81 |issue=3 |pages=1014–1027 |doi=10.1086/703209 }}</ref><ref name="foreignpolicy">{{Cite web |url=https://foreignpolicy.com/2015/05/22/egypts-sisi-is-getting-pretty-good-at-being-a-dictator/ |title=Egypt's Sisi Is Getting Pretty Good ... at Being a Dictator |last1=Cambanis |first1=Thanassis |date=22 Boaldyn 2015 |website=Foreign Policy |access-date=25 Jerrey Souree 2017 |archive-date=10 Toshiaght Arree 2021 |archive-url=https://web.archive.org/web/20210210231855/https://foreignpolicy.com/2015/05/22/egypts-sisi-is-getting-pretty-good-at-being-a-dictator/ |url-status=live }}</ref><ref name=":1">{{Cite web|title=Egypt: A Move to Enhance Authoritarian Rule|url=https://www.hrw.org/news/2019/02/12/egypt-move-enhance-authoritarian-rule|date=2019|website=Human Rights Watch|access-date=4 Jerrey Geuree 2024|archive-date=13 Jerrey Souree 2019|archive-url=https://web.archive.org/web/20190713152806/https://www.hrw.org/news/2019/02/12/egypt-move-enhance-authoritarian-rule|url-status=live}}</ref><ref>{{Cite news|date=9 Jerrey Souree 2020|access-date=22 Mee Houney 2022|title=Egypt tries to silence its critics in the United States by jailing their relatives|newspaper=The Washington Post|first=Sudarsan|last=Raghavan|url=https://www.washingtonpost.com/world/middle_east/egypt-tries-to-silence-its-critics-in-the-united-states-by-jailing-their-relatives/2020/07/08/c93a809e-c053-11ea-864a-0dd31b9d6917_story.html|archive-date=9 Jerrey Geuree 2021|archive-url=https://web.archive.org/web/20210109023939/https://www.washingtonpost.com/world/middle_east/egypt-tries-to-silence-its-critics-in-the-united-states-by-jailing-their-relatives/2020/07/08/c93a809e-c053-11ea-864a-0dd31b9d6917_story.html|url-status=live}}</ref><ref>{{Cite web|last=Al-Arian|first=Abdullah|date=27 Toshiaght Arree 2020|title=Hosni Mubarak's legacy is Abdel Fattah el-Sisi|url=https://www.aljazeera.com/opinions/2020/2/27/hosni-mubaraks-legacy-is-abdel-fattah-el-sisi|url-status=live|access-date=2 Mee Houney 2021|website=Al Jazeera|language=en|archive-url = https://web.archive.org/web/20201019213139/https://www.aljazeera.com/opinions/2020/2/27/hosni-mubaraks-legacy-is-abdel-fattah-el-sisi/ |archive-date = 19 Jerrey Fouyir 2020 }}</ref> |ushtey_sy_cheead = 0.632 |blein_LTS_CCK = 2007 |LTS_CCK = $403.961 billoon |LTS_CCK_yn_dooinney = $5,491 |sorçh_kiondeeaght = [[Shennaghys yn Egypt|Bunneeaght]] |note_kiondeeaght = |taghyrt_bunneeaght1 = [[Fogrey Magh Un-heuagh er Neuchrogheydys yn Egypt|Neuchrogheydys fogrit]] |date_bunneeaght1 = 28 Toshiaght Arree 1922 |taghyrt_bunneeaght2 = [[Bun-chaghlaa yn Egypt, 1952|Bun-chaghlaa 1952]] |date_bunneeaght2 = 23 Jerrey Souree 1952 |taghyrt_bunneeaght3 = [[Fogrey Magh y Phobblaght]] |date_bunneeaght3 = 18 Mean Souree 1953 |taghyrt_bunneeaght4 = [[Bunraght yn Egypt|Bunraght roie]] |date_bunneeaght4 = 18 Jerrey Geuree 2014 |traa_ynnydagh = [[Traa ynnydagh yn Oarpey Hiar|EET]] |ashchur_utc = +02:00 |traa_ynnydagh_TTLS = [[Traa souree yn Oarpey Hiar|EEST]] |ashchur_utc_TTLS = +03:00 |cctld = [[.eg]] |coad_çhellvane = 20 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Egypt''' ny '''Eajipt'''. T'ee çhemmit liorish [[Yn Leeb|y Leeb]] da'n sheear, [[Yn Toodaan|y Toodaan]] da'n jiass, [[Israel]] as [[Yn Vooir Ruy|y Vooir Ruy]] da'n shiar, as [[Yn Veanvooir|y Veanvooir]] da'n twoaie. She [[Cairo]] [[preeu-valley]] ny çheerey. T'ee nane jeh bun-olteynyn [[Yn Commeeys Arabagh|y Chommeeys Arabagh]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Yn Aishey}} {{Yn Commeeys Arabagh}} {{gurneil eaghtyrys}} {{bun}} {{DEFAULTSORT:Egypt, Yn}} [[Ronney:Yn Egypt| ]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Aishey]] [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn yn Aishey Heear]] [[Ronney:Ard hiar y Veanvooir]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Pobblaghtyn Arabagh]] [[Ronney:Ashoonyn BRICS]] [[Ronney:Çheeraghyn-oltey D-8]] [[Ronney:Çheeraghyn y G15]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey yn Chommeeys Arabagh]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey Unnaneys y Veanvooir]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1922]] [[Ronney:Bunneeaghtyn 'syn Egypt 'sy vlein 1922|*]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1922]] [[Ronney:Bunneeaghtyn 'syn Aishey 'sy vlein 1922]] {{Coord|26|N|30|E|dim:1000km_type:country_region:EG|format=dms|display=title}} tfkot30ffkqrhm4f5gyxvfqwszcxeml Yn Toodaan 0 2830 394585 358044 2026-10-17T01:21:51Z MacTire02 219 ++ 394585 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan |ennym_foddey_cadjincliaghtagh= {{lang|ar|جمهورية السودان}} {{small|([[Arabish]])}}<br />{{small|{{transliteration|ar|Jumhūriyyat as-Sūdān}}}} |ennym_gienneydagh = y Toodaan |jalloo_brattagh = Flag of Sudan.svg |jalloo_cleinney = Emblem of Sudan.svg |sorçh_cowrey = Cowrey |jalloo_caslys = Sudan (orthographic projection) highlighted.svg |jarroo-raa = {{lang|ar|النصر لنا}} |tessen-lettyraghey_jarroo-raa= {{transliteration|ar|an-Naṣr lanā}} |çhyndaa_jarroo-raa = Ta'n Varriaght Lhien |çhengey_jarroo-raa = Arabish |arrane_ashoonagh = {{lang|ar|[[Nahnu Jund Allah Jund Al-watan|نحن جند اللّٰه، جند الوطن]]}} |tessen-lettyraghey_arrane_ashoonagh={{transliteration|ar|Naḥnu jund Allah, jund al-waṭan}} |çhyndaa_arrane_ashoonagh = She Sidooryn Jee Shinyn, Sidooryn y Çheer Ghooie |coadan_arrane_ashoonagh = Sudanese national anthem, performed by the U.S. Navy Band (instrumental).oga |çhengey_arrane_ashoonagh = Arabish "Shinyn Sidooryn [[Jee 'syn Islam|Jee]], Sidooryn y Çheer Dooie" |arrane_reeoil = |çhengaghyn_oikoil = {{hlist|[[Arabish Chadjinit Noa-emshiragh|Arabish]]|[[Baarle]]}} |preeu-valley = [[Khartoum]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght chonastagh]] fo[[hoontey caggee]]<ref>{{cite news |last1=Gavin |first1=Michelle |title=Junta and Public at Odds in Sudan |url=https://www.cfr.org/blog/junta-and-public-odds-sudan |access-date=20 Mayrnt 2023 |work=[[Council on Foreign Relations]] |date=8 Averil 2022}}</ref><ref>{{cite news |last1=Jeffrey |first1=Jack |title=Analysis: Year post-coup, cracks in Sudan's military junta |url=https://apnews.com/article/middle-east-africa-cairo-sudan-democracy-2b87ee19685ec2667ac05acff8b4ed9e |access-date=20 Mayrnt 2023 |work=[[Associated Press]] |date=23 Jerrey Fouyir 2022 |location=[[Cairo|Cairo, yn Egypt]]}}</ref> |sorçh_kiondeeaght = [[Shennaghys y Toodaan|Crooaght]] |taghyrt_bunneeaght1 = [[Cultoor Kerma|Reeriaght Kerma]] |date_bunneeaght1 = 2500 BC |taghyrt_bunneeaght2 = [[Reeriaght Kush]] |date_bunneeaght2 = 780 BC |taghyrt_bunneeaght3 = [[Yn Toodaan Turk-Egyptagh|Y Toodaan Turk-Egyptagh]] |date_bunneeaght3 = 1820 |taghyrt_bunneeaght4 = [[Yn Steat Mahdiyagh|Y Steat Mahdiyagh]] |date_bunneeaght4 = 1885 |taghyrt_bunneeaght5 = [[Yn Toodaan Anglo-Egyptagh|Y Co-hiarnys Anglo-Egyptagh]] |date_bunneeaght5 = 1899 |taghyrt_bunneeaght6 = [[Pobblaght y Toodaan (1956–1969)|Neuchrogheydys]] |date_bunneeaght6 = 1 Jerrey Geuree 1956 |taghyrt_bunneeaght7 = [[Pobblaght Gheynlagh y Toodaan]] |date_bunneeaght7 = 25 Boaldyn 1969 |taghyrt_bunneeaght8 = [[Pobblaght y Toodaan (1985–2019)]] |date_bunneeaght8 = 6 April 1985 |taghyrt_bunneeaght9 = Scarrey yn [[Yn Toodaan Yiass|Toodaan Yiass]] |date_bunneeaght9 = 9 Jerrey Souree 2011 |traa_ynnydagh = [[Traa yn Affrick Hiar]] |ashchur_utc = +03:00 |cctld = [[.sd]] |coad_çhellvane = 249 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan'''. T'ee çhemmit liorish [[yn Egypt]] da'n twoaie, liorish [[yn Leeb|y Leeb]] da'n sheear hwoaie, liorish [[Shad]] da'n sheear, liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear yiass, liorish [[Yn Toodaan Yiass|y Toodaan Yiass]] da'n jiass, liorish [[yn Eetoip]] da'n shiar yiass as liorish [[Eritrea]] da'n shiar. She [[Khartoum]] y [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Yn Commeeys Arabagh}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan, Yn}} {{bun}} [[Ronney:Yn Toodaan| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1956]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Pobblaghtyn conastagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey yn Chommeeys Arabagh]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Jaghteyraghtyn caggee]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1956]] {{coord|15|N|032|E|region:SD_type:country|display=title}} 82asnq5iewy8lybkc2c846szcied28p 394586 394585 2026-10-17T01:25:06Z MacTire02 219 baarney 394586 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan |ennym_foddey_cadjincliaghtagh= {{lang|ar|جمهورية السودان}} {{small|([[Arabish]])}}<br />{{small|{{transliteration|ar|Jumhūriyyat as-Sūdān}}}} |ennym_gienneydagh = y Toodaan |jalloo_brattagh = Flag of Sudan.svg |jalloo_cleinney = Emblem of Sudan.svg |sorçh_cowrey = Cowrey |jalloo_caslys = Sudan (orthographic projection) highlighted.svg |jarroo-raa = {{lang|ar|النصر لنا}} |tessen-lettyraghey_jarroo-raa= {{transliteration|ar|an-Naṣr lanā}} |çhyndaa_jarroo-raa = Ta'n Varriaght Lhien |çhengey_jarroo-raa = Arabish |arrane_ashoonagh = {{lang|ar|[[Nahnu Jund Allah Jund Al-watan|نحن جند اللّٰه، جند الوطن]]}} |tessen-lettyraghey_arrane_ashoonagh={{transliteration|ar|Naḥnu jund Allah, jund al-waṭan}} |çhyndaa_arrane_ashoonagh = She Sidooryn Jee Shinyn, Sidooryn y Çheer Ghooie |coadan_arrane_ashoonagh = Sudanese national anthem, performed by the U.S. Navy Band (instrumental).oga |çhengey_arrane_ashoonagh = Arabish "Shinyn Sidooryn [[Jee 'syn Islam|Jee]], Sidooryn y Çheer Dooie" |arrane_reeoil = |çhengaghyn_oikoil = {{hlist|[[Arabish Chadjinit Noa-emshiragh|Arabish]]|[[Baarle]]}} |preeu-valley = [[Khartoum]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght chonastagh]] fo [[hoontey caggee]]<ref>{{cite news |last1=Gavin |first1=Michelle |title=Junta and Public at Odds in Sudan |url=https://www.cfr.org/blog/junta-and-public-odds-sudan |access-date=20 Mayrnt 2023 |work=[[Council on Foreign Relations]] |date=8 Averil 2022}}</ref><ref>{{cite news |last1=Jeffrey |first1=Jack |title=Analysis: Year post-coup, cracks in Sudan's military junta |url=https://apnews.com/article/middle-east-africa-cairo-sudan-democracy-2b87ee19685ec2667ac05acff8b4ed9e |access-date=20 Mayrnt 2023 |work=[[Associated Press]] |date=23 Jerrey Fouyir 2022 |location=[[Cairo|Cairo, yn Egypt]]}}</ref> |sorçh_kiondeeaght = [[Shennaghys y Toodaan|Crooaght]] |taghyrt_bunneeaght1 = [[Cultoor Kerma|Reeriaght Kerma]] |date_bunneeaght1 = 2500 BC |taghyrt_bunneeaght2 = [[Reeriaght Kush]] |date_bunneeaght2 = 780 BC |taghyrt_bunneeaght3 = [[Yn Toodaan Turk-Egyptagh|Y Toodaan Turk-Egyptagh]] |date_bunneeaght3 = 1820 |taghyrt_bunneeaght4 = [[Yn Steat Mahdiyagh|Y Steat Mahdiyagh]] |date_bunneeaght4 = 1885 |taghyrt_bunneeaght5 = [[Yn Toodaan Anglo-Egyptagh|Y Co-hiarnys Anglo-Egyptagh]] |date_bunneeaght5 = 1899 |taghyrt_bunneeaght6 = [[Pobblaght y Toodaan (1956–1969)|Neuchrogheydys]] |date_bunneeaght6 = 1 Jerrey Geuree 1956 |taghyrt_bunneeaght7 = [[Pobblaght Gheynlagh y Toodaan]] |date_bunneeaght7 = 25 Boaldyn 1969 |taghyrt_bunneeaght8 = [[Pobblaght y Toodaan (1985–2019)]] |date_bunneeaght8 = 6 April 1985 |taghyrt_bunneeaght9 = Scarrey yn [[Yn Toodaan Yiass|Toodaan Yiass]] |date_bunneeaght9 = 9 Jerrey Souree 2011 |traa_ynnydagh = [[Traa yn Affrick Hiar]] |ashchur_utc = +03:00 |cctld = [[.sd]] |coad_çhellvane = 249 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan'''. T'ee çhemmit liorish [[yn Egypt]] da'n twoaie, liorish [[yn Leeb|y Leeb]] da'n sheear hwoaie, liorish [[Shad]] da'n sheear, liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear yiass, liorish [[Yn Toodaan Yiass|y Toodaan Yiass]] da'n jiass, liorish [[yn Eetoip]] da'n shiar yiass as liorish [[Eritrea]] da'n shiar. She [[Khartoum]] y [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Yn Commeeys Arabagh}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan, Yn}} {{bun}} [[Ronney:Yn Toodaan| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1956]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Pobblaghtyn conastagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey yn Chommeeys Arabagh]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Jaghteyraghtyn caggee]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1956]] {{coord|15|N|032|E|region:SD_type:country|display=title}} ra0a3d55t6huaa78zfdemcxridgdtma 394587 394586 2026-10-17T01:25:40Z MacTire02 219 lettyryn 394587 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan |ennym_foddey_cadjincliaghtagh= {{lang|ar|جمهورية السودان}} {{small|([[Arabish]])}}<br />{{small|{{transliteration|ar|Jumhūriyyat as-Sūdān}}}} |ennym_gienneydagh = y Toodaan |jalloo_brattagh = Flag of Sudan.svg |jalloo_cleinney = Emblem of Sudan.svg |sorçh_cowrey = Cowrey |jalloo_caslys = Sudan (orthographic projection) highlighted.svg |jarroo-raa = {{lang|ar|النصر لنا}} |tessen-lettyraghey_jarroo-raa= {{transliteration|ar|an-Naṣr lanā}} |çhyndaa_jarroo-raa = Ta'n Varriaght Lhien |çhengey_jarroo-raa = Arabish |arrane_ashoonagh = {{lang|ar|[[Nahnu Jund Allah Jund Al-watan|نحن جند اللّٰه، جند الوطن]]}} |tessen-lettyraghey_arrane_ashoonagh={{transliteration|ar|Naḥnu jund Allah, jund al-waṭan}} |çhyndaa_arrane_ashoonagh = She Sidooryn Jee Shinyn, Sidooryn y Çheer Ghooie |coadan_arrane_ashoonagh = Sudanese national anthem, performed by the U.S. Navy Band (instrumental).oga |çhengey_arrane_ashoonagh = Arabish "Shinyn Sidooryn [[Jee 'syn Islam|Jee]], Sidooryn y Çheer Dooie" |arrane_reeoil = |çhengaghyn_oikoil = {{hlist|[[Arabish Chadjinit Noa-emshiragh|Arabish]]|[[Baarle]]}} |preeu-valley = [[Khartoum]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght chonastagh]] fo [[hoontey caggee]]<ref>{{cite news |last1=Gavin |first1=Michelle |title=Junta and Public at Odds in Sudan |url=https://www.cfr.org/blog/junta-and-public-odds-sudan |access-date=20 Mayrnt 2023 |work=[[Council on Foreign Relations]] |date=8 Averil 2022}}</ref><ref>{{cite news |last1=Jeffrey |first1=Jack |title=Analysis: Year post-coup, cracks in Sudan's military junta |url=https://apnews.com/article/middle-east-africa-cairo-sudan-democracy-2b87ee19685ec2667ac05acff8b4ed9e |access-date=20 Mayrnt 2023 |work=[[Associated Press]] |date=23 Jerrey Fouyir 2022 |location=[[Cairo|Cairo, yn Egypt]]}}</ref> |sorçh_kiondeeaght = [[Shennaghys y Toodaan|Crooaght]] |taghyrt_bunneeaght1 = [[Cultoor Kerma|Reeriaght Kerma]] |date_bunneeaght1 = 2500 BC |taghyrt_bunneeaght2 = [[Reeriaght Kush]] |date_bunneeaght2 = 780 BC |taghyrt_bunneeaght3 = [[Yn Toodaan Turk-Egyptagh|Y Toodaan Turk-Egyptagh]] |date_bunneeaght3 = 1820 |taghyrt_bunneeaght4 = [[Yn Steat Mahdiyagh|Y Steat Mahdiyagh]] |date_bunneeaght4 = 1885 |taghyrt_bunneeaght5 = [[Yn Toodaan Anglo-Egyptagh|Y Co-hiarnys Anglo-Egyptagh]] |date_bunneeaght5 = 1899 |taghyrt_bunneeaght6 = [[Pobblaght y Toodaan (1956–1969)|Neuchrogheydys]] |date_bunneeaght6 = 1 Jerrey Geuree 1956 |taghyrt_bunneeaght7 = [[Pobblaght Gheynlagh y Toodaan]] |date_bunneeaght7 = 25 Boaldyn 1969 |taghyrt_bunneeaght8 = [[Pobblaght y Toodaan (1985–2019)]] |date_bunneeaght8 = 6 April 1985 |taghyrt_bunneeaght9 = Scarrey yn [[Yn Toodaan Yiass|Toodaan Yiass]] |date_bunneeaght9 = 9 Jerrey Souree 2011 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |cctld = [[.sd]] |coad_çhellvane = 249 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan'''. T'ee çhemmit liorish [[yn Egypt]] da'n twoaie, liorish [[yn Leeb|y Leeb]] da'n sheear hwoaie, liorish [[Shad]] da'n sheear, liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear yiass, liorish [[Yn Toodaan Yiass|y Toodaan Yiass]] da'n jiass, liorish [[yn Eetoip]] da'n shiar yiass as liorish [[Eritrea]] da'n shiar. She [[Khartoum]] y [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Yn Commeeys Arabagh}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan, Yn}} {{bun}} [[Ronney:Yn Toodaan| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1956]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Pobblaghtyn conastagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey yn Chommeeys Arabagh]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Jaghteyraghtyn caggee]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1956]] {{coord|15|N|032|E|region:SD_type:country|display=title}} 9z9zl8gkozmw74fmq961grybar58cm5 Yn Tomaal 0 2837 394578 358053 2026-10-16T18:18:25Z MacTire02 219 ++ 394578 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght Chonastagh y Tomaal |ennym_foddey_cadjincliaghtagh= {{lang|so|Jamhuuriyadda Federaalka Soomaaliya|italics=no}} {{small|([[Somaalish]])}}<br />{{lang|ar|جمهورية الصومال الفيدرالية}} {{small|([[Arabish]])}}<br />{{small|{{tessen-lettyraghey|ar|Jumhūriyah aṣ-Ṣūmāl al-Fīdirāliyah}}}} |ennym_gienneydagh = y Tomaal |jalloo_brattagh = Flag of Somalia.svg |jalloo_cleinney = Coat of arms of Somalia.svg |jalloo_caslys = Somalia (orthographic projection)2.svg |jarroo-raa = none |arrane_ashoonagh = {{lang|so|[[Qolobaa Calankeed]]|italics=no}} |çhyndaa_arrane_ashoonagh = Ta Brattagh ec Dagh Ashoon |coadan_arrane_ashoonagh = Somalian national anthem, performed by the United States Navy Band.oga |çhengey_arrane_ashoonagh = Somaalish |çhengaghyn_oikoil = [[Somaalish]] |çhengaghyn = [[Arabish]] |sorçh_çhengaghyn = Nah hengey |craueeaght = [[Yn Islam Sunni]] ([[Craueeaght steat|oikoil]])<ref name="factbook">{{cite web |title=Somalia |url=https://www.cia.gov/the-world-factbook/countries/somalia |website=The World Factbook |publisher=Central Intelligence Agency |language=en |date=10 Mee Houney 2021 |access-date=24 Jerrey Geuree 2021 |archive-date=25 Jerrey Geuree 2021 |archive-url=https://web.archive.org/web/20210125103534/https://www.cia.gov/the-world-factbook/countries/somalia/ }}</ref>{{efn|Rere tuarastyl lesh y [[Pew Research Center]] 'sy vlein 2010 ({{harvnb|Pew Research Center|2012|p=49}}), she lhiantee yn [[Yn Islam 'sy Tomaal|Islam]] 99.8% jeh pobble y çheer.<ref name="Pew">{{cite web |last=Pew Research Center |year=2012 |title=The Global Religious Landscape |url=http://www.pewforum.org/files/2012/12/globalReligion-full.pdf |archive-url=https://web.archive.org/web/20130806002044/http://www.pewforum.org/files/2012/12/globalReligion-full.pdf |archive-date=6 Luanistyn 2013 |publisher=[[Pew Research Center]] |access-date=27 Mee ny Nollick 2013 |page=49}}</ref>}} |preeu-valley = [[Mogadishu]] |latd=2 |latm=02 |latNS=N |longd=45 |longm=21 |longEW=E |latNSgael=Hwoaie |longEWgael=Hiar |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh]] [[steat conastagh|chonastagh]] fo [[Bunraght y Tomaal|bunraght shallidagh]] |ushtey_sy_cheead = 1.6 |blein_LTS_CCK = 2007 |LTS_CCK = $5.575 billoon |LTS_CCK_yn_dooinney = $600 |sorçh_kiondeeaght = |note_kiondeeaght = |taghyrt_bunneeaght1 = [[Thalloo Punt]] |date_bunneeaght1 = 2350 RC |taghyrt_bunneeaght2 = [[Macrobia]] |date_bunneeaght2 = 980 RC |taghyrt_bunneeaght3 = [[Barbaria (ard)|Barbaria]] |date_bunneeaght3 = 100 RC |taghyrt_bunneeaght4 = [[Sultanaght Adal]] |date_bunneeaght4 = 9oo eash<ref name="Encyamer">{{cite book|title=Encyclopedia Americana|volume =25 |year=1965|publisher=Americana Corporation|page=255|url=https://books.google.com/books?id=OP5LAAAAMAAJ|access-date=20 Mean Souree 2015|archive-date=23 Jerrey Geuree 2023|archive-url=https://web.archive.org/web/20230123104929/https://books.google.com/books?id=OP5LAAAAMAAJ|url-status=live}}</ref><ref>{{Cite book |last=Lewis |first=I. M. |url=https://books.google.com/books?id=Cd0mAQAAMAAJ |title=Peoples of the Horn of Africa: Somali, Afar and Saho |date=1969 |publisher=International African Institute |page=140 |language=en}}</ref> |taghyrt_bunneeaght5 = [[Sultanaght Mogadishu]] |date_bunneeaght5 = 10oo eash |taghyrt_bunneeaght6 = [[Sultanaght Ifat]] |date_bunneeaght6 = 13oo eash |taghyrt_bunneeaght7 = [[Sultanaght Ajuran]] |date_bunneeaght7 = 13oo eash |taghyrt_bunneeaght8 = [[Yn Tomaalee Ghoaldagh|Y Tomaalee Ghoaldagh]] |date_bunneeaght8 = 1884–1960 |taghyrt_bunneeaght9 = [[Yn Tomaalee Iddaalagh|Y Tomaalee Ghoaldagh]] |date_bunneeaght9 = 1889–1941 |taghyrt_bunneeaght10 = [[Laa yn Neuchrogheydys (Steat y Tomaalee)|Neuchrogheydys]] y [[Steat y Tomaalee|Tomaalee Ghoaldagh]] |date_bunneeaght10 = 26 Mean Souree 1960 |taghyrt_bunneeaght11 = [[Laa yn Neuchrogheydys (y Tomaal)|Neuchrogheydys]] y [[Treisht-halloo yn Tomaalee|Tomaalee Iddaalagh]] |date_bunneeaght11 = 1 Jerrey Souree 1960 |taghyrt_bunneeaght12 = Co-unnaneyssey [[Pobblaght y Tomaal|Phobblaght y Tomaal]] |date_bunneeaght12 = 1 Jerrey Souree 1960 |taghyrt_bunneeaght13 = [[Bunraght y Tomaal|Bunraght roie]] |date_bunneeaght13 = 1 Luanistyn 2012 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |cctld = [[.so]] |coad_çhellvane = 252 }} She çheer ayns [[yn Affrick]] ee '''yn Tomaal'''. T'ee çhemmit liorish [[yn Eetoip]] da'n sheear, [[Djibouti]] da'n sheear hwoaie, as [[Yn Cheinney|y Cheinney]] da'n sheear yiass. She [[Mogadishu]] yn [[preeu-valley]]. ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Yn Commeeys Arabagh}} {{gurneil eaghtyrys}} {{bun}} {{DEFAULTSORT:Tomaal, Yn}} [[Ronney:Yn Tomaal| ]] [[Ronney:Bunneeaghtyn 'sy Tomaal 'sy vlein 1960]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Pobblaghtyn conastagh]] [[Ronney:Çheeraghyn Chayrn yn Affrick]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Chommeeys Arabagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] [[Ronney:Ardjyn rheynnit]] {{Coord|10|N|49|E|display=title}} bi59fjl5nxo4re7yx1njew5ykmrxup9 Yn Tenegaal 0 2843 394544 389493 2026-10-16T14:03:04Z MacTire02 219 ++ 394544 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Tenegaal |ennym_foddey_cadjincliaghtagh= {{lang|fr|République du Sénégal|italics=no}} {{small|([[Frangish]])}} |ennym_gienneydagh = y Tenegaal |jalloo_brattagh = Flag of Senegal.svg |jalloo_cleinney = Coat of arms of Senegal.svg |jalloo_caslys = Senegal_(orthographic_projection).svg |jarroo-raa = {{lang|fr|Un peuple, un but, une foi}} |jarroo-raa2 = {{lang|wo|Benn Askan, Benn Jubluwaay, Benn Pas-Pas}}<ref>{{cite web |title=Raaya ak bàkku Senegaal |trans-title=The flag and motto of Senegal |url=https://www.presidence.sn/wo/presidence/le-drapeau-et-la-devise-du-senegal |lang=wo |publisher=[[Eaghtyrane y Tenegaal|Eaghtyraneys y Tenegaal]]}}</ref> |imraa_jarroo-raa = |çhyndaa_jarroo-raa = Un Phobble, Un Dean, Un Chredjue |arrane_ashoonagh = {{lang|fr|[[Le Lion rouge]]|italics=no}} |çhyndaa_arrane_ashoonagh = Y Leion Ruy |coadan_arrane_ashoonagh = National Anthem of Senegal.ogg |çhengey_arrane_ashoonagh = Frangish |çhengaghyn_oikoil = [[Frangish]] |çhengaghyn = {{hlist|[[Wolofish]]{{Efn|name=WolofStatus|Ta fysseree veih Laare ny Studeyryssyn Affrickagh lesh Ollooscoill Pennsylvania gooley dy vel mysh 90% jeh pobble y Tenegaal toiggal ny loayrt y Wolofish myr y chied ny yn nah hengey oc.<ref>{{Cite web |title=African Studies Center{{!}} African Languages at Penn |url=https://www.africa.upenn.edu/afl/alwolof.htm |access-date=20 Mayrnt 2023 |website=Laare ny Studeyryssyn Affrickagh ec [[Ollooscoill Pennsylvania]] |archive-date=29 Jerrey Geuree 2023 |archive-url=https://web.archive.org/web/20230129152750/https://www.africa.upenn.edu/afl/alwolof.htm |url-status=live }}</ref>}}|[[Sererish]]|[[Diolish]]<ref>{{Cite book |last=Falola |first=Toyin |url=https://books.google.com/books?id=3fhADwAAQBAJ&dq=Arabic+Status+in+Senegal&pg=PT190 |title=Africanizing Knowledge: African Studies Across the Disciplines |date=30 Mee Houney 2017 |publisher=Routledge |isbn=978-1-351-32438-0 |pages=190 |language=en}}</ref>|[[Pulaarish]]|[[Soninkish]]|[[Mandinkish]]{{Efn|name=SenegalNationalLangs|Olt 1 jeh Bunraght y Tenegaal, ta genmyssey Diolish, Malinkish, Pulaarish, Sererish, Soninkish, as Wolofish myr ny çhengaghyn ashoonagh.<ref name="Languages">{{Cite web |title=Senegal's Constitution of 2001 with Amendments through 2016 |url=https://www.constituteproject.org/constitution/Senegal_2016.pdf?lang=en |website=Constitute Project |language=en |access-date=20 Mayrnt 2023 |archive-date=10 Averil 2023 |archive-url=https://web.archive.org/web/20230410075501/https://www.constituteproject.org/constitution/Senegal_2016.pdf?lang=en |url-status=live }}</ref>}}}} |sorçh_çhengaghyn = [[Çhengey ashoonagh|Çhengaghyn ashoonagh]] |possanyn_kynneeagh = |preeu-valley = [[Dakar]] |latd=14 |latm=40 |lats=21|latNS=N |longd=17 |longm=25 |longs=55 |longEW=W |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |ushtey_sy_cheead = 2.1 |blein_LTS_CCK = 2005 |LTS_CCK = $20.504 billoon |LTS_CCK_yn_dooinney = $1,759 |sorçh_kiondeeaght = [[Shennaghys y Tenegaal|Neuchrogheydys]] |taghyrt_bunneeaght1 = Fogrey yn phobblaght |date_bunneeaght1 = 25 Mee Houney 1958 |taghyrt_bunneeaght2 = Beuchrogheydys veih'n Rank{{efn|Marish y [[Yn Toodaan Rangagh|Toodaan Rangagh]] myr [[Conastey Valee]].}} |date_bunneeaght2 = 20 June 1960 |taghyrt_bunneeaght3 = Dimmee magh ass [[Conastey Valee]] |date_bunneeaght3 = 20 Luanistyn 1960 |taghyrt4 = Scryssey [[Conastey yn Teneghambia|Chonastey yn Teneghambia |date_bunneeaght4 = 30 Mean Fouyir 1989 |traa_ynnydagh = [[Traa Mean Greenwich|GMT]] |ashchur_utc = +00:00 |cctld = [[.sn]] |coad_çhellvane = 221 }} She çheer ayns [[yn Affrick]] ee '''yn Tenegaal'''. T'ee çhemmit liorish [[Yn Varitaan|y Varitaan]] da'n twoaie, [[Malee]] da'n shiar, [[Yn Ghuinea|y Ghuinea]] as [[Yn Ghuinea-Bissau|y Ghuinea-Bissau]] da'n jiass, as [[Yn Ghambia|y Ghambia]] da'n laaragh. She [[Dakar]] y [[preeu-valley]]. ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Tenegaal, Yn}} {{bun}} [[Ronney:Yn Tenegaal| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1960]] [[Ronney:Bunneeaghtyn 'sy Tenegaal 'sy vlein 1960|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Boodeeys Tarmaynagh Steatyn yn Affrick Heear]] [[Ronney:Eear-choloinyn Portiugagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn y G15]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Pobblaghtyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] [[Ronney:Çheeraghyn yn Affrick Heear]] {{Coord|14|N|14|W|type:country|display=title}} gf4drku1tv4k9slljkq26o0oq6565dy 394545 394544 2026-10-16T14:03:53Z MacTire02 219 +]] 394545 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Tenegaal |ennym_foddey_cadjincliaghtagh= {{lang|fr|République du Sénégal|italics=no}} {{small|([[Frangish]])}} |ennym_gienneydagh = y Tenegaal |jalloo_brattagh = Flag of Senegal.svg |jalloo_cleinney = Coat of arms of Senegal.svg |jalloo_caslys = Senegal_(orthographic_projection).svg |jarroo-raa = {{lang|fr|Un peuple, un but, une foi}} |jarroo-raa2 = {{lang|wo|Benn Askan, Benn Jubluwaay, Benn Pas-Pas}}<ref>{{cite web |title=Raaya ak bàkku Senegaal |trans-title=The flag and motto of Senegal |url=https://www.presidence.sn/wo/presidence/le-drapeau-et-la-devise-du-senegal |lang=wo |publisher=[[Eaghtyrane y Tenegaal|Eaghtyraneys y Tenegaal]]}}</ref> |imraa_jarroo-raa = |çhyndaa_jarroo-raa = Un Phobble, Un Dean, Un Chredjue |arrane_ashoonagh = {{lang|fr|[[Le Lion rouge]]|italics=no}} |çhyndaa_arrane_ashoonagh = Y Leion Ruy |coadan_arrane_ashoonagh = National Anthem of Senegal.ogg |çhengey_arrane_ashoonagh = Frangish |çhengaghyn_oikoil = [[Frangish]] |çhengaghyn = {{hlist|[[Wolofish]]{{Efn|name=WolofStatus|Ta fysseree veih Laare ny Studeyryssyn Affrickagh lesh Ollooscoill Pennsylvania gooley dy vel mysh 90% jeh pobble y Tenegaal toiggal ny loayrt y Wolofish myr y chied ny yn nah hengey oc.<ref>{{Cite web |title=African Studies Center{{!}} African Languages at Penn |url=https://www.africa.upenn.edu/afl/alwolof.htm |access-date=20 Mayrnt 2023 |website=Laare ny Studeyryssyn Affrickagh ec [[Ollooscoill Pennsylvania]] |archive-date=29 Jerrey Geuree 2023 |archive-url=https://web.archive.org/web/20230129152750/https://www.africa.upenn.edu/afl/alwolof.htm |url-status=live }}</ref>}}|[[Sererish]]|[[Diolish]]<ref>{{Cite book |last=Falola |first=Toyin |url=https://books.google.com/books?id=3fhADwAAQBAJ&dq=Arabic+Status+in+Senegal&pg=PT190 |title=Africanizing Knowledge: African Studies Across the Disciplines |date=30 Mee Houney 2017 |publisher=Routledge |isbn=978-1-351-32438-0 |pages=190 |language=en}}</ref>|[[Pulaarish]]|[[Soninkish]]|[[Mandinkish]]{{Efn|name=SenegalNationalLangs|Olt 1 jeh Bunraght y Tenegaal, ta genmyssey Diolish, Malinkish, Pulaarish, Sererish, Soninkish, as Wolofish myr ny çhengaghyn ashoonagh.<ref name="Languages">{{Cite web |title=Senegal's Constitution of 2001 with Amendments through 2016 |url=https://www.constituteproject.org/constitution/Senegal_2016.pdf?lang=en |website=Constitute Project |language=en |access-date=20 Mayrnt 2023 |archive-date=10 Averil 2023 |archive-url=https://web.archive.org/web/20230410075501/https://www.constituteproject.org/constitution/Senegal_2016.pdf?lang=en |url-status=live }}</ref>}}}} |sorçh_çhengaghyn = [[Çhengey ashoonagh|Çhengaghyn ashoonagh]] |possanyn_kynneeagh = |preeu-valley = [[Dakar]] |latd=14 |latm=40 |lats=21|latNS=N |longd=17 |longm=25 |longs=55 |longEW=W |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |ushtey_sy_cheead = 2.1 |blein_LTS_CCK = 2005 |LTS_CCK = $20.504 billoon |LTS_CCK_yn_dooinney = $1,759 |sorçh_kiondeeaght = [[Shennaghys y Tenegaal|Neuchrogheydys]] |taghyrt_bunneeaght1 = Fogrey yn phobblaght |date_bunneeaght1 = 25 Mee Houney 1958 |taghyrt_bunneeaght2 = Beuchrogheydys veih'n Rank{{efn|Marish y [[Yn Toodaan Rangagh|Toodaan Rangagh]] myr [[Conastey Valee]].}} |date_bunneeaght2 = 20 June 1960 |taghyrt_bunneeaght3 = Dimmee magh ass [[Conastey Valee]] |date_bunneeaght3 = 20 Luanistyn 1960 |taghyrt4 = Scryssey [[Conastey yn Teneghambia|Chonastey yn Teneghambia]] |date_bunneeaght4 = 30 Mean Fouyir 1989 |traa_ynnydagh = [[Traa Mean Greenwich|GMT]] |ashchur_utc = +00:00 |cctld = [[.sn]] |coad_çhellvane = 221 }} She çheer ayns [[yn Affrick]] ee '''yn Tenegaal'''. T'ee çhemmit liorish [[Yn Varitaan|y Varitaan]] da'n twoaie, [[Malee]] da'n shiar, [[Yn Ghuinea|y Ghuinea]] as [[Yn Ghuinea-Bissau|y Ghuinea-Bissau]] da'n jiass, as [[Yn Ghambia|y Ghambia]] da'n laaragh. She [[Dakar]] y [[preeu-valley]]. ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Tenegaal, Yn}} {{bun}} [[Ronney:Yn Tenegaal| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1960]] [[Ronney:Bunneeaghtyn 'sy Tenegaal 'sy vlein 1960|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Boodeeys Tarmaynagh Steatyn yn Affrick Heear]] [[Ronney:Eear-choloinyn Portiugagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn y G15]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Pobblaghtyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] [[Ronney:Çheeraghyn yn Affrick Heear]] {{Coord|14|N|14|W|type:country|display=title}} p41e4iwllcetx4fh7b0eps1lt2y9b44 Clowan:Yn Affrick 10 2844 394603 394477 2026-10-17T02:34:07Z MacTire02 219 -- 394603 wikitext text/x-wiki {{Navbox | name = Yn Affrick | title = [[Rolley çheeraghyn as croghaneyn 'syn Affrick|Çheeraghyn as croghaneyn yn Affrick]] | state = {{{state<includeonly>|autocollapse</includeonly>}}} |bodyclass = hlist | group1 = Çheeraghyn | list1 = * [[Yn Affrick Yiass]] * [[yn Algear]] * [[Angoley]] * [[Benin]] * [[Burkina Faso]] * [[Burundee]] * [[Cameroon]] * [[Yn Çheer Swassee|y Çheer Swassee]] * [[Yn Cheinney|y Cheinney]] * [[Yn Çhimbabwe|y Çhimbabwe]] * [[Ellanyn Chomoro]] * [[Pobblaght y Chongo]] * [[Pobblaght Gheynlagh y Chongo]] * [[Yn Clyst Iuaagagh|y Clyst Iuaagagh]] * [[Djibouti]] * [[yn Eetoip]] * [[yn Egypt]]<sup>1</sup> * [[Eritrea]] * [[Gabon]] * [[Yn Ghambia|y Ghambia]] * [[Yn Ghaney|y Ghaney]] * [[Yn Ghuinea|y Ghuinea]] * [[Yn Ghuinea-Bissau|y Ghuinea-Bissau]] * [[Guinea Chryss ny Cruinney]] * [[Yn Laibeer|y Laibeer]] * [[Lesoto]] * [[Yn Leeb|y Leeb]] * [[Madagascar]] * [[Malawi]] * [[Malee]] * [[Yn Naigeer|y Naigeer]] * [[Yn Nameeb|y Nameeb]] * [[Yn Neegeyr|y Neegeyr]] * [[Ooganda]] * [[Pobblaght yn Affrick Veanagh]] * [[Yn Rheynn Ghlass|y Rheynn Ghlass]] * [[Rooandey]] * [[São Tomé as Príncipe]] * [[Shad]] * [[ny h-Ellanyn Sheshell]] * [[Sierra Leone]] * [[Yn Tambia|y Tambia]] * [[Tanzania]] * [[Yn Tenegaal|y Tenegaal]] * [[Yn Togo|y Togo]] * [[Yn Tomaal|y Tomaal]] * [[Yn Toodaan|y Toodaan]] * [[Yn Toodaan Yiass|y Toodaan Yiass]] * [[Yn Tooneesh|y Tooneesh]] * [[Yn Varitaan|y Varitaan]] * [[Yn Varoc|y Varoc]] * [[Yn Vosambeeck|y Vosambeeck]] * [[Yn Votswaan|y Votswaan]] * [[Ellan Wirrish]] | group2 = {{longitem|[[Rolley çheeraghyn as lieh-enney oc|Çheeraghyn as lieh-enney oc]]}} | list2 = * [[Pobblaght Gheynlagh Arabagh y Tahara]] (kionedeeaght neu-leayr) * [[Yn Tomaalee|y Tomaalee]] | group3 = Croghaneyn | list3 = {{Navbox|child | group1 = Y Rank | list1 = * [[Ellanyn Skeaylt 'sy Cheayn Injinagh|Îles Éparses]] | group2 = Y Reeriaght Unnaneysit | list2 = [[Ellan Helena Noo, Ellan ny Frastyl, as Tristan da Cunha]] }} | group4 = {{longitem|Thallooyn Affrickagh myr ayrn<br/>jeh çheeraghyn neu-Affrickagh}} | list4 = {{Navbox|child | group1 = Yn Iddaal | list1 = * [[Pantelleria]] * [[Ellanyn Pelagie]] | group2 = Y Phortiugal | list2 = * [[Yn Vadeirey|Y Vadeirey]] * [[Ellanyn Selvagens]] | group3 = Y Rank | list3 = * [[Mayotte]] * [[Réunion]] | group4 = Y Spaainey | list4 = * [[Ny h-Ellanyn Canaaragh]] * [[Ceuta]] * [[Melilla]] * [[Plazas de soberanía]] |group5 = Yn Yeaman |list5 = * [[Socotra]] }} |below = <sup>1</sup>Ta ayrn jeh'n çheer shoh soit 'syn [[Yn Aishey|Aishey]]. }} 10jrhkduy9qkzrn1jivgtu8g6lewp2o Yn Vosambeeck 0 2848 394607 389494 2026-10-17T03:14:04Z MacTire02 219 ++ 394607 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Vosambeeck |ennym_foddey_cadjincliaghtagh= {{lang|pt|República de Moçambique|italics=no}} {{small|([[Portiugish]])}} |ennym_gienneydagh = y Vosambeeck |jalloo_brattagh = Flag of Mozambique.svg |jalloo_cleinney = Emblem of Mozambique.svg |jalloo_caslys = Mozambique_(orthographic_projection).svg |jarroo-raa = none |arrane_ashoonagh = {{lang|pt|[[Pátria Amada]]|italics=no}} |çhyndaa_arrane_ashoonagh = Heer Ghooie Ghraihagh |coadan_arrane_ashoonagh = Mozambican national anthem, performed by the United States Navy Band.wav |çhengey_arrane_ashoonagh = Portiugish |çhengaghyn_oikoil = [[Portiugish]] |çhengaghyn_ardjynagh = {{hlist|[[Lomweish]]|[[Makhuwish]]|[[Senish]]|[[Swahilish]]|[[Tsongish]]}} |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] marish [[corys partee kioneysagh]] reiltys [[smaghtaght|smaghtagh]] |enmys1_fer-toshee = [[Rolley eaghtyraneyn y Vosambeeck|Eaghtyrane]] |ushtey_sy_cheead = 2.2 |blein_LTS_CCK = 2005 |LTS_CCK = $27.013 billoon |LTS_CCK_yn_dooinney = $1,389 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Hoontey Saultys Ashoonagh|Phortiugal]] |taghyrt_bunneeaght1 = [[Yn Vosambeeck Phortiugagh|Y Vosambeeck Phortiugagh |date_bunneeaght1 = 1505–1975 |taghyrt_bunneeaght2 = [[Caggey Neuchrogheydys y Vosambeeck]] |date_bunneeaght2 = 25 Mean Fouyir 1964 – 8 Mean Fouyir 1974 |taghyrt_bunneeaght3 = [[Coardailys Lusaka|Neuchrogheydys bronnit]] |date_bunneeaght3 = 25 Mean Souree 1975 |taghyrt_bunneeaght4 = [[Deynphobblaght y Vosambeeck]] |date_bunneeaght4 = 25 Mean Souree 1975 – 30 Mee Houney 1990 |taghyrt_bunneeaght5 = [[Caggey Theayagh y Vosambeeck|Caggey Theayagh]] |date_bunneeaght5 = 1977–1992 |taghyrt_bunneeaght6 = [[Bunraght y Vosambeeck|Bunraght roie]] |date_bunneeaght6 = 21 Mee ny Nollick 2004 |traa_ynnydagh = [[Traa yn Affrick Veanagh|CAT]] |ashchur_utc = +02:00 |cctld = [[.mz]] |coad_çhellvane = 258 }} She çheer ayns [[yn Affrick]] ee '''yn Vosambeeck'''. T'ee çhemmit liorish [[Tanzania]] da'n twoaie, [[Malawi]] as [[Yn Tambia|y Tambia]] da'n sheear hwoaie, [[Yn Çhimbabwe|y Çhimbabwe]] da'n sheear, as [[yn Affrick Yiass]] as [[Yn Çheer Swassee|y Çheer Swassee]] da'n sheear yiass. She [[Maputo]] yn [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Vosambeeck, Yn}} {{bun}} [[Ronney:Yn Vosambeeck| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1975]] [[Ronney:Bunneeaghtyn 'sy Vosambeeck 'sy vlein 1975|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Eear-choloinyn Portiugagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey Voodeeys Çheeraghyn y Phortiugish]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn yn Affrick Hiar Yiass]] [[Ronney:Çheeraghyn Affrick y Jiass]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1975]] {{Coord|18|15|S|35|00|E|type:country_region:MZ|display=title}} 599gonqsz99pgitsaxeg00u5zfwx1kh 394608 394607 2026-10-17T03:14:25Z MacTire02 219 +]] 394608 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Vosambeeck |ennym_foddey_cadjincliaghtagh= {{lang|pt|República de Moçambique|italics=no}} {{small|([[Portiugish]])}} |ennym_gienneydagh = y Vosambeeck |jalloo_brattagh = Flag of Mozambique.svg |jalloo_cleinney = Emblem of Mozambique.svg |jalloo_caslys = Mozambique_(orthographic_projection).svg |jarroo-raa = none |arrane_ashoonagh = {{lang|pt|[[Pátria Amada]]|italics=no}} |çhyndaa_arrane_ashoonagh = Heer Ghooie Ghraihagh |coadan_arrane_ashoonagh = Mozambican national anthem, performed by the United States Navy Band.wav |çhengey_arrane_ashoonagh = Portiugish |çhengaghyn_oikoil = [[Portiugish]] |çhengaghyn_ardjynagh = {{hlist|[[Lomweish]]|[[Makhuwish]]|[[Senish]]|[[Swahilish]]|[[Tsongish]]}} |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] marish [[corys partee kioneysagh]] reiltys [[smaghtaght|smaghtagh]] |enmys1_fer-toshee = [[Rolley eaghtyraneyn y Vosambeeck|Eaghtyrane]] |ushtey_sy_cheead = 2.2 |blein_LTS_CCK = 2005 |LTS_CCK = $27.013 billoon |LTS_CCK_yn_dooinney = $1,389 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Hoontey Saultys Ashoonagh|Phortiugal]] |taghyrt_bunneeaght1 = [[Yn Vosambeeck Phortiugagh|Y Vosambeeck Phortiugagh]] |date_bunneeaght1 = 1505–1975 |taghyrt_bunneeaght2 = [[Caggey Neuchrogheydys y Vosambeeck]] |date_bunneeaght2 = 25 Mean Fouyir 1964 – 8 Mean Fouyir 1974 |taghyrt_bunneeaght3 = [[Coardailys Lusaka|Neuchrogheydys bronnit]] |date_bunneeaght3 = 25 Mean Souree 1975 |taghyrt_bunneeaght4 = [[Deynphobblaght y Vosambeeck]] |date_bunneeaght4 = 25 Mean Souree 1975 – 30 Mee Houney 1990 |taghyrt_bunneeaght5 = [[Caggey Theayagh y Vosambeeck|Caggey Theayagh]] |date_bunneeaght5 = 1977–1992 |taghyrt_bunneeaght6 = [[Bunraght y Vosambeeck|Bunraght roie]] |date_bunneeaght6 = 21 Mee ny Nollick 2004 |traa_ynnydagh = [[Traa yn Affrick Veanagh|CAT]] |ashchur_utc = +02:00 |cctld = [[.mz]] |coad_çhellvane = 258 }} She çheer ayns [[yn Affrick]] ee '''yn Vosambeeck'''. T'ee çhemmit liorish [[Tanzania]] da'n twoaie, [[Malawi]] as [[Yn Tambia|y Tambia]] da'n sheear hwoaie, [[Yn Çhimbabwe|y Çhimbabwe]] da'n sheear, as [[yn Affrick Yiass]] as [[Yn Çheer Swassee|y Çheer Swassee]] da'n sheear yiass. She [[Maputo]] yn [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Vosambeeck, Yn}} {{bun}} [[Ronney:Yn Vosambeeck| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1975]] [[Ronney:Bunneeaghtyn 'sy Vosambeeck 'sy vlein 1975|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Eear-choloinyn Portiugagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey Voodeeys Çheeraghyn y Phortiugish]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn yn Affrick Hiar Yiass]] [[Ronney:Çheeraghyn Affrick y Jiass]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1975]] {{Coord|18|15|S|35|00|E|type:country_region:MZ|display=title}} nzwv9r0s1w770ezpf15mutzb6wv8odw 394609 394608 2026-10-17T03:15:11Z MacTire02 219 -parameadar nagh lhisagh ve ayn 394609 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Vosambeeck |ennym_foddey_cadjincliaghtagh= {{lang|pt|República de Moçambique|italics=no}} {{small|([[Portiugish]])}} |ennym_gienneydagh = y Vosambeeck |jalloo_brattagh = Flag of Mozambique.svg |jalloo_cleinney = Emblem of Mozambique.svg |jalloo_caslys = Mozambique_(orthographic_projection).svg |jarroo-raa = none |arrane_ashoonagh = {{lang|pt|[[Pátria Amada]]|italics=no}} |çhyndaa_arrane_ashoonagh = Heer Ghooie Ghraihagh |coadan_arrane_ashoonagh = Mozambican national anthem, performed by the United States Navy Band.wav |çhengey_arrane_ashoonagh = Portiugish |çhengaghyn_oikoil = [[Portiugish]] |çhengaghyn_ardjynagh = {{hlist|[[Lomweish]]|[[Makhuwish]]|[[Senish]]|[[Swahilish]]|[[Tsongish]]}} |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] marish [[corys partee kioneysagh]] reiltys [[smaghtaght|smaghtagh]] |ushtey_sy_cheead = 2.2 |blein_LTS_CCK = 2005 |LTS_CCK = $27.013 billoon |LTS_CCK_yn_dooinney = $1,389 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Hoontey Saultys Ashoonagh|Phortiugal]] |taghyrt_bunneeaght1 = [[Yn Vosambeeck Phortiugagh|Y Vosambeeck Phortiugagh]] |date_bunneeaght1 = 1505–1975 |taghyrt_bunneeaght2 = [[Caggey Neuchrogheydys y Vosambeeck]] |date_bunneeaght2 = 25 Mean Fouyir 1964 – 8 Mean Fouyir 1974 |taghyrt_bunneeaght3 = [[Coardailys Lusaka|Neuchrogheydys bronnit]] |date_bunneeaght3 = 25 Mean Souree 1975 |taghyrt_bunneeaght4 = [[Deynphobblaght y Vosambeeck]] |date_bunneeaght4 = 25 Mean Souree 1975 – 30 Mee Houney 1990 |taghyrt_bunneeaght5 = [[Caggey Theayagh y Vosambeeck|Caggey Theayagh]] |date_bunneeaght5 = 1977–1992 |taghyrt_bunneeaght6 = [[Bunraght y Vosambeeck|Bunraght roie]] |date_bunneeaght6 = 21 Mee ny Nollick 2004 |traa_ynnydagh = [[Traa yn Affrick Veanagh|CAT]] |ashchur_utc = +02:00 |cctld = [[.mz]] |coad_çhellvane = 258 }} She çheer ayns [[yn Affrick]] ee '''yn Vosambeeck'''. T'ee çhemmit liorish [[Tanzania]] da'n twoaie, [[Malawi]] as [[Yn Tambia|y Tambia]] da'n sheear hwoaie, [[Yn Çhimbabwe|y Çhimbabwe]] da'n sheear, as [[yn Affrick Yiass]] as [[Yn Çheer Swassee|y Çheer Swassee]] da'n sheear yiass. She [[Maputo]] yn [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Vosambeeck, Yn}} {{bun}} [[Ronney:Yn Vosambeeck| ]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1975]] [[Ronney:Bunneeaghtyn 'sy Vosambeeck 'sy vlein 1975|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Eear-choloinyn Portiugagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey Voodeeys Çheeraghyn y Phortiugish]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn yn Affrick Hiar Yiass]] [[Ronney:Çheeraghyn Affrick y Jiass]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1975]] {{Coord|18|15|S|35|00|E|type:country_region:MZ|display=title}} kwxg8lbkrya3w11gq4rajm697q3a26q Yn Tooneesh 0 2858 394604 358846 2026-10-17T02:42:37Z MacTire02 219 ++ 394604 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Tooneesh |ennym_foddey_cadjincliaghtagh= {{lang|ar|الجمهورية التونسية}} {{small|([[Arabish]]}})<br />{{small|{{tessen-lettyraghey|ar|al-Jumhūriyyah at-Tūnisiyyah}}}} |ennym_gienneydagh = y Tooneesh |jalloo_brattagh = Flag of Tunisia.svg |jalloo_cleinney = Coat of arms of Tunisia.svg |jalloo_caslys = Tunisia (orthographic projection).svg |jarroo-raa = {{lang|ar|حرية، نظام، عدالة|rtl=yes}} |çhengey_jarroo-raa = Arabish |tessen-lettyraghey_jarroo-raa= {{tessen-lettyraghey|ar|Ḥurrīyah, Niẓām, 'Adālah}} |çhyndaa_jarroo-raa = Seyrsnys, Oardagh, Cairys |arrane_ashoonagh = {{lang|ar|[[Humat al-Hima|حماة الحمى]]|rtl=yes}} |tessen-lettyraghey_arrane_ashoonagh={{tessen-lettyraghey|ar|Humat al-Him}} |çhyndaa_arrane_ashoonagh = Coadeyderyn y Çheer Ghooie |coadan_arrane_ashoonagh = Humat al-Hima.ogg |çhengey_arrane_ashoonagh = Arabish |çhengaghyn_oikoil = [[Arabish Chadjinit Noa-emshiragh|Arabish]]<ref name="art1">{{cite web|title=Tunisian Constitution, Article 1 |url=http://www.anc.tn/site/main/AR/docs/constit_proj_26012014.pdf |date=26 Jerrey Geuree 2014 |access-date=10 Toshiaght Arree 2014 |archive-url=https://web.archive.org/web/20140209234154/http://www.anc.tn/site/main/AR/docs/constit_proj_26012014.pdf |archive-date=9 Toshiaght Arree 2014 }}</ref> |sorçh_çhengaghyn = Çhengaghyn loayrit |çhengaghyn = [[Arabish y Tooneesh]]<ref>[http://www.ethnologue.com/language/aeb Arabic, Tunisian Spoken]. Ethnologue (19 Toshiaght Arree 1999). Feddynit er 5 Mean Fouyir 2015.</ref> Myn-abbyrtyn: [[Berberish Jerba]] (Chelha) [[Berberish Matmata]] [[Arabish Hooneeshagh Ewagh]] (UNESCO CR)<ref>{{cite web|url=https://unesdoc.unesco.org/ark:/48223/pf0000212023|title=Atlas of the world's languages in danger : North Africa and the Middle East}}</ref><ref>{{cite web|url=https://www.theguardian.com/news/datablog/2011/apr/15/language-extinct-endangered|title=Endangered Languages}}</ref><ref>{{cite web|url=https://www.ethnologue.com/country/TN/languages|title=Tunisia Language Status}}</ref><ref>{{cite web|url=http://www.language-archives.org/language/jbn|title=OLAC resources in and about the Nafusi language}}</ref><ref>{{cite web|url=https://glottolog.org/resource/languoid/id/nafu1238|title=Language Classification}}</ref><ref>{{cite web|url=https://www.britannica.com/place/Tunisia/Languages|title=Languages of Tunisia}}</ref><ref>{{cite web|url=https://www.worldatlas.com/articles/what-languages-are-spoken-in-tunisia.html|title=What Languages Are Spoken In Tunisia?}}</ref><ref>{{Cite book|url=https://books.google.com/books?id=QDq4YV0VT00C&q=Berber-speaking+migrant+communities&pg=PA109|title=Change in Tunisia: Studies in the Social Sciences|last1=Stone|first1=Russell A.|last2=Simmons|first2=John|date=1976|publisher=SUNY Press|isbn=9780873953115|language=en}}</ref><ref>{{cite book|url=http://researchdirect.uws.edu.au/islandora/object/uws:573|title=An outline of the Shilha (Berber) vernacular of Douiret (Southern Tunisia)|publisher=PhD Thesis, Western Sydney University |last=Gabsi |first= Z. |year=2003}}</ref> |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |ushtey_sy_cheead = 5.0 |blein_LTS_CCK = 2007 |LTS_CCK = $97.74 billoon |LTS_CCK_yn_dooinney = $9,630 |sorçh_kiondeeaght = [[Shennaghys y Tooneesh|Bunneeaght]] |taghyrt_bunneeaght1 = [[Yn Çhenn-Chairtaig|Y Çhenn-Chairtaig]] |date_bunneeaght1 = 814 RC |taghyrt_bunneeaght2 = [[Yn Affrick (queiggey Raueagh)|Affrick y Raue]] |date_bunneeaght2 = 146 RC |taghyrt_bunneeaght3 = [[Yn Reeriaght Vandalagh|Y Reeriaght Vandalagh]] |date_bunneeaght3 = 439 |taghyrt_bunneeaght4 = [[Ecsarcaght yn Affrick]] |date_bunneeaght4 = 591 |taghyrt_bunneeaght5 = [[Aghlabidee|Yn Emmiraid Aghlabidagh]] |date_bunneeaght5 = 800 |taghyrt_bunneeaght6 = [[Yn Chaylifaght Fatimidagh]] |date_bunneeaght6 = 909 |taghyrt_bunneeaght7 = [[Yn Emmiraid Ziridagh]] |date_bunneeaght7 = 972 |taghyrt_bunneeaght8 = [[Hafsidee|Y Tultanaght Hafsidagh]] |date_bunneeaght8 = 1229 |taghyrt_bunneeaght9 = [[Beylik Hoonis]] |date_bunneeaght9 = 15 Jerrey Souree 1705 |taghyrt_bunneeaght10 = [[Coadanys Frangagh y Tooneesh|Coadanys Frangagh]] |date_bunneeaght10 = 12 Boaldyn 1881 |taghyrt_bunneeaght11 = [[Neuchrogheydys y Tooneesh|Neuchrogheydys]] as [[Reeriaght y Tooneesh|Reeriaght]] |date_bunneeaght11 = 20 Mayrnt 1956 |taghyrt_bunneeaght12 = [[Shennaghys y Tooneesh noa-emshiragh|Fogrey magh y phobblaght]] |date_bunneeaght12 = 25 Jerrey Souree 1957 |traa_ynnydagh = [[Traa ynnydagh yn Oarpey Veanagh|CET]] |ashchur_utc = +01:00 |cctld = [[.tn]] |coad_çhellvane = 216 }} She çheer ayns [[yn Affrick]] ee '''yn Tooneesh'''. T'ee çhemmit liorish [[yn Algear]] da'n sheear as [[Yn Leeb|y Leeb]] da'n shiar yiass. She [[Toonis]] [[preeu-valley]] ny çheerey. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Yn Commeeys Arabagh}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Tooneesh, Yn}} {{bun}} [[Ronney:Yn Tooneesh| ]] [[Ronney:Bunneeaghtyn 'sy Tooneesh 'sy vlein 1956]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn Maghrebagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey yn Chommeeys Arabagh]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey Unnaneys y Veanvooir]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1956]] {{coord|34|N|9|E|scale:5000000|display=title}} rz4smai4tpul5hd8kdepwl5mnpfgkws Yn Votswaan 0 2864 394610 358068 2026-10-17T03:36:10Z MacTire02 219 ++ 394610 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght y Votswaan |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of Botswana|italics=no}} {{small|([[Baarle]])}}<br/>{{lang|tn|Lefatshe la Botswana|italics=no}} {{small|([[Tswaanish]])}} |ennym_gienneydagh = y Votswaan |jalloo_brattagh = Flag of Botswana.svg |jalloo_cleinney = Coat_of_arms_of_Botswana.svg |jalloo_caslys = Botswana_(centered_orthographic_projection).svg |jarroo-raa = {{lang|tn|Pula}} |çhyndaa_jarroo-raa = Fliaghey |çhengey_jarroo-raa = Tswaanish |arrane_ashoonagh = {{lang|tn|[[Fatshe leno la rona]]|italics=no}} |çhyndaa_arrane_ashoonagh = Y Thalloo Shoh Ain |coadan_arrane_ashoonagh = United States Navy Band - Fatshe leno la rona.ogg |çhengey_arrane_ashoonagh = Tswaanish |çhengaghyn_oikoil = [[Baarle]]<ref name="gov.bw languages">{{Cite web |title=About Our Country |url=https://www.gov.bw/about-our-country |access-date=2022-04-17 |website=Gov.bw |archive-date=22 Jerrey Fouyir 2023 |archive-url=https://web.archive.org/web/20231022105828/https://www.gov.bw/about-our-country |url-status=live}}</ref> |sorçh_çhengaghyn = [[Çhengey ashoonagh]] |çhengaghyn = [[Tswaanish]]<ref name="gov.bw languages" /> |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh]] [[steat unnaneagh|unnaneagh]] fo [[Pobblaght fo eaghtyraneys kiannoortagh|eaghtyraneys kiannoortagh]]<ref>{{Cite CIA World Factbook|country=Botswana|access-date=17 Mee ny Nollick 2019|year=2019}}</ref> |ushtey_sy_cheead = 2.5 |blein_LTS_CCK = 2007 |LTS_CCK = $25.676 billoon |LTS_CCK_yn_dooinney = $16,450 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = Veih'n [[Yn Reeriaght Unnaneysit|Reeriaght Unnaneysit]] |taghyrt1_bunnit = Bunnit ([[Bunraght y Votswaan|Bunraght]]) |date1_bunnit = 30 Mean Fouyir 1966 |traa_ynnydagh = [[Traa yn Affrick Meanagh|CAT]] |ashchur_utc = +02:00 |cctld = [[.bw]] |coad_çhellvane = 267 }} She çheer ayns jiass [[yn Affrick]] ee '''yn Votswaan'''. T'ee çhemmit liorish [[Yn Tambia|y Tambia]] da'n twoaie, [[Yn Çhimbabwe|y Çhimbabwe]] da'n shiar hwoaie, [[yn Affrick Yiass]] da'n shiar yiass as y jiass, as [[Yn Nameeb|y Nameeb]] da'n sheear. She [[Gabarone]] y [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Votswaan, Yn}} {{bun}} [[Ronney:Yn Votswaan| ]] [[Ronney:Çheeraghyn Affrick y Jiass]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1966]] [[Ronney:Bunneeaghtyn 'sy Votswaan 'sy vlein 1966|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn sloo lhiasit hannah hene]] {{Coord|24|39.5|S|25|54.5|E|display=title}} dv1jfhlawvd15rttxtfl2zmiunklozo 394611 394610 2026-10-17T03:36:45Z MacTire02 219 lettyr beg 394611 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght y Votswaan |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of Botswana|italics=no}} {{small|([[Baarle]])}}<br/>{{lang|tn|Lefatshe la Botswana|italics=no}} {{small|([[Tswaanish]])}} |ennym_gienneydagh = y Votswaan |jalloo_brattagh = Flag of Botswana.svg |jalloo_cleinney = Coat_of_arms_of_Botswana.svg |jalloo_caslys = Botswana_(centered_orthographic_projection).svg |jarroo-raa = {{lang|tn|Pula}} |çhyndaa_jarroo-raa = Fliaghey |çhengey_jarroo-raa = Tswaanish |arrane_ashoonagh = {{lang|tn|[[Fatshe leno la rona]]|italics=no}} |çhyndaa_arrane_ashoonagh = Y Thalloo Shoh Ain |coadan_arrane_ashoonagh = United States Navy Band - Fatshe leno la rona.ogg |çhengey_arrane_ashoonagh = Tswaanish |çhengaghyn_oikoil = [[Baarle]]<ref name="gov.bw languages">{{Cite web |title=About Our Country |url=https://www.gov.bw/about-our-country |access-date=2022-04-17 |website=Gov.bw |archive-date=22 Jerrey Fouyir 2023 |archive-url=https://web.archive.org/web/20231022105828/https://www.gov.bw/about-our-country |url-status=live}}</ref> |sorçh_çhengaghyn = [[Çhengey ashoonagh]] |çhengaghyn = [[Tswaanish]]<ref name="gov.bw languages" /> |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh]] [[steat unnaneagh|unnaneagh]] fo [[Pobblaght fo eaghtyraneys kiannoortagh|eaghtyraneys kiannoortagh]]<ref>{{Cite CIA World Factbook|country=Botswana|access-date=17 Mee ny Nollick 2019|year=2019}}</ref> |ushtey_sy_cheead = 2.5 |blein_LTS_CCK = 2007 |LTS_CCK = $25.676 billoon |LTS_CCK_yn_dooinney = $16,450 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Yn Reeriaght Unnaneysit|Reeriaght Unnaneysit]] |taghyrt1_bunnit = Bunnit ([[Bunraght y Votswaan|Bunraght]]) |date1_bunnit = 30 Mean Fouyir 1966 |traa_ynnydagh = [[Traa yn Affrick Meanagh|CAT]] |ashchur_utc = +02:00 |cctld = [[.bw]] |coad_çhellvane = 267 }} She çheer ayns jiass [[yn Affrick]] ee '''yn Votswaan'''. T'ee çhemmit liorish [[Yn Tambia|y Tambia]] da'n twoaie, [[Yn Çhimbabwe|y Çhimbabwe]] da'n shiar hwoaie, [[yn Affrick Yiass]] da'n shiar yiass as y jiass, as [[Yn Nameeb|y Nameeb]] da'n sheear. She [[Gabarone]] y [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Votswaan, Yn}} {{bun}} [[Ronney:Yn Votswaan| ]] [[Ronney:Çheeraghyn Affrick y Jiass]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1966]] [[Ronney:Bunneeaghtyn 'sy Votswaan 'sy vlein 1966|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn sloo lhiasit hannah hene]] {{Coord|24|39.5|S|25|54.5|E|display=title}} 2i5615vpf9fg7v8tc6p6dnumklifnfz Yn Togo 0 2866 394561 360691 2026-10-16T17:12:06Z MacTire02 219 ++ 394561 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Togo |ennym_foddey_cadjincliaghtagh= {{lang|fr|République togolaise}} {{small|([[Frangish]])}} |ennym_gienneydagh = y Togo |jalloo_brattagh = Flag of Togo.svg |jalloo_cleinney = Armoiries_du_Togo.svg |jalloo_caslys = Togo on the globe (Africa centered).svg |jarroo-raa = {{lang|fr|Travail, Liberté, Patrie}} |imraa_jarroo-raa = <ref>{{cite web|url=http://www.africanlegislaturesproject.org/content/constitution-togo|title=Constitution of Togo|year=2002|access-date=20 Mee Houney 2011|url-status=dead|archive-url=https://web.archive.org/web/20120214090412/http://www.africanlegislaturesproject.org/content/constitution-togo|archive-date=14 Toshiaght Arree 2012}}</ref> |çhyndaa_jarroo-raa = Obbyr, Seyrsnys, Çheer Ghooie |çhengey_jarroo-raa = Frangish |arrane_ashoonagh = [[Salut à toi, pays de nos aïeux|Terre de nos aïeux]] |çhyndaa_arrane_ashoonagh = Çheer ny Shennayryn Ain |coadan_arrane_ashoonagh = |çhengey_arrane_ashoonagh = Frangish |çhengaghyn_oikoil = [[Frangish]] |sorçh_çhengaghyn = [[Çhengey ashoonagh|Çhengaghyn ashoonagh]] |çhengaghyn = {{hlist|[[Kabiyish]]|[[Eweish]]}} |possanyn_kynneeagh = |preeu-valley = [[Lomé]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh unnaneagh]] fo jaghteyraght [[smaghtys|smaghtagh]] |ushtey_sy_cheead = 4.2 |blein_LTS_CCK = 2005 |LTS_CCK = $8.945 billoon |LTS_CCK_yn_dooinney = $1,700 |sorçh_kiondeeaght = [[Shennaghys y Togo|Bunneeaght]] |note_kiondeeaght = |taghyrt_bunneeaght1 = [[Yn Çheer Togo|Y Çheer Togo Ghermaanagh]] |date_bunneeaght1 = 5 Jerrey Souree 1884 |taghyrt_bunneeaght2 = [[Yn Çheer Togo Rangagh|Y Çheer Togo Rangagh]] |date_bunneeaght2 = 27 Luanistyn 1914 |taghyrt_bunneeaght3 = Neuchrogheydys veih'n [[Yn Rank|Rank]] |date_bunneeaght3 = 27 Averil 1960 |taghyrt_bunneeaght4 = [[Reaghys 136 Choonseil Shickyrys ny h-Ashoonyn Unnaneysit|Lhiggit stiagh]] ayns ny [[Ny h-Ashoonyn Unnaneysit|h-Ashoonyn Unnaneysit]] |date_bunneeaght4 = 20 Mean Fouyir 1960 |taghyrt_bunneeaght5 = [[Bunraght y Togo|Bunraght roie]] |date_bunneeaght5 = 6 Boaldyn 2024 |traa_ynnydagh = [[Traa Mean Greenwich|GMT]] |ashchur_utc = +00:00 |cctld = [[.tg]] |coad_çhellvane = 228 }} She çheer ayns [[yn Affrick]] ee '''yn Togo'''. T'ee çhemmit liorish [[Burkina Faso]] da'n twoaie, [[Benin]] da'n shiar, as [[Yn Ghaney|y Ghaney]] da'n sheear. She [[Lomé]] yn [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Togo, Yn}} {{bun}} [[Ronney:Yn Togo| ]] [[Ronney:Bunneeaghtyn 'syn Africk vlein 1960]] [[Ronney:Bunneeaghtyn 'sy Togo 'sy vlein 1960]] [[Ronney:Boodeeys Tarmaynagh Steatyn yn Affrick Heear]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] [[Ronney:Pobblaghtyn]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn yn Affrick Heear]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Eear-choloinyn Germaanagh]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1960]] {{Coord|8|N|1|E|type:country|display=title}} jefwk09uarirujgdgfknlw9att7p9wg 394600 394561 2026-10-17T02:10:51Z MacTire02 219 coordnaidyn 394600 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Togo |ennym_foddey_cadjincliaghtagh= {{lang|fr|République togolaise}} {{small|([[Frangish]])}} |ennym_gienneydagh = y Togo |jalloo_brattagh = Flag of Togo.svg |jalloo_cleinney = Armoiries_du_Togo.svg |jalloo_caslys = Togo on the globe (Africa centered).svg |jarroo-raa = {{lang|fr|Travail, Liberté, Patrie}} |imraa_jarroo-raa = <ref>{{cite web|url=http://www.africanlegislaturesproject.org/content/constitution-togo|title=Constitution of Togo|year=2002|access-date=20 Mee Houney 2011|url-status=dead|archive-url=https://web.archive.org/web/20120214090412/http://www.africanlegislaturesproject.org/content/constitution-togo|archive-date=14 Toshiaght Arree 2012}}</ref> |çhyndaa_jarroo-raa = Obbyr, Seyrsnys, Çheer Ghooie |çhengey_jarroo-raa = Frangish |arrane_ashoonagh = [[Salut à toi, pays de nos aïeux|Terre de nos aïeux]] |çhyndaa_arrane_ashoonagh = Çheer ny Shennayryn Ain |coadan_arrane_ashoonagh = |çhengey_arrane_ashoonagh = Frangish |çhengaghyn_oikoil = [[Frangish]] |sorçh_çhengaghyn = [[Çhengey ashoonagh|Çhengaghyn ashoonagh]] |çhengaghyn = {{hlist|[[Kabiyish]]|[[Eweish]]}} |possanyn_kynneeagh = |preeu-valley = [[Lomé]] |latd=6 |latm=8 |latNS=N |longd=1 |longm=13 |longEW=E |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh unnaneagh]] fo jaghteyraght [[smaghtys|smaghtagh]] |ushtey_sy_cheead = 4.2 |blein_LTS_CCK = 2005 |LTS_CCK = $8.945 billoon |LTS_CCK_yn_dooinney = $1,700 |sorçh_kiondeeaght = [[Shennaghys y Togo|Bunneeaght]] |note_kiondeeaght = |taghyrt_bunneeaght1 = [[Yn Çheer Togo|Y Çheer Togo Ghermaanagh]] |date_bunneeaght1 = 5 Jerrey Souree 1884 |taghyrt_bunneeaght2 = [[Yn Çheer Togo Rangagh|Y Çheer Togo Rangagh]] |date_bunneeaght2 = 27 Luanistyn 1914 |taghyrt_bunneeaght3 = Neuchrogheydys veih'n [[Yn Rank|Rank]] |date_bunneeaght3 = 27 Averil 1960 |taghyrt_bunneeaght4 = [[Reaghys 136 Choonseil Shickyrys ny h-Ashoonyn Unnaneysit|Lhiggit stiagh]] ayns ny [[Ny h-Ashoonyn Unnaneysit|h-Ashoonyn Unnaneysit]] |date_bunneeaght4 = 20 Mean Fouyir 1960 |taghyrt_bunneeaght5 = [[Bunraght y Togo|Bunraght roie]] |date_bunneeaght5 = 6 Boaldyn 2024 |traa_ynnydagh = [[Traa Mean Greenwich|GMT]] |ashchur_utc = +00:00 |cctld = [[.tg]] |coad_çhellvane = 228 }} She çheer ayns [[yn Affrick]] ee '''yn Togo'''. T'ee çhemmit liorish [[Burkina Faso]] da'n twoaie, [[Benin]] da'n shiar, as [[Yn Ghaney|y Ghaney]] da'n sheear. She [[Lomé]] yn [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Togo, Yn}} {{bun}} [[Ronney:Yn Togo| ]] [[Ronney:Bunneeaghtyn 'syn Africk vlein 1960]] [[Ronney:Bunneeaghtyn 'sy Togo 'sy vlein 1960]] [[Ronney:Boodeeys Tarmaynagh Steatyn yn Affrick Heear]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] [[Ronney:Pobblaghtyn]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn yn Affrick Heear]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Eear-choloinyn Germaanagh]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1960]] {{Coord|8|N|1|E|type:country|display=title}} 55xkwy6rn1g8swx475x69wr7ded1hs0 Yn Varitaan 0 2892 394605 358080 2026-10-17T02:53:00Z MacTire02 219 ++ 394605 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght Islamagh y Varitaan |ennym_foddey_cadjincliaghtagh= {{lang|ar|الجمهورية الإسلامية الموريتانية}} {{small|([[Arabish]])}}<br/>{{small|{{tessen-lettyraghey|ar|al-Jumhūriyyah al-Islāmiyyah al-Mūrītāniyyah}}}} |ennym_gienneydagh = y Varitaan |jalloo_brattagh = Flag of Mauritania.svg |jalloo_cleinney = National_Seal_of_Mauritania.svg |sorçh_cowrey = Seal |jalloo_caslys = Mauritania_(orthographic_projection).svg |jarroo-raa = {{Lang|ar|شرف، إخاء، عدل}} |çhengey_jarroo-raa = Arabish |çhyndaa_jarroo-raa = Onnor, Co-vraaraghys, Cairys |arrane_ashoonagh = {{Lang|ar|[[Arrane ashoonagh y Varitaan|النشيد الوطني الموريتاني]]}} |çhyndaa_arrane_ashoonagh = Arrane Ashoonagh y Varitaan |coadan_arrane_ashoonagh = United States Navy Band - Bilāda l-ʾubāti l-hudāti l-kirām.ogg |çhengey_arrane_ashoonagh = Arabish |çhengaghyn_oikoil = [[Arabish]] |çhengaghyn = {{hlist|[[Arabish]]|[[Pulaarish]]|[[Soninkish]]|[[Wolofish]]}} |sorçh_çhengaghyn = Çhengaghyn ashoonagh er enney |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght Islamagh]] [[pobblaght lieh-eaghtyraneagh|lieh-eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |ushtey_sy_cheead = 0.03 |blein_LTS_CCK = 2005 |LTS_CCK = $7.159 billoon |LTS_CCK_yn_dooinney = $2,402 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Impiraght choloinagh y Rank|Rank]] |taghyrt_bunneeaght1 = Bunneeaght y phobblaght |date_bunneeaght1 = 28 Mee Houney 1958 |taghyrt_bunneeaght2 = Neuchrogheydys veih'n Rank |date_bunneeaght2 = 28 Mee Houney 1960 |taghyrt_bunneeaght3 = [[Bunraght y Varitaan|Bunraght roie]] |date_bunneeaght3 = 12 Jerrey Souree 1991 |traa_ynnydagh = [[Traa Mean Greenwich|GMT]] |ashchur_utc = +00:00 |cctld = [[.mr]] |coad_çhellvane = 222 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Varitaan'''. T'ee çhemmit liorish [[Yn Keayn Sheear|y Cheayn Sheear]] da'n sheear, [[Yn Tenegaal|y Tenegaal]] da'n sheear yiass, [[Malee]] da'n jiass as y shiar, [[yn Algear]] da'n shiar hwoaie, as [[Yn Sahara Heear|y Sahara Heear]] da'n sheear hwoaie. She [[Nouakchott]] y [[preeu-valley]]. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Yn Commeeys Arabagh}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Varitaan, Yn}} {{bun}} [[Ronney:Yn Varitaan| ]] [[Ronney:Bunneeaghtyn 'sy Varitaan 'sy vlein 1960|*]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Pobblaghtyn Islamagh]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn Maghrebagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey yn Chommeeys Arabagh]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Yn Ghleashaght Neu-heuit]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] [[Ronney:Çheeraghyn yn Affrick Heear]] {{Coord|20|N|12|W|type:country_region:MR|display=title}} bb2bb9cbqiv71j995cbi0tl6f249gr0 Pobblaght yn Affrick Veanagh 0 2897 394615 360878 2026-10-17T03:59:50Z MacTire02 219 ++ 394615 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght yn Affrick Veanagh |ennym_foddey_cadjincliaghtagh= {{lang|sg|Ködörösêse tî Bêafrîka|italics=no}} {{small|([[Sangoish]])}}<br/>{{lang|fr|République centrafricaine|italics=no}} {{small|([[Frangish]])}} |ennym_gienneydagh = Phobblaght yn Affrick Veanagh |jalloo_brattagh = Flag of the Central African Republic.svg |jalloo_cleinney = Coat_of_arms_of_the_Central_African_Republic.svg |jalloo_caslys = Central_African_Republic_(centered_orthographic_projection).svg |jarroo-raa = {{lang|sg|Zo Kwe Zo}} |çhengey_jarroo-raa = Sangoish |çhyndaa_jarroo-raa = She sleih dagh peiagh |jarroo-raa2 = {{lang|fr|Unité, Dignité, Travail}} |çhengey_jarroo-raa2 = Frangish |çhyndaa_jarroo-raa2 = Unnaneaght, Mooaralys, Obbyr |arrane_ashoonagh = {{lang|sg|E Zingo|italics=no}} |arrane_ashoonagh2 = {{lang|fr|[[La Renaissance]]|italics=no}} |çhengey_arrane_ashoonagh = Sangoish |çhengey_arrane_ashoonagh2 = Frangish |çhyndaa_arrane_ashoonagh = Yn Aaruggyr |coadan_arrane_ashoonagh = Central African Republic Anthem played by the US Navy Band.ogg |çhengaghyn_oikoil = {{hlist|[[Sangoish]]|[[Frangish]]<ref name="Samarin 2000 301–334">{{cite book |last=Samarin |first=William J. |chapter=The Status of Sango in Fact and Fiction: On the One-Hundredth Anniversary of its Conception |chapter-url=https://books.google.com/books?id=jSByTfudlIcC&pg=PA301 |editor-last=McWhorter |editor-first=John H. |editor-link=John McWhorter |title=Language Change and Language Contact in Pidgins and Creoles |publisher=John Benjamins |series=Creole language library |volume=21 |year=2000 |pages=301–334 |isbn=9789027252432}}</ref>}} |sorçh_çhengaghyn = [[Çhengey ashoonagh]] |çhengaghyn = [[Sangoish]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |blein_LTS_CCK = 2006 |LTS_CCK = $5.015 billoon |LTS_CCK_yn_dooinney = $1,198 |sorçh_kiondeeaght = Neuchrogheydys |taghyrt_bunneeaght1 = Pobblaght bunnit |date_bunneeaght1 = 1 Mee ny Nollick 1958 |taghyrt_bunneeaght2 = veih'n [[Yn Rank|Rank]] |date_bunneeaght2 = 13 Luanistyn 1960 |taghyrt_bunneeaght3 = Bunneeaght [[Impiraght yn Affrick Veanagh]] |date_bunneeaght3 = 4 Mee ny Nollick 1976 |taghyrt_bunneeaght4 = [[Crooinaghey Bokassa I as Catherine|Crooinaghey Bokassa I]] |date_bunneeaght4 = 4 Mee ny Nollick 1977 |taghyrt_bunneeaght5 = [[Obbreeaght Caban|Toyrt-mow Bokassa I as aachroo yn phobblaght]] |date_bunneeaght5 = 21 Mean Fouyir 1979 |traa_ynnydagh = [[Traa yn Affrick Heear|WAT]] |ashchur_utc = +01:00 |cctld = [[.cf]] |coad_çhellvane = 236 }} She çheer tallooinit 'syn [[yn Affrick|Affrick]] ee '''Pobblaght yn Affrick Veanagh''' ({{langx|fr|République Centrafricaine}}, {{langx|sg|Ködörösêse tî Bêafrîka}}). T'ee çhemmit liorish [[Shad]] da'n twoaie, [[Yn Toodaan Yiass|y Toodaan Yiass]] da'n shiar, [[Pobblaght y Chongo]] as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Cameroon]] da'n sheear. She [[Bangui]] [[preeu-valley]] ny çheerey. {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Affrick Veanagh, Pobblaght}} {{bun}} [[Ronney:Pobblaght yn Affrick Veanagh| ]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Bunneeaghtyn ayns Pobblaght yn Affrick Veanagh 'sy vlein 1960|*]] [[Ronney:Çheeraghyn-baght Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Pobblaghtyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] {{Coord|7|N|21|E|type:country_region:CF|display=title}} r2q4x48l3ffwgx2dhxp1efupzeqbrw0 394616 394615 2026-10-17T04:00:26Z MacTire02 219 +imraaghyn 394616 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght yn Affrick Veanagh |ennym_foddey_cadjincliaghtagh= {{lang|sg|Ködörösêse tî Bêafrîka|italics=no}} {{small|([[Sangoish]])}}<br/>{{lang|fr|République centrafricaine|italics=no}} {{small|([[Frangish]])}} |ennym_gienneydagh = Phobblaght yn Affrick Veanagh |jalloo_brattagh = Flag of the Central African Republic.svg |jalloo_cleinney = Coat_of_arms_of_the_Central_African_Republic.svg |jalloo_caslys = Central_African_Republic_(centered_orthographic_projection).svg |jarroo-raa = {{lang|sg|Zo Kwe Zo}} |çhengey_jarroo-raa = Sangoish |çhyndaa_jarroo-raa = She sleih dagh peiagh |jarroo-raa2 = {{lang|fr|Unité, Dignité, Travail}} |çhengey_jarroo-raa2 = Frangish |çhyndaa_jarroo-raa2 = Unnaneaght, Mooaralys, Obbyr |arrane_ashoonagh = {{lang|sg|E Zingo|italics=no}} |arrane_ashoonagh2 = {{lang|fr|[[La Renaissance]]|italics=no}} |çhengey_arrane_ashoonagh = Sangoish |çhengey_arrane_ashoonagh2 = Frangish |çhyndaa_arrane_ashoonagh = Yn Aaruggyr |coadan_arrane_ashoonagh = Central African Republic Anthem played by the US Navy Band.ogg |çhengaghyn_oikoil = {{hlist|[[Sangoish]]|[[Frangish]]<ref name="Samarin 2000 301–334">{{cite book |last=Samarin |first=William J. |chapter=The Status of Sango in Fact and Fiction: On the One-Hundredth Anniversary of its Conception |chapter-url=https://books.google.com/books?id=jSByTfudlIcC&pg=PA301 |editor-last=McWhorter |editor-first=John H. |editor-link=John McWhorter |title=Language Change and Language Contact in Pidgins and Creoles |publisher=John Benjamins |series=Creole language library |volume=21 |year=2000 |pages=301–334 |isbn=9789027252432}}</ref>}} |sorçh_çhengaghyn = [[Çhengey ashoonagh]] |çhengaghyn = [[Sangoish]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |blein_LTS_CCK = 2006 |LTS_CCK = $5.015 billoon |LTS_CCK_yn_dooinney = $1,198 |sorçh_kiondeeaght = Neuchrogheydys |taghyrt_bunneeaght1 = Pobblaght bunnit |date_bunneeaght1 = 1 Mee ny Nollick 1958 |taghyrt_bunneeaght2 = veih'n [[Yn Rank|Rank]] |date_bunneeaght2 = 13 Luanistyn 1960 |taghyrt_bunneeaght3 = Bunneeaght [[Impiraght yn Affrick Veanagh]] |date_bunneeaght3 = 4 Mee ny Nollick 1976 |taghyrt_bunneeaght4 = [[Crooinaghey Bokassa I as Catherine|Crooinaghey Bokassa I]] |date_bunneeaght4 = 4 Mee ny Nollick 1977 |taghyrt_bunneeaght5 = [[Obbreeaght Caban|Toyrt-mow Bokassa I as aachroo yn phobblaght]] |date_bunneeaght5 = 21 Mean Fouyir 1979 |traa_ynnydagh = [[Traa yn Affrick Heear|WAT]] |ashchur_utc = +01:00 |cctld = [[.cf]] |coad_çhellvane = 236 }} She çheer tallooinit 'syn [[yn Affrick|Affrick]] ee '''Pobblaght yn Affrick Veanagh''' ({{langx|fr|République Centrafricaine}}, {{langx|sg|Ködörösêse tî Bêafrîka}}). T'ee çhemmit liorish [[Shad]] da'n twoaie, [[Yn Toodaan Yiass|y Toodaan Yiass]] da'n shiar, [[Pobblaght y Chongo]] as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Cameroon]] da'n sheear. She [[Bangui]] [[preeu-valley]] ny çheerey. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Affrick Veanagh, Pobblaght}} {{bun}} [[Ronney:Pobblaght yn Affrick Veanagh| ]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Bunneeaghtyn ayns Pobblaght yn Affrick Veanagh 'sy vlein 1960|*]] [[Ronney:Çheeraghyn-baght Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Pobblaghtyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] {{Coord|7|N|21|E|type:country_region:CF|display=title}} diie8j0pmhd5e0uaaaq3okx6smeyz8f 394617 394616 2026-10-17T04:02:08Z MacTire02 219 ++ 394617 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght yn Affrick Veanagh |ennym_foddey_cadjincliaghtagh= {{lang|sg|Ködörösêse tî Bêafrîka|italics=no}} {{small|([[Sangoish]])}}<br/>{{lang|fr|République centrafricaine|italics=no}} {{small|([[Frangish]])}} |ennym_gienneydagh = Phobblaght yn Affrick Veanagh |jalloo_brattagh = Flag of the Central African Republic.svg |jalloo_cleinney = Coat_of_arms_of_the_Central_African_Republic.svg |jalloo_caslys = Central_African_Republic_(centered_orthographic_projection).svg |jarroo-raa = {{lang|sg|Zo Kwe Zo}} |çhengey_jarroo-raa = Sangoish |çhyndaa_jarroo-raa = She sleih dagh peiagh |jarroo-raa2 = {{lang|fr|Unité, Dignité, Travail}} |çhengey_jarroo-raa2 = Frangish |çhyndaa_jarroo-raa2 = Unnaneaght, Mooaralys, Obbyr |arrane_ashoonagh = {{lang|sg|E Zingo|italics=no}} |arrane_ashoonagh2 = {{lang|fr|[[La Renaissance]]|italics=no}} |çhengey_arrane_ashoonagh = Sangoish |çhengey_arrane_ashoonagh2 = Frangish |çhyndaa_arrane_ashoonagh = Yn Aaruggyr |coadan_arrane_ashoonagh = Central African Republic Anthem played by the US Navy Band.ogg |çhengaghyn_oikoil = {{hlist|[[Sangoish]]|[[Frangish]]<ref name="Samarin 2000 301–334">{{cite book |last=Samarin |first=William J. |chapter=The Status of Sango in Fact and Fiction: On the One-Hundredth Anniversary of its Conception |chapter-url=https://books.google.com/books?id=jSByTfudlIcC&pg=PA301 |editor-last=McWhorter |editor-first=John H. |editor-link=John McWhorter |title=Language Change and Language Contact in Pidgins and Creoles |publisher=John Benjamins |series=Creole language library |volume=21 |year=2000 |pages=301–334 |isbn=9789027252432}}</ref>}} |sorçh_çhengaghyn = [[Çhengey ashoonagh]] |çhengaghyn = [[Sangoish]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |blein_LTS_CCK = 2006 |LTS_CCK = $5.015 billoon |LTS_CCK_yn_dooinney = $1,198 |sorçh_kiondeeaght = Neuchrogheydys |taghyrt_bunneeaght1 = Pobblaght bunnit |date_bunneeaght1 = 1 Mee ny Nollick 1958 |taghyrt_bunneeaght2 = veih'n [[Yn Rank|Rank]] |date_bunneeaght2 = 13 Luanistyn 1960 |taghyrt_bunneeaght3 = Bunneeaght [[Impiraght yn Affrick Veanagh]] |date_bunneeaght3 = 4 Mee ny Nollick 1976 |taghyrt_bunneeaght4 = [[Crooinaghey Bokassa I as Catherine|Crooinaghey Bokassa&nbsp;I]] |date_bunneeaght4 = 4 Mee ny Nollick 1977 |taghyrt_bunneeaght5 = [[Obbreeaght Caban|Toyrt-mow Bokassa I as aachroo yn phobblaght]] |date_bunneeaght5 = 21 Mean Fouyir 1979 |traa_ynnydagh = [[Traa yn Affrick Heear|WAT]] |ashchur_utc = +01:00 |cctld = [[.cf]] |coad_çhellvane = 236 }} She çheer tallooinit 'syn [[yn Affrick|Affrick]] ee '''Pobblaght yn Affrick Veanagh''' ({{langx|fr|République Centrafricaine}}, {{langx|sg|Ködörösêse tî Bêafrîka}}). T'ee çhemmit liorish [[Shad]] da'n twoaie, [[Yn Toodaan Yiass|y Toodaan Yiass]] da'n shiar, [[Pobblaght y Chongo]] as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Cameroon]] da'n sheear. She [[Bangui]] [[preeu-valley]] ny çheerey. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Affrick Veanagh, Pobblaght}} {{bun}} [[Ronney:Pobblaght yn Affrick Veanagh| ]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Bunneeaghtyn ayns Pobblaght yn Affrick Veanagh 'sy vlein 1960|*]] [[Ronney:Çheeraghyn-baght Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Pobblaghtyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] {{Coord|7|N|21|E|type:country_region:CF|display=title}} i2wdmwi5bph2bzsgp7rb5hv3m18qx4c 394619 394617 2026-10-17T04:03:04Z MacTire02 219 catsort 394619 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght yn Affrick Veanagh |ennym_foddey_cadjincliaghtagh= {{lang|sg|Ködörösêse tî Bêafrîka|italics=no}} {{small|([[Sangoish]])}}<br/>{{lang|fr|République centrafricaine|italics=no}} {{small|([[Frangish]])}} |ennym_gienneydagh = Phobblaght yn Affrick Veanagh |jalloo_brattagh = Flag of the Central African Republic.svg |jalloo_cleinney = Coat_of_arms_of_the_Central_African_Republic.svg |jalloo_caslys = Central_African_Republic_(centered_orthographic_projection).svg |jarroo-raa = {{lang|sg|Zo Kwe Zo}} |çhengey_jarroo-raa = Sangoish |çhyndaa_jarroo-raa = She sleih dagh peiagh |jarroo-raa2 = {{lang|fr|Unité, Dignité, Travail}} |çhengey_jarroo-raa2 = Frangish |çhyndaa_jarroo-raa2 = Unnaneaght, Mooaralys, Obbyr |arrane_ashoonagh = {{lang|sg|E Zingo|italics=no}} |arrane_ashoonagh2 = {{lang|fr|[[La Renaissance]]|italics=no}} |çhengey_arrane_ashoonagh = Sangoish |çhengey_arrane_ashoonagh2 = Frangish |çhyndaa_arrane_ashoonagh = Yn Aaruggyr |coadan_arrane_ashoonagh = Central African Republic Anthem played by the US Navy Band.ogg |çhengaghyn_oikoil = {{hlist|[[Sangoish]]|[[Frangish]]<ref name="Samarin 2000 301–334">{{cite book |last=Samarin |first=William J. |chapter=The Status of Sango in Fact and Fiction: On the One-Hundredth Anniversary of its Conception |chapter-url=https://books.google.com/books?id=jSByTfudlIcC&pg=PA301 |editor-last=McWhorter |editor-first=John H. |editor-link=John McWhorter |title=Language Change and Language Contact in Pidgins and Creoles |publisher=John Benjamins |series=Creole language library |volume=21 |year=2000 |pages=301–334 |isbn=9789027252432}}</ref>}} |sorçh_çhengaghyn = [[Çhengey ashoonagh]] |çhengaghyn = [[Sangoish]] |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght eaghtyraneagh]] [[steat unnaneagh|unnaneagh]] |blein_LTS_CCK = 2006 |LTS_CCK = $5.015 billoon |LTS_CCK_yn_dooinney = $1,198 |sorçh_kiondeeaght = Neuchrogheydys |taghyrt_bunneeaght1 = Pobblaght bunnit |date_bunneeaght1 = 1 Mee ny Nollick 1958 |taghyrt_bunneeaght2 = veih'n [[Yn Rank|Rank]] |date_bunneeaght2 = 13 Luanistyn 1960 |taghyrt_bunneeaght3 = Bunneeaght [[Impiraght yn Affrick Veanagh]] |date_bunneeaght3 = 4 Mee ny Nollick 1976 |taghyrt_bunneeaght4 = [[Crooinaghey Bokassa I as Catherine|Crooinaghey Bokassa&nbsp;I]] |date_bunneeaght4 = 4 Mee ny Nollick 1977 |taghyrt_bunneeaght5 = [[Obbreeaght Caban|Toyrt-mow Bokassa I as aachroo yn phobblaght]] |date_bunneeaght5 = 21 Mean Fouyir 1979 |traa_ynnydagh = [[Traa yn Affrick Heear|WAT]] |ashchur_utc = +01:00 |cctld = [[.cf]] |coad_çhellvane = 236 }} She çheer tallooinit 'syn [[yn Affrick|Affrick]] ee '''Pobblaght yn Affrick Veanagh''' ({{langx|fr|République Centrafricaine}}, {{langx|sg|Ködörösêse tî Bêafrîka}}). T'ee çhemmit liorish [[Shad]] da'n twoaie, [[Yn Toodaan Yiass|y Toodaan Yiass]] da'n shiar, [[Pobblaght y Chongo]] as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Cameroon]] da'n sheear. She [[Bangui]] [[preeu-valley]] ny çheerey. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{bun}} [[Ronney:Pobblaght yn Affrick Veanagh| ]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Bunneeaghtyn ayns Pobblaght yn Affrick Veanagh 'sy vlein 1960|*]] [[Ronney:Çheeraghyn-baght Reagheydys y Cho-obbraghey Islamagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Pobblaghtyn]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1960]] {{Coord|7|N|21|E|type:country_region:CF|display=title}} lyhhxy869oegz8osaytyky0bve4c1d8 Ellan Wirrish 0 2920 394612 357903 2026-10-17T03:45:43Z MacTire02 219 ++ 394612 wikitext text/x-wiki {{Kishtey fys çheer |ennym_dooghyssagh = Pobblaght Ellan Wirrish |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of Mauritius|italics=no}} {{small|[[Baarle]])}}<br/>{{lang|fr|République de Maurice|italics=no}} {{small|([[Frangish]])}}<br/>{{lang|mfe|Repiblik Moris|italics=no}} {{small|([[Creeole Mwirrishagh|Morisien]])}} |ennym_gienneydagh = Ellan Wirrish |jalloo_brattagh = Flag of Mauritius.svg |jalloo_cleinney = Coat of arms of Mauritius.svg |jalloo_caslys = Mauritius (orthographic projection).svg |jarroo-raa = {{lang|la|Stella Clavisque Maris Indici}} |imraa_jarroo-raa = <ref>{{Cite web|title=Government Information Service – Coat of Arms|url=http://gis.govmu.org/English/About%20Mauritius/Pages/Coats-of-Arms.aspx|archive-url=https://web.archive.org/web/20200612094501/http://gis.govmu.org/English/About%20Mauritius/Pages/Coats-of-Arms.aspx|archive-date=12 Mean Souree 2020|access-date=29 Jerrey Souree 2019|publisher=govmu.org}}</ref> |çhyndaa_jarroo-raa = Rollage as Ogher y Cheayn Injinagh |çhengey_jarroo-raa = Ladjyn |arrane_ashoonagh = {{lang|en|[[Motherland (anthym)|Motherland]]|italics=no}} |coadan_arrane_ashoonagh = Motherland_(instrumental).ogg |çhengey_arrane_ashoonagh = Baarle |çhengaghyn_oikoil = Çhengey oikoil erbee (''de jure'')<br />{{nowrap|{{hlist|[[Baarle]]|[[Frangish]]}} (''de facto''){{efn|Cha nel [[bunraght Ellan Wirrish]] cur sheese er [[çhengey oikoil]]. Ta'n Bunraght gra dy nee Baarle çhengey oikoil y Çhionnal Ashoonagh; ansherbee, foddee oltey yn çhionnal loayrt rish y chaairliagh 'sy Rangish.}}}} |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh]] unnaneagh<ref>{{cite web |title=Country Profile: Mauritius |url=https://www.sng-wofi.org/country_profiles/mauritius.html |website=World Observatory on Subnational Government Finance and Investment (SNG-WOFI) |publisher=OECD / UCLG |access-date=2026-09-18}}</ref> |ushtey_sy_cheead = 0.05 |blein_LTS_CCK = 2006 |LTS_CCK = $16.0 billoon |LTS_CCK_yn_dooinney = $13,703 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Yn Reeriaght Unnaneysit|Reeriaght Unnaneysit]] |taghyrt1_bunnit = [[Bunraght Ellan Wirrish]] |date1_bunnit = 12 Mayrnt 1968 |taghyrt2_bunnit = Pobblaght |date2_bunnit = 12 Mart 1992 |traa_ynnydagh = [[Traa Ellan Wirrish|MUT]] |ashchur_utc = +04:00 |cctld = [[.mu]] |coad_çhellvane = 230 }} She çheer ayns [[yn Affrick]] ee '''Ellan Wirrish'''. T'ee soit ayns [[Yn Keayn Injinagh|y Cheayn Injinagh]]. She [[Port Louis]] y [[preeu-valley]]. ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{commonscat}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Wirrish, Ellan}} {{bun}} [[Ronney:Ellan Wirrish| ]] [[Ronney:Bunneeaghtyn 'syn Impiraght Ollanagh 'sy vlein 1638]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1968]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn ellanagh 'sy Cheayn Injinagh]] [[Ronney:Çheeraghyn ellanagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey Cho-unnaneys ny h-Ashoonyn]] [[Ronney:Çheeraghyn-oltey Organisation internationale de la Francophonie]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Ny h-Ellanyn Mascareenagh]] [[Ronney:Yn Affrick Vioseenagh]] [[Ronney:Buill chummaltit bunnit liorish Colught Ollanagh yn Injey Hiar]] [[Ronney:Buill chummaltit bunnit 'sy vlein 1638]] [[Ronney:Pobblaghtyn ayns Co-unnaneys ny h-Ashoonyn]] [[Ronney:Steatyn Beggey Ellanagh er Lhiasaghey]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1968]] m389w4xiykzstf2qc6kqypq924zjbj8 Clowan:Yn Commeeys Arabagh 10 5394 394602 394311 2026-10-17T02:33:41Z MacTire02 219 ++ 394602 wikitext text/x-wiki {{Navbox |name = Yn Commeeys Arabagh |state = {{{state|autocollapse}}} |title = Olteynyn y [[Yn Commeeys Arabagh|Chommeeys Arabagh]] |image = [[Coadan:Flag of the Arab League.svg|60px|right|border|Brattagh y Chommeeys Arabagh]] |bodyclass = hlist |group1 = Olteynyn |list1 = * [[Yn Algear]] * [[Yn Araab Saudi|yn Araab Saudi]] * [[Bahrain]] * [[Yn Chatar|y Chatar]] * [[Ellanyn Chomoro]] * [[Yn Choowait|y Choowait]] * [[Djibouti]] * [[yn Earack]] * [[yn Egypt]] * [[ny h-Emmiraidyn Arabagh Unnaneysit]] * [[Yn Jordaan|y Jordaan]] * [[Yn Leeb|y Leeb]] * [[Yn Livaan|y Livaan]] * [[yn Omaan]] * [[Yn Phalasteen|y Phalasteen]] * [[Yn Teer|y Teer]] * [[Yn Tomaal|y Tomaal]] * [[Yn Toodaan|y Toodaan]] * [[Yn Tooneesh|y Tooneesh]] * [[Yn Varitaan|y Varitaan]] * [[Yn Varoc|y Varoc]] * [[Yn Yeaman|yn Yeaman]] |group2 = Baghtallee |list2 = * [[Eritrea]] * [[yn Injey]] * [[Yn Veneswaaley|y Veneswaaley]] }} f1s39jbs40v9tv5v88lovtu6w747a9n Pobblaght Gheynlagh Arabagh y Tahara 0 6203 394632 394312 2026-10-17T05:34:46Z MacTire02 219 ++ 394632 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght Gheynlagh Arabagh y&nbsp;Tahara |ennym_foddey_cadjincliaghtagh= {{small|{{Name in various languages | name = {{nobold|''(ayns ny çhengaghyn oikoil)''}} | ar = {{lang|ar|الجمهورية العربية الصحراوية الديمقراطية}}<br/>{{small|{{tessen-lettyraghey|ar|al-Jumhūriyyah al-‘Arabiyyah aṣ-Ṣaḥrāwiyyah ad-Dīmuqrāṭiyyah}}}} | es = {{lang|es|República Árabe Saharaui Democrática|italics=no}} }}}} |ennym_gienneydagh = Phobblaght Gheynlagh Arabagh y Sahara |jalloo_brattagh = Flag_of_the_Sahrawi_Arab_Democratic_Republic.svg |jalloo_cleinney = |jalloo_caslys = Edmund_WS.PNG |fo-heidyl_caslys = Ta'n caslys shoh taishbyney yn thalloo ta fo aggyrt PGAS, viz. [[Yn Sahara Heear]] (daahit liorish striggyn). Ta'n chooid smoo jh'n thalloo shoh fo stiurey ny [[Yn Varoc|Maroc]]. She [[Cryss Seyr]] yn ennym ta currit er ny thallooyn ta fo stiurey PGAS, as t'ee daahit ayns buigh. |jarroo-raa = {{lang|ar|حرية، ديمقراطية، وحدة}} |jarroo-raa2 = {{lang|es|Libertad, Democracia, Unidad}} |çhyndaa_jarroo-raa = Seyrsnys, Deynlaghys, Unnaneaght |çhengey_jarroo-raa = Arabish |çhengey_jarroo-raa2 = Spaainish |arrane_ashoonagh = {{lang|ar|[[Yā Banī aṣ-Ṣaḥrāʾ|يا بني الصحراء]]}} |tessen-lettyraghey_arrane_ashoonagh = Yā Banī aṣ-Ṣaḥrāʾ |arrane_ashoonagh2 = ¡Oh, hijos del Sahara! |çhyndaa_arrane_ashoonagh = O, Mec y Tahara! |coadan_arrane_ashoonagh = Yabaniy es-sahara SADR anthem.mid |çhengey_arrane_ashoonagh = Arabish |çhengey_arrane_ashoonagh2 = Spaainish |çhengaghyn_oikoil = {{hlist|[[Arabish]]<ref>{{cite web |last=SADR |title=Constitution of the SADR |url=http://www.rasd-state.ws/babtani.htm |language=es|access-date=10 Mee Houney 2020 |archive-url=https://web.archive.org/web/20071111161544/http://www.rasd-state.ws/babtani.htm |archive-date=11 Mee Houney 2007}}</ref>|[[Spaainish y Tahara|Spaainish]]{{efn|Ta'n Spaainish soilshit myr nah hengey oikoil y PGAT<ref name="sps">{{cite web |url=https://archive.spsrasd.info/ar/articles/2018/11/29/18612.html |title=الوفد الصحراوي سيحضر لقاء جنيف بإرادة صادقة للتقدم نحو الحل الذي يضمن حق الشعب الصحراوي في تقرير المصير والاستقلال |date=29 Mee Houney 2018 |website=[[Shirveish Chlouderys y Tahara]] |archive-url=https://web.archive.org/web/20231125125900/https://archive.spsrasd.info/ar/articles/2018/11/29/18612.html |archive-date=25 Mee Houney 2023 |lang=ar |url-status=live}}</ref><ref name="János Besenyő">{{cite book |author1=Besenyő |first=János |author-link=János Besenyő |title=Conflict and Peace in Western Sahara The Role of the UN's Peacekeeping Mission (MINURSO) |author2=R. Joseph Huddleston |author3=Yahia H. Zoubir |publisher=Taylor & Francis |year=2022 |isbn=978-10-0080733-2 |page=51}}</ref><ref name="Dawn Chatty">{{cite book|author=Dawn Chatty|title=Deterritorialized Youth Sahrawi and Afghan Refugees at the Margins of the Middle East|year=2010|publisher=Berghahn Books |isbn=978-1-84545-653-5|pages=114}}</ref><ref name="Elena Fiddian-Qasmiyeh">{{cite book|author=Elena Fiddian-Qasmiyeh|title=South-South Educational Migration, Humanitarianism and Development Views from the Caribbean, North Africa and the Middle East|year=2015|publisher=Routledge |isbn=978-1-135-07667-2|pages=48}}</ref><ref>{{cite conference |last1=Martos |first1=Isabel |title=Linguistic Policy in the Camps of Sahrawi Refugees |url=https://www.researchgate.net/publication/273993698 |conference=ECAS 2013, 5th European Conference on African Studies |date=2014 |publisher=Universidad de Alcalá |access-date=19 Luanistyn 2018 |archive-date=22 Boaldyn 2021 |archive-url=https://web.archive.org/web/20210522172107/https://www.researchgate.net/publication/273993698_Linguistic_Policy_in_the_Camps_of_Sahrawi_Refugees_2014 |url-status=live }}</ref>}} }} |sorçh_çhengaghyn = Çhengaghyn loayrit |çhengaghyn = {{unbulleted list| * [[Arabish Hassaniya]] * [[Spaainish y Tahara]]<ref>{{cite web |url=http://cvc.cervantes.es/lengua/anuario/anuario_06-07/pdf/paises_3.pdf |title=El Español en los Campamentos de Refugiados Saharauis (Tinduf, yn Algear) |publisher=Cvc.cervantes.es |access-date=20 Boaldyn 2015 |archive-date=26 Mee ny Nollick 2016 |archive-url=https://web.archive.org/web/20161226150735/http://cvc.cervantes.es/lengua/anuario/anuario_06-07/pdf/paises_3.pdf |url-status=live }}</ref> }} |craueeaght = [[Yn Islam]] ([[craueeaght steat|oikoil]]) |preeu-valley = [[Laayoune]] (''de jure'') |preeu-valley_ayns_eebyrtys = {{unbulleted list | [[Camp kemmyrkee Rabouni|Rabuni]], [[Tindouf]] (''de facto'') | [[Tifariti]] (''fogrit magh myr [[preeu-valley shallidagh]]'') }} |balley_smoo = |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] unnaneagh un-phartee<ref>{{cite web |date=1999-09-04 |title=Constitution of the SADR |url=https://www.arso.org/03-const.99.htm |website=arso.org |publisher=Association de soutien à un référendum libre et régulier au Sahara Occidental |access-date=2025-05-13|lang=es}}</ref><ref>{{cite web |last=SADR |title=Constitution of the SADR |url=http://www.rasd-state.ws/babtani.htm |language=ar|access-date=10 Mee Houney 2020 |archive-url=https://web.archive.org/web/20071111161544/http://www.rasd-state.ws/babtani.htm |archive-date=11 Mee Houney 2007}}</ref> |sorçh_kiondeeaght = [[Pobblaght Gheynlagh Arabagh y Tahara#Shennaghys|Crooaght]] |note_kiondeeaght = |taghyrt_bunneeaght1 = [[Coardailyssyn Madrid|Lhiggit ass]] lesh y [[Yn Spaainey fo Franco|Spaainey]] |date_bunneeaght1 = 14 Mee Houney 1975 |taghyrt_bunneeaght2 = Fogrey magh y phobblaght |date_bunneeaght2 = 27 Toshiaght Arree 1976 |taghyrt_bunneeaght3 = Kionedeeaght fo arganeys lesh y [[Yn Varoc|Varoc]] |date_bunneeaght3 = [[Streeu yn Tahara Heear|Foast ayn]] |argid =[[Peseta Saharagh]] (''de jure'') ([[ISO 4217|EHP]])<br> {{Collapsible list |framestyle=border:none; padding:0; |titlestyle=font-weight:normal; |title=''De facto'' |1=[[Dirham Marocagh]] ([[ISO 4217|MAD]]){{efn|Ayns ny [[Yn Sahara Heear fo cummaltys y Varoc|thallooyn fo cummaltys y Varoc]].}} |2=[[Dinar Algearagh]] ([[ISO 4217|DZD]]) |3=[[Ouguiya Maritaanagh]] ([[ISO 4217|MRU]]) |4=[[Euro]] ([[ISO 4217|EUR]])}} |traa_ynnydagh = [[Traa Mean Greenwich|GMT]] |ashchur_utc = +00:00 |cctld = [[.eh]] tashtit }} Ta '''Pobblaght Gheynlagh Arabagh y Tahara''' ({{langx|ar|الجمهورية العربية الصحراوية الديمقراطية‎}}), ny '''PGAT''', ny çheer 'syn [[Yn Affrick|Affrick]] nagh vel enney currit urree. Ta reiltys ny çheerey sursmooinaghey dy vel [[Yn Sahara Heear|y Sahara Heear]] yn clane cooid jeh'n steat oc. Va'n PGAS fogrit magh liorish [[Polisario]] er 27 Toshiaght Arree 1976, as ta 20% jeh'n çheer fo nyn stiurey lesh yn ennym "[[Cryss Heyr]]". Ta'n ayrn elley jeh'n çheer fo stiurey reiltys y [[Yn Varoc|Varoc]]. ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Tahara, Pobblaght Gheynlagh Arabagh}} {{stub}} [[Ronney:Pobblaght Gheynlagh Arabagh y Tahara| ]] [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Çheeraghyn Maghrebagh]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Pobblaghtyn Arabagh]] [[Ronney:Thallooyn arganeyssityn Affrick]] [[Ronney:Arganeyssyn thallooin y Varoc]] [[Ronney:Reiltyssyn 'syn eebyrtys]] [[Ronney:Eear-choloinyn Spaainagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Steatyn un-phartee]] [[Ronney:Polisario]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1976]] [[Ronney:Bunneeaghtyn 'sy Tahara Heear 'sy vlein 1976]] [[Ronney:Çheer-oaylleeaght y Tahara Heear]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Steatyn as lieh-enney oc]] renr9ykwwhckinidijomxs66oy9m3lq 394635 394632 2026-10-17T05:39:26Z MacTire02 219 ++ 394635 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght Gheynlagh Arabagh y&nbsp;Tahara |ennym_foddey_cadjincliaghtagh= {{small|{{Name in various languages | name = {{nobold|''(ayns ny çhengaghyn oikoil)''}} | ar = {{lang|ar|الجمهورية العربية الصحراوية الديمقراطية}}<br/>{{small|{{tessen-lettyraghey|ar|al-Jumhūriyyah al-‘Arabiyyah aṣ-Ṣaḥrāwiyyah ad-Dīmuqrāṭiyyah}}}} | es = {{lang|es|República Árabe Saharaui Democrática|italics=no}} }}}} |ennym_gienneydagh = Phobblaght Gheynlagh Arabagh y Sahara |jalloo_brattagh = Flag_of_the_Sahrawi_Arab_Democratic_Republic.svg |jalloo_cleinney = |jalloo_caslys = Edmund_WS.PNG |fo-heidyl_caslys = Ta'n caslys shoh taishbyney yn thalloo ta fo aggyrt PGAS, viz. [[Yn Sahara Heear]] (daahit liorish striggyn). Ta'n chooid smoo jh'n thalloo shoh fo stiurey ny [[Yn Varoc|Maroc]]. She [[Cryss Seyr]] yn ennym ta currit er ny thallooyn ta fo stiurey PGAS, as t'ee daahit ayns buigh. |jarroo-raa = {{lang|ar|حرية، ديمقراطية، وحدة}} |jarroo-raa2 = {{lang|es|Libertad, Democracia, Unidad}} |çhyndaa_jarroo-raa = Seyrsnys, Deynlaghys, Unnaneaght |çhengey_jarroo-raa = Arabish |çhengey_jarroo-raa2 = Spaainish |arrane_ashoonagh = {{lang|ar|[[Yā Banī aṣ-Ṣaḥrāʾ|يا بني الصحراء]]}} |tessen-lettyraghey_arrane_ashoonagh = Yā Banī aṣ-Ṣaḥrāʾ |arrane_ashoonagh2 = ¡Oh, hijos del Sahara! |çhyndaa_arrane_ashoonagh = O, Mec y Tahara! |coadan_arrane_ashoonagh = Yabaniy es-sahara SADR anthem.mid |çhengey_arrane_ashoonagh = Arabish |çhengey_arrane_ashoonagh2 = Spaainish |çhengaghyn_oikoil = {{hlist|[[Arabish]]<ref>{{cite web |last=SADR |title=Constitution of the SADR |url=http://www.rasd-state.ws/babtani.htm |language=es|access-date=10 Mee Houney 2020 |archive-url=https://web.archive.org/web/20071111161544/http://www.rasd-state.ws/babtani.htm |archive-date=11 Mee Houney 2007}}</ref>|[[Spaainish y Tahara|Spaainish]]{{efn|Ta'n Spaainish soilshit myr nah hengey oikoil y PGAT<ref name="sps">{{cite web |url=https://archive.spsrasd.info/ar/articles/2018/11/29/18612.html |title=الوفد الصحراوي سيحضر لقاء جنيف بإرادة صادقة للتقدم نحو الحل الذي يضمن حق الشعب الصحراوي في تقرير المصير والاستقلال |date=29 Mee Houney 2018 |website=[[Shirveish Chlouderys y Tahara]] |archive-url=https://web.archive.org/web/20231125125900/https://archive.spsrasd.info/ar/articles/2018/11/29/18612.html |archive-date=25 Mee Houney 2023 |lang=ar |url-status=live}}</ref><ref name="János Besenyő">{{cite book |author1=Besenyő |first=János |author-link=János Besenyő |title=Conflict and Peace in Western Sahara The Role of the UN's Peacekeeping Mission (MINURSO) |author2=R. Joseph Huddleston |author3=Yahia H. Zoubir |publisher=Taylor & Francis |year=2022 |isbn=978-10-0080733-2 |page=51}}</ref><ref name="Dawn Chatty">{{cite book|author=Dawn Chatty|title=Deterritorialized Youth Sahrawi and Afghan Refugees at the Margins of the Middle East|year=2010|publisher=Berghahn Books |isbn=978-1-84545-653-5|pages=114}}</ref><ref name="Elena Fiddian-Qasmiyeh">{{cite book|author=Elena Fiddian-Qasmiyeh|title=South-South Educational Migration, Humanitarianism and Development Views from the Caribbean, North Africa and the Middle East|year=2015|publisher=Routledge |isbn=978-1-135-07667-2|pages=48}}</ref><ref>{{cite conference |last1=Martos |first1=Isabel |title=Linguistic Policy in the Camps of Sahrawi Refugees |url=https://www.researchgate.net/publication/273993698 |conference=ECAS 2013, 5th European Conference on African Studies |date=2014 |publisher=Universidad de Alcalá |access-date=19 Luanistyn 2018 |archive-date=22 Boaldyn 2021 |archive-url=https://web.archive.org/web/20210522172107/https://www.researchgate.net/publication/273993698_Linguistic_Policy_in_the_Camps_of_Sahrawi_Refugees_2014 |url-status=live }}</ref>}} }} |sorçh_çhengaghyn = Çhengaghyn loayrit |çhengaghyn = {{unbulleted list| * [[Arabish Hassaniya]] * [[Spaainish y Tahara]]<ref>{{cite web |url=http://cvc.cervantes.es/lengua/anuario/anuario_06-07/pdf/paises_3.pdf |title=El Español en los Campamentos de Refugiados Saharauis (Tinduf, yn Algear) |publisher=Cvc.cervantes.es |access-date=20 Boaldyn 2015 |archive-date=26 Mee ny Nollick 2016 |archive-url=https://web.archive.org/web/20161226150735/http://cvc.cervantes.es/lengua/anuario/anuario_06-07/pdf/paises_3.pdf |url-status=live }}</ref> }} |craueeaght = [[Yn Islam]] ([[craueeaght steat|oikoil]]) |preeu-valley = [[Laayoune]] (''de jure'') |preeu-valley_ayns_eebyrtys = {{unbulleted list | [[Camp kemmyrkee Rabouni|Rabuni]], [[Tindouf]] (''de facto'') | [[Tifariti]] (''fogrit magh myr [[preeu-valley shallidagh]]'') }} |balley_smoo = |sorçh_reiltys = [[Pobblaght lieh-eaghtyraneagh]] unnaneagh un-phartee<ref>{{cite web |date=1999-09-04 |title=Constitution of the SADR |url=https://www.arso.org/03-const.99.htm |website=arso.org |publisher=Association de soutien à un référendum libre et régulier au Sahara Occidental |access-date=2025-05-13|lang=es}}</ref><ref>{{cite web |last=SADR |title=Constitution of the SADR |url=http://www.rasd-state.ws/babtani.htm |language=ar|access-date=10 Mee Houney 2020 |archive-url=https://web.archive.org/web/20071111161544/http://www.rasd-state.ws/babtani.htm |archive-date=11 Mee Houney 2007}}</ref> |sorçh_kiondeeaght = [[Pobblaght Gheynlagh Arabagh y Tahara#Shennaghys|Crooaght]] |note_kiondeeaght = |taghyrt_bunneeaght1 = [[Coardailyssyn Madrid|Lhiggit ass]] lesh y [[Yn Spaainey fo Franco|Spaainey]] |date_bunneeaght1 = 14 Mee Houney 1975 |taghyrt_bunneeaght2 = Fogrey magh y phobblaght |date_bunneeaght2 = 27 Toshiaght Arree 1976 |taghyrt_bunneeaght3 = Kionedeeaght fo arganeys lesh y [[Yn Varoc|Varoc]] |date_bunneeaght3 = [[Streeu yn Tahara Heear|Foast ayn]] |argid =[[Peseta Saharagh]] (''de jure'') ([[ISO 4217|EHP]])<br> {{Collapsible list |framestyle=border:none; padding:0; |titlestyle=font-weight:normal; |title=''De facto'' |1=[[Dirham Marocagh]] ([[ISO 4217|MAD]]){{efn|Ayns ny [[Yn Sahara Heear fo cummaltys y Varoc|thallooyn fo cummaltys y Varoc]].}} |2=[[Dinar Algearagh]] ([[ISO 4217|DZD]]) |3=[[Ouguiya Maritaanagh]] ([[ISO 4217|MRU]]) |4=[[Euro]] ([[ISO 4217|EUR]])}} |traa_ynnydagh = [[Traa Mean Greenwich|GMT]] |ashchur_utc = +00:00 |cctld = [[.eh]] tashtit }} Ta '''Pobblaght Gheynlagh Arabagh y Tahara''' ({{langx|ar|الجمهورية العربية الصحراوية الديمقراطية‎}}), ny '''PGAT''', ny çheer 'syn [[Yn Affrick|Affrick]] nagh vel enney currit urree. Ta reiltys ny çheerey sursmooinaghey dy vel [[Yn Sahara Heear|y Sahara Heear]] yn clane cooid jeh'n steat oc. Va'n PGAS fogrit magh liorish [[Polisario]] er 27 Toshiaght Arree 1976, as ta 20% jeh'n çheer fo nyn stiurey lesh yn ennym "[[Cryss Heyr]]". Ta'n ayrn elley jeh'n çheer fo stiurey reiltys y [[Yn Varoc|Varoc]]. ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Tahara, Pobblaght Gheynlagh Arabagh}} {{stub}} [[Ronney:Pobblaght Gheynlagh Arabagh y Tahara| ]] [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Çheeraghyn Maghrebagh]] [[Ronney:Çheeraghyn Saharagh]] [[Ronney:Pobblaghtyn Arabagh]] [[Ronney:Thallooyn arganeyssit yn Affrick]] [[Ronney:Arganeyssyn thallooin y Varoc]] [[Ronney:Reiltyssyn 'syn eebyrtys]] [[Ronney:Eear-choloinyn Spaainagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Steatyn un-phartee]] [[Ronney:Polisario]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1976]] [[Ronney:Bunneeaghtyn 'sy Tahara Heear 'sy vlein 1976]] [[Ronney:Çheer-oaylleeaght y Tahara Heear]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Steatyn as lieh-enney oc]] s0tuzgozys52c3maqdx8e57ouy676d0 Yn Tomaalee 0 10902 394620 331921 2026-10-17T04:35:38Z MacTire02 219 ++ 394620 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Tomaalee |ennym_foddey_cadjincliaghtagh= {{lang|so|Jamhuuriyadda Soomaaliland|italics=no}} {{small|([[Somaalish]])}}<br />{{lang|ar|جمهورية أرض الصومال}} {{small|([[Arabish]])}}<br />{{small|{{tessen-lettyraghey|ar|Jumhūriyat Arḍ aṣ-Ṣūmāl}}}} |ennym_gienneydagh = Ellan Wirrish |jalloo_brattagh = Flag of Somaliland.svg |jalloo_cleinney = Emblem of Somaliland.svg |sorçh_cowrey = Cowrey |jalloo_caslys = Somaliland (orthographic projection).svg |fo-heidyl_caslys = {{Legend|#31672F|Thalloo fo stiurey}}<br />{{Legend|#47CA44|[[Steat Hiar Hwoaie yn Tomaal|Thalloo aggyrtit agh nagh vel fo stiurey]]}} |jarroo-raa = {{lang|ar|لا إله إلا الله محمد رسول الله}} |tessen-lettyraghey_jarroo-raa= {{tessen-lettyraghey|ar|Lā ilāhā illā-llāhu; muḥammadun rasūlu-llāh}} |çhyndaa_jarroo-raa = [[Shahada|Cha nel Jee ayn agh Allah; she Mahommad Çhaghter Jee]] |çhengey_jarroo-raa = Arabish |arrane_ashoonagh = {{lang|so|[[Samo ku waar]]|italics=no}} |çhyndaa_arrane_ashoonagh = Beaghey ayns Shee Beayn |coadan_arrane_ashoonagh = Samo ku waar - Anthem of Somaliland (Instrumental).ogg |çhengey_arrane_ashoonagh = Somaalish |çhengaghyn_oikoil = [[Somaalish]] |sorçh_çhengaghyn = Nah hengey |çhengaghyn = {{hlist|[[Arabic]]<ref name="Y0P0l">{{cite web|url=http://www.somalilandlaw.com/body_somaliland_constitution.htm|title=Somaliland Constitution|last=website|first=Somallilandlaw.com – an independent non-for-profit|website=www.somalilandlaw.com|access-date=2 Jerrey Souree 2017|archive-date=28 Boaldyn 2025|archive-url=https://web.archive.org/web/20250528203913/http://www.somalilandlaw.com/body_somaliland_constitution.htm|url-status=live}}</ref>|[[Baarle]]}} |craueeaght = [[Yn Islam]] ([[craueeaght steat|oikoil]]) |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh]] unnaneagh |blein_LTS_CCK = 2006 |LTS_CCK = $16.0 billoon |LTS_CCK_yn_dooinney = $13,703 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Yn Tomaal|Tomaal]]{{efn|Cha nel agh [[Israel]] cur enney oikoil da'n Tomaalee.<ref name="NYT">{{cite news |title = The Signs Say Somaliland, but the World Says Somalia |newspaper = The New York Times |date = 5 Mean Souree 2006 |url = https://www.nytimes.com/2006/06/05/world/africa/05somaliland.html |access-date = 2 Toshiaght Arree 2010 |first = Marc |last = Lacey |archive-date = 29 Averil 2025 |archive-url = https://web.archive.org/web/20250429003755/https://www.nytimes.com/2006/06/05/world/africa/05somaliland.html |url-status = live }}</ref>}} |taghyrt_bunneeaght1 = [[Sultanaght Isaaq]] |date_bunneeaght1 = 1750–1884 |taghyrt_bunneeaght2 = Bunneeaght y [[Yn Tomaalee Ghoaldagh|choadanys Goaldagh]] |date_bunneeaght2 = 1884 |taghyrt_bunneeaght3 = [[Laa yn Neuchrogheydys (Steat y Tomaalee)|Neuchrogheydys]] [[Steat y Tomaalee]] veih'n [[Yn Reeriaght Unnaneysit|Reeriaght Unnaneysit]] |date_bunneeaght3 = 26 Mean Souree 1960 |taghyrt_bunneeaght4 = Co-unnaneys rish [[Treisht-halloo yn Tomaalee]] myr y [[Pobblaght y Tomaal]] |date_bunneeaght4 = 1 Jerrey Souree 1960 |taghyrt_bunneeaght5 = [[Caggey Neuchrogheydys y Tomaalee]] |date_bunneeaght5 = 6 Averil 1981 |taghyrt_bunneeaght6 = [[Fogrey Neuchrogheydys y Tomaalee|Fogrey neuchrogheydys]] |date_bunneeaght6 = 18 Boaldyn 1991 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |coad_çhellvane = 230 }} She çheer lieh-ennit ayns [[Cayrn yn Affrick]] ee '''yn Tomaalee''' ny '''yn Çheer Homaalagh''' ({{langx|so|Soomaaliland}}, {{langx|ar|أرض الصومال}} ''Arḍ aṣ-Ṣūmāl''). ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneilys ynnydagh}} {{DEFAULTSORT:Tomaalee, Yn}} {{bun}} {{Coord|9|45|N|45|58|E|display=title}} [[Ronney:Yn Tomaalee| ]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Eear-choadanyssyn Goaldagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn Chayrn yn Affrick]] [[Ronney:Scarreydys 'sy Tomaal]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1991]] [[Ronney:Olteynyn Reagheydys ny h-Ashoonyn as Sleih gyn Tuarystallys]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1991]] [[Ronney:Scarreydys 'syn Affrick]] [[Ronney:Steatyn as lieh-enney oc]] nk8769q3kg16tqhqmnch2areyy9820u 394621 394620 2026-10-17T04:36:00Z MacTire02 219 Gaelg Arabic > Arabish 394621 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Tomaalee |ennym_foddey_cadjincliaghtagh= {{lang|so|Jamhuuriyadda Soomaaliland|italics=no}} {{small|([[Somaalish]])}}<br />{{lang|ar|جمهورية أرض الصومال}} {{small|([[Arabish]])}}<br />{{small|{{tessen-lettyraghey|ar|Jumhūriyat Arḍ aṣ-Ṣūmāl}}}} |ennym_gienneydagh = Ellan Wirrish |jalloo_brattagh = Flag of Somaliland.svg |jalloo_cleinney = Emblem of Somaliland.svg |sorçh_cowrey = Cowrey |jalloo_caslys = Somaliland (orthographic projection).svg |fo-heidyl_caslys = {{Legend|#31672F|Thalloo fo stiurey}}<br />{{Legend|#47CA44|[[Steat Hiar Hwoaie yn Tomaal|Thalloo aggyrtit agh nagh vel fo stiurey]]}} |jarroo-raa = {{lang|ar|لا إله إلا الله محمد رسول الله}} |tessen-lettyraghey_jarroo-raa= {{tessen-lettyraghey|ar|Lā ilāhā illā-llāhu; muḥammadun rasūlu-llāh}} |çhyndaa_jarroo-raa = [[Shahada|Cha nel Jee ayn agh Allah; she Mahommad Çhaghter Jee]] |çhengey_jarroo-raa = Arabish |arrane_ashoonagh = {{lang|so|[[Samo ku waar]]|italics=no}} |çhyndaa_arrane_ashoonagh = Beaghey ayns Shee Beayn |coadan_arrane_ashoonagh = Samo ku waar - Anthem of Somaliland (Instrumental).ogg |çhengey_arrane_ashoonagh = Somaalish |çhengaghyn_oikoil = [[Somaalish]] |sorçh_çhengaghyn = Nah hengey |çhengaghyn = {{hlist|[[Arabish]]<ref name="Y0P0l">{{cite web|url=http://www.somalilandlaw.com/body_somaliland_constitution.htm|title=Somaliland Constitution|last=website|first=Somallilandlaw.com – an independent non-for-profit|website=www.somalilandlaw.com|access-date=2 Jerrey Souree 2017|archive-date=28 Boaldyn 2025|archive-url=https://web.archive.org/web/20250528203913/http://www.somalilandlaw.com/body_somaliland_constitution.htm|url-status=live}}</ref>|[[Baarle]]}} |craueeaght = [[Yn Islam]] ([[craueeaght steat|oikoil]]) |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh]] unnaneagh |blein_LTS_CCK = 2006 |LTS_CCK = $16.0 billoon |LTS_CCK_yn_dooinney = $13,703 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Yn Tomaal|Tomaal]]{{efn|Cha nel agh [[Israel]] cur enney oikoil da'n Tomaalee.<ref name="NYT">{{cite news |title = The Signs Say Somaliland, but the World Says Somalia |newspaper = The New York Times |date = 5 Mean Souree 2006 |url = https://www.nytimes.com/2006/06/05/world/africa/05somaliland.html |access-date = 2 Toshiaght Arree 2010 |first = Marc |last = Lacey |archive-date = 29 Averil 2025 |archive-url = https://web.archive.org/web/20250429003755/https://www.nytimes.com/2006/06/05/world/africa/05somaliland.html |url-status = live }}</ref>}} |taghyrt_bunneeaght1 = [[Sultanaght Isaaq]] |date_bunneeaght1 = 1750–1884 |taghyrt_bunneeaght2 = Bunneeaght y [[Yn Tomaalee Ghoaldagh|choadanys Goaldagh]] |date_bunneeaght2 = 1884 |taghyrt_bunneeaght3 = [[Laa yn Neuchrogheydys (Steat y Tomaalee)|Neuchrogheydys]] [[Steat y Tomaalee]] veih'n [[Yn Reeriaght Unnaneysit|Reeriaght Unnaneysit]] |date_bunneeaght3 = 26 Mean Souree 1960 |taghyrt_bunneeaght4 = Co-unnaneys rish [[Treisht-halloo yn Tomaalee]] myr y [[Pobblaght y Tomaal]] |date_bunneeaght4 = 1 Jerrey Souree 1960 |taghyrt_bunneeaght5 = [[Caggey Neuchrogheydys y Tomaalee]] |date_bunneeaght5 = 6 Averil 1981 |taghyrt_bunneeaght6 = [[Fogrey Neuchrogheydys y Tomaalee|Fogrey neuchrogheydys]] |date_bunneeaght6 = 18 Boaldyn 1991 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |coad_çhellvane = 230 }} She çheer lieh-ennit ayns [[Cayrn yn Affrick]] ee '''yn Tomaalee''' ny '''yn Çheer Homaalagh''' ({{langx|so|Soomaaliland}}, {{langx|ar|أرض الصومال}} ''Arḍ aṣ-Ṣūmāl''). ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneilys ynnydagh}} {{DEFAULTSORT:Tomaalee, Yn}} {{bun}} {{Coord|9|45|N|45|58|E|display=title}} [[Ronney:Yn Tomaalee| ]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Eear-choadanyssyn Goaldagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn Chayrn yn Affrick]] [[Ronney:Scarreydys 'sy Tomaal]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1991]] [[Ronney:Olteynyn Reagheydys ny h-Ashoonyn as Sleih gyn Tuarystallys]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1991]] [[Ronney:Scarreydys 'syn Affrick]] [[Ronney:Steatyn as lieh-enney oc]] gfft66nrb6ic5hf6ofu6i3xcr1ho5iy 394622 394621 2026-10-17T04:36:57Z MacTire02 219 clowan kiartit 394622 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Tomaalee |ennym_foddey_cadjincliaghtagh= {{lang|so|Jamhuuriyadda Soomaaliland|italics=no}} {{small|([[Somaalish]])}}<br />{{lang|ar|جمهورية أرض الصومال}} {{small|([[Arabish]])}}<br />{{small|{{tessen-lettyraghey|ar|Jumhūriyat Arḍ aṣ-Ṣūmāl}}}} |ennym_gienneydagh = Ellan Wirrish |jalloo_brattagh = Flag of Somaliland.svg |jalloo_cleinney = Emblem of Somaliland.svg |sorçh_cowrey = Cowrey |jalloo_caslys = Somaliland (orthographic projection).svg |fo-heidyl_caslys = {{Legend|#31672F|Thalloo fo stiurey}}<br />{{Legend|#47CA44|[[Steat Hiar Hwoaie yn Tomaal|Thalloo aggyrtit agh nagh vel fo stiurey]]}} |jarroo-raa = {{lang|ar|لا إله إلا الله محمد رسول الله}} |tessen-lettyraghey_jarroo-raa= {{tessen-lettyraghey|ar|Lā ilāhā illā-llāhu; muḥammadun rasūlu-llāh}} |çhyndaa_jarroo-raa = [[Shahada|Cha nel Jee ayn agh Allah; she Mahommad Çhaghter Jee]] |çhengey_jarroo-raa = Arabish |arrane_ashoonagh = {{lang|so|[[Samo ku waar]]|italics=no}} |çhyndaa_arrane_ashoonagh = Beaghey ayns Shee Beayn |coadan_arrane_ashoonagh = Samo ku waar - Anthem of Somaliland (Instrumental).ogg |çhengey_arrane_ashoonagh = Somaalish |çhengaghyn_oikoil = [[Somaalish]] |sorçh_çhengaghyn = Nah hengey |çhengaghyn = {{hlist|[[Arabish]]<ref name="Y0P0l">{{cite web|url=http://www.somalilandlaw.com/body_somaliland_constitution.htm|title=Somaliland Constitution|last=website|first=Somallilandlaw.com – an independent non-for-profit|website=www.somalilandlaw.com|access-date=2 Jerrey Souree 2017|archive-date=28 Boaldyn 2025|archive-url=https://web.archive.org/web/20250528203913/http://www.somalilandlaw.com/body_somaliland_constitution.htm|url-status=live}}</ref>|[[Baarle]]}} |craueeaght = [[Yn Islam]] ([[craueeaght steat|oikoil]]) |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght pharlamaidagh]] unnaneagh |blein_LTS_CCK = 2006 |LTS_CCK = $16.0 billoon |LTS_CCK_yn_dooinney = $13,703 |sorçh_kiondeeaght = Neuchrogheydys |note_kiondeeaght = veih'n [[Yn Tomaal|Tomaal]]{{efn|Cha nel agh [[Israel]] cur enney oikoil da'n Tomaalee.<ref name="NYT">{{cite news |title = The Signs Say Somaliland, but the World Says Somalia |newspaper = The New York Times |date = 5 Mean Souree 2006 |url = https://www.nytimes.com/2006/06/05/world/africa/05somaliland.html |access-date = 2 Toshiaght Arree 2010 |first = Marc |last = Lacey |archive-date = 29 Averil 2025 |archive-url = https://web.archive.org/web/20250429003755/https://www.nytimes.com/2006/06/05/world/africa/05somaliland.html |url-status = live }}</ref>}} |taghyrt_bunneeaght1 = [[Sultanaght Isaaq]] |date_bunneeaght1 = 1750–1884 |taghyrt_bunneeaght2 = Bunneeaght y [[Yn Tomaalee Ghoaldagh|choadanys Goaldagh]] |date_bunneeaght2 = 1884 |taghyrt_bunneeaght3 = [[Laa yn Neuchrogheydys (Steat y Tomaalee)|Neuchrogheydys]] [[Steat y Tomaalee]] veih'n [[Yn Reeriaght Unnaneysit|Reeriaght Unnaneysit]] |date_bunneeaght3 = 26 Mean Souree 1960 |taghyrt_bunneeaght4 = Co-unnaneys rish [[Treisht-halloo yn Tomaalee]] myr y [[Pobblaght y Tomaal]] |date_bunneeaght4 = 1 Jerrey Souree 1960 |taghyrt_bunneeaght5 = [[Caggey Neuchrogheydys y Tomaalee]] |date_bunneeaght5 = 6 Averil 1981 |taghyrt_bunneeaght6 = [[Fogrey Neuchrogheydys y Tomaalee|Fogrey neuchrogheydys]] |date_bunneeaght6 = 18 Boaldyn 1991 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |coad_çhellvane = 230 }} She çheer lieh-ennit ayns [[Cayrn yn Affrick]] ee '''yn Tomaalee''' ny '''yn Çheer Homaalagh''' ({{langx|so|Soomaaliland}}, {{langx|ar|أرض الصومال}} ''Arḍ aṣ-Ṣūmāl''). ==Noteyn== {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Tomaalee, Yn}} {{bun}} {{Coord|9|45|N|45|58|E|display=title}} [[Ronney:Yn Tomaalee| ]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Eear-choadanyssyn Goaldagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Çheeraghyn Chayrn yn Affrick]] [[Ronney:Scarreydys 'sy Tomaal]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 1991]] [[Ronney:Olteynyn Reagheydys ny h-Ashoonyn as Sleih gyn Tuarystallys]] [[Ronney:Bunneeaghtyn 'syn Affrick 'sy vlein 1991]] [[Ronney:Scarreydys 'syn Affrick]] [[Ronney:Steatyn as lieh-enney oc]] 5bvyjwjghl4oatufh81794cmf9bz5gx Forse 0 11978 394637 296773 2026-10-17T06:35:35Z MacTire02 219 gaelg 394637 wikitext text/x-wiki [[Coadan:Force_examples.svg|right|300 px|thumb|Dy cadjin, t'ad soilshaghey forseyn myr seiy ny tayrn. Foddee ad gobbraghey liorish [[trimmid]], [[magnaidys]] as [[phenomenon|phenomena]] elley ta cur er nhee siyraghey.]] She parameadar vaghtooragh eh '''forse''', as ta paart mooar echey ayns [[obbrinaght chlassicagh]]. Foddee eh [[bieauaghey]] ny [[aachummey]] nheeghyn, as trooid eiyrtys 'orse, foddee oo jannoo [[obbyr (fishag)|obbyr]] ny caghlaa [[bree]] nhee ennagh. Ta [[mooadys (maddaght)|mooadys]] as [[troa (maddaght)|troa]] ec forse, as myr shen, she [[vaghtoor]] t'ayn. Ta [[leighyn gleashaght Newton]] meenaghey forse myr cormid caghlaa momentum nhee ennagh, dy ghraa myr shen: :<math>~ F = m.a </math> raad ta:<br /> '''F''' çheet er Forse (N)<br /> '''m''' çheet er [[Glout]] (Kg)<br /> '''a''' çheet er [[bieauaghey]] Ren ny shenn [[fallsoonys|'allsoonee]] ymmyd jeh'n eie dy row forse ayn er son studeyrys er nheeghyn [[obbrinaght staddagh|staddagh]] as [[dynamickyn|gleashagh]]. Ren [[Aristotle]] ymmyd yn eie shen y veenaghey, agh va'n eie echey goaill stiagh far-hoiggalyn bunneydagh v'ayn foast rish ymmodee keeadyn. Haink [[Archimedes]] dy hoiggal eh ny share liorish cooilleeiney [[jeshaght bunneydagh|jeshaghtyn bunneydagh]], agh ec y traa shen, shimmey peiagh va credjue eieyn Aristotle foast.<ref name="Archimedes">{{enmyseddyrvoggyl | screeudeyr = T.L. Heath | kiangley = http://www.archive.org/details/worksofarchimede029517mbp | ennym = ''The Works of Archimedes'' (1897). The unabridged work in PDF form (19&nbsp;MB) | soilsheyder = [[Archive.org]] | datefeddyn = 2007-10-14 | çhengey = Baarle }}</ref> Rish toshiaght [[Lhing ny Soilsheyraght]], chiartee [[Isaac Newton]] ny far-hoiggalyn shoh lesh fys maddaghtoil va cummal magh rish tree keeadyn, faggys.<ref name=uniphysics_ch2>{{enmyslioar | ennym = University Physics | screeudeyr = Sears | coscreeudeyryn = Young & Zemansky | duillag = 18–38 | çhengey = Baarle }}</ref> Leah 'sy 19oo eash, doshil [[Einstein]] sheiltynys ny [[conastaght er lheh]] er son dy 'aaishnaghey dy kiart cre'n aght vees forseyn ardjaghey dy [[easponaantagh]]<!-- fys aym nagh vel y fockle shoh ayn, agh cha s'aym cre vees share! shen rere Yernish ''easpónantúil'' --> tra ta breneen çheet tayrn er-gerrey da [[bieauid hollys]]. == Imraaghyn == {{rolleyimraaghyn}} {{bun}} <!-- With modern insights into [[quantum mechanics]] and technology that can accelerate particles close to the speed of light, [[particle physics]] has devised a [[Standard Model]] to describe forces between particles smaller than atoms. The [[Standard Model]] predicts that exchange particles called [[gauge boson]]s are the fundamental means by which forces are emitted and absorbed. Only four main interactions are known: in order of decreasing strength, they are: [[strong force|strong]], [[electromagnetic force|electromagnetic]], [[weak force|weak]], and [[gravitational force|gravitational]].<ref name="texts" /> [[High energy physics|High-energy particle physics]] [[observation]]s made during the 1970s and 1980s confirmed that the weak and electromagnetic forces are expressions of a more fundamental [[electroweak]] interaction.<ref name="final theory" /> == Pre-Newtonian concepts == [[Image:Aristoteles Louvre2.jpg|thumb|150 px|right|[[Aristotle]] famously described a force as anything which causes an object to undergo "unnatural motion"]] Since antiquity, the concept of force has been recognized as integral to the functioning of each of the [[simple machine]]s. The [[mechanical advantage]] given by a simple machine allowed for less force to be used in exchange for that force acting over a greater distance. Analysis of the characteristics of forces ultimately culminated in the work of [[Archimedes]] who was especially famous for formulating a treatment of [[buoyant force]]s inherent in [[fluid]]s.<ref name="Archimedes" /> [[Aristotle]] provided a [[philosophy|philosophical]] discussion of the concept of a force as an integral part of [[Physics (Aristotle)|Aristotelian cosmology]]. In Aristotle's view, the [[nature|natural world]] held [[Classical element|four elements]] that existed in "natural states". Aristotle believed that it was the natural state of objects with mass on [[Earth]], such as the elements water and earth, to be motionless on the ground and that they tended towards that state if left alone. He distinguished between the innate tendency of objects to find their "natural place" (e.g., for heavy bodies to fall), which led to "natural motion", and unnatural or forced motion, which required continued application of a force.<ref>Land, Helen ''The Order of Nature in Aristotle's Physics: Place and the Elements'' (1998)</ref> This theory, based on the everyday experience of how objects move, such as the constant application of a force needed to keep a cart moving, had conceptual trouble accounting for the behavior of [[projectile]]s, such as the flight of arrows. The place where forces were applied to projectiles was only at the start of the flight, and while the projectile sailed through the air, no discernible force acts on it. Aristotle was aware of this problem and proposed that the air displaced through the projectile's path provided the needed force to continue the projectile moving. This explanation demands that air is needed for projectiles and that, for example, in a [[vacuum]], no projectile would move after the initial push. Additional problems with the explanation include the fact that [[air resistance|air resists]] the motion of the projectiles.<ref name="Hetherington">{{cite book|first = Norriss S.|last = Hetherington|title=Cosmology: Historical, Literary, Philosophical, Religious, and Scientific Perspectives|page=100|publisher=Garland Reference Library of the Humanities|date=1993|isbn=0815310854}}</ref> These shortcomings would not be fully explained and corrected until the seventeenth century work of [[Galileo Galilei]], who was influenced by the late medieval idea that objects in forced motion carried an innate force of [[impetus theory|impetus]]. Galileo constructed an experiment in which stones and cannonballs were both rolled down an incline to disprove the [[Aristotelian theory of gravity|Aristotelian theory of motion]] early in the seventeenth century. He showed that the bodies were accelerated by gravity to an extent which was independent of their mass and argued that objects retain their [[velocity]] unless acted on by a force, for example [[friction]].<ref name="Galileo">Drake, Stillman (1978). Galileo At Work. Chicago: University of Chicago Press. ISBN 0-226-16226-5</ref> ==Newtonian mechanics== {{main|Newton's laws of motion}} Sir Isaac Newton sought to describe the motion of all objects using the concepts of [[inertia]] and force, and in doing so, he found that they obey certain [[conservation laws]]. In 1687, Newton went on to publish his thesis ''[[Philosophiae Naturalis Principia Mathematica]]''.<ref name=uniphysics_ch2/><ref name="Principia">{{Cite book | last = Newton | first = Isaac | author-link = Isaac Newton | title = The Principia Mathematical Principles of Natural Philosophy | publisher = University of California Press | year = 1999 | location = Berkeley | isbn = 0-520-08817-4}} This is a recent translation into English by I. Bernard Cohen and Anne Whitman, with help from Julia Budenz.</ref> In this work, Newton set out three laws of motion that to this day are the way forces are described in physics.<ref name="Principia" /> ===Newton's first law=== {{main|Newton's laws of motion#Newton's first law}} Newton's first law of motion states that objects continue to move in a state of constant velocity unless acted upon by an external [[net force]] or ''resultant force''.<ref name="Principia" /> This law is an extension of Galileo's insight that constant velocity was associated with a lack of net force (see [[#Dynamical equilibrium|a more detailed description of this below]]). Newton proposed that every object with mass has an innate [[inertia]] that functions as the fundamental equilibrium "natural state" in place of the Aristotelian idea of the "natural state of rest". That is, the first law contradicts the intuitive Aristotelian belief that a net force is required to keep an object moving with constant velocity. By making ''rest'' physically indistinguishable from ''non-zero constant velocity'', Newton's first law directly connects inertia with the concept of [[Galilean relativity|relative velocities]]. Specifically, in systems where objects are moving with different velocities, it is impossible to determine which object is "in motion" and which object is "at rest". In other words, to phrase matters more technically, the laws of physics are the same in every [[inertial frame of reference]], that is, in all frames related by a [[Galilean transformation]]. For example, while traveling in a moving vehicle at a [[wiktionary:Constant|constant]] [[velocity]], the laws of physics do not change from being at rest. A person can throw a ball straight up in the air and catch it as it falls down without worrying about applying a force in the direction the vehicle is moving. This is true even though another person who is observing the moving vehicle pass by also observes the ball follow a curving [[parabola|parabolic path]] in the same direction as the motion of the vehicle. It is the inertia of the ball associated with its constant velocity in the direction of the vehicle's motion that ensures the ball continues to move forward even as it is thrown up and falls back down. From the perspective of the person in the car, the vehicle and every thing inside of it is at rest: It is the outside world that is moving with a constant speed in the opposite direction. Since there is no experiment that can distinguish whether it is the vehicle that is at rest or the outside world that is at rest, the two situations are considered to be [[Galilean equivalence|physically indistinguishable]]. Inertia therefore applies equally well to constant velocity motion as it does to rest. The concept of inertia can be further generalized to explain the tendency of objects to continue in many different forms of constant motion, even those that are not strictly constant velocity. The [[rotational inertia]] of planet Earth is what fixes the constancy of the length of a [[day]] and the length of a [[year]]. Albert Einstein extended the principle of inertia further when he explained that reference frames subject to constant acceleration, such as those free-falling toward a gravitating object, were physically equivalent to inertial reference frames. This is why, for example, astronauts experience [[weightlessness]] when in free-fall orbit around the Earth, and why Newton's Laws of Motion are more easily discernible in such environments. If an astronaut places an object with mass in mid-air next to herself, it will remain stationary with respect to the astronaut due to its inertia. This is the same thing that would occur if the astronaut and the object were in intergalactic space with no net force of gravity acting on their shared reference frame. This [[principle of equivalence]] was one of the foundational underpinnings for the development of the [[general theory of relativity]].<ref>{{cite web|first= Robert|last=DiSalle|url=http://plato.stanford.edu/entries/spacetime-iframes/|accessdate=2008-03-24|title=Space and Time: Inertial Frames|date=2002-03-30|work=[[Stanford Encyclopedia of Philosophy]]}}</ref> [[Image:GodfreyKneller-IsaacNewton-1689.jpg|right|150 px|thumb| Though [[Sir Isaac Newton]]'s most famous equation is <math>\scriptstyle{\vec{F}=m\vec{a}}</math>, he actually wrote down a different form for his second law of motion that did not use [[differential calculus]].]] ===Newton's second law=== {{main|Newton's laws of motion#Newton's second law}} A modern statement of Newton's second law is a vector [[differential equation]]:<ref>Newton's ''Principia Mathematica'' actually used a finite difference version of this equation based upon ''impulse''. See [[Newton%27s_laws_of_motion#Impulse|''Impulse'']].</ref> :<math>\vec{F} = \frac{\mathrm{d}\vec{p}}{\mathrm{d}t},</math> where <math>\scriptstyle \vec{p}</math> is the [[momentum]] of the system, and <math>\scriptstyle \vec{F}</math> is the net ([[Vector (geometric)#Vector addition and subtraction|vector sum]]) force. In equilibrium, there is zero ''net'' force by definition, but (balanced) forces may be present nevertheless. In contrast, the second law states an ''unbalanced'' force acting on an object will result in the object's momentum changing over time.<ref name="Principia" /> By the definition of [[Momentum#Linear_momentum_of_a_particle|momentum]], :<math>\vec{F} = \frac{\mathrm{d}\vec{p}}{\mathrm{d}t} = \frac{\mathrm{d}\left(m\vec{v}\right)}{\mathrm{d}t},</math> where ''m'' is the [[mass]] and <math>\scriptstyle \vec{v}</math> is the [[velocity]]. The [[product rule]] shows that :<math>\vec{F} = m\frac{\mathrm{d}\vec{v}}{\mathrm{d}t} + \vec{v}\frac{\mathrm{d}m}{\mathrm{d}t}</math>. For [[Newton's_laws_of_motion#Open_systems|closed systems]] (systems of constant total mass), the time derivative of mass is zero and the equation becomes :<math>\vec{F} = m\frac{\mathrm{d}\vec{v}}{\mathrm{d}t}</math>. By substituting the definition of [[acceleration]], the algebraic version of this common simplification of [[Newton's second law]] is derived: <br> :<math>\vec{F} =m\vec{a}.</math> It is sometimes called the "second most famous formula in physics".<ref>For example, by Rob Knop PhD in his Galactic Interactions [[blog]] on February 26, 2007 at 9:29 a.m. [http://scienceblogs.com/interactions/2007/02/the_greatest_mystery_in_all_of.php]</ref> Newton never explicitly stated the formula in the reduced form above. Newton's second law asserts the proportionality of acceleration and mass to force. Accelerations can be defined through [[kinematics|kinematic]] measurements. However, while kinematics are well-described through [[frame of reference|reference frame]] analysis in advanced physics, there are still deep questions that remain as to what is the proper definition of mass. [[General relativity]] offers an equivalence between [[space-time]] and mass, but lacking a coherent theory of [[quantum gravity]], it is unclear as to how or whether this connection is relevant on microscales. With some justification, Newton's second law can be taken as a quantitative definition of ''mass'' by writing the law as an equality; the relative units of force and mass then are fixed. The use of Newton's second law as a <em>definition</em> of force has been disparaged in some of the more rigorous textbooks,<ref name="texts" /><ref>One exception to this rule is: {{Cite book | last = Landau | first = L. D. | author-link = Lev Landau | last2 = Akhiezer | first2 = A. I. |last3 = Lifshitz |first3 = A. M. |author3-link = Evgeny Lifshitz | title = General Physics; mechanics and molecular physics | place=Oxford | publisher = Pergamon Press | year = 1967 | location = Oxford | edition = First English | isbn = 0080033040 }} Translated by: J. B. Sykes, A. D. Petford, and C. L. Petford. Library of Congress Catalog Number 67-30260. In section 7, pages 12–14, this book defines force as ''dp/dt''.</ref> because it is essentially a mathematical [[truism]]. The equality between the abstract idea of a "force" and the abstract idea of a "changing momentum vector" ultimately has no observational significance because one cannot be defined without simultaneously defining the other. What a "force" or "changing momentum" is must either be referred to an intuitive understanding of our direct perception, or be defined implicitly through a set of self-consistent mathematical formulas. Notable physicists, philosophers and mathematicians who have sought a more explicit definition of the concept of "force" include [[Ernst Mach]], [[Clifford Truesdell]] and [[Walter Noll]].<ref>e.g. W. Noll, “On the Concept of Force”, in part B of [http://www.math.cmu.edu/~wn0g/noll Walter Noll's website.].</ref> Newton's second law can be used to measure the strength of forces. For instance, knowledge of the masses of [[planet]]s along with the accelerations of their [[orbit]]s allows scientists to calculate the gravitational forces on planets. ===Newton's third law=== {{main|Newton's laws of motion#Newton's third law: law of reciprocal actions}} Newton's third law is a result of applying [[symmetry]] to situations where forces can be attributed to the presence of different objects. For any two objects (call them 1 and 2), Newton's third law states that any force that is applied to object 1 due to the action of object 2 is automatically accompanied by a force applied to object 2 due to the action of object 1<ref>{{cite web |last=Henderson |first=Tom |title=Lesson 4: Newton's Third Law of Motion |work=The Physics Classroom |date=1996-2007 |url=http://www.glenbrook.k12.il.us/gbssci/phys/Class/newtlaws/u2l4a.html |accessdate=2008-01-04}}</ref> :<math>\vec{F}_{1,2}=-\vec{F}_{2,1}.</math> This law implies that forces always occur in action-and-reaction pairs.<ref name="Principia" /> If object 1 and object 2 are considered to be in the same system, then the net force on the system due to the interactions between objects 1 and 2 is zero since :<math>\vec{F}_{1,2}+\vec{F}_{\mathrm{2,1}}=0</math> :<math>\vec{F}_{net}=0.</math> This means that in a [[closed system]] of particles, there are no [[internal force]]s that are unbalanced. That is, action-and-reaction pairs of forces shared between any two objects in a closed system will not cause the [[center of mass]] of the system to accelerate. The constituent objects only accelerate with respect to each other, the system itself remains unaccelerated. Alternatively, if an [[external force]] acts on the system, then the center of mass will experience an acceleration proportional to the magnitude of the external force divided by the mass of the system.<ref name="texts" /> Combining Newton's second and third laws, it is possible to show that the [[momentum#conservation of linear momentum|linear momentum of a system is conserved]]. Using :<math>\vec{F}_{1,2} = \frac{\mathrm{d}\vec{p}_{1,2}}{\mathrm{d}t} = -\vec{F}_{2,1} = -\frac{\mathrm{d}\vec{p}_{2,1}}{\mathrm{d}t}</math> and [[integral|integrating]] with respect to time, the equation: :<math>\Delta{\vec{p}_{1,2}} = - \Delta{\vec{p}_{2,1}}</math> is obtained. For a system which includes objects 1 and 2, :<math>\sum{\Delta{\vec{p}}}=\Delta{\vec{p}_{1,2}} + \Delta{\vec{p}_{2,1}} = 0</math> which is the conservation of linear momentum.<ref>{{cite web |last=Dr. Nikitin |title=Dynamics of translational motion |date=2007 |url=http://physics-help.info/physicsguide/mechanics/translational_dynamics.shtml |accessdate=2008-01-04 }}</ref> Using the similar arguments, it is possible to generalizing this to a system of an arbitrary number of particles. This shows that exchanging momentum between constituent objects will not affect the net momentum of a system. In general, as long as all forces are due to the interaction of objects with mass, it is possible to define a system such that net momentum is never lost nor gained.<ref name="texts" /> ==Descriptions== [[Image:Freebodydiagram3 pn.svg|thumb|right|270 px|[[Free-body diagram]]s of an object on a flat surface and an [[inclined plane]]. Forces are resolved and added together to determine their magnitudes and the resultant.]] Since forces are perceived as pushes or pulls, this can provide an intuitive understanding for describing forces.<ref name=uniphysics_ch2/> As with other physical concepts (e.g. [[temperature]]), the intuitive understanding of forces is quantified using precise [[operational definition]]s that are consistent with direct [[sensory perception|observations]] and [[measurement|compared to a standard measurement scale]]. Through experimentation, it is determined that laboratory measurements of forces are fully consistent with the [[conceptual definition]] of force offered by [[#Newtonian mechanics|Newtonian mechanics]]. Forces act in a particular [[direction (geometry)|direction]] and have [[Magnitude (mathematics)|sizes]] dependent upon how strong the push or pull is. Because of these characteristics, forces are classified as "[[Euclidean vector|vector quantities]]". This means that forces follow a different set of mathematical rules than physical quantities that do not have direction (denoted [[scalar (physics)|scalar]] quantities). For example, when determining what happens when two forces act on the same object, it is necessary to know both the magnitude and the direction of both forces to calculate the [[resultant|result]]. If both of these pieces of information are not known for each force, the situation is ambiguous. For example, if you know that two people are pulling on the same rope with known magnitudes of force but you do not know which direction either person is pulling, it is impossible to determine what the acceleration of the rope will be. The two people could be pulling against each other as in [[tug of war]] or the two people could be pulling in the same direction. In this simple [[one-dimensional]] example, without knowing the direction of the forces it is impossible to decide whether the net force is the result of adding the two force magnitudes or subtracting one from the other. Associating forces with vectors avoids such problems. Historically, forces were first quantitatively investigated in conditions of [[static equilibrium]] where several forces canceled each other out. Such experiments demonstrate the crucial properties that forces are additive [[Vector (geometric)|vector quantities]]: they have [[magnitude (mathematics)|magnitude]] and direction.<ref name=uniphysics_ch2/> When two forces act on an object, the resulting force, the ''resultant'', can be determined by following the [[parallelogram rule]] of [[Vector sum|vector addition]]: the addition of two vectors represented by sides of a parallelogram, gives an equivalent resultant vector which is equal in magnitude and direction to the transversal of the parallelogram.<ref name="texts" />. The magnitude of the resultant varies from the difference of the magnitudes of the two forces to their sum, depending on the angle between their lines of action. [[Free-body diagram]]s can be used as a convenient way to keep track of forces acting on a system. Ideally, these diagrams are drawn with the angles and relative magnitudes of the force vectors preserved so that [[Vector (geometric)|graphical vector addition]] can be done to determine the resultant.<ref>{{cite web | title =Introduction to Free Body Diagrams | work =Physics Tutorial Menu | publisher =[[University of Guelph]] | url =http://eta.physics.uoguelph.ca/tutorials/fbd/intro.html | accessdate =2008-01-02}}</ref> As well as being added, forces can also be resolved into independent components at [[right angle]]s to each other. A horizontal force pointing northeast can therefore be split into two forces, one pointing north, and one pointing east. Summing these component forces using vector addition yields the original force. Resolving force vectors into components of a set of [[basis vector]]s is often a more mathematically clean way to describe forces than using magnitudes and directions.<ref>{{cite web | first = Tom | last = Henderson | title =The Physics Classroom | work =The Physics Classroom and Mathsoft Engineering & Education, Inc. | date =2004 | url =http://www.glenbrook.k12.il.us/GBSSCI/PHYS/Class/vectors/u3l1b.html | accessdate = 2008-01-02 }}</ref> This is because, for [[orthogonal]] components, the components of the vector sum are uniquely determined by the scalar addition of the components of the individual vectors. Orthogonal components are independent of each other because forces acting at ninety degrees to each other have no effect on the magnitude or direction of the other. Choosing a set of orthogonal basis vectors is often done by considering what set of basis vectors will make the mathematics most convenient. Choosing a basis vector that is in the same direction as one of the forces is desirable, since that force would then have only one non-zero component. Orthogonal force vectors can be three-dimensional with the third component being at right-angles to the other two.<ref name="texts" /> ===Equilibria=== [[Mechanical equilibrium|Equilibrium]] occurs when the resultant force acting on a point particle is zero (that is, the vector sum of all forces is zero). When dealing with an extense body, it is also necessary that the net torque in it is 0. There are two kinds of equilibrium: [[static equilibrium]] and [[dynamic equilibrium]]. ====Static equilibrium==== {{main|statics}} Static equilibrium was understood well before the invention of classical mechanics. Objects which are at rest have zero net force acting on them.<ref>{{cite web | title =Static Equilibrium | work =Physics Static Equilibrium (forces and torques) | publisher = [[University of the Virgin Islands]] | url =http://www.uvi.edu/Physics/SCI3xxWeb/Structure/StaticEq.html | accessdate = 2008-01-02 }}</ref> The simplest case of static equilibrium occurs when two forces are equal in magnitude but opposite in direction. For example, an object on a level surface is pulled (attracted) downward toward the center of the Earth by the force of gravity. At the same time, surface forces resist the downward force with equal upward force (called the [[normal force]]). The situation is one of zero net force and no acceleration.<ref name=uniphysics_ch2/> Pushing against an object on a frictional surface can result in a situation where the object does not move because the applied force is opposed by [[static friction]], generated between the object and the table surface. For a situation with no movement, the static friction force ''exactly'' balances the applied force resulting in no acceleration. The static friction increases or decreases in response to the applied force up to an upper limit determined by the characteristics of the contact between the surface and the object.<ref name=uniphysics_ch2/> A static equilibrium between two forces is the most usual way of measuring forces, using simple devices such as [[weighing scale]]s and [[spring balance]]s. For example, an object suspended on a vertical [[spring scale]] experiences the force of gravity acting on the object balanced by a force applied by the "spring reaction force" which equals object's weight. Using such tools, some quantitative force laws were discovered: that the force of gravity is proportional to volume for objects of constant [[density]] (widely exploited for millennia to define standard weights); [[Archimedes' principle]] for buoyancy; Archimedes' analysis of the [[lever]]; [[Boyle's law]] for gas pressure; and [[Hooke's law]] for springs. These were all formulated and experimentally verified before Isaac Newton expounded his [[Newton's laws of motion|three laws of motion]].<ref name="texts" /><ref name=uniphysics_ch2/> ====Dynamical equilibrium==== {{main|Dynamics (physics)}} [[Image:Galileo.arp.300pix.jpg|thumb|150 px|[[Galileo Galilei]] was the first to point out the inherent contradictions contained in Aristotle's description of forces.]] Dynamical equilibrium was first described by [[Galileo]] who noticed that certain assumptions of Aristotelian physics were contradicted by observations and [[logic]]. Galileo realized that [[Galilean relativity|simple velocity addition]] demands that the concept of an "absolute [[rest frame]]" did not exist. Galileo concluded that motion in a constant [[velocity]] was completely equivalent to rest. This was contrary to Aristotle's notion of a "natural state" of rest that objects with mass naturally approached. Simple experiments showed that Galileo's understanding of the equivalence of constant velocity and rest to be correct. For example, if a mariner dropped a cannonball from the crow's nest of a ship moving at a constant velocity, Aristotelian physics would have the cannonball fall straight down while the ship moved beneath it. Thus, in an Aristotelian universe, the falling cannonball would land behind the foot of the mast of a moving ship. However, when this experiment is actually conducted, the cannonball always falls at the foot of the mast, as if the cannonball knows to travel with the ship despite being separated from it. Since there is no forward horizontal force being applied on the cannonball as it falls, the only conclusion left is that the cannonball continues to move with the same velocity as the boat as it falls. Thus, no force is required to keep the cannonball moving at the constant forward velocity.<ref name="Galileo" /> Moreover, any object traveling at a constant velocity must be subject to zero net force (resultant force). This is the definition of dynamical equilibrium: when all the forces on an object balance but it still moves at a constant velocity. A simple case of dynamical equilibrium occurs in constant velocity motion across a surface with [[kinetic friction]]. In such a situation, a force is applied in the direction of motion while the kinetic friction force exactly opposes the applied force. This results in a net zero force, but since the object started with a non-zero velocity, it continues to move with a non-zero velocity. Aristotle misinterpreted this motion as being caused by the applied force. However, when kinetic friction is taken into consideration it is clear that there is no net force causing constant velocity motion.<ref name="texts" /> === Special relativity=== In the [[special theory of relativity]] mass and [[energy]] are equivalent (as can be seen by calculating the work required to accelerate an object). When an object's velocity increases so does its energy and hence its mass equivalent (inertia). It thus requires more force to accelerate it the same amount than it did at a lower velocity. Newton's second law :<math>\vec{F} = \mathrm{d}\vec{p}/\mathrm{d}t </math> remains valid due to the fact that it is a mathematical definition.<ref name="Cutnell_p855-876">{{cite book| last =Cutnell| title =Physics, Sixth Edition| pages =855–876| isbn =047123124X| author =Cutnell,| publisher =John Wiley & Sons Inc}}</ref> But in order to be conserved, relativistic momentum must be redefined as: :<math> \vec{p} = \frac{m\vec{v}}{\sqrt{1 - v^2/c^2}}</math> where :<math>v</math> is the velocity and :<math>c</math> is the [[speed of light]]. The relativistic expression relating force and acceleration for a particle with constant non-zero [[rest mass]] <math>m\,</math> moving in the <math>x\,</math> direction is: :<math>F_x = \gamma^3 m a_x \,</math> :<math>F_y = \gamma m a_y \,</math> :<math>F_z = \gamma m a_z \,</math> where the [[Lorentz factor]] :<math> \gamma = \frac{1}{\sqrt{1 - v^2/c^2}}.</math><ref>{{cite web | title =Seminar: Visualizing Special Relativity | work =THE RELATIVISTIC RAYTRACER | url =http://www.anu.edu.au/Physics/Searle/Obsolete/Seminar.html | accessdate = 2008-01-04}}</ref> Relativistic force does not produce a constant acceleration, but an ever decreasing acceleration as the object approaches the speed of light. Note that <math> \gamma</math> is [[Division by zero|undefined]] for an object with a non zero [[Invariant mass|rest mass]] at the speed of light, and the theory yields no prediction at that speed. One can however restore the form of :<math>F^\mu = mA^\mu \,</math> for use in relativity through the use of [[four-vectors]]. This relation is correct in relativity when <math>F^\mu</math> is the [[four-force]], m is the [[invariant mass]], and <math>A^\mu</math> is the [[four-acceleration]].<ref>{{cite web | first =John B. | last= Wilson | title =Four-Vectors (4-Vectors) of Special Relativity: A Study of Elegant Physics | work = The Science Realm: John's Virtual Sci-Tech Universe | url =http://SciRealm.com/4Vectors.html | accessdate = 2008-01-04}}</ref> ===Feynman diagrams=== {{main|Feynman diagrams}} [[Image:Beta Negative Decay.svg|250px|thumb|right|A Feynman diagram for the decay of a neutron into a proton. The [[W boson]] is between two vertices indicating a repulsion.]] In modern [[particle physics]], forces and the acceleration of particles are explained as the exchange of momentum-carrying [[gauge boson]]s. With the development of [[quantum field theory]] and [[general relativity]], it was realized that "force" is a redundant concept arising from [[conservation of momentum]] ([[4-momentum]] in relativity and momentum of [[virtual particle]]s in [[quantum electrodynamics]]). The conservation of momentum, from [[Noether's theorem]], can be directly derived from the [[Symmetry in physics|symmetry]] of [[space]] and so is usually considered more fundamental than the concept of a force. Thus the currently known [[fundamental forces]] are considered more accurately to be "[[fundamental interactions]]".<ref name="final theory">Weinberg, S. (1994). Dreams of a Final Theory. Vintage Books USA. ISBN 0-679-74408-8</ref> When particle A emits (creates) or absorbs (annihilates) particle B, a force accelerates particle A in response to the momentum of particle B, thereby conserving momentum as a whole. This description applies for all forces arising from fundamental interactions. While sophisticated mathematical descriptions are needed to predict, in full detail, the nature of such interactions, there is a conceptually simple way to describe such interactions through the use of Feynman diagrams. In a Feynman diagram, each matter particle is represented as a straight line (see [[world line]]) traveling through time which normally increases up or to the right in the diagram. Matter and anti-matter particles are identical except for their direction of propagation through the Feynman diagram. World lines of particles intersect at [[interaction vertex|interaction vertices]], and the Feynman diagram represents any force arising from an interaction as occurring at the vertex with an associated instantaneous change in the direction of the particle world lines. Gauge bosons are emitted away from the vertex as wavy lines (similar to waves) and, in the case of virtual particle exchange, are absorbed at an adjacent vertex.<ref name=Shifman>{{cite book|first=Mikhail|last=Shifman|title=ITEP LECTURES ON PARTICLE PHYSICS AND FIELD THEORY|publisher=World Scientific|isbn=981-02-2639-X|year=1999}}</ref> The utility of Feynman diagrams is that other types of physical phenomena that are part of the general picture of [[fundamental interaction]]s but are conceptually separate from forces can also be described using the same rules. For example, a Feynman diagram can describe in succinct detail how a [[neutron]] [[beta decay|decays]] into an [[electron]], [[proton]], and [[neutrino]], an interaction mediated by the same gauge boson that is responsible for the [[weak nuclear force]].<ref name="Shifman" /> ==Fundamental models== {{main|Fundamental interaction}} All the forces in the universe are based on four fundamental forces. The strong and weak forces act only at very short distances, and are responsible for the interactions between [[subatomic particle]]s including [[nucleons]] and compound [[Atomic nucleus|nuclei]]. The electromagnetic force acts between [[electric charge]]s and the gravitational force acts between masses. All other forces are based on the existence of the four fundamental interactions. For example, friction is a manifestation of the [[electromagnetic force]] acting between the [[atom]]s of two [[surface]]s, and the [[Pauli Exclusion Principle]],<ref>{{cite web | last =Nave | first =R | title =Pauli Exclusion Principle | work = HyperPhysics***** Quantum Physics | url =http://hyperphysics.phy-astr.gsu.edu/hbase/pauli.html | accessdate = 2008-01-02}}</ref> which does not allow atoms to pass through each other. The forces in [[spring (device)|springs]], modeled by [[Hooke's law]], are also the result of electromagnetic forces and the Exclusion Principle acting together to return the object to its equilibrium position. [[Centrifugal force (fictitious)|Centrifugal force]]s are acceleration forces which arise simply from the acceleration of rotating [[frames of reference]].<ref name="texts" /> The development of fundamental theories for forces proceeded along the lines of [[Unified field theory|unification]] of disparate ideas. For example, Isaac Newton unified the force responsible for objects falling at the surface of the Earth with the force responsible for the orbits of celestial mechanics in his universal theory of gravitation. [[Michael Faraday]] and [[James Clerk Maxwell]] demonstrated that electric and magnetic forces were unified through one consistent theory of electromagnetism. In the twentieth century, the development of [[quantum mechanics]] led to a modern understanding that the first three fundamental forces (all except gravity) are manifestations of matter ([[fermions]]) interacting by exchanging [[virtual particles]] called [[gauge boson]]s.<ref>{{cite web | title =Fermions & Bosons | work =The Particle Adventure | url =http://particleadventure.org/frameless/fermibos.html | accessdate =2008-01-04 }}</ref> This [[standard model]] of particle physics posits a similarity between the forces and led scientists to predict the unification of the weak and electromagnetic forces in [[electroweak]] theory subsequently confirmed by observation. The complete formulation of the standard model predicts an as yet unobserved [[Higgs mechanism]], but observations such as [[neutrino oscillation]]s indicate that the standard model is incomplete. A [[grand unified theory]] allowing for the combination of the electroweak interaction with the strong force is held out as a possibility with candidate theories such as [[supersymmetry]] proposed to accommodate some of the outstanding [[unsolved problems in physics]]. Physicists are still attempting to develop self-consistent unification models that would combine all four fundamental interactions into a [[theory of everything]]. Einstein tried and failed at this endeavor, but currently the most popular approach to answering this question is [[string theory]].<ref name="final theory" /> ===Gravity=== {{main|Gravity}} [[Image:Falling ball.jpg|right|thumb|An initially stationary object which is allowed to fall freely under gravity drops a distance which is proportional to the square of the elapsed time. An image was taken 20 flashes per second. During the first 1/20th of a second the ball drops one unit of distance (here, a unit is about 12&nbsp;mm); by 2/20ths it has dropped a total of 4 units; by 3/20ths, 9 units and so on.]] What we now call gravity was not identified as a universal force until the work of Isaac Newton. Before Newton, the tendency for objects to fall towards the Earth was not understood to be related to the motions of celestial objects. Galileo was instrumental in describing the characteristics of falling objects by determining that the [[acceleration]] of every object in [[free-fall]] was constant and independent of the mass of the object. Today, this [[Gravitational acceleration|acceleration due to gravity]] towards the surface of the Earth is usually designated as <math>\vec{g}</math> and has a magnitude of about 9.81 [[meter]]s per [[second]] squared (this measurement is taken from sea level and may vary depending on location), and points toward the center of the Earth.<ref>{{cite journal | last = Cook | first = A. H. | journal = Nature | title = A New Absolute Determination of the Acceleration due to Gravity at the National Physical Laboratory | date = 16-160-1965 | url = http://www.nature.com/nature/journal/v208/n5007/abs/208279a0.html | doi = 10.1038/208279a0 | accessdate = 2008-01-04 | pages = 279 | volume = 208 }}</ref> This observation means that the force of gravity on an object at the Earth's surface is directly proportional to the object's mass. Thus an object that has a mass of <math>m</math> will experience a force: :<math>\vec{F} = m\vec{g}</math> In free-fall, this force is unopposed and therefore the net force on the object is its weight. For objects not in free-fall, the force of gravity is opposed by the reactions of their supports. For example, a person standing on the ground experiences zero net force, since his weight is balanced by a [[normal force]] exerted by the ground.<ref name="texts" /> Newton's contribution to gravitational theory was to unify the motions of heavenly bodies, which Aristotle had assumed were in a natural state of constant motion, with falling motion observed on the Earth. He proposed a [[Newton's Law of Gravity|law of gravity]] that could account for the celestial motions that had been described earlier using [[Kepler's Laws of Planetary Motion]].<ref name=uniphysics_ch4>''University Physics'', Sears, Young & Zemansky, pp59–82</ref> Newton came to realize that the effects of gravity might be observed in different ways at larger distances. In particular, Newton determined that the acceleration of the Moon around the Earth could be ascribed to the same force of gravity if the acceleration due to gravity decreased as an [[inverse square law]]. Further, Newton realized that the acceleration due to gravity is proportional to the mass of the attracting body.<ref name=uniphysics_ch4/> Combining these ideas gives a formula that relates the mass (<math>M_\oplus</math>) and the radius (<math>R_\oplus</math>) of the Earth to the gravitational acceleration: :<math>\vec{g}=-\frac{GM_\oplus}{{R_\oplus}^2} \hat{r}</math> where the vector direction is given by <math>\hat{r}</math>, the [[unit vector]] directed outward from the center of the Earth.<ref name="Principia" /> In this equation, a dimensional constant <math>G</math> is used to describe the relative strength of gravity. This constant has come to be known as [[Gravitational constant|Newton's Universal Gravitation Constant]],<ref>{{cite web | title =Sir Isaac Newton: The Universal Law of Gravitation | work =Astronomy 161 The Solar System | url =http://csep10.phys.utk.edu/astr161/lect/history/newtongrav.html | accessdate = 2008-01-04}}</ref> though its value was unknown in Newton's lifetime. Not until 1798 was [[Henry Cavendish]] able to make the first measurement of <math>G</math> using a [[torsion balance]]; this was widely reported in the press as a measurement of the mass of the Earth since knowing the <math>G</math> could allow one to solve for the Earth's mass given the above equation. Newton, however, realized that since all celestial bodies followed the same [[Kepler's laws|laws of motion]], his law of gravity had to be universal. Succinctly stated, [[Newton's Law of Gravitation]] states that the force on a spherical object of mass <math>m_{1}</math> due to the gravitational pull of mass <math>m_2</math> is :<math>\vec{F}=-\frac{Gm_{1}m_{2}}{r^2} \hat{r}</math> where <math>r</math> is the distance between the two objects' centers of mass and <math>\hat{r}</math> is the unit vector pointed in the direction away from the center of the first object toward the center of the second object.<ref name="Principia" /> This formula was powerful enough to stand as the basis for all subsequent descriptions of motion within the solar system until the twentieth century. During that time, sophisticated methods of [[perturbation analysis]]<ref>{{cite web | last = Watkins | first =Thayer | title =Perturbation Analysis, Regular and Singular | work =Department of Economics | publisher =San José State University | url =http://www.sjsu.edu/faculty/watkins/perturb.htm }}</ref> were invented to calculate the deviations of [[orbit]]s due to the influence of multiple bodies on a [[planet]], [[moon]], [[comet]], or [[asteroid]]. The formalism was exact enough to allow mathematicians to predict the existence of the planet [[Neptune]] before it was observed.<ref name='Neptdisc'>{{cite web|url=http://www.ucl.ac.uk/sts/nk/neptune/index.htm |title=Neptune's Discovery. The British Case for Co-Prediction. |accessdate=2007-03-19 |last=Kollerstrom |first=Nick |date=2001 |publisher=University College London |archiveurl=http://web.archive.org/web/20051111190351/http://www.ucl.ac.uk/sts/nk/neptune/index.htm |archivedate=2005-11-11 }}</ref> It was only the orbit of the planet [[Mercury (planet)|Mercury]] that Newton's Law of Gravitation seemed not to fully explain. Some astrophysicists predicted the existence of another planet ([[Vulcan (hypothetical planet)|Vulcan]]) that would explain the discrepancies; however, despite some early indications, no such planet could be found. When [[Albert Einstein]] finally formulated his theory of [[general relativity]] (GR) he turned his attention to the problem of Mercury's orbit and found that his theory added [[Tests of general relativity#Perihelion_precession_of_Mercury|a correction which could account for the discrepancy]]. This was the first time that Newton's Theory of Gravity had been shown to be less correct than an alternative.<ref name = Ein1916>{{cite journal| last = Einstein| first = Albert| authorlink = Albert Einstein| title = The Foundation of the General Theory of Relativity| journal = Annalen der Physik| volume = 49 | pages = 769–822| date = 1916| url = http://www.alberteinstein.info/gallery/gtext3.html| format = [[PDF]]| accessdate = 2006-09-03 }}</ref> Since then, and so far, general relativity has been acknowledged as the theory which best explains gravity. In GR, gravitation is not viewed as a force, but rather, objects moving freely in gravitational fields travel under their own inertia in [[geodesic|straight lines]] through [[curved space-time]] – defined as the shortest space-time path between two space-time events. From the perspective of the object, all motion occurs as if there were no gravitation whatsoever. It is only when observing the motion in a global sense that the curvature of space-time can be observed and the force is inferred from the object's curved path. Thus, the straight line path in space-time is seen as a curved line in space, and it is called the ''[[external ballistics|ballistic]] [[trajectory]]'' of the object. For example, a [[basketball]] thrown from the ground moves in a [[parabola]], as it is in a uniform gravitational field. Its space-time trajectory (when the extra ct dimension is added) is almost a straight line, slightly curved (with the [[radius of curvature (applications)|radius of curvature]] of the order of few [[light-year]]s). The time derivative of the changing momentum of the object is what we label as "gravitational force".<ref name="texts" /> ===Electromagnetic forces=== {{main|Electromagnetic force}} The [[electrostatic force]] was first described in 1784 by Coulomb as a force which existed intrinsically between two [[electric charge|charges]].<ref name="Cutnell_p519">{{cite book| last =Cutnell| title =Physics, Sixth Edition| page =519| isbn =047123124X| author =Cutnell,| publisher =John Wiley & Sons Inc}}</ref> The properties of the electrostatic force were that it varied as an [[inverse square law]] directed in the [[polar coordinates|radial direction]], was both attractive and repulsive (there was intrinsic [[Electrical polarity|polarity]]), was independent of the mass of the charged objects, and followed the [[law of superposition]]. [[Coulomb's Law]] unifies all these observations into one succinct statement.<ref name="Coulomb">{{cite journal|first=Charles|last=Coulomb|journal=Histoire de l’Académie Royale des Sciences|date=1784|title= Recherches théoriques et expérimentales sur la force de torsion et sur l'élasticité des fils de metal|pages= 229–269}}</ref> Subsequent mathematicians and physicists found the construct of the ''[[electric field]]'' to be useful for determining the electrostatic force on an electric charge at any point in space. The electric field was based on using a hypothetical "[[test charge]]" anywhere in space and then using Coulomb's Law to determine the electrostatic force.<ref name="EM text">{{cite book | author=Feynman, Leighton and Sands | title= The Feynman Lectures on Physics The Definitive Edition Volume II | publisher =Pearson Addison Wesley | year=2006 | isbn=0-8053-9047-2 }}</ref> Thus the electric field anywhere in space is defined as :<math>\vec{E} = {\vec{F} \over{q}}</math> where <math>q</math> is the magnitude of the hypothetical test charge. Meanwhile, the [[Lorentz force]] of [[magnetism]] was discovered to exist between two [[electric current]]s. It has the same mathematical character as Coulomb's Law with the proviso that like currents attract and unlike currents repel. Similar to the electric field, the [[magnetic field]] can be used to determine the magnetic force on an electric current at any point in space. In this case, the magnitude of the magnetic field was determined to be :<math>B = {F \over{I \ell}}</math> where <math>I</math> is the magnitude of the hypothetical test current and <math>\ell</math> is the length of hypothetical wire through which the test current flows. The magnetic field exerts a force on all [[magnet]]s including, for example, those used in [[compass]]es. The fact that the [[geomagnetism|Earth's magnetic field]] is aligned closely with the orientation of the Earth's [[rotation|axis]] causes compass magnets to [[orientation|become oriented]] because of the magnetic force pulling on the needle. Through combining the definition of electric current as the time rate of change of electric charge, a rule of [[Cross product|vector multiplication]] called [[Lorentz force|Lorentz's Law]] describes the force on a charge moving in an magnetic field.<ref name="EM text" /> The connection between electricity and magnetism allows for the description of a unified ''electromagnetic force'' that acts on a charge. This force can be written as a sum of the electrostatic force (due to the electric field) and the magnetic force (due to the magnetic field). Fully stated, this is the law: :<math>\vec{F} = q(\vec{E} + \vec{v} \times \vec{B})</math> where <math>\vec{F}</math> is the electromagnetic force, <math>q</math> is the magnitude of the charge of the particle, <math>\vec{E}</math> is the electric field, <math>\vec{v}</math> is the [[velocity]] of the particle which is [[cross product|crossed]] with the magnetic field (<math>\vec{B}</math>). The origin of electric and magnetic fields would not be fully explained until 1864 when [[James Clerk Maxwell]] unified a number of earlier theories into a succinct set of four equations. These "[[Maxwell Equations]]" fully described the sources of the fields as being stationary and moving charges, and the interactions of the fields themselves. This led Maxwell to discover that electric and magnetic fields could be "self-generating" through a [[wave mechanics|wave]] that traveled at a speed which he calculated to be the [[speed of light]]. This insight united the nascent fields of electromagnetic theory with [[optics]] and led directly to a complete description of the [[electromagnetic spectrum]].<ref> {{cite book |first=William|last=Duffin |title=Electricity and Magnetism, 3rd Ed. |publisher=McGraw-Hill |pages=364–383 |year=1980 |isbn=0-07-084111-X}}</ref> However, attempting to reconcile electromagnetic theory with two observations, the [[photoelectric effect]], and the nonexistence of the [[ultraviolet catastrophe]], proved troublesome. Through the work of leading theoretical physicists, a new theory of electromagnetism was developed using quantum mechanics. This final modification to electromagnetic theory ultimately led to [[quantum electrodynamics]] (or QED), which fully describes all electromagnetic phenomena as being mediated by wave particles known as [[photon]]s. In QED, photons are the fundamental exchange particle which described all interactions relating to electromagnetism including the electromagnetic force.<ref name="QM library">For a complete library on quantum mechanics see [[Quantum_mechanics#References]]</ref> It is a common misconception to ascribe the stiffness and rigidity of [[solid state physics|solid matter]] to the repulsion of like charges under the influence of the electromagnetic force. However, these characteristics actually result from the [[Pauli Exclusion Principle]]. Since electrons are [[fermion]]s, they cannot occupy the same [[wavefunction|quantum mechanical state]] as other electrons. When the electrons in a material are densely packed together, there are not enough lower energy quantum mechanical states for them all, so some of them must be in higher energy states. This means that it takes energy to pack them together. While this effect is manifested macroscopically as a structural "force", it is technically only the result of the existence of a finite set of electron states. ===Nuclear forces=== {{main|Nuclear force}} {{seealso|Strong force|Weak force}} There are two "nuclear forces" which today are usually described as interactions that take place in quantum theories of particle physics. The [[strong nuclear force]]<ref name="Cutnell_p940">{{cite book| last =Cutnell| title =Physics, Sixth Edition| page =940| isbn =047123124X| author =Cutnell,| publisher =John Wiley & Sons Inc}}</ref> is the force responsible for the structural integrity of [[atomic nucleus|atomic nuclei]] while the [[weak nuclear force]]<ref name="Cutnell_p951">{{cite book| last =Cutnell| title =Physics, Sixth Edition| page =951| isbn =047123124X| author =Cutnell,| publisher =John Wiley & Sons Inc}}</ref> is responsible for the decay of certain [[nucleon]]s into [[lepton]]s and other types of [[hadron]]s.<ref name="texts" /> The strong force is today understood to represent the [[interaction]]s between [[quark]]s and [[gluon]]s as detailed by the theory of [[quantum chromodynamics]] (QCD).<ref>{{cite web | last = Stevens | first =Tab | title =Quantum-Chromodynamics: A Definition - Science Articles | date =10/07/2003 | url =http://www.physicspost.com/science-article-168.html | accessdate = 2008-01-04 }}</ref> The strong force is the [[fundamental force]] mediated by [[gluons]], acting upon quarks, [[antiparticle|antiquarks]], and the [[gluon]]s themselves. The strong interaction is the most powerful of the four fundamental forces. The strong force only acts ''directly'' upon elementary particles. However, a residual of the force is observed between [[hadron]]s (the best known example being the force that acts between [[nucleon]]s in atomic nuclei) as the [[nuclear force]]. Here the strong force acts indirectly, transmitted as gluons which form part of the virtual pi and rho [[mesons]] which classically transmit the nuclear force (see this topic for more). The failure of many searches for [[free quark]]s has shown that the elementary particles affected are not directly observable. This phenomenon is called [[colour confinement]]. The weak force is due to the exchange of the heavy [[W and Z bosons]]. Its most familiar effect is [[beta decay]] (of neutrons in atomic nuclei) and the associated [[radioactivity]]. The word "weak" derives from the fact that the field strength is some 10<sup>13</sup> times less than that of the [[strong force]]. Still, it is stronger than gravity over short distances. A consistent electroweak theory has also been developed which shows that electromagnetic forces and the weak force are indistinguishable at a temperatures in excess of approximately 10<sup>15</sup>&nbsp;[[Kelvin]]. Such temperatures have been probed in modern [[particle accelerator]]s and show the conditions of the [[universe]] in the early moments of the [[Big Bang]]. ==Non-fundamental forces== Some forces are consequences of fundamental. In such situations, idealized models can be utilized to gain physical insight. ===Normal force=== [[Image:Incline.svg|right|thumb|100px|''F<sub>N</sub>'' represents the [[normal force]] exerted on the object.]] {{main|Normal force}} The normal force is the repulsive force of interaction between atoms at close contact. When their electron clouds overlap, Pauli repulsion (due to [[fermion]]ic nature of [[electron]]s) follows resulting in the force which acts [[normal vector|normal]] to the surface interface between two objects.<ref name="Cutnell_p93">{{cite book| last =Cutnell| title =Physics, Sixth Edition| page=93| isbn =047123124X| author =Cutnell,| publisher =John Wiley & Sons Inc}}</ref> The normal force, for example, is responsible for the structural integrity of tables and floors as well as being the force that responds whenever an external force pushes on a solid object. An example of the normal force in action is the impact force on an object crashing into an immobile surface.<ref name="texts" /> ===Friction=== {{main|Friction}} Friction is a surface force that opposes motion. The frictional force is directly related to the normal force which acts to keep two solid objects separated at the point of contact. There are two broad classifications of frictional forces: [[static friction]] and [[kinetic friction]]. The static friction force (<math>F_{\mathrm{sf}}</math>) will exactly oppose forces applied to an object parallel to a surface contact up to the limit specified by the [[coefficient of static friction]] (<math>\mu_{\mathrm{sf}}</math>) multiplied by the normal force (<math>F_N</math>). In other words the magnitude of the static friction force satisfies the inequality: :<math>0 \le F_{\mathrm{sf}} \le \mu_{\mathrm{sf}} F_\mathrm{N}</math>. The kinetic friction force (<math>F_{\mathrm{kf}}</math>) is independent of both the forces applied and the movement of the object. Thus, the magnitude of the force equals: :<math>F_{\mathrm{kf}} = \mu_{\mathrm{kf}} F_\mathrm{N}</math>, where <math>\mu_{\mathrm{kf}}</math> is the [[coefficient of kinetic friction]]. For most surface interfaces, the coefficient of kinetic friction is less than the coefficient of static friction.<ref name="texts" /> ===Tension=== {{main|Tension (physics)}} Tension forces can be modeled using [[ideal string]]s which are massless, frictionless, unbreakable, and unstretchable. They can be combined with ideal [[pulley]]s which allow ideal strings to switch physical direction. Ideal strings transmit tension forces instantaneously in action-reaction pairs so that if two objects are connected by an ideal string, any force directed along the string by the first object is accompanied by a force directed along the string in the opposite direction by the second object.<ref>{{cite web | title =Tension Force | work =Non-Calculus Based Physics I | url =http://www.mtsu.edu/~phys2010/Lectures/Part_2__L6_-_L11/Lecture_9/Tension_Force/tension_force.html | accessdate = 2008-01-04 }}</ref> By connecting the same string multiple times to the same object through the use of a set-up that uses movable pulleys, the tension force on a load can be multiplied. For every string that acts on a load, another factor of the tension force in the string acts on the load. However, even though such machines allow for an [[mechanical advantage|increase in force]], there is a corresponding increase in the length of string that must be displaced in order to move the load. These tandem effects result ultimately in the [[energy conservation|conservation of mechanical energy]] since the [[#Kinematic integrals|work done on the load]] is the same no matter how complicated the machine.<ref name="texts" /><ref>{{cite web | last = Fitzpatrick | first =Richard | title =Strings, pulleys, and inclines | date =2006-02-02 | url =http://farside.ph.utexas.edu/teaching/301/lectures/node48.html | accessdate = 2008-01-04 }}</ref> ===Elastic force=== {{main|Elasticity (physics)|Hooke's law}} [[Image:Spring-mass2.svg|right|thumb|150px|F<sub>k</sub> is the force that responds to the load on the spring.]] An elastic force acts to return a [[Spring (device)|spring]] to its natural length. An [[ideal spring]] is taken to be massless, frictionless, unbreakable, and infinitely stretchable. Such springs exert forces that push when contracted, or pull when extended, in proportion to the [[displacement field (mechanics)|displacement]] of the spring from its equilibrium position.<ref> {{cite web | work =HyperPhysics | title = Elasticity, Periodic Motion | publisher = Georgia State University | url =http://hyperphysics.phy-astr.gsu.edu/hbase/permot2.html | accessdate = 2008-01-04}}</ref> This linear relationship was described by [[Robert Hooke]] in 1676, for whom [[Hooke's law]] is named. If <math>\Delta x</math> is the displacement, the force exerted by an ideal spring equals: :<math>\vec{F}=-k \Delta \vec{x}</math> where <math>k</math> is the spring constant (or force constant), which is particular to the spring. The minus sign accounts for the tendency of the elastic force to act in opposition to the applied load.<ref name="texts" /> ===Continuum mechanics=== [[Image:Stokes sphere.svg|thumb|150 px|When the drag force (<math>F_d</math>) associated with air resistance becomes equal in magnitude to the force of gravity on a falling object (<math>F_g</math>), the object reaches a state of [[#Dynamical equilibrium|dynamical equilibrium]] at [[terminal velocity]].]] {{main|Pressure|Drag (physics)|Stress (mechanics)}} Newton's laws and Newtonian mechanics in general were first developed to describe how forces affect idealized [[point particle]]s rather than three-dimensional objects. However, in real life, matter has extended structure and forces that act on one part of an object might affect other parts of an object. For situations where lattice holding together the atoms in an object is able to flow, contract, expand, or otherwise change shape, the theories of [[continuum mechanics]] describe the way forces affect the material. For example, in extended [[fluid mechanics|fluids]], differences in [[pressure]] result in forces being directed along the pressure [[gradient]]s as follows: :<math>\frac{\vec{F}}{V} = - \vec{\nabla} P</math> where <math>V</math> is the volume of the object in the fluid and <math>P</math> is the [[scalar function]] that describes the pressure at all locations in space. Pressure gradients and differentials result in the [[buoyancy|buoyant force]] for fluids suspended in gravitational fields, [[wind]]s in [[atmospheric science]], and the [[lift (physics)|lift]] associated with [[aerodynamics]] and [[flight]].<ref name="texts" /> A specific instance of such a force that is associated with [[dynamic pressure]] is fluid resistance: a body force that resists the motion of an object through a fluid due to [[viscosity]]. For so-called "[[drag (physics)#Stokes' drag|Stokes' drag]]" the force is approximately proportional to the velocity, but opposite in direction: :<math>\vec{F}_\mathrm{d} = - b \vec{v} \,</math> where: :<math>b</math> is a constant that depends on the properties of the fluid and the dimensions of the object (usually the [[Cross section (geometry)|cross-sectional area]]), and :<math>\vec{v}</math> is the velocity of the object.<ref name="texts" /> More formally, forces in [[continuum mechanics]] are fully described by a [[Stress (mechanics)|stress]] [[tensor]] with terms that are roughly defined as :<math>\sigma = \frac{F}{A}</math> where <math>A</math> is the relevant cross-sectional area for the volume for which the stress-tensor is being calculated. This formalism includes pressure terms associated with forces that act normal to the cross-sectional area (the [[Diagonal matrix|matrix diagonals]] of the tensor) as well as [[Shear stress|shear]] terms associated with forces that act [[Parallel (geometry)|parallel]] to the cross-sectional area (the off-diagonal elements). The stress tensor accounts for forces that cause all [[strain (physics)|deformations]] including also [[tensile stress]]es and [[compression]]s. ===Fictitious forces=== {{main|Fictitious forces}} There are forces which are [[frame dependent]], meaning that they appear due to the adoption of non-Newtonian (that is, [[non-inertial frame|non-inertial]]) [[Frame of reference|reference frames]]. Such forces include the [[Centrifugal force (rotating reference frame)|centrifugal force]] and the [[Coriolis force]].<ref>{{cite web | last =Mallette | first =Vincent | title =Inwit Publishing, Inc. and Inwit, LLC -- Writings, Links and Software Distributions - The Coriolis Force | work =Publications in Science and Mathematics, Computing and the Humanities | publisher = Inwit Publishing, Inc. | date =1982-2008 | url =http://www.algorithm.com/inwit/writings/coriolisforce.html | accessdate = 2008-01-04 }}</ref> These forces are considered fictitious because they do not exist in frames of reference that are not accelerating.<ref name="texts" /> In [[general relativity]], [[gravity]] becomes a fictitious force that arises in situations where spacetime deviates from a flat geometry. As an extension, [[Kaluza-Klein]] theory and [[string theory]] ascribe electromagnetism and the other [[Fundamental interaction|fundamental forces]] respectively to the curvature of differently scaled dimensions, which would ultimately imply that all forces are fictitious. ==Rotations and torque== [[Image:Torque animation.gif|frame|right|Relationship between force (F), torque (τ), and [[angular momentum|momentum]] vectors (p and L) in a rotating system.]] {{main|Torque}} Forces that cause extended objects to rotate are associated with [[torque]]s. Mathematically, the torque on a particle is defined as the [[cross-product]]: :<math>\vec{\tau} = \vec{r} \times \vec{F}</math> where :<math>\vec{r}</math> is the particle's [[position vector]] relative to a [[pivot]] :<math>\vec{F}</math> is the force acting on the particle. Torque is the rotation equivalent of force in the same way that [[angle]] is the rotational equivalent for [[position (vector)|position]], [[angular velocity]] for [[velocity]], and [[angular momentum]] for [[momentum]]. All the formal treatments of Newton's Laws that applied to forces equivalently apply to torques. Thus, as a consequence of Newton's First Law of Motion, there exists [[rotational inertia]] that ensures that all bodies maintain their angular momentum unless acted upon by an unbalanced torque. Likewise, Newton's Second Law of Motion can be used to derive an alternative definition of torque: :<math>\vec{\tau} = I\vec{\alpha}</math> where :<math>I</math> is the [[moment of inertia]] of the particle :<math>\vec{\alpha}</math> is the angular acceleration of the particle. This provides a definition for the moment of inertia which is the rotational equivalent for mass. In more advanced treatments of mechanics, the moment of inertia acts as a [[moment of inertia#Moment of inertia tensor|tensor]] that, when properly analyzed, fully determines the characteristics of rotations including [[precession]] and [[nutation]]. Equivalently, the differential form of Newton's Second Law provides an alternative definition of torque: :<math>\vec{\tau} = \frac{\mathrm{d}\vec{L}}{\mathrm{dt}},</math><ref>{{cite web |title=Newton's Second Law for Rotation |publisher=HyperPhysics***** Mechanics ***** Rotation |url=http://hyperphysics.phy-astr.gsu.edu/HBASE/n2r.html |accessdate=2008-01-04}}</ref> where <math>\vec{L}</math> is the angular momentum of the particle. Newton's Third Law of Motion requires that all objects exerting torques themselves experience equal and opposite torques,<ref>{{cite web |last=Fitzpatrick |first=Richard |title=Newton's third law of motion |date=2007-01-07 |url=http://farside.ph.utexas.edu/teaching/336k/lectures/node26.html |accessdate=2008-01-04}}</ref> and therefore also directly implies the [[conservation of angular momentum]] for closed systems that experience rotations and [[revolution]]s through the action of internal torques. ===Centripetal force=== {{main|Centripetal force}} For an object accelerating in circular motion, the unbalanced force acting on the object equals:<ref>{{cite web | last = Nave | first =R | title =Centripetal Force | work = HyperPhysics***** Mechanics ***** Rotation | url =http://hyperphysics.phy-astr.gsu.edu/hbase/cf.html}}</ref> :<math>\vec{F} = - \frac{mv^2 \hat{r}}{r}</math> where <math>m</math> is the mass of the object, <math>v</math> is the velocity of the object and <math>r</math> is the distance to the center of the circular path and <math>\hat{r}</math> is the [[unit vector]] pointing in the radial direction outwards from the center. This means that the unbalanced centripetal force felt by any object is always directed toward the center of the curving path. Such forces act perpendicular to the velocity vector associated with the motion of an object, and therefore do not change the [[speed]] of the object (magnitude of the velocity), but only the direction of the velocity vector. The unbalanced force that accelerates an object can be resolved into a component that is perpendicular to the path, and one that is tangential to the path. This yields both the tangential force which accelerates the object by either slowing it down or speeding it up and the radial (centripetal) force which changes its direction.<ref name="texts" /> ==Kinematic integrals== {{main|Impulse|Mechanical work|Power (physics)}} Forces can be used to define a number of physical concepts by [[integration (calculus)|integrating]] with respect to [[kinematics|kinematic variables]]. For example, integrating with respect to time gives the definition of [[impulse]]: :<math>\vec{I}=\int_{t_1}^{t_2}{\vec{F} \mathrm{d}t}</math> which, by Newton's Second Law, must be equivalent to the change in momentum (yielding the [[Impulse momentum theorem]]). Similarly, integrating with respect to position gives a definition for the [[work (physics)|work done]] by a force:<ref name=Feynman13_3>Feynman, Leighton & Sands (1963), vol. 1, p. 13-3.</ref> :<math>W=\int_{\vec{x}_1}^{\vec{x}_2}{\vec{F} \cdot{\mathrm{d}\vec{x}}}</math> which is equivalent to changes in [[kinetic energy]] (yielding the [[work energy theorem]]).<ref name=Feynman13_3/> [[power (physics)|Power]] ''P'' is the rate of change d''W''/d''t'' of the work ''W'', as the [[trajectory]] is extended by a position change <math>\text{d}\vec{x}\,</math> in a time interval d''t'':<ref name=Feynman13_2>Feynman, Leighton & Sands (1963), vol. 1, p. 13-2.</ref> :<math> \text{d}W\, =\, \frac{\text{d}W}{\text{d}\vec{x}}\, \cdot\, \text{d}\vec{x}\, =\, \vec{F}\, \cdot\, \text{d}\vec{x}, \qquad \text{ so } \quad P\, =\, \frac{\text{d}W}{\text{d}\vec{x}}\, \cdot\, \frac{\text{d}\vec{x}}{\text{d}t}\, =\, \vec{F}\, \cdot\, \vec{v}, </math> with <math>\vec{v} = \text{d}\vec{x}/\text{d}t</math> the [[velocity]]. == Potential energy== {{main|Potential energy}} Instead of a force, often the mathematically related concept of a [[potential energy]] field can be used for convenience. For instance, the gravitational force acting upon an object can be seen as the action of the [[gravitational field]] that is present at the object's location. Restating mathematically the definition of energy (via the definition of [[Mechanical work|work]]), a potential [[scalar field]] <math>U(\vec{r})</math> is defined as that field whose [[gradient]] is equal and opposite to the force produced at every point: :<math>\vec{F}=-\vec{\nabla} U.</math> Forces can be classified as [[Conservative force|conservative]] or nonconservative. Conservative forces are equivalent to the gradient of a [[potential]] while non-conservative forces are not.<ref name="texts" /> ===Conservative forces=== {{main|Conservative force}} A conservative force that acts on a [[closed system]] has an associated mechanical work that allows energy to convert only between [[kinetic energy|kinetic]] or [[potential energy|potential]] forms. This means that for a closed system, the net [[mechanical energy]] is conserved whenever a conservative force acts on the system. The force, therefore, is related directly to the difference in potential energy between two different locations in space,<ref>{{cite web | last = Singh | first =Sunil Kumar | title =Conservative force | work =Connexions | date =2007-08-25 | url =http://cnx.org/content/m14104/latest/ | accessdate = 2008-01-04}}</ref> and can be considered to be an artifact of the potential field in the same way that the direction and amount of a flow of water can be considered to be an artifact of the [[contour map]] of the elevation of an area.<ref name="texts" /> Conservative forces include [[gravity]], the [[Electromagnetism|electromagnetic]] force, and the [[Hooke's law|spring]] force. Each of these forces has models which are dependent on a position often given as a [[radius|radial vector]] <math>\vec{r}</math> emanating from [[spherical symmetry|spherically symmetric]] potentials.<ref>{{cite web | last = Davis | first =Doug | title =Conservation of Energy | work =General physics | url =http://www.ux1.eiu.edu/~cfadd/1350/08PotEng/ConsF.html | accessdate = 2008-01-04}}</ref> Examples of this follow: For gravity: :<math>\vec{F} = - \frac{G m_1 m_2 \vec{r}}{r^3}</math> where <math>G</math> is the [[gravitational constant]], and <math>m_n</math> is the mass of object ''n''. For electrostatic forces: :<math>\vec{F} = \frac{q_{1} q_{2} \vec{r}}{4 \pi \epsilon_{0} r^3}</math> where <math>\epsilon_{0}</math> is [[Permittivity|electric permittivity of free space]], and <math>q_n</math> is the [[electric charge]] of object ''n''. For spring forces: :<math>\vec{F} = - k \vec{r}</math> where <math>k</math> is the [[spring constant]].<ref name="texts" /> ===Nonconservative forces=== For certain physical scenarios, it is impossible to model forces as being due to gradient of potentials. This is often due to macrophysical considerations which yield forces as arising from a macroscopic statistical average of [[Microstate (statistical mechanics)|microstates]]. For example, friction is caused by the gradients of numerous electrostatic potentials between the [[atoms]], but manifests as a force model which is independent of any macroscale position vector. Nonconservative forces other than friction include other [[contact force]]s, [[Tension (physics)|tension]], [[Physical compression|compression]], and [[drag (physics)|drag]]. However, for any sufficiently detailed description, all these forces are the results of conservative ones since each of these macroscopic forces are the net results of the gradients of microscopic potentials.<ref name="texts" /> The connection between macroscopic non-conservative forces and microscopic conservative forces is described by detailed treatment with [[statistical mechanics]]. In macroscopic closed systems, nonconservative forces act to change the [[internal energy|internal energies]] of the system, and are often associated with the transfer of [[heat]]. According to the [[Second Law of Thermodynamics]], nonconservative forces necessarily result in energy transformations within closed systems from ordered to more random conditions as [[entropy]] increases.<ref name="texts" /> == Units of measurement == The [[SI]] unit of force is the [[Newton (unit)|newton]] (symbol N), which is the force required to accelerate a one kilogram mass at a rate of one meter per second squared, or kg·m·s<sup>−2</sup>.<ref name=metric_units> {{cite book |first=Cornelius |last=Wandmacher |first2=Arnold |last2=Johnson |title=Metric Units in Engineering |page=15 |year=1995 |publisher=ASCE Publications |isbn=0784400709}}</ref> The corresponding [[CGS]] unit is the [[dyne]], the force required to accelerate a one gram mass by one centimeter per second squared, or g·cm·s<sup>−2</sup>. A newton is thus equal to 100,000&nbsp;dyne. The gravitational [[foot-pound-second]] [[English unit]] of force is the [[pound-force]] (lbf), defined as the force exerted by gravity on a [[pound-mass]] in the [[Standard gravity|standard gravitational]] field of 9.80665&nbsp;m·s<sup>−2</sup>.<ref name=metric_units/> The pound-force provides an alternative unit of mass: one [[slug (mass)|slug]] is the mass that will accelerate by one foot per second squared when acted on by one pound-force.<ref name=metric_units/> An alternative unit of force in a different foot-pound-second system, the absolute fps system, is the [[poundal]], defined as the force required to accelerate a one pound mass at a rate of one foot per second squared.<ref name=metric_units/> The units of [[slug (mass)|slug]] and [[poundal]] are designed to avoid a constant of proportionality in [[Newton's laws of motion#Newton's second law|Newton's second law]]. The pound-force has a metric counterpart, less commonly used than the newton: the [[kilogram-force]] (kgf) (sometimes [[kilopond]]), is the force exerted by standard gravity on one kilogram of mass.<ref name=metric_units/> The kilogram-force leads to an alternate, but rarely used unit of mass: the [[metric slug]] (sometimes [[mug]] or [[hyl]]) is that mass which accelerates at 1&nbsp;m·s<sup>−2</sup> when subjected to a force of 1&nbsp;kgf. The kilogram-force is not a part of the modern SI system, and is generally deprecated; however it still sees use for some purposes as expressing jet thrust, bicycle spoke tension, torque wrench settings and engine output torque. Other arcane units of force include the [[sthène]] which is equivalent to 1000&nbsp;N and the [[kip (force)|kip]] which is equivalent to 1000&nbsp;lbf. {{units of force|center=yes}} ==Notes== {{reflist|2}} == References == * {{cite book | last = Corbell | first = H.C. | coauthors = Philip Stehle | title = Classical Mechanics p 28, | location = New York | publisher = Dover publications | year = 1994 | isbn = 0-486-68063-0 }} * {{cite book | last =Cutnell | first =John d. | coauthors =Johnson, Kenneth W. | title =Physics, Sixth Edition | publisher =John Wiley & Sons Inc. | date =2004 | location =Hoboken, NJ | isbn =041-44895-8 | ISBN-status =May be invalid - please double check }} *{{cite book | author = Feynman, R. P., Leighton, R. B., Sands, M. | title = Lectures on Physics, Vol 1 |publisher = Addison-Wesley| year=1963 | isbn = 0-201-02116-1}} * {{cite book | last = Halliday | first = David | coauthors = Robert Resnick; Kenneth S. Krane | title = Physics v. 1 | location = New York | publisher = John Wiley & Sons | year = 2001 | isbn = 0-471-32057-9 }} * {{cite book | last = Parker | first = Sybil | title = Encyclopedia of Physics, p 443, | location = Ohio | publisher = McGraw-Hill | year = 1993 | isbn = 0-07-051400-3 }} * {{cite book | last = Sears F., Zemansky M. & Young H. | title = University Physics | publisher = Addison-Wesley | location = Reading, MA | year = 1982 | isbn = 0-201-07199-1 | author = Francis W. Sears, Mark W. Zemansky, Hugh D. Young. }} * {{cite book | last = Serway | first = Raymond A. | title = Physics for Scientists and Engineers | location = Philadelphia | publisher = Saunders College Publishing | year = 2003 | isbn = 0-534-40842-7 }} * {{cite book | last = Tipler | first = Paul | title = Physics for Scientists and Engineers: Mechanics, Oscillations and Waves, Thermodynamics | edition = 5th | publisher = W. H. Freeman | year = 2004 | isbn = 0-7167-0809-4 }} * {{cite book | last = Verma | first = H.C. | title = Concepts of Physics Vol 1. | edition = 2004 Reprint | publisher = Bharti Bhavan | year = 2004 | isbn = 81-7709-187-5 | ISBN-status = May be invalid - please double check }} ==External links== *[http://ocw.mit.edu/OcwWeb/Physics/8-01Physics-IFall1999/VideoLectures/detail/Video-Segment-Index-for-L-6.htm Video lecture on Newton's three laws] by [[Walter Lewin]] from [[MIT OpenCourseWare]] *[http://phy.hk/wiki/englishhtm/Vector.htm A Java simulation on vector addition of forces] *[http://www.lorenz-messtechnik.de/english/company/force_unit_calculation.php Force Unit Converter] --> [[Ronney:Obbrinaght chlassicagh]] [[Ronney:Eieyn fishag bunneydagh]] [[Ronney:Forse|*]] 6kvao3gz5s5xnt9uko9ciuhk8or78jd Bossan pibbyragh 0 15538 394579 363850 2026-10-16T19:58:07Z InternetArchiveBot 16702 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 394579 wikitext text/x-wiki {{Kishtey fys baagh | daah = #90EE90 | ennym = Bossan pibbyragh | jalloo = Lepidium campestre2 W.jpg | reeriaght = [[Plantae]] | rheynn_neurheynnit = [[Angiospermae]] | rang_neurheynnit = [[Eudicot|Eudicotyn]] | oardagh_neurheynnit = [[Rosid|Rosidyn]] | oardagh = [[Brassicales]] | kynney = [[Brassicaceae]] | genus = ''[[Lepidium]]'' | dooie = '''''L. campestre''''' | daaennymagh = ''Lepidium campestre'' | imraa_daaennymagh = ([[Carolus Linnaeus|L.]]) [[William Townsend Aiton|W.T.Aiton]] |}} She [[lus]] [[bleintag|vleeanagh]] eh '''bossan pibbyragh''' ('''''Lepidium campestre'''''). T'eh dooghyssagh da'n [[yn Europey|Oarpey]], as t'eh ry-akin ayns [[America Hwoaie]] myr [[lus ruegyssagh]] as [[sarkyl]]. ==Jalloo-oaylleeaght== Ta bossan pibbyragh gaase wheesh as 60cm er yrjid. Ta [[crouw-vlaaghey]] echey. Ta [[blaa|blaaghyn]] baney beggey ayn, as t'ad jannoo [[fynneig|fynneigyn]] glassey rea oohchrooagh jeu hene, mysh 6mm er lhiurid as 4km er lheead.<ref name=uva>{{enmyslioar | screeudeyr = Richard H. Uva | coscreeudeyryn = Joseph C. Neal & Joseph M. Ditomaso | ennym = Weeds of The Northeast | boayl = Ithaca, York Noa | soilsheyder = Cornell University Press | blein = 1997 | duillag = 176-177 | çhengey = Baarle }}</ref> Ta daa rass dhone ayns dagh fynneig. Ta [[duillag|duillagyn]] [[cummey duillag#maylartey|maylartey]] [[cummey duillag#sideagh|sideagh]] gyn chass echey, as ta'n [[gass|ghass]] gaase jeh [[cummey duillag#roseagh|cummey rose]] dy ghuillagyn [[cummey duillag#feeacklagh|feeacklagh]]. Ta'n ghass renaigagh. == Troarey as Ymmyd == Ta bossan pibbyragh gaase ayns reeastyn as msatey troaryn.<ref name=uva/> S'cummey lesh y thalloo. T'eh yn-ee myr [[glassan]] ny broit.<ref name=peterson>{{enmyslioar | screeudeyr = Lee Allen Peterson | ennym = Edible Wild Plants | boayl = New York City | soilsheyder = Houghton Mifflin Company | blein = 1977 | duillag = 26 }}</ref> T'ad jannoo ymmyd jeh [[mess|messyn]] as [[rass|rassinyn]] aegey myr [[spios|spiossyn]], as blass [[pibbyr doo]] ny [[mustart]] oc. == Imraaghyn == {{rolleyimraaghyn}} ==Kianglaghyn magh== *[https://web.archive.org/web/20121009215446/http://ucjeps.berkeley.edu/cgi-bin/get_JM_treatment.pl?2240,2504,2505 Jepson Manual Treatment] *[http://plants.usda.gov/java/profile?symbol=LECA5 USDA Plants Profile] *[http://calphotos.berkeley.edu/cgi/img_query?query_src=photos_index&where-taxon=Lepidium+campestre Caslyssyn-soilshey] {{gurneil eaghtyrys}} [[Ronney:Lepidium|campestre]] [[Ronney:Lossreeyn yn-ee]] [[Ronney:Lossreeyn soilshit 'sy vlein 1753]] [[Ronney:Tacsyn lus-oaylleeagh enmyssit lesh Carl Linnaeus]] ibwuvv313c17kkr3wcbp7eq6c3kk5sp Burleek ushtey 0 15728 394580 322335 2026-10-16T20:04:46Z InternetArchiveBot 16702 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 394580 wikitext text/x-wiki {{Kishtey fys baagh | daah = #90EE90 | ennym = Burleek ushtey | jalloo = Veronica anagallis-aquatica 5.jpg | fo-heidyl_jalloo = Blaa burleek ushtey | jalloo2 = Veronica anagallis-aquatica 8.jpg | fo-heidyl_jalloo2 = Burleek ushtey gaase ayns ushtey thanney | reeriaght = [[Plantae]] | rheynn_neurheynnit = [[Angiospermae]] | rang_neurheynnit = [[Eudicot|Eudicotyn]] | oardagh_neurheynnit = [[Asterid|Asteridyn]] | oardagh = [[Lamiales]] | kynney = [[Plantaginaceae]] | genus = ''[[Veronica (plant)|Veronica]]'' | dooie = '''''V. anagallis-aquatica''''' | daaennymagh = ''Veronica anagallis-aquatica'' | imraa_daaennymagh = [[Carolus Linnaeus|L.]] |}} She lus [[lus lussagh|lussagh]] [[lus sheer-vio|sheer-vio]] eh '''burleek ushtey''' ('''''Veronica anagallis-aquatica'''''). T'eh gaase ayns thalloo fliugh as ushtey thanney. ==Jalloo-oaylleeaght== She lus [[raisoam|raisoamagh]] t'ayn. Ta ny [[gass|gish]] echey 10cm-1m er lhiurid; ta kuse jeu snaueagh, as fir elley jeeragh. Ta [[duillag|duillagyn]] [[cummey duillag#maylartey|maylartey]] [[cummey duillag#rea|rea ny feeacklagh]] echey. Ta [[crouw-vlaaghey]] cur magh [[blaa|blaaghyn]] gorrym ny gorrym-jiargey er [[frauaig]]. Ta daa [[staimyn]] ec dagh blaa. {{Commons|Veronica anagallis-aquatica|burleek ushtey}} ==Imraaghyn== {{rolleyimraaghyn}} ==Kianglaghyn mooie== *[https://web.archive.org/web/20100719114954/http://ucjeps.berkeley.edu/cgi-bin/get_JM_treatment.pl?7177,7600,7602 Jepson Manual Treatment] *[https://web.archive.org/web/20101120033927/http://plants.usda.gov/java/profile?symbol=VEAN2 USDA Plants Profile] [[Ronney:Veronica]] 5nrobjzdfi0gjcb986buc5huxw9ym0n Burley garroo 0 15763 394581 377437 2026-10-16T20:07:55Z InternetArchiveBot 16702 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 394581 wikitext text/x-wiki {{Kishtey fys baagh | daah = #90EE90 | ennym = Burley garroo | jalloo = Arabis hirsuta - Keila.jpg | fo-heidyl_jalloo = Burley garroo | reeriaght = [[Plantae]] | rheynn_neurheynnit = [[Angiospermae]] | rang_neurheynnit = [[Eudicot|Eudicotyn]] | oardagh_neurheynnit = [[Rosid|Rosidyn]] | oardagh = [[Brassicales]] | kynney = [[Brassicaceae]] | genus = ''[[Arabis]]'' | dooie = '''''A. hirsuta''''' | daaennymagh = ''Arabis hirsuta'' | imraa_daaennymagh = ([[Carolus Linnaeus|L.]]) [[Giovanni Antonio Scopoli|Scop.]] |}} She [[lus]] [[lus blaagh|blaagh]] eh '''burley garroo'''. T'eh dooghyssagh da'n [[yn Europey|Oarpey]], [[yn Aishey]], as [[America Hwoaie]] hwoaie. ==Kianglaghyn magh== *[https://web.archive.org/web/20110608191432/http://ucjeps.berkeley.edu/cgi-bin/get_JM_treatment.pl?2240,2250,2269 Jepson Manual Treatment] *[https://web.archive.org/web/20111021085032/http://plants.usda.gov/java/profile?symbol=ARHI USDA Plants Profile] *[http://www.ars-grin.gov/cgi-bin/npgs/html/taxon.pl?414101 GRIN Species Profile] *[http://calphotos.berkeley.edu/cgi/img_query?query_src=photos_index&where-taxon=Arabis+hirsuta Caslyssyn-soilshey] {{commons|Arabis hirsuta}} {{wikispecies|Arabis hirsuta|burley garroo}} {{gurneil eaghtyrys}} {{bun}} [[Ronney:Arabis|Hirsuta]] [[Ronney:Blaanid America Hwoaie]] [[Ronney:Blaanid yn Aishey hempreilagh]] [[Ronney:Blaanid yn Oarpey]] [[Ronney:Blaanid yn Algear]] [[Ronney:Blaanid y Varoc]] [[Ronney:Tacsyn lus-oaylleeagh enmyssit lesh Carl Linnaeus]] [[Ronney:Lossreeyn soilshit 'sy vlein 1753]] slfbvtwybf22ib7kdv1w3pvhulgj0fo Yn Toodaan Yiass 0 15929 394595 358051 2026-10-17T01:50:52Z MacTire02 219 ennym 394595 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan Yiass |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of South Sudan}} {{small|([[Baarle]])}} |ennym_gienneydagh = y Toodaan Yiass |jalloo_brattagh = Flag of South Sudan.svg |jalloo_cleinney =Coat_of_arms_of_South_Sudan.svg |jalloo_caslys =South_Sudan_(orthographic_projection)_highlighted.svg |jarroo-raa = "Justice, Liberty, Prosperity" <small>([[Baarle]])</small><br />''Cairys, Seyrsnys, Berçhys'' |arrane_ashoonagh = "[[South Sudan Oyee!]]" |arrane_reeoil = |çhengaghyn_oikoil = [[Baarle]] |preeu-valley = [[Juba]] |latd=04 |latm=51 |latNS=N |longd=31 |longm=36 |longEW=E |latNSgael=Hwoaie |longEWgael=Hiar |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght]] [[deynlaghys reihdagh|gheynlagh]] [[corys eaghtyraneagh|eaghtyraneagh]] [[pobblaght chonastagh|chonastagh]] |enmys1_fer-toshee = [[Rolley eaghtyraneyn y Toodaan Yiass|Eaghtyrane]] |ennym1_fer-toshee = [[Salva Kiir Mayardit]] |enmys2_fer-toshee = [[Rolley Lhiass-eaghtyraneyn y Toodaan Yiass|Lhiass-eaghtyrane]] |ennym2_fer-toshee = [[Riek Machar]] |eaghtyr_km2 = 619,745 |eaghtyr_mi_ker = 239,285 |eaghtyr_rhenk = 45-oo |ushtey_sy_cheead = |pobble_ooley = |blein_ooley_pobble = |rhenk_ooley_pobble = |pobble_coontey = 8,260,490 |blein_coontey_pobble = 2008 |rhenk_coontey_pobble = 94 |glooaght_pobble_km2 = 13.3 |glooaght_pobble_mi_ker = 34.5 |rhenk_glooaght_pobble = |possanyn_kynneeagh = |blein_LTS_CCK = |LTS_CCK = |rhenk_LTS_CCK = |LTS_CCK_yn_dooinney = |rhenk_LTS_CCK_yn_dooinney = |LTS_ennymagh = $13.227 billioon |rhenk_LTS_ennymagh = |blein_LTS_ennymagh = 2011 |LTS_ennymagh_yn_dooinney = $1,546 |rhenk_LTS_ennymagh_yn_dooinney = |Gini = |blein_Gini = |rhenk_Gini = |ronney_Gini = |blein_ALD = |ALD = |rhenk_ALD = |ronney_ALD = |sorçh_kiondeeaght = Seyrsnys |note_kiondeeaght = veih'n [[Yn Toodaan|Toodaan]] |taghyrt1_bunnit = Conaant Shee Ooilley-Ghoaillys |date1_bunnit = 6 Jerrey Geuree 2005 |taghyrt2_bunnit = Hene-reiltys |date2_bunnit = 9 Jerrey Souree 2005 |taghyrt3_bunnit = Seyrsnys |date3_bunnit = 9 Jerrey Souree 2011 |argid = [[Punt y Toodaan Yiass]] |coad_argid = SDG |traa_ynnydagh = [[Traa yn Affrick Hiar]] |ashchur_utc = +3 |traa_ynnydagh_TTLS = |ashchur_utc_TTLS = |cctld = [[.ss]] (recortyssit) |coad_çhellvane = 211 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan Yiass'''. T'ee çhemmit liorish [[Yn Toodaan|y Toodaan]] da'n twoaie, liorish [[yn Eetoip]] da'n shiar, liorish [[Yn Cheinney|y Cheinney]], [[Ooganda]], as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear. She [[Juba]] yn preeu-valley. {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan Yiass, Yn}} {{bun}} [[Ronney:Yn Toodaan Yiass| ]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Boodeeys yn Affrick Hiar]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn conastagh]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 2011]] 564b29fxxdik81k402zr3pso1buwgpv 394596 394595 2026-10-17T01:51:04Z MacTire02 219 ++ 394596 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan Yiass |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of South Sudan|italics=no}} {{small|([[Baarle]])}} |ennym_gienneydagh = y Toodaan Yiass |jalloo_brattagh = Flag of South Sudan.svg |jalloo_cleinney =Coat_of_arms_of_South_Sudan.svg |jalloo_caslys =South_Sudan_(orthographic_projection)_highlighted.svg |jarroo-raa = "Justice, Liberty, Prosperity" <small>([[Baarle]])</small><br />''Cairys, Seyrsnys, Berçhys'' |arrane_ashoonagh = "[[South Sudan Oyee!]]" |arrane_reeoil = |çhengaghyn_oikoil = [[Baarle]] |preeu-valley = [[Juba]] |latd=04 |latm=51 |latNS=N |longd=31 |longm=36 |longEW=E |latNSgael=Hwoaie |longEWgael=Hiar |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght]] [[deynlaghys reihdagh|gheynlagh]] [[corys eaghtyraneagh|eaghtyraneagh]] [[pobblaght chonastagh|chonastagh]] |enmys1_fer-toshee = [[Rolley eaghtyraneyn y Toodaan Yiass|Eaghtyrane]] |ennym1_fer-toshee = [[Salva Kiir Mayardit]] |enmys2_fer-toshee = [[Rolley Lhiass-eaghtyraneyn y Toodaan Yiass|Lhiass-eaghtyrane]] |ennym2_fer-toshee = [[Riek Machar]] |eaghtyr_km2 = 619,745 |eaghtyr_mi_ker = 239,285 |eaghtyr_rhenk = 45-oo |ushtey_sy_cheead = |pobble_ooley = |blein_ooley_pobble = |rhenk_ooley_pobble = |pobble_coontey = 8,260,490 |blein_coontey_pobble = 2008 |rhenk_coontey_pobble = 94 |glooaght_pobble_km2 = 13.3 |glooaght_pobble_mi_ker = 34.5 |rhenk_glooaght_pobble = |possanyn_kynneeagh = |blein_LTS_CCK = |LTS_CCK = |rhenk_LTS_CCK = |LTS_CCK_yn_dooinney = |rhenk_LTS_CCK_yn_dooinney = |LTS_ennymagh = $13.227 billioon |rhenk_LTS_ennymagh = |blein_LTS_ennymagh = 2011 |LTS_ennymagh_yn_dooinney = $1,546 |rhenk_LTS_ennymagh_yn_dooinney = |Gini = |blein_Gini = |rhenk_Gini = |ronney_Gini = |blein_ALD = |ALD = |rhenk_ALD = |ronney_ALD = |sorçh_kiondeeaght = Seyrsnys |note_kiondeeaght = veih'n [[Yn Toodaan|Toodaan]] |taghyrt1_bunnit = Conaant Shee Ooilley-Ghoaillys |date1_bunnit = 6 Jerrey Geuree 2005 |taghyrt2_bunnit = Hene-reiltys |date2_bunnit = 9 Jerrey Souree 2005 |taghyrt3_bunnit = Seyrsnys |date3_bunnit = 9 Jerrey Souree 2011 |argid = [[Punt y Toodaan Yiass]] |coad_argid = SDG |traa_ynnydagh = [[Traa yn Affrick Hiar]] |ashchur_utc = +3 |traa_ynnydagh_TTLS = |ashchur_utc_TTLS = |cctld = [[.ss]] (recortyssit) |coad_çhellvane = 211 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan Yiass'''. T'ee çhemmit liorish [[Yn Toodaan|y Toodaan]] da'n twoaie, liorish [[yn Eetoip]] da'n shiar, liorish [[Yn Cheinney|y Cheinney]], [[Ooganda]], as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear. She [[Juba]] yn preeu-valley. {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan Yiass, Yn}} {{bun}} [[Ronney:Yn Toodaan Yiass| ]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Boodeeys yn Affrick Hiar]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn conastagh]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 2011]] hu8tbymrjj703erpqbuqcwus6r4do79 394597 394596 2026-10-17T01:51:55Z MacTire02 219 ++ 394597 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan Yiass |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of South Sudan|italics=no}} {{small|([[Baarle]])}} |ennym_gienneydagh = y Toodaan Yiass |jalloo_brattagh = Flag of South Sudan.svg |jalloo_cleinney =Coat_of_arms_of_South_Sudan.svg |jalloo_caslys =South_Sudan_(orthographic_projection)_highlighted.svg |jarroo-raa = "Justice, Liberty, Prosperity" <small>([[Baarle]])</small><br />''Cairys, Seyrsnys, Berçhys'' |arrane_ashoonagh = "[[South Sudan Oyee!]]" |arrane_reeoil = |çhengaghyn_oikoil = [[Baarle]] |preeu-valley = [[Juba]] |latd=04 |latm=51 |latNS=N |longd=31 |longm=36 |longEW=E |latNSgael=Hwoaie |longEWgael=Hiar |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght]] [[deynlaghys reihdagh|gheynlagh]] [[corys eaghtyraneagh|eaghtyraneagh]] [[pobblaght chonastagh|chonastagh]] |sorçh_kiondeeaght = Seyrsnys |note_kiondeeaght = veih'n [[Yn Toodaan|Toodaan]] |taghyrt1_bunnit = Conaant Shee Ooilley-Ghoaillys |date1_bunnit = 6 Jerrey Geuree 2005 |taghyrt2_bunnit = Hene-reiltys |date2_bunnit = 9 Jerrey Souree 2005 |taghyrt3_bunnit = Seyrsnys |date3_bunnit = 9 Jerrey Souree 2011 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |cctld = [[.ss]] (recortyssit) |coad_çhellvane = 211 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan Yiass'''. T'ee çhemmit liorish [[Yn Toodaan|y Toodaan]] da'n twoaie, liorish [[yn Eetoip]] da'n shiar, liorish [[Yn Cheinney|y Cheinney]], [[Ooganda]], as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear. She [[Juba]] yn preeu-valley. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan Yiass, Yn}} {{bun}} [[Ronney:Yn Toodaan Yiass| ]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Boodeeys yn Affrick Hiar]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn conastagh]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 2011]] kij754p7gqbd8avtv88iwofyp4h7x8e 394598 394597 2026-10-17T01:52:48Z MacTire02 219 -recortyssit; t'eh gobbraghey veih 2019 394598 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan Yiass |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of South Sudan|italics=no}} {{small|([[Baarle]])}} |ennym_gienneydagh = y Toodaan Yiass |jalloo_brattagh = Flag of South Sudan.svg |jalloo_cleinney =Coat_of_arms_of_South_Sudan.svg |jalloo_caslys =South_Sudan_(orthographic_projection)_highlighted.svg |jarroo-raa = "Justice, Liberty, Prosperity" <small>([[Baarle]])</small><br />''Cairys, Seyrsnys, Berçhys'' |arrane_ashoonagh = "[[South Sudan Oyee!]]" |arrane_reeoil = |çhengaghyn_oikoil = [[Baarle]] |preeu-valley = [[Juba]] |latd=04 |latm=51 |latNS=N |longd=31 |longm=36 |longEW=E |latNSgael=Hwoaie |longEWgael=Hiar |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght]] [[deynlaghys reihdagh|gheynlagh]] [[corys eaghtyraneagh|eaghtyraneagh]] [[pobblaght chonastagh|chonastagh]] |sorçh_kiondeeaght = Seyrsnys |note_kiondeeaght = veih'n [[Yn Toodaan|Toodaan]] |taghyrt1_bunnit = Conaant Shee Ooilley-Ghoaillys |date1_bunnit = 6 Jerrey Geuree 2005 |taghyrt2_bunnit = Hene-reiltys |date2_bunnit = 9 Jerrey Souree 2005 |taghyrt3_bunnit = Seyrsnys |date3_bunnit = 9 Jerrey Souree 2011 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |cctld = [[.ss]] |coad_çhellvane = 211 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan Yiass'''. T'ee çhemmit liorish [[Yn Toodaan|y Toodaan]] da'n twoaie, liorish [[yn Eetoip]] da'n shiar, liorish [[Yn Cheinney|y Cheinney]], [[Ooganda]], as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear. She [[Juba]] yn preeu-valley. ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan Yiass, Yn}} {{bun}} [[Ronney:Yn Toodaan Yiass| ]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Boodeeys yn Affrick Hiar]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn conastagh]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 2011]] 5agbr3q7sc9q936251x5p3vxbe5in70 394601 394598 2026-10-17T02:19:38Z MacTire02 219 ++ 394601 wikitext text/x-wiki {{Kishtey fys çheer |ennym = Pobblaght y Toodaan Yiass |ennym_foddey_cadjincliaghtagh= {{lang|en|Republic of South Sudan|italics=no}} {{small|([[Baarle]])}} |ennym_gienneydagh = y Toodaan Yiass |jalloo_brattagh = Flag of South Sudan.svg |jalloo_cleinney =Coat_of_arms_of_South_Sudan.svg |jalloo_caslys =South_Sudan_(orthographic_projection)_highlighted.svg |jarroo-raa = {{lang|en|Justice, Liberty, Prosperity}} |çhengey_jarroo-raa = Baarle |çhyndaa_jarroo-raa = Cairys, Seyrsnys, Berçys |arrane_ashoonagh = {{lang|en|[[South Sudan, Oyee!]]|italics=no}} |coadan_arrane_ashoonagh = South_Sudan_Oyee!_(instrumental).ogg |çhengey_arrane_ashoonagh = Baarle |çhyndaa_arrane_ashoonagh = Y Toodaan Yiass Aboo! |çhengaghyn_oikoil = [[Baarle]]<ref name="engwork">{{cite web |title=The Transitional Constitution of the Republic of South Sudan, 2011 |url=http://www.goss-online.org/magnoliaPublic/en/home/mainColumnParagraphs/0/content_files/file/FINAL%20TCRSS.doc |url-status=dead |archive-url=https://swap.stanford.edu/20110721121619/http://www.goss-online.org/magnoliaPublic/en/home/mainColumnParagraphs/0/content_files/file/FINAL%20TCRSS.doc |archive-date=21 Jerrey Souree 2011 |access-date=12 Jerrey Souree 2011 |publisher=Reiltys y Toodaan Yiass |at=Ayrn Nane, 6(2) |quote=English shall be the official working language in the Republic of South Sudan, as well as the language of instruction at all levels of education. |trans-quote=She Baarle vees y çhengey obbree oikoil ayns Pobblaght y Toodaan, chammah as çhengey ynsee ec dagh keim yn ynsee.}}</ref> |çhengaghyn = {{hlist|[[Dinkish]]|[[Nuerish]]|[[Barish]]|[[Murleyish]]|[[Çhengaghyn Luo|Luoish (Anyuakish, Acholish, Shillukish, Parish, Jur-Luoish, elley)]]||[[Ma'dish]]|[[Otuhoish]]|[[Zandeyish]]}} as mysh 60 çhengey elley{{#tag:ref|The Transitional Constitution of the Republic of South Sudan, Part One, 6(1): "All indigenous languages of South Sudan are national languages and shall be respected, developed and promoted." [She çhengaghyn ashoonagh dagh çhengey vun-dooghyssagh y Toodaan Yiass as lhisagh ad ve ammyssit, lhiasit, as cummit seose.]<ref>{{cite web|url=http://www.sudantribune.com/IMG/pdf/The_Draft_Transitional_Constitution_of_the_ROSS2-2.pdf|title=The Transitional Constitution of the Republic of South Sudan, 2011|access-date=18 Mee Houney 2016|publisher=Reiltys y Toodaan Yiass|archive-url=https://web.archive.org/web/20110629170732/http://www.sudantribune.com/IMG/pdf/The_Draft_Transitional_Constitution_of_the_ROSS2-2.pdf|archive-date=29 Mean Souree 2011|url-status=live}}</ref>|group=note}} |sorçh_çhengaghyn = [[Çhengey ashoonagh|Çhengaghyn ashoonagh]] |preeu-valley = [[Juba]] |latd=04|latm=51|latNS=N |longd=31 |longm=34|longEW=E |balley_smoo = preeu-valley |sorçh_reiltys = [[Pobblaght]] [[deynlaghys reihdagh|gheynlagh]] [[corys eaghtyraneagh|eaghtyraneagh]] [[pobblaght chonastagh|chonastagh]] |sorçh_kiondeeaght = [[Shennaghys y Toodaan Yiass|Neuchrogheydys]] |note_kiondeeaght = veih'n [[Yn Toodaan|Toodaan]] |taghyrt_bunneeaght1 = [[Ard Hene-reiltagh y Toodaan Yiass (1972–1983)|1d ard hene-reiltagh]] |date_bunneeaght1 = 28 Toshiaght Arree 1972 |taghyrt_bunneeaght2 = [[Ard Hene-reiltagh y Toodaan Yiass (2005–2011)|2h ard hene-reiltagh]] |date_bunneeaght2 = 9 Jerrey Souree 2005 |taghyrt_bunneeaght3 = [[Refrane neuchrogheydys y Toodaan Yiass, 2011#Eiyrtyssyn|Fogrit as ennit]] |date_bunneeaght3 = 9 Jerrey Souree 2011 |traa_ynnydagh = [[Traa yn Affrick Hiar|EAT]] |ashchur_utc = +03:00 |cctld = [[.ss]] |coad_çhellvane = 211 }} She çheer 'syn [[yn Affrick|Affrick]] ee '''yn Toodaan Yiass'''. T'ee çhemmit liorish [[Yn Toodaan|y Toodaan]] da'n twoaie, liorish [[yn Eetoip]] da'n shiar, liorish [[Yn Cheinney|y Cheinney]], [[Ooganda]], as [[Pobblaght Gheynlagh y Chongo]] da'n jiass, as liorish [[Pobblaght yn Affrick Veanagh]] da'n sheear. She [[Juba]] yn preeu-valley. ==Noteyn== {{reflist|group=note}} {{notelist}} ==Imraaghyn== {{reflist}} {{Yn Affrick}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Toodaan Yiass, Yn}} {{bun}} [[Ronney:Yn Toodaan Yiass| ]] [[Ronney:Çheeraghyn yn Affrick Veanagh]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Boodeeys yn Affrick Hiar]] [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn conastagh]] [[Ronney:Çheeraghyn thallooinit]] [[Ronney:Çheeraghyn sloo lhiasit]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Çheeraghyn-oltey ny h-Ashoonyn Unnaneysit]] [[Ronney:Steatyn as thallooyn bunnit 'sy vlein 2011]] n0z9zgpnltnk6oejs5pjqnzsvtqlb6a Rishon LeZion 0 17767 394582 363520 2026-10-16T21:40:06Z InternetArchiveBot 16702 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.6 394582 wikitext text/x-wiki {{Kishtey fys boayl | ennym_gienneydagh = Rishon LeZion | ennym = Rishon LeZion | ennym_elley = <br /> ראשון לציון | ennym_dooghyssagh = | sorçh_balley = Ard-valley | jalloo_armys = Rishon leZion Coat of Arms.svg | mooadys_armys = 80px | jalloo_brattagh = Flag of Rishon LeZion.svg | mooadys_brattagh = 150px | jarroo-raa = | far-ennym = | jalloo_bun_speyrey = PikiWiki Israel 8057 The lake in Rishon-Lezion Israel.jpg | mooadys_jalloo = 250px | fo-heidyl_jalloo = Reayrt speyrey er Rishon LeZion as y logh | caslys-çheerey_broo-freeney = Israel | soiaghey_lipaid_broo-freeney = | fo-heidyl_caslys-çheerey_broo-freeney = Soiaghey Rishon LeZion ayns Israel | mooadys_caslys-çheerey_broo-freeney = | ard_coordnaidyn = IL | taishbyney_coordnaidyn = inline, title | sorçh_aarheynn = [[Rolley çheeraghyn y theihill|Çheer]] | ennym_aarheynn = {{brattagh|Israel|Israel}} | sorçh_aarheynn1 = [[Slystyn Israel|Slyst]] | ennym_aarheynn1 = [[Slyst Veanagh, Israel|Meanagh]] | enmys_bunneeaght= Bunnit | date_bunneeaght = 1882 | sorçh_slane = Ard-valley | enmys_fer-toshee = Meoir | ennym_fer-toshee = [[Dov Tzur]] | slane_earroo_yn_phobble = 232410 | earroo_yn_phobble_moir = | earroo_yn_phobble_er = 2011 | fo-noteyn_earroo_yn_phobble = | glooaght_y_phobble_km2 = 3965 | slane_eaghtyr_km2 = 58.6 | fo-noteyn_eaghtyr = | cryss_hraa = [[Traa ynnydagh Israel|IST]] | ashchur_utc = +2 | cryss_hraa_TTSL = [[Traa Houree Israel|IDT]] | ashchur_utc_TTSL = +3 | yrjid_m = 40 | latd = 31 |latm = 57 |lats = 40 |latNS = N | longd = 34 |longm = 48 |longs = 38 |longEW = E | coad_ardjynagh = 03 | ynnyd-eggey = {{URL|www.rishonlezion.muni.il}} | fo-noteyn = }} She '''Rishon LeZion''' ({{lang-he-n|רִאשׁוֹן לְצִיּוֹן}}, "Y Chied gys Seion") y kiarroo ard-valley smoo ayns [[Israel]]. T'eh soit rish [[thalloo rea slystagh Israel]] 12 km çheu yiass veih [[Tel Aviv]]. T'eh soit ayns ard moirvaljagh [[Gush Dan]]. 'Sy vlein 2011 va 232,410 deiney cummal 'syn ard-valley. Va'n ard-valley bunnit 'sy vlein 1882 ec arreyderyn stiagh Ewagh veih'n Oarpey, as by ayn va'n nah valley gowaltagh ayns [[Eretz Israel]] currit er bun, lurg [[Petah Tikva]]. ==Mooinjerys eddyr-ashoonagh== {{jeeagh|Rolley baljyn as ard-valjyn lannoonit ayns Israel}} ===Baljyn as ard-valjyn lannoonit=== {| class="wikitable" |- valign="top" | *{{brattagh|Romania}} [[Braşov]], [[Yn Romaan|y Romaan]] *{{brattagh|Hungary}} [[Debrecen]], [[yn Ungaar]] *{{brattagh|Ethiopia}} [[Gondar]], [[yn Eetoip]] *{{brattagh|Ukraine}} [[Kharkiv]], [[yn Ookraan]] *{{brattagh|Israel}} [[Kiryat Shmona]], Israel *{{brattagh|the Netherlands}} [[Heerenveen]], [[Yn Çheer Injil|y Çheer Injil]] || *{{brattagh|Poland}} [[Lublin]], [[Yn Pholynn|y Pholynn]] *{{brattagh|Ukraine}} [[Lviv]], yn Ookraan *{{brattagh|the United States}} [[Essex County, New Jersey|Essex County]], [[ny Steatyn Unnaneysit]] *{{brattagh|Germany}} [[Münster]], [[Yn Ghermaan|y Ghermaan]] *{{brattagh|France}} [[Nîmes]], [[Yn Rank|y Rank]] || *{{brattagh|the United States}} [[Prince George's County]], ny Steatyn Unnaneysit *{{brattagh|Slovakia}} [[Prešov]], [[Yn Clovack|y Clovack]] *{{brattagh|Russia}} [[Caayr Pheddyr]], [[Yn Roosh|y Roosh]] *{{brattagh|Italy}} [[Teramo]], [[yn Iddaal]] *{{brattagh|the People's Republic of China}} [[Tianjin]], [[Deynphobblaght ny Sheen|y Çheen]] |} ==Kianglaghyn magh== {{Commonscat}} * [https://web.archive.org/web/20061028164950/http://www.rishonlezion.muni.il/ Baljaght Rishon LeZion] {{he jalloo}} * [https://web.archive.org/web/20131005015808/http://www.govisitisrael.com/articlenav.php?id=119 Buill hurryssagh ayns Rishon LeZion] {{en jalloo}} {{Gurneil eaghtyrys}} [[Ronney:Rishon LeZion| ]] [[Ronney:Ard-valjyn 'sy Clyst Veanagh (Israel)]] [[Ronney:Baljyn beggey Ewagh 'syn Impiraght Ottomanagh]] [[Ronney:Buill chummaltit bunnit 'sy vlein 1882]] [[Ronney:Bunneeaghtyn 'syn Impiraght Ottomanagh 'sy vlein 1882]] [[Ronney:Yn Teer Ottomanagh 'sy vlein 1882]] [[Ronney:Ard-valjyn ayns Israel]] 3w710zmbpnz83gkjqywoh8dd5oiei3g Mike Pollitt 0 20211 394638 347025 2026-10-17T06:36:18Z MacTire02 219 chiarrymeeaght 394638 wikitext text/x-wiki {{WD Kishtey Fys Dooinney |ennym_ruggyr = Michael Pollitt |boayl_ruggyr = [[Farnworth]], Sostyn }} She [[soccer|eear-vluckaneyr]] keirdey Sostynagh eh '''Michael Francis Pollitt''' (ruggit er 29 Toshiaght Arree 1972). ==Kianglaghyn magh== * {{Soccerbase}} {{Gurneil eaghtyrys}} {{DEFAULTSORT:Pollitt, Mike}} [[Ronney:Ruggyryn 'sy vlein 1972]] [[Ronney:Feallee vio]] [[Ronney:Feallee ass Farnworth]] [[Ronney:Bluckaneyryn soccer firryn Sostynagh]] [[Ronney:Bluckaneyryn Manchester United F.C.]] [[Ronney:Bluckaneyryn Oldham Athletic A.F.C.]] [[Ronney:Bluckaneyryn Macclesfield Town F.C.]] [[Ronney:Bluckaneyryn Bury F.C.]] [[Ronney:Bluckaneyryn Lincoln City F.C.]] [[Ronney:Bluckaneyryn Altrincham F.C.]] [[Ronney:Bluckaneyryn Darlington F.C.]] [[Ronney:Bluckaneyryn Notts County F.C.]] [[Ronney:Bluckaneyryn Gillingham F.C.]] [[Ronney:Bluckaneyryn Brentford F.C.]] [[Ronney:Bluckaneyryn Sunderland A.F.C.]] [[Ronney:Bluckaneyryn Rotherham United F.C.]] [[Ronney:Bluckaneyryn Chesterfield F.C.]] [[Ronney:Bluckaneyryn Wigan Athletic F.C.]] [[Ronney:Bluckaneyryn Ipswich Town F.C.]] [[Ronney:Bluckaneyryn Burnley F.C.]] [[Ronney:Bluckaneyryn Barnsley F.C.]] [[Ronney:Bluckaneyryn Premier League Hostyn]] [[Ronney:Bluckaneyryn Football League Hostyn]] [[Ronney:Fwirran neu-chloie Wigan Athletic F.C.]] [[Ronney:Fwirran neu-chloie Rotherham United F.C.]] [[Ronney:Fwirran neu-chloie Bolton Wanderers F.C.]] [[Ronney:Fwirran neu-chloie Preston North End F.C.]] majhbkbikgv9qr0p42be4hgn5mwqwxt Module:Citation/CS1/Configuration 828 26975 394558 394336 2026-10-16T16:37:01Z MacTire02 219 ++ 394558 Scribunto text/plain local lang_obj = mw.language.getContentLanguage(); -- make a language object for the local language; used here for languages and dates --[[--------------------------< S E T T I N G S >-------------------------------------------------------------- boolean settings used to control various things. these setting located here to make them easy to find ]] -- these settings local to this module only local local_digits_from_mediawiki = false; -- for i18n; when true, module fills date_names['local_digits'] from MediaWiki; manual fill required else; always false at en.wiki local local_date_names_from_mediawiki = false; -- for i18n; when true, module fills date_names['local']['long'] and date_names['local']['short'] from MediaWiki; -- manual translation required else; ; always false at en.wiki -- these settings exported to other modules local use_identifier_redirects = true; -- when true use redirect name for identifier label links; always true at en.wiki local local_lang_cat_enable = false; -- when true categorizes pages where |language=<local wiki's language>; always false at en.wiki local date_name_auto_xlate_enable = false; -- when true translates English month-names to the local-wiki's language month names; always false at en.wiki local date_digit_auto_xlate_enable = false; -- when true translates Western date digit to the local-wiki's language digits (date_names['local_digits']); always false at en.wiki local enable_sort_keys = true; -- when true module adds namespace sort keys to error and maintenance category links local suppress_archive_today_urls = true; -- when true module suppresses all parameters with an archive.today url and any deprendent parameters --[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------ List of namespaces identifiers for namespaces that will not be included in citation error categories. Same as setting notracking = true by default. For wikis that have a current version of Module:cs1 documentation support, this #invoke will return an unordered list of namespace names and their associated identifiers: {{#invoke:cs1 documentation support|uncategorized_namespace_lister|all=<anything>}} ]] local uncategorized_namespaces_t = {[2]=true}; -- init with user namespace id for k, _ in pairs (mw.site.talkNamespaces) do -- add all talk namespace ids uncategorized_namespaces_t[k] = true; end local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases', '/[^/]*[Ll]og', '/[Aa]rchive'}; -- list of Lua patterns found in page names of pages we should not categorize --[[ at en.wiki Greek characters are used as sort keys for certain items in a category so that those items are placed at the end of a category page. See Wikipedia:Categorization#Sort_keys. That works well for en.wiki because English is written using the Latn script. This may not work well for other languages. At en.wiki it is desireable to place content from certain namespaces at the end of a category listing so the module adds sort keys to error and maintenance category links when rendering a cs1|2 template on a page in that namespace. i18n: if this does not work well for your language, set <enable_sort_keys> to false. ]] local name_space_sort_keys = { -- sort keys to be used with these namespaces: [4] = 'ω', -- wikipedia; omega [10] = 'τ', -- template; tau [118] = 'Δ', -- draft; delta ['other'] = 'ο', -- all other non-talk namespaces except main (article); omicron } --[[--------------------------< M E S S A G E S >-------------------------------------------------------------- Translation table The following contains fixed text that may be output as part of a citation. This is separated from the main body to aid in future translations of this module. ]] local messages = { ['agency'] = '$1 $2', -- $1 is sepc, $2 is agency ['archived-dead'] = 'Er ny hashtey veih $1 er $2', ['archived-live'] = '$1 veih’n lhieggan bunneydagh er $2', ['archived-unfit'] = 'Er ny hashtey veih’n lhieggan bunneydagh er $1', ['archived'] = 'Tashtit', ['by'] = 'Lesh', -- contributions to authored works: introduction, foreword, afterword ['cartography'] = 'Cartography by $1', ['editor'] = 'ln.', ['editors'] = 'ln.', ['edition'] = '($1&nbsp;ln.)', ['episode'] = 'Episode $1', ['et al'] = 'et&nbsp;al.', ['in'] = 'Ayns', -- edited works ['inactive'] = ' (inactive $1)', -- $1 is date which the doi was found to be broken in ['inset'] = '$1 inset', ['interview'] = 'Interviewed by $1', invisible_1 = '$1 $2', -- $1 stripmarker name; $2 is text from <invisible_chars[1]> invisible_2 = '$1 character', -- $1 character name from <invisible_chars[1]> ['mismatch'] = '<code class="cs1-code">&#124;$1=</code> / <code class="cs1-code">&#124;$2=</code> mismatch', -- $1 is year param name; $2 is date param name ['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]:&nbsp;$1', ['notitle'] = 'Enmys erbee', -- for |title=(()) and (in the future) |title=none ['original'] = 'y lhieggan bunneydagh', ['origdate'] = ' [$1]', ['published'] = ' (published $1)', ['retrieved'] = 'Feddynit er $1', ['season'] = 'Season $1', ['section'] = '§&nbsp;$1', ['sections'] = '§§&nbsp;$1', ['series'] = '$1 $2', -- $1 is sepc, $2 is series ['seriesnum'] = 'Series $1', ['translated'] = 'Er ny hyndaa lesh $1', ['type'] = ' ($1)', -- for titletype wikidata = 'Wikidata', -- these used for interwikilinked author/editor/... names wikipedia = 'Wikipedia', wikisource = 'Wikisource', ['written'] = 'Screeuit ec $1', ['vol'] = '$1 Vol.&nbsp;$2', -- $1 is sepc; bold journal style volume is in presentation{} ['vol-no'] = '$1 Vol.&nbsp;$2, no.&nbsp;$3', -- sepc, volume, issue (alternatively insert $1 after $2, but then we'd also have to change capitalization) ['issue'] = '$1 No.&nbsp;$2', -- $1 is sepc ['art'] = '$1 Art.&nbsp;$2', -- $1 is sepc; for {{cite conference}} only ['vol-art'] = '$1 Vol.&nbsp;$2, art.&nbsp;$3', -- sepc, volume, article-number; for {{cite conference}} only ['j-vol'] = '$1 $2', -- sepc, volume; bold journal volume is in presentation{} ['j-issue'] = ' ($1)', ['j-article-num'] = ' $1', -- TODO: any punctuation here? static text? ['nopp'] = '$1 $2'; -- page(s) without prefix; $1 is sepc ['p-prefix'] = "$1 dg.&nbsp;$2", -- $1 is sepc ['pp-prefix'] = "$1 dgn.&nbsp;$2", -- $1 is sepc ['j-page(s)'] = ': $1', -- same for page and pages ['sheet'] = '$1 Sheet&nbsp;$2', -- $1 is sepc ['sheets'] = '$1 Sheets&nbsp;$2', -- $1 is sepc ['j-sheet'] = ': Sheet&nbsp;$1', ['j-sheets'] = ': Sheets&nbsp;$1', ['language'] = '(ayns $1)', ['via'] = " &ndash; via $1", ['event'] = 'Event occurs at', ['minutes'] = ' $1 minutes in', -- $1 is the number of minutes -- Determines the location of the help page ['help page link'] = 'Help:CS1 errors', ['help page label'] = 'help', -- categories ['cat wikilink'] = '[[Category:$1]]', -- $1 is the category name ['cat wikilink sk'] = '[[Category:$1|$2]]', -- $1 is the category name; $2 is namespace sort key [':cat wikilink'] = '[[:Category:$1|link]]', -- category name as maintenance message wikilink; $1 is the category name -- Internal errors (should only occur if configuration is bad) ['undefined_error'] = 'Called with an undefined error condition', ['unknown_ID_key'] = 'Unrecognized ID key: ', -- an ID key in id_handlers not found in ~/Identifiers func_map{} ['unknown_ID_access'] = 'Unrecognized ID access keyword: ', -- an ID access keyword in id_handlers not found in keywords_lists['id-access']{} ['unknown_argument_map'] = 'Argument map not defined for this variable', ['bare_url_no_origin'] = 'Bare URL found but origin indicator is nil or empty', ['warning_msg_e'] = '<span style="color:#d33"><code style="color: inherit; background: inherit; border: none; padding: inherit;">&#123;{$1}}</code>: this [[#$2|reference]] has errors</span>; messages may be hidden ([[Help:CS1_errors#Controlling_error_message_display|help]]).'; -- $1 is template link; $2 is anchor ID ['warning_msg_m'] = '<span style="color:#085"><code style="color: inherit; background: inherit; border: none; padding: inherit;">&#123;{$1}}</code>: this [[#$2|reference]] has maintenance messages</span>; messages may be hidden ([[Help:CS1_errors#Controlling_error_message_display|help]]).'; -- $1 is template link; $2 is anchor ID } --[[--------------------------< C I T A T I O N _ C L A S S _ M A P >------------------------------------------ this table maps the value assigned to |CitationClass= in the cs1|2 templates to the canonical template name when the value assigned to |CitationClass= is different from the canonical template name. |CitationClass= values are used as class attributes in the <cite> tag that encloses the citation so these names may not contain spaces while the canonical template name may. These names are used in warning_msg_e and warning_msg_m to create links to the template's documentation when an article is displayed in preview mode. ]] local citation_class_map_t = { -- TODO: in Module:Cite/config write a function to use this table arxiv = 'cite arXiv', -- as the source for known_templates_t and citation_classes_t ['audio-visual'] = 'cite AV media', ['AV-media-notes'] = 'cite AV media notes', biorxiv = 'cite bioRxiv', book = 'cite book', citation = 'citation', citeseerx = 'cite CiteSeerX', conference = 'cite conference', document = 'cite document', encyclopaedia = 'cite encyclopedia', episode = 'cite episode', interview = 'cite interview', journal = 'cite journal', magazine = 'cite magazine', mailinglist = 'cite mailing list', map = 'cite map', medrxiv = 'cite medRxiv', news = 'cite news', newsgroup = 'cite newsgroup', podcast = 'cite podcast', pressrelease = 'cite press release', report = 'cite report', serial = 'cite serial', sign = 'cite sign', speech = 'cite speech', ssrn = 'cite SSRN', techreport = 'cite tech report', thesis = 'cite thesis', web = 'cite web', } --[=[-------------------------< E T _ A L _ P A T T E R N S >-------------------------------------------------- This table provides Lua patterns for the phrase "et al" and variants in name text (author, editor, etc.). The main module uses these to identify and emit the 'etal' message. ]=] local et_al_patterns = { "[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.;,\"']*$", -- variations on the 'et al' theme "[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][AaIi][Ee]?[%.;,\"']*$", -- variations on the 'et alia', 'et alii' and 'et aliae' themes (false positive 'et aliie' unlikely to match) "[;,]? *%f[%a]and [Oo]thers", -- an alternative to et al. "%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]", -- a wikilinked form "%(%( *[Ee][Tt]%.? *[Aa][Ll]%.? *%)%)", -- a double-bracketed form (to counter partial removal of ((...)) syntax) "[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]", -- a bracketed form } --[[--------------------------< P R E S E N T A T I O N >------------------------ Fixed presentation markup. Originally part of citation_config.messages it has been moved into its own, more semantically correct place. ]] local presentation = { -- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display ['hidden-error'] = '<span class="cs1-hidden-error citation-comment">$1</span>', ['visible-error'] = '<span class="cs1-visible-error citation-comment">$1</span>', ['hidden-maint'] = '<span class="cs1-maint citation-comment">$1</span>', ['accessdate'] = '<span class="reference-accessdate">$1$2</span>', -- to allow editors to hide accessdate using personal CSS ['bdi'] = '<bdi$1>$2</bdi>', -- bidirectional isolation used with |script-title= and the like ['cite'] = '<cite class="$1">$2</cite>'; -- for use when citation does not have a namelist and |ref= not set so no id="..." attribute ['cite-id'] = '<cite id="$1" class="$2">$3</cite>'; -- for use when when |ref= is set or when citation has a namelist ['format'] = ' <span class="cs1-format">($1)</span>', -- for |format=, |chapter-format=, etc. ['interwiki'] = ' <span class="cs1-format">[ayns $1]</span>', -- for interwiki-language-linked author, editor, etc ['interproj'] = ' <span class="cs1-format">[ec $1]</span>', -- for interwiki-project-linked author, editor, etc (:d: and :s: supported; :w: ignored) -- various access levels, for |access=, |doi-access=, |arxiv=, ... -- narrow no-break space &#8239; may work better than nowrap CSS. Or not? Browser support? ['ext-link-access-signal'] = '<span class="$1" title="$2">$3</span>', -- external link with appropriate lock icon ['free'] = {class='id-lock-free', title='Freely accessible'}, -- classes defined in Module:Citation/CS1/styles.css ['registration'] = {class='id-lock-registration', title='Free registration required'}, ['limited'] = {class='id-lock-limited', title='Free access subject to limited trial, subscription normally required'}, ['subscription'] = {class='id-lock-subscription', title='Paid subscription required'}, ['interwiki-icon'] = '<span class="$1" title="$2">$3</span>', ['class-wikisource'] = 'cs1-ws-icon', ['italic-title'] = "''$1''", ['kern-left'] = '<span class="cs1-kern-left"></span>$1', -- spacing to use when title contains leading single or double quote mark ['kern-right'] = '$1<span class="cs1-kern-right"></span>', -- spacing to use when title contains trailing single or double quote mark ['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span> ['nowrap2'] = '<span class="nowrap">$1</span> $2', -- for nowrapping portions of an item: <span ...>dd mmmm</span> yyyy (note white space) ['ocins'] = '<span title="$1" class="Z3988"></span>', ['parameter'] = '<code class="cs1-code">&#124;$1=</code>', ['ps_cs1'] = '.'; -- CS1 style postscript (terminal) character ['ps_cs2'] = ''; -- CS2 style postscript (terminal) character (empty string) ['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content ['quoted-title'] = '"$1"', ['sep_cs1'] = '.', -- CS1 element separator ['sep_cs2'] = ',', -- CS2 separator ['sep_nl'] = ';', -- CS1|2 style name-list separator between names is a semicolon ['sep_nl_and'] = ' as ', -- used as last nl sep when |name-list-style=and and list has 2 items ['sep_nl_end'] = '; as ', -- used as last nl sep when |name-list-style=and and list has 3+ names ['sep_name'] = ', ', -- CS1|2 style last/first separator is <comma><space> ['sep_nl_vanc'] = ',', -- Vancouver style name-list separator between authors is a comma ['sep_name_vanc'] = ' ', -- Vancouver style last/first separator is a space ['sep_list'] = ', ', -- used for |language= when list has 3+ items except for last sep which uses sep_list_end ['sep_list_pair'] = ' as ', -- used for |language= when list has 2 items ['sep_list_end'] = ', as ', -- used as last list sep for |language= when list has 3+ items ['trans-italic-title'] = "&#91;''$1''&#93;", ['trans-quoted-title'] = "&#91;$1&#93;", -- for |trans-title= and |trans-quote= ['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; for bold journal cites; for other cites ['vol'] in messages{} } --[[--------------------------< A L I A S E S >--------------------------------- Aliases table for commonly passed parameters. Parameter names on the right side in the assignments in this table must have been defined in the Whitelist before they will be recognized as valid parameter names ]] local aliases = { ['AccessDate'] = {'access-date', 'accessdate'}, -- Used by InternetArchiveBot ['Agency'] = 'agency', ['ArchiveDate'] = {'archive-date', 'archivedate'}, -- Used by InternetArchiveBot ['ArchiveFormat'] = 'archive-format', ['ArchiveURL'] = {'archive-url', 'archiveurl'}, -- Used by InternetArchiveBot ['ArticleNumber'] = 'article-number', ['ASINTLD'] = 'asin-tld', ['At'] = 'at', -- Used by InternetArchiveBot ['Authors'] = {'people', 'credits', 'ughtaryn'}, ['BookTitle'] = {'book-title', 'booktitle'}, ['Cartography'] = 'cartography', ['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'}, ['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format', 'article-format', 'section-format'}; ['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url'}, -- Used by InternetArchiveBot ['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access', 'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot ['Class'] = 'class', -- cite arxiv and arxiv identifier ['Collaboration'] = 'collaboration', ['Conference'] = {'conference', 'event'}, ['ConferenceFormat'] = 'conference-format', ['ConferenceURL'] = 'conference-url', -- Used by InternetArchiveBot ['Date'] = {'date', 'air-date', 'airdate'}, -- air-date and airdate for cite episode and cite serial only ['Degree'] = 'degree', ['DF'] = 'df', ['DisplayAuthors'] = {'display-authors', 'display-subjects'}, ['DisplayContributors'] = 'display-contributors', ['DisplayEditors'] = 'display-editors', ['DisplayInterviewers'] = 'display-interviewers', ['DisplayTranslators'] = 'display-translators', ['Docket'] = 'docket', ['DoiBroken'] = 'doi-broken-date', ['Edition'] = {'edition', 'lhieggan'}, ['Embargo'] = 'pmc-embargo-date', ['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'dictionary', 'kicklipaid', 'fockleyr'}, -- cite encyclopedia only ['Episode'] = 'episode', -- cite serial only TODO: make available to cite episode? ['Format'] = 'format', ['ID'] = {'id', 'ID'}, ['Inset'] = 'inset', ['Issue'] = {'issue', 'number', 'cur magh'}, ['Language'] = {'language', 'lang', 'çhengey'}, ['MailingList'] = {'mailing-list', 'mailinglist'}, -- cite mailing list only ['Map'] = 'map', -- cite map only ['MapFormat'] = 'map-format', -- cite map only ['MapURL'] = {'map-url', 'mapurl'}, -- cite map only -- Used by InternetArchiveBot ['MapUrlAccess'] = 'map-url-access', -- cite map only -- Used by InternetArchiveBot ['Minutes'] = 'minutes', ['Mode'] = 'mode', ['NameListStyle'] = 'name-list-style', ['Network'] = 'network', ['Newsgroup'] = 'newsgroup', -- cite newsgroup only ['NoPP'] = {'no-pp', 'nopp'}, ['NoTracking'] = {'no-tracking', 'template-doc-demo'}, ['Number'] = 'number', -- this case only for cite techreport ['OrigDate'] = {'orig-date', 'orig-year', 'origyear'}, ['Others'] = 'others', ['Page'] = {'page', 'p', 'duillag', 'dg', 'dg.'}, -- Used by InternetArchiveBot ['Pages'] = {'pages', 'pp', 'duillagyn', 'dgn', 'dgn.'}, -- Used by InternetArchiveBot ['Periodical'] = {'journal', 'magazine', 'newspaper', 'periodical', 'website', 'work', 'earishlioar', 'jurnyl', 'pabyr-naight', 'pabyr naight', 'ynnyd-eggey', 'obbyr'}, ['Place'] = {'place', 'location'}, ['PostScript'] = 'postscript', ['PublicationDate'] = {'publication-date', 'publicationdate'}, ['PublicationPlace'] = {'publication-place', 'publicationplace'}, ['PublisherName'] = {'publisher', 'institution', 'soilsheyder'}, ['Quote'] = {'quote', 'quotation'}, ['QuotePage'] = 'quote-page', ['QuotePages'] = 'quote-pages', ['Ref'] = 'ref', ['Scale'] = 'scale', ['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry', 'script-article', 'script-section'}, ['ScriptEncyclopedia'] = {'script-encyclopedia', 'script-encyclopaedia'}, -- cite encyclopedia only ['ScriptMap'] = 'script-map', ['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper', 'script-periodical', 'script-website', 'script-work'}, ['ScriptQuote'] = 'script-quote', ['ScriptTitle'] = 'script-title', -- Used by InternetArchiveBot ['Season'] = 'season', ['Sections'] = 'sections', -- cite map only ['Series'] = {'series', 'version'}, ['SeriesLink'] = {'series-link', 'serieslink'}, ['SeriesNumber'] = {'series-number', 'series-no'}, ['Sheet'] = 'sheet', -- cite map only ['Sheets'] = 'sheets', -- cite map only ['Station'] = 'station', ['Time'] = 'time', ['TimeCaption'] = 'time-caption', ['Title'] = {'title', 'enmys'}, -- Used by InternetArchiveBot ['TitleLink'] = {'title-link', 'episode-link', 'episodelink'}, -- Used by InternetArchiveBot ['TitleNote'] = {'title-note', 'department'}, ['TitleType'] = {'type', 'medium'}, ['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution', 'trans-entry', 'trans-section'}, ['Transcript'] = 'transcript', ['TranscriptFormat'] = 'transcript-format', ['TranscriptURL'] = 'transcript-url', -- Used by InternetArchiveBot ['TransEncyclopedia'] = {'trans-encyclopedia', 'trans-encyclopaedia'}, -- cite encyclopedia only ['TransMap'] = 'trans-map', -- cite map only ['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper', 'trans-periodical', 'trans-website', 'trans-work'}, ['TransQuote'] = 'trans-quote', ['TransTitle'] = 'trans-title', -- Used by InternetArchiveBot ['URL'] = {'url', 'URL'}, -- Used by InternetArchiveBot ['UrlAccess'] = 'url-access', -- Used by InternetArchiveBot ['UrlStatus'] = 'url-status', -- Used by InternetArchiveBot ['Vauthors'] = 'vauthors', ['Veditors'] = 'veditors', ['Via'] = 'via', ['Volume'] = 'volume', ['Year'] = 'year', ['AuthorList-First'] = {"first#", "author-first#", "author#-first", "author-given#", "author#-given", "subject-first#", "subject#-first", "subject-given#", "subject#-given", "given#"}, ['AuthorList-Last'] = {"last#", "author-last#", "author#-last", "author-surname#", "author#-surname", "subject-last#", "subject#-last", "subject-surname#", "subject#-surname", "author#", 'host#', "subject#", "surname#", 'ughtar#'}, ['AuthorList-Link'] = {"author-link#", "author#-link", "subject-link#", "subject#-link", "authorlink#", "author#link"}, ['AuthorList-Mask'] = {"author-mask#", "author#-mask", "subject-mask#", "subject#-mask"}, ['ContributorList-First'] = {'contributor-first#', 'contributor#-first', 'contributor-given#', 'contributor#-given'}, ['ContributorList-Last'] = {'contributor-last#', 'contributor#-last', 'contributor-surname#', 'contributor#-surname', 'contributor#'}, ['ContributorList-Link'] = {'contributor-link#', 'contributor#-link'}, ['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-mask'}, ['EditorList-First'] = {"editor-first#", "editor#-first", "editor-given#", "editor#-given"}, ['EditorList-Last'] = {"editor-last#", "editor#-last", "editor-surname#", "editor#-surname", "editor#"}, ['EditorList-Link'] = {"editor-link#", "editor#-link"}, ['EditorList-Mask'] = {"editor-mask#", "editor#-mask"}, ['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first', 'interviewer-given#', 'interviewer#-given'}, ['InterviewerList-Last'] = {'interviewer-last#', 'interviewer#-last', 'interviewer-surname#', 'interviewer#-surname', 'interviewer#'}, ['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link'}, ['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'}, ['TranslatorList-First'] = {'translator-first#', 'translator#-first', 'translator-given#', 'translator#-given'}, ['TranslatorList-Last'] = {'translator-last#', 'translator#-last', 'translator-surname#', 'translator#-surname', 'translator#'}, ['TranslatorList-Link'] = {'translator-link#', 'translator#-link'}, ['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'}, } --[[--------------------------< D E P E N D E N C I E S _ T >-------------------------------------------------- a table of url-holding parameters upon which other parameters are dependent. this table is used by has_archive_today_url() to suppress parameters that are dependant upon a url-holding parameter that has as a value an archive.today (or alternate tld) url. archive.today is deprecated at en.wiki; see Wikipedia:Requests_for_comment/Archive.is_RFC_5 ]] local url_dependency_map_t = { -- table of url-holding parameters and the meta-parameters that are dependent on them ['url'] = {'AccessDate', 'ArchiveURL', 'Format', 'UrlAccess'}, ['archive-url'] = {'ArchiveDate', 'ArchiveFormat', 'UrlStatus'}, ['archiveurl'] = {'ArchiveDate', 'ArchiveFormat', 'UrlStatus'}, ['article-url'] = {'ChapterFormat', 'ChapterUrlAccess'}, ['chapter-url'] = {'ChapterFormat', 'ChapterUrlAccess'}, ['conference-url'] = {'ConferenceFormat'}, ['contribution-url'] = {'ChapterFormat', 'ChapterUrlAccess'}, ['entry-url'] = {'ChapterFormat', 'ChapterUrlAccess'}, ['map-url'] = {'MapFormat', 'MapUrlAccess'}, ['section-url'] = {'ChapterFormat', 'ChapterUrlAccess'}, ['transcript-url'] = {'TranscriptFormat'}, }; local dependencies_t = {}; -- the table of url-holding parameters and their dependent parameters for url_param, meta_parameters_t in pairs (url_dependency_map_t) do -- sequence of meta-parameters (indexes) into <aliases> table local dependant_params_t = {}; -- collection of parameters that are dependent on this <url_param> for _, meta_parameter in ipairs (meta_parameters_t) do -- for each <aliases> meta-parameter (index) if 'string' == type (aliases[meta_parameter]) then -- for single parameter names (no aliases), <aliases[meta_parameter]> will be a string table.insert (dependant_params_t, aliases[meta_parameter]); -- add to this <url_param>'s dependency sequence else for _, alias in ipairs (aliases[meta_parameter]) do -- for each alias in aliases[meta_parameter] (aliases['AccessDate'] for example) table.insert (dependant_params_t, alias); -- add to this <url_param>'s dependency sequence end end end dependencies_t[url_param] = dependant_params_t; -- add the <url_param> and its dependent parameters end --[[--------------------------< P U N C T _ S K I P >--------------------------- builds a table of parameter names that the extraneous terminal punctuation check should not check. ]] local punct_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value 'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters 'AuthorList-Mask', 'ContributorList-Mask', 'EditorList-Mask', 'InterviewerList-Mask', 'TranslatorList-Mask', -- name-list mask may have name separators 'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous 'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'MapURL', 'TranscriptURL', 'URL', -- URL-holding parameters } local url_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value 'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'ID', 'MapURL', 'TranscriptURL', 'URL', -- parameters allowed to hold urls 'Page', 'Pages', 'At', 'QuotePage', 'QuotePages', -- insource locators allowed to hold urls } local function build_skip_table (skip_t, meta_params) for _, meta_param in ipairs (meta_params) do -- for each meta parameter key local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name if 'string' == type (params) then skip_t[params] = 1; -- just a single parameter else for _, param in ipairs (params) do -- get the parameter name skip_t[param] = 1; -- add the parameter name to the skip table local count; param, count = param:gsub ('#', ''); -- remove enumerator marker from enumerated parameters if 0 ~= count then -- if removed skip_t[param] = 1; -- add param name without enumerator marker end end end end return skip_t; end local punct_skip = {}; local url_skip = {}; --[[--------------------------< U R L _ A C C E S S _ M A P >-------------------------------------------------- this table used by the wikipedia library url test, has_twl_url(), which automatically sets a url-access parameter to 'subscription' when it discovers a wikipedia library url in any of the url-holding paramters used as keys in this table. translators: if your wiki uses parameter names for these url-holding parameters and their matching -access parameters, add your wiki's parameters to this list. Leave the English parameters in place. TODO: is there a better way to do this? ]] local url_access_map_t = { ['chapter-url'] = 'chapter-url-access', ['contribution-url'] = 'contribution-url-access', ['entry-url'] = 'entry-url-access', ['article-url'] = 'article-url-access', ['section-url'] = 'section-url-access', ['map-url'] = 'map-url-access', ['mapurl'] = 'map-url-access', ['url'] = 'url-access', ['URL'] = 'url-access' } --[[--------------------------< S I N G L E - L E T T E R S E C O N D - L E V E L D O M A I N S >---------- this is a list of tlds that are known to have single-letter second-level domain names. This list does not include ccTLDs which are accepted in is_domain_name(). ]] local single_letter_2nd_lvl_domains_t = {'cash', 'company', 'foundation', 'media', 'org', 'today'}; --[[-----------< S P E C I A L C A S E T R A N S L A T I O N S >------------ This table is primarily here to support internationalization. Translations in this table are used, for example, when an error message, category name, etc., is extracted from the English alias key. There may be other cases where this translation table may be useful. ]] local is_Latn = 'A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143\225\184\128-\225\187\191'; local special_case_translation = { author = {'author', 'ughtar'}, editor = 'editor', name_list_params = '$1-name-list parameters', -- $1 is 'author' or 'editor'; used with err_redundant_parameters ['AuthorList'] = 'authors list', -- used to assemble maintenance category names ['ContributorList'] = 'contributors list', -- translation of these names plus translation of the base maintenance category names in maint_cats{} table below ['EditorList'] = 'editors list', -- must match the names of the actual categories ['InterviewerList'] = 'interviewers list', -- this group or translations used by name_has_ed_markup() and name_has_mult_names() ['TranslatorList'] = 'translators list', -- Lua patterns to match pseudo-titles used by InternetArchiveBot and others as placeholder for unknown |title= value ['archived_copy'] = { -- used with CS1 maint: Archive[d] copy as title ['en'] = '^archived?%s+copy$', -- for English; translators: keep this because templates imported from en.wiki ['local'] = nil, -- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language }, -- Lua patterns to match generic titles; usually created by bots or reference filling tools -- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language -- generic titles and patterns in this table should be lowercase only -- leave ['local'] nil except when there is a matching generic title in your language -- boolean 'true' for plain-text searches; 'false' for pattern searches ['generic_titles'] = { ['accept'] = { }, ['reject'] = { {['en'] = {'^wayback%s+machine$', false}, ['local'] = nil}, {['en'] = {'are you a robot', true}, ['local'] = nil}, {['en'] = {'hugedomains', true}, ['local'] = nil}, {['en'] = {'^[%(%[{<]?no +title[>}%]%)]?$', false}, ['local'] = nil}, {['en'] = {'page not found', true}, ['local'] = nil}, {['en'] = {'subscribe to read', true}, ['local'] = nil}, {['en'] = {'^[%(%[{<]?unknown[>}%]%)]?$', false}, ['local'] = nil}, {['en'] = {'website is for sale', true}, ['local'] = nil}, {['en'] = {'^404', false}, ['local'] = nil}, {['en'] = {'error[ %-]404', false}, ['local'] = nil}, {['en'] = {'internet archive wayback machine', true}, ['local'] = nil}, {['en'] = {'log into facebook', true}, ['local'] = nil}, {['en'] = {'login • instagram', true}, ['local'] = nil}, {['en'] = {'redirecting...', true}, ['local'] = nil}, {['en'] = {'usurped title', true}, ['local'] = nil}, -- added by a GreenC bot {['en'] = {'wayback machine', true}, ['local'] = nil}, {['en'] = {'webcite query result', true}, ['local'] = nil}, {['en'] = {'wikiwix\'s cache', true}, ['local'] = nil}, {['en'] = {'bot verification', true}, ['local'] = nil}, } }, -- boolean 'true' for plain-text searches, search string must be lowercase only -- boolean 'false' for pattern searches -- leave ['local'] nil except when there is a matching generic name in your language ['generic_names'] = { ['accept'] = { {['en'] = {'%[%[[^|]*%(author%) *|[^%]]*%]%]', false}, ['local'] = nil}, }, ['reject'] = { {['en'] = {'about us', true}, ['local'] = nil}, {['en'] = {'%f[%a][Aa]dvisor%f[%A]', false}, ['local'] = nil}, {['en'] = {'allmusic', true}, ['local'] = nil}, {['en'] = {'%f[%a][Aa]uthor%f[%A]', false}, ['local'] = nil}, {['en'] = {'^[Bb]ureau$', false}, ['local'] = nil}, {['en'] = {'business', true}, ['local'] = nil}, {['en'] = {'cnn', true}, ['local'] = nil}, {['en'] = {'collaborator', true}, ['local'] = nil}, {['en'] = {'^[Cc]ompany$', false}, ['local'] = nil}, {['en'] = {'contributor', true}, ['local'] = nil}, {['en'] = {'contact us', true}, ['local'] = nil}, {['en'] = {'correspondent', true}, ['local'] = nil}, {['en'] = {'^[Dd]esk$', false}, ['local'] = nil}, {['en'] = {'directory', true}, ['local'] = nil}, {['en'] = {'%f[%(%[][%(%[]%s*eds?%.?%s*[%)%]]?$', false}, ['local'] = nil}, {['en'] = {'[,%.%s]%f[e]eds?%.?$', false}, ['local'] = nil}, {['en'] = {'^eds?[%.,;]', false}, ['local'] = nil}, {['en'] = {'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', false}, ['local'] = nil}, {['en'] = {'%f[%a][Ee]dited%f[%A]', false}, ['local'] = nil}, {['en'] = {'%f[%a][Ee]ditors?%f[%A]', false}, ['local'] = nil}, {['en'] = {'%f[%a][Ee]mail%f[%A]', false}, ['local'] = nil}, {['en'] = {'facebook', true}, ['local'] = nil}, {['en'] = {'google', true}, ['local'] = nil}, {['en'] = {'^[Gg]roup$', false}, ['local'] = nil}, {['en'] = {'home page', true}, ['local'] = nil}, {['en'] = {'^[Ii]nc%.?$', false}, ['local'] = nil}, {['en'] = {'instagram', true}, ['local'] = nil}, {['en'] = {'interviewer', true}, ['local'] = nil}, {['en'] = {'^[Ll]imited$', false}, ['local'] = nil}, {['en'] = {'linkedIn', true}, ['local'] = nil}, {['en'] = {'^[Nn]ews$', false}, ['local'] = nil}, {['en'] = {'[Nn]ews[ %-]?[Rr]oom', false}, ['local'] = nil}, {['en'] = {'pinterest', true}, ['local'] = nil}, {['en'] = {'policy', true}, ['local'] = nil}, {['en'] = {'privacy', true}, ['local'] = nil}, {['en'] = {'reuters', true}, ['local'] = nil}, {['en'] = {'translator', true}, ['local'] = nil}, {['en'] = {'tumblr', true}, ['local'] = nil}, {['en'] = {'twitter', true}, ['local'] = nil}, {['en'] = {'site name', true}, ['local'] = nil}, {['en'] = {'statement', true}, ['local'] = nil}, {['en'] = {'submitted', true}, ['local'] = nil}, {['en'] = {'super.?user', false}, ['local'] = nil}, {['en'] = {'%f['..is_Latn..'][Uu]ser%f[^'..is_Latn..']', false}, ['local'] = nil}, {['en'] = {'updated', true}, ['local'] = nil}, {['en'] = {'verfasser', true}, ['local'] = nil}, } } } --[[--------------------------< D A T E _ N A M E S >---------------------------------------------------------- This table of tables lists local language date names and fallback English date names. The code in Date_validation will look first in the local table for valid date names. If date names are not found in the local table, the code will look in the English table. Because citations can be copied to the local wiki from en.wiki, the English is required when the date-name translation function date_name_xlate() is used. In these tables, season numbering is defined by Extended Date/Time Format (EDTF) Specification (https://www.loc.gov/standards/datetime/) which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard defines various divisions using numbers 21-41. CS1|2 only supports generic seasons. EDTF does support the distinction between north and south hemisphere seasons but CS1|2 has no way to make that distinction. 33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each) The standard does not address 'named' dates so, for the purposes of CS1|2, Easter and Christmas are defined here as 98 and 99, which should be out of the ISO 8601 (EDTF) range of uses for a while. local_date_names_from_mediawiki is a boolean. When set to: true – module will fetch local month names from MediaWiki for both date_names['local']['long'] and date_names['local']['short']; this will unconditionally overwrite manual translations false – module will *not* fetch local month names from MediaWiki Caveat lector: There is no guarantee that MediaWiki will provide short month names. At your wiki you can test the results of the MediaWiki fetch in the debug console with this command (the result is alpha sorted): =mw.dumpObject (p.date_names['local']) While the module can fetch month names from MediaWiki, it cannot fetch the quarter, season, and named date names from MediaWiki. Those must be translated manually. ]] local local_date_names_from_mediawiki = true; -- when false, manual translation required for date_names['local']['long'] and date_names['local']['short']; overwrites manual translations -- when true, module fetches long and short month names from MediaWiki local date_names = { ['en'] = { -- English ['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12}, ['short'] = {['Jan'] = 1, ['Feb'] = 2, ['Mar'] = 3, ['Apr'] = 4, ['May'] = 5, ['Jun'] = 6, ['Jul'] = 7, ['Aug'] = 8, ['Sep'] = 9, ['Oct'] = 10, ['Nov'] = 11, ['Dec'] = 12}, ['quarter'] = {['First Quarter'] = 33, ['Second Quarter'] = 34, ['Third Quarter'] = 35, ['Fourth Quarter'] = 36}, ['season'] = {['Winter'] = 24, ['Spring'] = 21, ['Summer'] = 22, ['Fall'] = 23, ['Autumn'] = 23}, ['named'] = {['Easter'] = 98, ['Christmas'] = 99}, }, -- when local_date_names_from_mediawiki = false ['local'] = { -- replace these English date names with the local language equivalents ['long'] = {['Jerrey Geuree'] = 1, ['Toshiaght Arree'] = 2, ['Mayrnt'] = 3, ['Averil'] = 4, ['Boaldyn'] = 5, ['Mean Souree'] = 6, ['Jerrey Souree'] = 7, ['Luanistyn'] = 8, ['Mean Fouyir'] = 9, ['Jerrey Fouyir'] = 10, ['Mee Houney'] = 11, ['Mee ny Nollick'] = 12}, ['short'] = {['J Geu'] = 1, ['T Arr'] = 2, ['Mayr'] = 3, ['Ave'] = 4, ['Boal'] = 5, ['M Sou'] = 6, ['J Sou'] = 7, ['Luan'] = 8, ['M Fou'] = 9, ['J Fou'] = 10, ['M Hou'] = 11, ['Nol'] = 12}, ['quarter'] = {['Y Chied Cherroo'] = 33, ['Y Nah Cherroo'] = 34, ['Y Trass Kerroo'] = 35, ['Y Kiarroo Kerroo'] = 36}, ['season'] = {['Geurey'] = 24, ['Arragh'] = 21, ['Sourey'] = 22, ['Fouyr'] = 23}, ['named'] = {['Caisht'] = 98, ['Nollick'] = 99}, }, ['inv_local_long'] = {}, -- used in date reformatting & translation; copy of date_names['local'].long where k/v are inverted: [1]='<local name>' etc. ['inv_local_short'] = {}, -- used in date reformatting & translation; copy of date_names['local'].short where k/v are inverted: [1]='<local name>' etc. ['inv_local_quarter'] = {}, -- used in date translation; copy of date_names['local'].quarter where k/v are inverted: [1]='<local name>' etc. ['inv_local_season'] = {}, -- used in date translation; copy of date_names['local'].season where k/v are inverted: [1]='<local name>' etc. ['inv_local_named'] = {}, -- used in date translation; copy of date_names['local'].named where k/v are inverted: [1]='<local name>' etc. ['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- used to convert local language digits to Western 0-9 ['xlate_digits'] = {}, } if local_date_names_from_mediawiki then -- if fetching local month names from MediaWiki is enabled local long_t = {}; local short_t = {}; for i=1, 12 do -- loop 12x and local name = lang_obj:formatDate('F', '2022-' .. i .. '-1'); -- get long month name for each i long_t[name] = i; -- save it name = lang_obj:formatDate('M', '2022-' .. i .. '-1'); -- get short month name for each i short_t[name] = i; -- save it end date_names['local']['long'] = long_t; -- write the long table – overwrites manual translation date_names['local']['short'] = short_t; -- write the short table – overwrites manual translation end -- create inverted date-name tables for reformatting and/or translation for _, invert_t in pairs {{'long', 'inv_local_long'}, {'short', 'inv_local_short'}, {'quarter', 'inv_local_quarter'}, {'season', 'inv_local_season'}, {'named', 'inv_local_named'}} do for name, i in pairs (date_names['local'][invert_t[1]]) do -- this table is ['name'] = i date_names[invert_t[2]][i] = name; -- invert to get [i] = 'name' for conversions from ymd end end if local_digits_from_mediawiki then -- if fetching local digits from MediaWiki is enabled local digits_t = {}; for i=0, 9 do -- loop 10x and digits_t [lang_obj:formatNum (i)] = tostring (i); -- format the loop indexer as local lang table index and assign loop indexer (a string) as the value end date_names['local_digits'] = digits_t; end for ld, ed in pairs (date_names.local_digits) do -- make a digit translation table for simple date translation from en to local language using local_digits table date_names.xlate_digits [ed] = ld; -- en digit becomes index with local digit as the value end local df_template_patterns = { -- table of redirects to {{Use dmy dates}} and {{Use mdy dates}} '{{ *[Uu]se +(dmy) +dates *[|}]', -- 1159k -- sorted by approximate transclusion count '{{ *[Uu]se +(mdy) +dates *[|}]', -- 212k '{{ *[Uu]se +(MDY) +dates *[|}]', -- 788 '{{ *[Uu]se +(DMY) +dates *[|}]', -- 343 '{{ *([Mm]dy) *[|}]', -- 176 '{{ *[Uu]se *(dmy) *[|}]', -- 156 + 18 '{{ *[Uu]se *(mdy) *[|}]', -- 149 + 11 '{{ *([Dd]my) *[|}]', -- 56 '{{ *[Uu]se +(MDY) *[|}]', -- 5 '{{ *([Dd]MY) *[|}]', -- 3 '{{ *[Uu]se(mdy)dates *[|}]', -- 1 '{{ *[Uu]se +(DMY) *[|}]', -- 0 '{{ *([Mm]DY) *[|}]', -- 0 } local title_object = mw.title.getCurrentTitle(); local content; -- done this way so that unused templates appear in unused-template-reports; self-transcluded makes them look like they are used if 10 ~= title_object.namespace then -- all namespaces except Template content = title_object:getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625 end local function get_date_format () if not content then -- nil content when we're in template return nil; -- auto-formatting does not work in Template space so don't set global_df end for _, pattern in ipairs (df_template_patterns) do -- loop through the patterns looking for {{Use dmy dates}} or {{Use mdy dates}} or any of their redirects local start, _, match = content:find(pattern); -- match is the three letters indicating desired date format if match then local use_dates_template = content:match ('%b{}', start); -- get the whole template if use_dates_template:match ('| *cs1%-dates *= *[lsy][sy]?') then -- look for |cs1-dates=publication date length access-/archive-date length return match:lower() .. '-' .. use_dates_template:match ('| *cs1%-dates *= *([lsy][sy]?)'); else return match:lower() .. '-all'; -- no |cs1-dates= k/v pair; return value appropriate for use in |df= end end end end local global_df; -- TODO: add this to <global_cs1_config_t>? --[[-----------------< V O L U M E , I S S U E , P A G E S >------------------ These tables hold cite class values (from the template invocation) and identify those templates that support |volume=, |issue=, and |page(s)= parameters. Cite conference and cite map require further qualification which is handled in the main module. ]] local templates_using_volume = {'citation', 'audio-visual', 'book', 'conference', 'encyclopaedia', 'interview', 'journal', 'magazine', 'map', 'news', 'report', 'techreport', 'thesis'} local templates_using_issue = {'citation', 'conference', 'episode', 'interview', 'journal', 'magazine', 'map', 'news', 'podcast'} local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'} --[[ These tables control when it is appropriate for {{citation}} to render |volume= and/or |issue=. The parameter names in the tables constrain {{citation}} so that its renderings match the renderings of the equivalent cs1 templates. For example, {{cite web}} does not support |volume= so the equivalent {{citation |website=...}} must not support |volume=. ]] local citation_no_volume_t = { -- {{citation}} does not render |volume= when these parameters are used 'website', 'mailinglist', 'script-website', } local citation_issue_t = { -- {{citation}} may render |issue= when these parameters are used 'journal', 'magazine', 'newspaper', 'periodical', 'work', 'script-journal', 'script-magazine', 'script-newspaper', 'script-periodical', 'script-work', } --[[ Patterns for finding extra text in |volume=, |issue=, |page=, |pages= ]] local vol_iss_pg_patterns = { good_ppattern = '^P[^%.PpGg]', -- OK to begin with uppercase P: P7 (page 7 of section P), but not p123 (page 123); TODO: this allows 'Pages' which it should not bad_ppatterns = { -- patterns for |page= and |pages= '^[Pp][PpGg]?%.?[ %d]', '^[Pp][Pp]?%.&nbsp;', -- from {{p.}} and {{pp.}} templates '^[Pp]ages?', '^[Pp]gs.?', }, vi_patterns_t = { -- combined to catch volume-like text in |issue= and issue-like text in |volume= '^volumes?', -- volume-like text '^vols?[%.:=]?', '^issues?', --issue-like text '^iss[%.:=]?', '^numbers?', '^nos?%A', -- don't match 'november' or 'nostradamus' '^nr[%.:=]?', '^n[%.:= ]', -- might be a valid issue without separator (space char is sep char here) '^n°', -- 'n' with degree sign (U+00B0) '^№', -- precomposed unicode numero character (U+2116) }, } --[[--------------------------< K E Y W O R D S >------------------------------- These tables hold keywords for those parameters that have defined sets of acceptable keywords. ]] --[[-------------------< K E Y W O R D S T A B L E >-------------------------- this is a list of keywords; each key in the list is associated with a table of synonymous keywords possibly from different languages. for I18N: add local-language keywords to value table; do not change the key. For example, adding the German keyword 'ja': ['affirmative'] = {'yes', 'true', 'y', 'ja'}, Because CS1|2 templates from en.wiki articles are often copied to other local wikis, it is recommended that the English keywords remain in these tables. ]] local keywords = { ['amp'] = {'&', 'amp', 'ampersand'}, -- |name-list-style= ['and'] = {'and', 'serial'}, -- |name-list-style= ['affirmative'] = {'yes', 'true', 'y'}, -- |no-tracking=, |no-pp= -- Used by InternetArchiveBot ['afterword'] = {'afterword'}, -- |contribution= ['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Used by InternetArchiveBot ['cs1'] = {'cs1'}, -- |mode= ['cs2'] = {'cs2'}, -- |mode= ['dead'] = {'dead', 'deviated'}, -- |url-status= -- Used by InternetArchiveBot ['dmy'] = {'dmy'}, -- |df= ['dmy-all'] = {'dmy-all'}, -- |df= ['foreword'] = {'foreword'}, -- |contribution= ['free'] = {'free'}, -- |<id>-access= -- Used by InternetArchiveBot ['harv'] = {'harv'}, -- |ref=; this no longer supported; is_valid_parameter_value() called with <invert> = true ['introduction'] = {'introduction'}, -- |contribution= ['limited'] = {'limited'}, -- |url-access= -- Used by InternetArchiveBot ['live'] = {'live'}, -- |url-status= -- Used by InternetArchiveBot ['mdy'] = {'mdy'}, -- |df= ['mdy-all'] = {'mdy-all'}, -- |df= ['none'] = {'none'}, -- |postscript=, |ref=, |title=, |type= -- Used by InternetArchiveBot ['off'] = {'off'}, -- |title= (potentially also: |title-link=, |postscript=, |ref=, |type=) ['preface'] = {'preface'}, -- |contribution= ['registration'] = {'registration'}, -- |url-access= -- Used by InternetArchiveBot ['subscription'] = {'subscription'}, -- |url-access= -- Used by InternetArchiveBot ['unfit'] = {'unfit'}, -- |url-status= -- Used by InternetArchiveBot ['usurped'] = {'usurped'}, -- |url-status= -- Used by InternetArchiveBot ['vanc'] = {'vanc'}, -- |name-list-style= ['ymd'] = {'ymd'}, -- |df= ['ymd-all'] = {'ymd-all'}, -- |df= -- ['yMd'] = {'yMd'}, -- |df=; not supported at en.wiki -- ['yMd-all'] = {'yMd-all'}, -- |df=; not supported at en.wiki } --[[------------------------< X L A T E _ K E Y W O R D S >--------------------- this function builds a list, keywords_xlate{}, of the keywords found in keywords{} where the values from keywords{} become the keys in keywords_xlate{} and the keys from keywords{} become the values in keywords_xlate{}: ['affirmative'] = {'yes', 'true', 'y'}, -- in keywords{} becomes ['yes'] = 'affirmative', -- in keywords_xlate{} ['true'] = 'affirmative', ['y'] = 'affirmative', the purpose of this function is to act as a translator between a non-English keyword and its English equivalent that may be used in other modules of this suite ]] local function xlate_keywords () local out_table = {}; -- output goes here for k, keywords_t in pairs (keywords) do -- spin through the keywords table for _, keyword in ipairs (keywords_t) do -- for each keyword out_table[keyword] = k; -- create an entry in the output table where keyword is the key end end return out_table; end local keywords_xlate = xlate_keywords (); -- the list of translated keywords --[[----------------< M A K E _ K E Y W O R D S _ L I S T >--------------------- this function assembles, for parameter-value validation, the list of keywords appropriate to that parameter. keywords_lists{}, is a table of tables from keywords{} ]] local function make_keywords_list (keywords_lists) local out_table = {}; -- output goes here for _, keyword_list in ipairs (keywords_lists) do -- spin through keywords_lists{} and get a table of keywords for _, keyword in ipairs (keyword_list) do -- spin through keyword_list{} and add each keyword, ... table.insert (out_table, keyword); -- ... as plain text, to the output list end end return out_table; end --[[----------------< K E Y W O R D S _ L I S T S >----------------------------- this is a list of lists of valid keywords for the various parameters in [key]. Generally the keys in this table are the canonical en.wiki parameter names though some are contrived because of use in multiple differently named parameters: ['yes_true_y'], ['id-access']. The function make_keywords_list() extracts the individual keywords from the appropriate list in keywords{}. The lists in this table are used to validate the keyword assignment for the parameters named in this table's keys. ]] local keywords_lists = { ['yes_true_y'] = make_keywords_list ({keywords.affirmative}), ['contribution'] = make_keywords_list ({keywords.afterword, keywords.foreword, keywords.introduction, keywords.preface}), ['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all']}), -- ['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all'], keywords.yMd, keywords['yMd-all']}), -- not supported at en.wiki ['mode'] = make_keywords_list ({keywords.cs1, keywords.cs2}), ['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}), ['ref'] = make_keywords_list ({keywords.harv}), -- inverted check; |ref=harv no longer supported ['url-access'] = make_keywords_list ({keywords.subscription, keywords.limited, keywords.registration}), ['url-status'] = make_keywords_list ({keywords.dead, keywords.live, keywords.unfit, keywords.usurped, keywords['bot: unknown']}), ['id-access'] = make_keywords_list ({keywords.free}), } --[[--------------------------< C S 1 _ C O N F I G _ G E T >-------------------------------------------------- fetch and validate values from {{cs1 config}} template to fill <global_cs1_config_t> no error messages; when errors are detected, the parameter value from {{cs1 config}} is blanked. Supports all parameters and aliases associated with the metaparameters: DisplayAuthors, DisplayContributors, DisplayEditors, DisplayInterviewers, DisplayTranslators, NameListStyle, and Mode. The DisplayWhatever metaparameters accept numeric values only (|display-authors=etal and the like is not supported). ]] local global_cs1_config_t = {}; -- TODO: add value returned from get_date_format() to this table? local function get_cs1_config () if not content then -- nil content when we're in template return nil; -- auto-formatting does not work in Template space so don't set global_df end local start = content:find('{{ *[Cc][Ss]1 config *[|}]'); -- <start> is offset into <content> when {{cs1 config}} found; nil else if start then local cs1_config_template = content:match ('%b{}', start); -- get the whole template if not cs1_config_template then return nil; end local params_t = mw.text.split (cs1_config_template:gsub ('^{{%s*', ''):gsub ('%s*}}$', ''), '%s*|%s*'); -- remove '{{' and '}}'; make a sequence of parameter/value pairs (split on the pipe) table.remove (params_t, 1); -- remove the template name because it isn't a parameter/value pair local config_meta_params_t = {'DisplayAuthors', 'DisplayContributors', 'DisplayEditors', 'DisplayInterviewers', 'DisplayTranslators', 'NameListStyle', 'Mode'}; local meta_param_map_t = {}; -- list of accepted parameter names usable in {{cs1 config}} goes here for _, meta_param in ipairs (config_meta_params_t) do -- for i18n using <config_meta_params_t>, map template parameter names to their metaparameter equivalents if 'table' == type (aliases[meta_param]) then -- if <meta_param> is a sequence, for _, param in ipairs (aliases[meta_param]) do -- extract its contents meta_param_map_t[param] = meta_param; -- and add to <meta_param_map_t> end else meta_param_map_t[aliases[meta_param]] = meta_param; -- not a sequence so just add the parameter to <meta_param_map_t> end end local keywords_t = {}; -- map valid keywords to their associate metaparameter; reverse form of <keyword_lists[key] for these metaparameters for _, metaparam_t in ipairs ({{'NameListStyle', 'name-list-style'}, {'Mode', 'mode'}}) do -- only these metaparameter / keywords_lists key pairs for _, keyword in ipairs (keywords_lists[metaparam_t[2]]) do -- spin through the list of keywords keywords_t[keyword] = metaparam_t[1]; -- add [keyword] = metaparameter to the map end end for _, param in ipairs (params_t) do -- spin through the {{cs1 config}} parameters and fill <global_cs1_config_t> local k, v = param:match ('([^=]-)%s*=%s*(.+)'); -- <k> is the parameter name; <v> is parameter's assigned value if k then if k:find ('^display') then -- if <k> is one of the |display-<namelist>= parameters if v:match ('%d+') then -- the assigned value must be digits; doesn't accept 'etal' global_cs1_config_t[meta_param_map_t[k]]=v; -- add the display param and its value to globals table end else if keywords_t[v] == meta_param_map_t[k] then -- keywords_t[v] returns nil or the metaparam name; these must be the same global_cs1_config_t[meta_param_map_t[k]]=v; -- add the parameter and its value to globals table end end end end end end get_cs1_config (); -- fill <global_cs1_config_t> --[[---------------------< S T R I P M A R K E R S >---------------------------- Common pattern definition location for stripmarkers so that we don't have to go hunting for them if (when) MediaWiki changes their form. ]] local stripmarkers = { ['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- capture returns name of stripmarker ['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers used in coins_cleanup() and coins_replace_math_stripmarker() } --[[------------< I N V I S I B L E _ C H A R A C T E R S >--------------------- This table holds non-printing or invisible characters indexed either by name or by Unicode group. Values are decimal representations of UTF-8 codes. The table is organized as a table of tables because the Lua pairs keyword returns table data in an arbitrary order. Here, we want to process the table from top to bottom because the entries at the top of the table are also found in the ranges specified by the entries at the bottom of the table. Also here is a pattern that recognizes stripmarkers that begin and end with the delete characters. The nowiki stripmarker is not an error but some others are because the parameter values that include them become part of the template's metadata before stripmarker replacement. ]] local invisible_defs = { del = '\127', -- used to distinguish between stripmarker and del char zwj = '\226\128\141', -- used with capture because zwj may be allowed } local invisible_chars = { {'replacement', '\239\191\189'}, -- U+FFFD, EF BF BD {'zero width joiner', '('.. invisible_defs.zwj .. ')'}, -- U+200D, E2 80 8D; capture because zwj may be allowed {'zero width space', '\226\128\139'}, -- U+200B, E2 80 8B {'hair space', '\226\128\138'}, -- U+200A, E2 80 8A {'soft hyphen', '\194\173'}, -- U+00AD, C2 AD {'horizontal tab', '\009'}, -- U+0009 (HT), 09 {'line feed', '\010'}, -- U+000A (LF), 0A {'no-break space', '\194\160'}, -- U+00A0 (NBSP), C2 A0 {'carriage return', '\013'}, -- U+000D (CR), 0D {'stripmarker', stripmarkers.any}, -- stripmarker; may or may not be an error; capture returns the stripmaker type {'delete', '('.. invisible_defs.del .. ')'}, -- U+007F (DEL), 7F; must be done after stripmarker test; capture to distinguish isolated del chars not part of stripmarker {'C0 control', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D)) {'C1 control', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F -- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF -- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF -- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD -- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD } --[[ Indic script makes use of zero width joiner as a character modifier so zwj characters must be left in. This pattern covers all of the unicode characters for these languages: Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf Bengali 0980–09FF – https://unicode.org/charts/PDF/U0980.pdf Gurmukhi 0A00–0A7F – https://unicode.org/charts/PDF/U0A00.pdf Gujarati 0A80–0AFF – https://unicode.org/charts/PDF/U0A80.pdf Oriya 0B00–0B7F – https://unicode.org/charts/PDF/U0B00.pdf Tamil 0B80–0BFF – https://unicode.org/charts/PDF/U0B80.pdf Telugu 0C00–0C7F – https://unicode.org/charts/PDF/U0C00.pdf Kannada 0C80–0CFF – https://unicode.org/charts/PDF/U0C80.pdf Malayalam 0D00–0D7F – https://unicode.org/charts/PDF/U0D00.pdf plus the not-necessarily Indic scripts for Sinhala and Burmese: Sinhala 0D80-0DFF - https://unicode.org/charts/PDF/U0D80.pdf Myanmar 1000-109F - https://unicode.org/charts/PDF/U1000.pdf Myanmar extended A AA60-AA7F - https://unicode.org/charts/PDF/UAA60.pdf Myanmar extended B A9E0-A9FF - https://unicode.org/charts/PDF/UA9E0.pdf the pattern is used by has_invisible_chars() and coins_cleanup() ]] local indic_script = '[\224\164\128-\224\181\191\224\163\160-\224\183\191\225\128\128-\225\130\159\234\167\160-\234\167\191\234\169\160-\234\169\191]'; -- list of emoji that use a zwj character (U+200D) to combine with another emoji -- from: https://unicode.org/Public/emoji/17.0/emoji-zwj-sequences.txt; version: 17.0; 2025-01-08 -- table created by: [[:en:Module:Make emoji zwj table]] local emoji_t = { -- indexes are decimal forms of the hex values in U+xxxx [8596] = true, -- U+2194 ↔ left right arrow [8597] = true, -- U+2195 ↕ up down arrow [9760] = true, -- U+2620 ☠ skull and crossbones [9792] = true, -- U+2640 ♀ female sign [9794] = true, -- U+2642 ♂ male sign [9877] = true, -- U+2695 ⚕ staff of aesculapius [9878] = true, -- U+2696 ⚖ scales [9895] = true, -- U+26A7 ⚧ male with stroke and male and female sign [9992] = true, -- U+2708 ✈ airplane [10052] = true, -- U+2744 ❄ snowflake [10084] = true, -- U+2764 ❤ heavy black heart [10145] = true, -- U+27A1 ➡ black rightwards arrow [11035] = true, -- U+2B1B ⬛ black large square [127752] = true, -- U+1F308 🌈 rainbow [127787] = true, -- U+1F32B 🌫 fog [127806] = true, -- U+1F33E 🌾 ear of rice [127859] = true, -- U+1F373 🍳 cooking [127868] = true, -- U+1F37C 🍼 baby bottle [127876] = true, -- U+1F384 🎄 christmas tree [127891] = true, -- U+1F393 🎓 graduation cap [127908] = true, -- U+1F3A4 🎤 microphone [127912] = true, -- U+1F3A8 🎨 artist palette [127979] = true, -- U+1F3EB 🏫 school [127981] = true, -- U+1F3ED 🏭 factory [128048] = true, -- U+1F430 🐰 rabbit face [128102] = true, -- U+1F466 👦 boy [128103] = true, -- U+1F467 👧 girl [128104] = true, -- U+1F468 👨 man [128105] = true, -- U+1F469 👩 woman [128139] = true, -- U+1F48B 💋 kiss mark [128165] = true, -- U+1F4A5 💥 collision symbol [128168] = true, -- U+1F4A8 💨 dash symbol [128171] = true, -- U+1F4AB 💫 dizzy symbol [128187] = true, -- U+1F4BB 💻 personal computer [128188] = true, -- U+1F4BC 💼 brief case [128293] = true, -- U+1F525 🔥 fire [128295] = true, -- U+1F527 🔧 wrench [128300] = true, -- U+1F52C 🔬 microscope [128488] = true, -- U+1F5E8 🗨 left speech bubble [128640] = true, -- U+1F680 🚀 rocket [128658] = true, -- U+1F692 🚒 fire engine [129001] = true, -- U+1F7E9 🟩 large green square [129003] = true, -- U+1F7EB 🟫 large brown square [129309] = true, -- U+1F91D 🤝 handshake [129455] = true, -- U+1F9AF 🦯 probing cane [129456] = true, -- U+1F9B0 🦰 emoji component red hair [129457] = true, -- U+1F9B1 🦱 emoji component curly hair [129458] = true, -- U+1F9B2 🦲 emoji component bald [129459] = true, -- U+1F9B3 🦳 emoji component white hair [129466] = true, -- U+1F9BA 🦺 safety vest [129468] = true, -- U+1F9BC 🦼 motorized wheelchair [129469] = true, -- U+1F9BD 🦽 manual wheelchair [129489] = true, -- U+1F9D1 🧑 adult [129490] = true, -- U+1F9D2 🧒 child [129648] = true, -- U+1FA70 🩰 ballet shoes [129657] = true, -- U+1FA79 🩹 adhesive bandage [129775] = true, -- U+1FAEF 🫯 fight cloud [129778] = true, -- U+1FAF2 🫲 leftwards hand } --[[----------------------< L A N G U A G E S U P P O R T >------------------- These tables and constants support various language-specific functionality. ]] --local this_wiki_code = mw.getContentLanguage():getCode(); -- get this wiki's language code local this_wiki_code = lang_obj:getCode(); -- get this wiki's language code if string.match (mw.site.server, 'wikidata') then this_wiki_code = mw.getCurrentFrame():callParserFunction('int', {'lang'}); -- on Wikidata so use interface language setting instead end local mw_languages_by_tag_t = mw.language.fetchLanguageNames (this_wiki_code, 'all'); -- get a table of language tag/name pairs known to Wikimedia; used for interwiki tests local mw_languages_by_name_t = {}; for k, v in pairs (mw_languages_by_tag_t) do -- build a 'reversed' table name/tag language pairs know to MediaWiki; used for |language= v = mw.ustring.lower (v); -- lowercase for tag fetch; get name's proper case from mw_languages_by_tag_t[<tag>] if mw_languages_by_name_t[v] then -- when name already in the table if 2 == #k or 3 == #k then -- if tag does not have subtags mw_languages_by_name_t[v] = k; -- prefer the shortest tag for this name end else -- here when name not in the table mw_languages_by_name_t[v] = k; -- so add name and matching tag end end local inter_wiki_map = {}; -- map of interwiki prefixes that are language-code prefixes for k, v in pairs (mw.site.interwikiMap ('local')) do -- spin through the base interwiki map (limited to local) if mw_languages_by_tag_t[v["prefix"]] then -- if the prefix matches a known language tag inter_wiki_map[v["prefix"]] = true; -- add it to our local map end end --[[--------------------< S C R I P T _ L A N G _ C O D E S >------------------- This table is used to hold ISO 639-1 two-character and ISO 639-3 three-character language codes that apply only to |script-title= and |script-chapter= ]] local script_lang_codes = { 'ab', 'am', 'ar', 'as', 'az', 'be', 'bg', 'bn', 'bo', 'bs', 'ce', 'chr', 'cu', 'dv', 'dz', 'el', 'fa', 'grc', 'gu', 'he', 'hi', 'hy', 'ja', 'ka', 'kaa', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lo', 'mk', 'ml', 'mn', 'mni', 'mr', 'my', 'ne', 'or', 'ota', 'pa', 'ps', 'ru', 'sd', 'si', 'sr', 'syc', 'ta', 'te', 'tg', 'th', 'ti', 'tkr', 'tt', 'ug', 'uk', 'ur', 'uz', 'yi', 'yue', 'zh', 'zgh' }; --[[---------------< L A N G U A G E R E M A P P I N G >---------------------- These tables hold language information that is different (correct) from MediaWiki's definitions For each ['<tag>'] = 'language name' in lang_code_remap{} there must be a matching ['language name'] = {'language name', '<tag>'} in lang_name_remap{} lang_tag_remap{}: key is always lowercase ISO 639-1, -2, -3 language tag or a valid lowercase IETF language tag value is properly spelled and capitalized language name associated with <tag> only one language name per <tag>; key/value pair must have matching entry in lang_name_remap{} lang_name_remap{}: key is always lowercase language name value is a table the holds correctly spelled and capitalized language name [1] and associated tag [2] (tag must match a tag key in lang_tag_remap{}) may have multiple keys referring to a common preferred name and tag; For example: ['kolsch'] and ['kölsch'] both refer to 'Kölsch' and 'ksh' ]] local lang_tag_remap = { -- used for |language= and |script-title= / |script-chapter= ['als'] = 'Tosk Albanian', -- MediaWiki returns Alemannisch ['bh'] = 'Bihari', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org ['bla'] = 'Blackfoot', -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name ['bn'] = 'Bengali', -- MediaWiki returns Bangla ['ca-valencia'] = 'Valencian', -- IETF variant of Catalan ['fkv'] = 'Kven', -- MediaWiki returns Kvensk ['gsw'] = 'Swiss German', ['ilo'] = 'Ilocano', -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name ['ksh'] = 'Kölsch', -- MediaWiki: Colognian; use IANA/ISO 639 preferred name ['ksh-x-colog'] = 'Colognian', -- override MediaWiki ksh; no IANA/ISO 639 code for Colognian; IETF private code created at Module:Lang/data ['mis-x-ripuar'] = 'Ripuarian', -- override MediaWiki ksh; no IANA/ISO 639 code for Ripuarian; IETF private code created at Module:Lang/data ['nan-tw'] = 'Taiwanese Hokkien', -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese and support en.wiki preferred name ['sr-ec'] = 'Serbian (Cyrillic script)', -- MediaWiki returns српски (ћирилица) ['sr-el'] = 'Serbian (Latin script)', -- MediaWiki returns srpski (latinica) -- gv.wiki: Manx-language names for |language=, replacing MediaWiki's English default ['en'] = 'Baarle', ['en-us'] = 'Baarle Americaanagh', ['en-gb'] = 'Baarle Ghoaldagh', ['en-in'] = 'Baarle Injinagh', ['hy'] = 'Armeainish', ['hr'] = 'Croitish', ['cs'] = 'Sheckish', ['da'] = 'Danvargish', ['nl'] = 'Ollanish', ['fo'] = 'Faaroish', ['fi'] = 'Finnlynnish', ['fr'] = 'Frangish', ['de'] = 'Germaanish', ['el'] = 'Greagish', ['he'] = 'Ewnish', ['hu'] = 'Ungaarish', ['is'] = 'Eeslynnish', ['ga'] = 'Yernish', ['it'] = 'Idaalish', ['ko'] = 'Koreeish', ['la'] = 'Ladjyn', ['no'] = 'Norlynnish', ['pl'] = 'Polynnish', ['pt'] = 'Portiugish', ['ro'] = 'Romaanish', ['ru'] = 'Rooshish', ['sk'] = 'Slovackish', ['es'] = 'Spaainish', ['sv'] = 'Soolynnish', ['ta'] = 'Tamilish', ['tn'] = 'Tswaanish', ['tr'] = 'Turkish', ['uk'] = 'Ookraanish', ['ca'] = 'Catalaanish', ['et'] = 'Estaanish', ['lt'] = 'Litaanish', ['lv'] = 'Latvish', ['be'] = 'Belarooshish', ['bg'] = 'Bulgeyrish', ['zh'] = 'Sheenish', ['ja'] = 'Shapaanish', ['ar'] = 'Arabish', ['gd'] = 'Gaelg ny h-Albey', ['cy'] = 'Bretnish', ['kw'] = 'Cornish', ['br'] = 'Britaanish', ['gv'] = 'Gaelg', ['kl'] = 'Greenlynnish', ['hi'] = 'Hindish', ['ur'] = 'Oordooish', ['yi'] = 'Ewdish', ['mt'] = 'Maltish', ['gl'] = 'Galeeshish', ['eu'] = 'Bascish', ['lb'] = 'Lucsemburgish', ['sl'] = 'Sloveanish', ['sr'] = 'Serbish', ['sq'] = 'Albaanish', ['mk'] = 'Massadoanish', ['ku'] = 'Kurdish', ['az'] = 'Asserbajaanish', ['kk'] = 'Kassaghish', ['mn'] = 'Mongoilish', ['wo'] = 'Wolofish', } local lang_name_remap = { -- used for |language=; names require proper capitalization; tags must be lowercase ['alemannic'] = {'Swiss German', 'gsw'}, -- ISO 639-2, -3 alternate for Swiss German; MediaWiki mediawiki returns Alemannic for gsw; en.wiki preferred name ['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org ['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap ['bengali'] = {'Bengali', 'bn'}, -- MediaWiki doesn't use exonym so here we provide correct language name and 639-1 code ['bhojpuri'] = {'Bhojpuri', 'bho'}, -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org ['bihari'] = {'Bihari', 'bh'}, -- MediaWiki replaces 'Bihari' with 'Bhojpuri' so 'Bihari' cannot be found ['blackfoot'] = {'Blackfoot', 'bla'}, -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name ['colognian'] = {'Colognian', 'ksh-x-colog'}, -- MediaWiki preferred name for ksh ['ilocano'] = {'Ilocano', 'ilo'}, -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name ['kolsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name (use non-diacritical o instead of umlaut ö) ['kölsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name ['kven'] = {'Kven', 'fkv'}, -- Unicode CLDR have decided not to support English language name for these two... ['kvensk'] = {'Kven', 'fkv'}, -- ...they say to refer to IANA registry for English names ['ripuarian'] = {'Ripuarian', 'mis-x-ripuar'}, -- group of dialects; no code in MediaWiki or in IANA/ISO 639 ['serbian (cyrillic script)'] = {'Serbian (Cyrillic script)', 'sr-cyrl'}, -- special case to get correct tag when |language=sr-ec ['serbian (latin script)'] = {'Serbian (Latin script)', 'sr-latn'}, -- special case to get correct tag when |language=sr-el ['swiss german'] = {'Swiss German', 'gsw'}, ['taiwanese hokkien'] = {'Taiwanese Hokkien', 'nan-tw'}, -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese ['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found ['valencian'] = {'Valencian', 'ca-valencia'}, -- variant of Catalan; categorizes as Valencian -- gv.wiki: Manx-language names for |language= ['baarle'] = {'Baarle', 'en'}, ['baarle americaanagh'] = {'Baarle Americaanagh', 'en-us'}, ['baarle ghoaldagh'] = {'Baarle Ghoaldagh', 'en-gb'}, ['baarle injinagh'] = {'Baarle Injinagh', 'en-in'}, ['armeainish'] = {'Armeainish', 'hy'}, ['croitish'] = {'Croitish', 'hr'}, ['sheckish'] = {'Sheckish', 'cs'}, ['danvargish'] = {'Danvargish', 'da'}, ['ollanish'] = {'Ollanish', 'nl'}, ['faaroish'] = {'Faaroish', 'fo'}, ['finnlynnish'] = {'Finnlynnish', 'fi'}, ['frangish'] = {'Frangish', 'fr'}, ['germaanish'] = {'Germaanish', 'de'}, ['greagish'] = {'Greagish', 'el'}, ['ewnish'] = {'Ewnish', 'he'}, ['ungaarish'] = {'Ungaarish', 'hu'}, ['eeslynnish'] = {'Eeslynnish', 'is'}, ['yernish'] = {'Yernish', 'ga'}, ['idaalish'] = {'Idaalish', 'it'}, ['koreeish'] = {'Koreeish', 'ko'}, ['ladjyn'] = {'Ladjyn', 'la'}, ['norlynnish'] = {'Norlynnish', 'no'}, ['polynnish'] = {'Polynnish', 'pl'}, ['portiugish'] = {'Portiugish', 'pt'}, ['romaanish'] = {'Romaanish', 'ro'}, ['rooshish'] = {'Rooshish', 'ru'}, ['slovackish'] = {'Slovackish', 'sk'}, ['spaainish'] = {'Spaainish', 'es'}, ['soolynnish'] = {'Soolynnish', 'sv'}, ['tamilish'] = {'Tamilish', 'ta'}, ['tswaanish'] = {'Tswaanish', 'tn'}, ['turkish'] = {'Turkish', 'tr'}, ['ookraanish'] = {'Ookraanish', 'uk'}, ['catalaanish'] = {'Catalaanish', 'ca'}, ['estaanish'] = {'Estaanish', 'et'}, ['litaanish'] = {'Litaanish', 'lt'}, ['latvish'] = {'Latvish', 'lv'}, ['belarooshish'] = {'Belarooshish', 'be'}, ['bulgeyrish'] = {'Bulgeyrish', 'bg'}, ['sheenish'] = {'Sheenish', 'zh'}, ['shapaanish'] = {'Shapaanish', 'ja'}, ['arabish'] = {'Arabish', 'ar'}, ['gaelg ny h-albey'] = {'Gaelg ny h-Albey', 'gd'}, ['bretnish'] = {'Bretnish', 'cy'}, ['cornish'] = {'Cornish', 'kw'}, ['britaanish'] = {'Britaanish', 'br'}, ['gaelg'] = {'Gaelg', 'gv'}, ['greenlynnish'] = {'Greenlynnish', 'kl'}, ['hindish'] = {'Hindish', 'hi'}, ['oordooish'] = {'Oordooish', 'ur'}, ['ewdish'] = {'Ewdish', 'yi'}, ['maltish'] = {'Maltish', 'mt'}, ['galeeshish'] = {'Galeeshish', 'gl'}, ['bascish'] = {'Bascish', 'eu'}, ['lucsemburgish'] = {'Lucsemburgish', 'lb'}, ['sloveanish'] = {'Sloveanish', 'sl'}, ['serbish'] = {'Serbish', 'sr'}, ['albaanish'] = {'Albaanish', 'sq'}, ['massadoanish'] = {'Massadoanish', 'mk'}, ['kurdish'] = {'Kurdish', 'ku'}, ['asserbajaanish'] = {'Asserbajaanish', 'az'}, ['kassaghish'] = {'Kassaghish', 'kk'}, ['mongoilish'] = {'Mongoilish', 'mn'}, ['wolofish'] = {'Wolofish', 'wo'}, } local lang_name_remap = { -- used for |language=; names require proper capitalization; tags must be lowercase ['alemannic'] = {'Swiss German', 'gsw'}, -- ISO 639-2, -3 alternate for Swiss German; MediaWiki mediawiki returns Alemannic for gsw; en.wiki preferred name ['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org ['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap ['bengali'] = {'Bengali', 'bn'}, -- MediaWiki doesn't use exonym so here we provide correct language name and 639-1 code ['bhojpuri'] = {'Bhojpuri', 'bho'}, -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org ['bihari'] = {'Bihari', 'bh'}, -- MediaWiki replaces 'Bihari' with 'Bhojpuri' so 'Bihari' cannot be found ['blackfoot'] = {'Blackfoot', 'bla'}, -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name ['colognian'] = {'Colognian', 'ksh-x-colog'}, -- MediaWiki preferred name for ksh ['ilocano'] = {'Ilocano', 'ilo'}, -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name ['kolsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name (use non-diacritical o instead of umlaut ö) ['kölsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name ['kven'] = {'Kven', 'fkv'}, -- Unicode CLDR have decided not to support English language name for these two... ['kvensk'] = {'Kven', 'fkv'}, -- ...they say to refer to IANA registry for English names ['ripuarian'] = {'Ripuarian', 'mis-x-ripuar'}, -- group of dialects; no code in MediaWiki or in IANA/ISO 639 ['serbian (cyrillic script)'] = {'Serbian (Cyrillic script)', 'sr-cyrl'}, -- special case to get correct tag when |language=sr-ec ['serbian (latin script)'] = {'Serbian (Latin script)', 'sr-latn'}, -- special case to get correct tag when |language=sr-el ['swiss german'] = {'Swiss German', 'gsw'}, ['taiwanese hokkien'] = {'Taiwanese Hokkien', 'nan-tw'}, -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese ['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found ['valencian'] = {'Valencian', 'ca-valencia'}, -- variant of Catalan; categorizes as Valencian -- gv.wiki: Manx-language names for |language= ['baarle'] = {'Baarle', 'en'}, ['baarle americaanagh'] = {'Baarle Americaanagh', 'en-us'}, ['baarle ghoaldagh'] = {'Baarle Ghoaldagh', 'en-gb'}, ['baarle injinagh'] = {'Baarle Injinagh', 'en-in'}, ['armeainish'] = {'Armeainish', 'hy'}, ['croitish'] = {'Croitish', 'hr'}, ['sheckish'] = {'Sheckish', 'cs'}, ['danvargish'] = {'Danvargish', 'da'}, ['ollanish'] = {'Ollanish', 'nl'}, ['faaroish'] = {'Faaroish', 'fo'}, ['finnlynnish'] = {'Finnlynnish', 'fi'}, ['frangish'] = {'Frangish', 'fr'}, ['germaanish'] = {'Germaanish', 'de'}, ['greagish'] = {'Greagish', 'el'}, ['ewnish'] = {'Ewnish', 'he'}, ['ungaarish'] = {'Ungaarish', 'hu'}, ['eeslynnish'] = {'Eeslynnish', 'is'}, ['yernish'] = {'Yernish', 'ga'}, ['idaalish'] = {'Idaalish', 'it'}, ['koreeish'] = {'Koreeish', 'ko'}, ['ladjyn'] = {'Ladjyn', 'la'}, ['norlynnish'] = {'Norlynnish', 'no'}, ['polynnish'] = {'Polynnish', 'pl'}, ['portiugish'] = {'Portiugish', 'pt'}, ['romaanish'] = {'Romaanish', 'ro'}, ['rooshish'] = {'Rooshish', 'ru'}, ['slovackish'] = {'Slovackish', 'sk'}, ['spaainish'] = {'Spaainish', 'es'}, ['soolynnish'] = {'Soolynnish', 'sv'}, ['tamilish'] = {'Tamilish', 'ta'}, ['tswaanish'] = {'Tswaanish', 'tn'}, ['turkish'] = {'Turkish', 'tr'}, ['ookraanish'] = {'Ookraanish', 'uk'}, ['catalaanish'] = {'Catalaanish', 'ca'}, ['estaanish'] = {'Estaanish', 'et'}, ['litaanish'] = {'Litaanish', 'lt'}, ['latvish'] = {'Latvish', 'lv'}, ['belarooshish'] = {'Belarooshish', 'be'}, ['bulgeyrish'] = {'Bulgeyrish', 'bg'}, ['sheenish'] = {'Sheenish', 'zh'}, ['shapaanish'] = {'Shapaanish', 'ja'}, ['arabish'] = {'Arabish', 'ar'}, ['gaelg ny h-albey'] = {'Gaelg ny h-Albey', 'gd'}, ['bretnish'] = {'Bretnish', 'cy'}, ['cornish'] = {'Cornish', 'kw'}, ['britaanish'] = {'Britaanish', 'br'}, ['gaelg'] = {'Gaelg', 'gv'}, ['greenlynnish'] = {'Greenlynnish', 'kl'}, ['hindish'] = {'Hindish', 'hi'}, ['oordooish'] = {'Oordooish', 'ur'}, ['ewdish'] = {'Ewdish', 'yi'}, ['maltish'] = {'Maltish', 'mt'}, ['galeeshish'] = {'Galeeshish', 'gl'}, ['bascish'] = {'Bascish', 'eu'}, ['lucsemburgish'] = {'Lucsemburgish', 'lb'}, ['sloveanish'] = {'Sloveanish', 'sl'}, ['serbish'] = {'Serbish', 'sr'}, ['albaanish'] = {'Albaanish', 'sq'}, ['massadoanish'] = {'Massadoanish', 'mk'}, ['kurdish'] = {'Kurdish', 'ku'}, ['asserbajaanish'] = {'Asserbajaanish', 'az'}, ['kassaghish'] = {'Kassaghish', 'kk'}, ['mongoilish'] = {'Mongoilish', 'mn'}, ['wolofish'] = {'Wolofish', 'wo'}, } --[[---------------< P R O P E R T I E S _ C A T E G O R I E S >---------------- Properties categories. These are used for investigating qualities of citations. ]] local prop_cats = { ['foreign-lang-source'] = 'Geillyn CS1 ayns $1 ($2)', -- |language= categories; $1 is foreign-language name, $2 is ISO639-1 code ['foreign-lang-source-2'] = 'Geillyn CS1 ayns çhengaghyn joarree (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code used as a sort key ['interproj-linked-name'] = 'CS1 interproject-linked names|$1', -- any author, editor, etc that has an interproject link; $1 is interproject tag used as a sort key ['interwiki-linked-name'] = 'CS1 interwiki-linked names|$1', -- any author, editor, etc that has an interwiki link; $1 is interwiki tag used as a sort key; yeilds to interproject ['local-lang-source'] = 'Geillyn CS1 ayns $1 ($2)', -- |language= categories; $1 is local-language name, $2 is ISO639-1 code; not emitted when local_lang_cat_enable is false ['location-test'] = 'CS1 location test', ['long-vol'] = 'CS1: long volume value', -- probably temporary cat to identify scope of |volume= values longer than 4 characters ['script'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is language tag ['tracked-param'] = 'CS1 tracked parameter: $1', -- $1 is base (enumerators removed) parameter name ['unfit'] = 'CS1: unfit URL', -- |url-status=unfit or |url-status=usurped; used to be a maint cat ['vanc-accept'] = 'CS1:Vancouver names with accept markup', -- for |vauthors=/|veditors= with accept-as-written markup ['year-range-abbreviated'] = 'CS1: abbreviated year range', -- probably temporary cat to identify scope of |date=, |year= values using YYYY–YY form } --[[-------------------< T I T L E _ T Y P E S >-------------------------------- Here we map a template's CitationClass to TitleType (default values for |type= parameter) ]] local title_types = { ['AV-media-notes'] = 'Media notes', ['document'] = 'Document', ['interview'] = 'Interview', ['mailinglist'] = 'Mailing list', ['map'] = 'Map', ['podcast'] = 'Podcast', ['pressrelease'] = 'Press release', ['report'] = 'Report', ['speech'] = 'Speech', ['techreport'] = 'Technical report', ['thesis'] = 'Thesis', } --[[--------------------------< B U I L D _ K N O W N _ F R E E _ D O I _ R E G I S T R A N T S _ T A B L E >-- build a table of doi registrants known to be free-to-read In a doi, the registrant ID is the series of digits between the '10.' and the first '/': in doi 10.1100/sommat, 1100 is the registrant ID see §3.2.2 DOI prefix of the Doi Handbook p. 43 https://www.doi.org/doi-handbook/DOI_Handbook_Final.pdf#page=43 ]] local function build_free_doi_registrants_table() local registrants_t = {}; for _, v in ipairs ({ '1045', '1074', '1096', '1100', '1155', '1186', '1194', '1371', '1613', '1629', '1989', '1999', '2147', '2196', '3285', '3389', '3390', '3906', '3748', '3814', '3847', '3897', '4061', '4089', '4103', '4172', '4175', '4230', '4236', '4239', '4240', '4249', '4251', '4252', '4253', '4254', '4291', '4292', '4329', '4330', '4331', '5086', '5194', '5210', '5306', '5312', '5313', '5314', '5315', '5316', '5317', '5318', '5319', '5320', '5321', '5334', '5402', '5409', '5410', '5411', '5412', '5492', '5493', '5494', '5495', '5496', '5497', '5498', '5499', '5500', '5501', '5527', '5528', '5662', '6064', '6219', '7167', '7217', '7287', '7482', '7490', '7554', '7717', '7759', '7766', '9778', '11131', '11569', '11647', '11648', '12688', '12703', '12715', '12942', '12998', '13105', '14256', '14293', '14303', '15215', '15347', '15412', '15560', '16995', '17645', '18637', '19080', '19173', '20944', '21037', '21105', '21468', '21767', '21425', '22261', '22323', '22459', '24105', '24196', '24966', '26775', '30845', '32545', '35711', '35712', '35713', '35995', '36648', '37126', '37532', '37871', '47128', '47622', '47959', '52437', '52975', '53288', '53347', '54081', '54947', '55667', '55914', '57009', '58647', '59081', }) do registrants_t[v] = true; -- build a k/v table of known free-to-read doi registrants end return registrants_t; end -- known free registrants identifiable by the doi suffix incipit local extended_registrants_t = { -- doi suffix incipits are evaluated as lua patterns ['1002'] = {'aelm', 'leap', 'loe2%.', 'lol2%.'}, -- Advanced Electronic Materials, Learned Publishing, L&O e-Lectures, L&O Letters ['1016'] = {'j%.aace', 'j%.aed', 'j%.aiopen', 'j%.animal', 'j%.apsb', 'j%.addicn', -- AACE Endocrinology and Diabetes, AACE Endocrinology and Diabetes, AI Open, Animal, Acta Pharmaceutica Sinica B, Addiction Neuroscience 'j%.abrep', 'j%.gpb', 'j%.heliyon', 'j%.nlp', 'j%.patter', 'j%.proche', -- Addictive Behaviors Reports, Genomics, Proteomics & Bioinformatics after 2015, Heliyon, Natural Language Processing, Patterns, Procedia Chemistry 'j%.vgie', 'S1672-0229'}, -- VideoGIE, Genomics, Proteomics & Bioinformatics before 2015 ['1017'] = {'apj%.', 'nlp', 'mdh', 'S15574660'}, -- Natural Language Processing Journal, Medical History, Asia Pacific Journal ['1046'] = {'j%.1365-8711', 'j%.1365-246x'}, -- MNRAS, GJI ['1021'] = {'acscentsci', 'acsomega'}, -- ACS Central Science, ACS Omega ['1093'] = {'mnras', 'mnrasl', 'gji', 'pnasnexus', 'rasti'}, -- MNRAS, MNRAS Letters, GJI, PNAS Nexus, RASTI ['1098'] = {'rsbm', 'rsob', 'rsos'}, -- Biographical Memoirs of Fellows of the Royal Society, Open Biology, Royal Society Open Science ['1099'] = {'acmi', 'mic', '00221287', 'mgen'}, -- Access Microbiology, Microbiology, Journal of General Microbiology, Microbial Genomics ['1107'] = {'S20569890', 'S20522525', 'S16005775', 'S24143146'}, -- Acta Crystallographica E, IUCrJ, Journal of Synchrotron Radiation, IUCrData ['1109'] = {'oa', 'oj'}, -- IEEE Open Access..., IEEE Open Journal... ['1111'] = {'aogs', 'j%.1365-2966', 'j%.1745-3933', 'j%.1365-246X'}, -- Acta Obstetricia et Gynecologica Scandinavica, MNRAS, MNRAS Letters, GJI ['1128'] = {'asmcr', 'jmbe', 'mbio', 'mra', 'spectrum', 'msphere', 'msystems'}, --ASM Case Reports, Journal of Microbiology & Biology Education, mBio, Microbiology Resource Announcements, Microbiology Spectrum, mSphere, mSystems ['1136'] = {'bmjopen'}, -- BMJ Open ['1140'] = {'epjc'}, -- European Physical Journal C ['1192'] = {'bjo'}, -- BJPsych Open ['1210'] = {'jendso','jcemcr'}, -- Journal of the Endocrine Society, JCEM Case Reports ['1215'] = {'21573689', '21573698'}, -- L&O Fluids ['1590'] = {'0102-3306'}, -- Acta Botanica Brasilica ['4171'] = {'dm','mag'}, -- Documenta Mathematica, EMS Magazine ['4319'] = {'lo%.', 'lol%.', 'lom%.'}, -- L&O, L&O e-Lectures, L&O Methods ['5852'] = {'ejt'}, -- European Journal of Taxonomy ['7155'] = {'jgaa'}, -- Journal of Graph Algorithms and Applications ['11158'] = {'saasp'}, -- Systematic and Applied Acarology Special Publications ['11646'] = {'megataxa', 'mesozoic'}, -- Megataxa, Mesozoic ['14231'] = {'ag'}, -- Algebraic Geometry ['15446'] = {'abc'}, -- Acta Biológica Colombiana ['17239'] = {'jowr'}, -- Journal of Writing Research ['22073'] = {'pja'}, -- Persian Journal of Acarology ['24310'] = {'abm'}, -- Acta Botanica Malacitana ['24425'] = {'agp'}, -- Acta Geologica Polonica ['35249'] = {'rche'}, -- Revista Chilena de Entomología ['37520'] = {'fi'}, -- Fossil Imprint ['53562'] = {'ajcb'} -- Asian Journal of Conservation Biology } --[[===================<< E R R O R M E S S A G I N G >>====================== ]] --[[----------< E R R O R M E S S A G E S U P P L E M E N T S >------------- I18N for those messages that are supplemented with additional specific text that describes the reason for the error TODO: merge this with special_case_translations{}? ]] local err_msg_supl = { ['char'] = 'invalid character', -- |isbn=, |sbn= ['check'] = 'checksum', -- |isbn=, |sbn= empty_str = '(empty string)', -- empty unknown parameter check when cite has |= ['flag'] = 'flag', -- |archive-url= ['form'] = 'invalid form', -- |isbn=, |sbn= ['group'] = 'invalid group id', -- |isbn= ['initials'] = 'initials', -- Vancouver ['invalid language code'] = 'invalid language code', -- |script-<param>= ['journal'] = 'journal', -- |bibcode= ['length'] = 'length', -- |isbn=, |bibcode=, |sbn= ['liveweb'] = 'liveweb', -- |archive-url= ['missing comma'] = 'missing comma', -- Vancouver ['missing prefix'] = 'missing prefix', -- |script-<param>= ['missing title part'] = 'missing title part', -- |script-<param>= ['name'] = 'name', -- Vancouver ['non-Latin char'] = 'non-Latin character', -- Vancouver ['path'] = 'path', -- |archive-url= ['prefix'] = 'invalid prefix', -- |isbn= ['punctuation'] = 'punctuation', -- Vancouver ['save'] = 'save command', -- |archive-url= ['suffix'] = 'suffix', -- Vancouver ['timestamp'] = 'timestamp', -- |archive-url= ['unknown language code'] = 'unknown language code', -- |script-<param>= ['value'] = 'value', -- |bibcode= ['year'] = 'year', -- |bibcode= } --[[--------------< E R R O R _ C O N D I T I O N S >--------------------------- Error condition table. This table has two sections: errors at the top, maintenance at the bottom. Maint 'messaging' does not have a 'message' (message=nil) The following contains a list of IDs for various error conditions defined in the code. For each ID, we specify a text message to display, an error category to include, and whether the error message should be wrapped as a hidden comment. Anchor changes require identical changes to matching anchor in Help:CS1 errors TODO: rename error_conditions{} to something more generic; create separate error and maint tables inside that? ]] local error_conditions = { err_accessdate_missing_url = { message = '<code class="cs1-code">&#124;access-date=</code> requires <code class="cs1-code">&#124;url=</code>', anchor = 'accessdate_missing_url', category = 'CS1 errors: access-date without URL', hidden = false }, err_apostrophe_markup = { message = 'Italic or bold markup not allowed in: <code class="cs1-code">&#124;$1=</code>', -- $1 is parameter name anchor = 'apostrophe_markup', category = 'CS1 errors: markup', hidden = false }, err_archive_date_missing_url = { message = '<code class="cs1-code">&#124;archive-date=</code> requires <code class="cs1-code">&#124;archive-url=</code>', anchor = 'archive_date_missing_url', category = 'CS1 errors: archive-url', hidden = false }, err_archive_date_url_ts_mismatch = { message = '<code class="cs1-code">&#124;archive-date=</code> / <code class="cs1-code">&#124;archive-url=</code> timestamp mismatch; $1 suggested', anchor = 'archive_date_url_ts_mismatch', category = 'CS1 errors: archive-url', hidden = false }, err_archive_missing_date = { message = '<code class="cs1-code">&#124;archive-url=</code> requires <code class="cs1-code">&#124;archive-date=</code>', anchor = 'archive_missing_date', category = 'CS1 errors: archive-url', hidden = false }, err_archive_missing_url = { message = '<code class="cs1-code">&#124;archive-url=</code> requires <code class="cs1-code">&#124;url=</code>', anchor = 'archive_missing_url', category = 'CS1 errors: archive-url', hidden = false }, err_archive_url = { message = '<code class="cs1-code">&#124;archive-url=</code> is malformed: $1', -- $1 is error message detail anchor = 'archive_url', category = 'CS1 errors: archive-url', hidden = false }, err_arxiv_missing = { message = '<code class="cs1-code">&#124;arxiv=</code> required', anchor = 'arxiv_missing', category = 'CS1 errors: arXiv', -- same as bad arxiv hidden = false }, err_asintld_missing_asin = { message = '<code class="cs1-code">&#124;$1=</code> requires <code class="cs1-code">&#124;asin=</code>', -- $1 is parameter name anchor = 'asintld_missing_asin', category = 'CS1 errors: ASIN TLD', hidden = false }, err_bad_arxiv = { message = 'Check <code class="cs1-code">&#124;arxiv=</code> value', anchor = 'bad_arxiv', category = 'CS1 errors: arXiv', hidden = false }, err_bad_asin = { message = 'Check <code class="cs1-code">&#124;asin=</code> value', anchor = 'bad_asin', category ='CS1 errors: ASIN', hidden = false }, err_bad_asin_tld = { message = 'Check <code class="cs1-code">&#124;asin-tld=</code> value', anchor = 'bad_asin_tld', category ='CS1 errors: ASIN TLD', hidden = false }, err_bad_bibcode = { message = 'Check <code class="cs1-code">&#124;bibcode=</code> $1', -- $1 is error message detail anchor = 'bad_bibcode', category = 'CS1 errors: bibcode', hidden = false }, err_bad_biorxiv = { message = 'Check <code class="cs1-code">&#124;biorxiv=</code> value', anchor = 'bad_biorxiv', category = 'CS1 errors: bioRxiv', hidden = false }, err_bad_citeseerx = { message = 'Check <code class="cs1-code">&#124;citeseerx=</code> value', anchor = 'bad_citeseerx', category = 'CS1 errors: citeseerx', hidden = false }, err_bad_date = { message = 'Check date values in: $1', -- $1 is a parameter name list anchor = 'bad_date', category = 'CS1 errors: dates', hidden = false }, err_bad_doi = { message = 'Check <code class="cs1-code">&#124;doi=</code> value', anchor = 'bad_doi', category = 'CS1 errors: DOI', hidden = false }, err_bad_hdl = { message = 'Check <code class="cs1-code">&#124;hdl=</code> value', anchor = 'bad_hdl', category = 'CS1 errors: HDL', hidden = false }, err_bad_isbn = { message = 'Check <code class="cs1-code">&#124;isbn=</code> value: $1', -- $1 is error message detail anchor = 'bad_isbn', category = 'CS1 errors: ISBN', hidden = false }, err_bad_ismn = { message = 'Check <code class="cs1-code">&#124;ismn=</code> value', anchor = 'bad_ismn', category = 'CS1 errors: ISMN', hidden = false }, err_bad_issn = { message = 'Check <code class="cs1-code">&#124;$1issn=</code> value', -- $1 is 'e' or '' for eissn or issn anchor = 'bad_issn', category = 'CS1 errors: ISSN', hidden = false }, err_bad_jfm = { message = 'Check <code class="cs1-code">&#124;jfm=</code> value', anchor = 'bad_jfm', category = 'CS1 errors: JFM', hidden = false }, err_bad_jstor = { message = 'Check <code class="cs1-code">&#124;jstor=</code> value', anchor = 'bad_jstor', category = 'CS1 errors: JSTOR', hidden = false }, err_bad_lccn = { message = 'Check <code class="cs1-code">&#124;lccn=</code> value', anchor = 'bad_lccn', category = 'CS1 errors: LCCN', hidden = false }, err_bad_medrxiv = { message = 'Check <code class="cs1-code">&#124;medrxiv=</code> value', anchor = 'bad_medrxiv', category = 'CS1 errors: medRxiv', hidden = false }, err_bad_mr = { message = 'Check <code class="cs1-code">&#124;mr=</code> value', anchor = 'bad_mr', category = 'CS1 errors: MR', hidden = false }, err_bad_oclc = { message = 'Check <code class="cs1-code">&#124;oclc=</code> value', anchor = 'bad_oclc', category = 'CS1 errors: OCLC', hidden = false }, err_bad_ol = { message = 'Check <code class="cs1-code">&#124;ol=</code> value', anchor = 'bad_ol', category = 'CS1 errors: OL', hidden = false }, err_bad_osti = { message = 'Check <code class="cs1-code">&#124;osti=</code> value', anchor = 'bad_osti', category = 'CS1 errors: OSTI', hidden = false }, err_bad_paramlink = { -- for |title-link=, |author/editor/translator-link=, |series-link=, |episode-link= message = 'Check <code class="cs1-code">&#124;$1=</code> value', -- $1 is parameter name anchor = 'bad_paramlink', category = 'CS1 errors: parameter link', hidden = false }, err_bad_pmc = { message = 'Check <code class="cs1-code">&#124;pmc=</code> value', anchor = 'bad_pmc', category = 'CS1 errors: PMC', hidden = false }, err_bad_pmid = { message = 'Check <code class="cs1-code">&#124;pmid=</code> value', anchor = 'bad_pmid', category = 'CS1 errors: PMID', hidden = false }, err_bad_rfc = { message = 'Check <code class="cs1-code">&#124;rfc=</code> value', anchor = 'bad_rfc', category = 'CS1 errors: RFC', hidden = false }, err_bad_s2cid = { message = 'Check <code class="cs1-code">&#124;s2cid=</code> value', anchor = 'bad_s2cid', category = 'CS1 errors: S2CID', hidden = false }, err_bad_sbn = { message = 'Check <code class="cs1-code">&#124;sbn=</code> value: $1', -- $1 is error message detail anchor = 'bad_sbn', category = 'CS1 errors: SBN', hidden = false }, err_bad_ssrn = { message = 'Check <code class="cs1-code">&#124;ssrn=</code> value', anchor = 'bad_ssrn', category = 'CS1 errors: SSRN', hidden = false }, err_bad_url = { message = 'Check $1 value', -- $1 is parameter name anchor = 'bad_url', category = 'CS1 errors: URL', hidden = false }, err_bad_usenet_id = { message = 'Check <code class="cs1-code">&#124;message-id=</code> value', anchor = 'bad_message_id', category = 'CS1 errors: message-id', hidden = false }, err_bad_zbl = { message = 'Check <code class="cs1-code">&#124;zbl=</code> value', anchor = 'bad_zbl', category = 'CS1 errors: Zbl', hidden = false }, err_bare_url_missing_title = { message = '$1 missing title', -- $1 is parameter name anchor = 'bare_url_missing_title', category = 'CS1 errors: bare URL', hidden = false }, err_biorxiv_missing = { message = '<code class="cs1-code">&#124;biorxiv=</code> required', anchor = 'biorxiv_missing', category = 'CS1 errors: bioRxiv', -- same as bad bioRxiv hidden = false }, err_chapter_ignored = { message = '<code class="cs1-code">&#124;$1=</code> ignored', -- $1 is parameter name anchor = 'chapter_ignored', category = 'CS1 errors: chapter ignored', hidden = false }, err_citation_missing_title = { message = 'Missing or empty <code class="cs1-code">&#124;$1=</code>', -- $1 is parameter name anchor = 'citation_missing_title', category = 'CS1 errors: missing title', hidden = false }, err_citeseerx_missing = { message = '<code class="cs1-code">&#124;citeseerx=</code> required', anchor = 'citeseerx_missing', category = 'CS1 errors: citeseerx', -- same as bad citeseerx hidden = false }, err_cite_web_url = { -- this error applies to cite web and to cite podcast message = 'Missing or empty <code class="cs1-code">&#124;url=</code>', anchor = 'cite_web_url', category = 'CS1 errors: requires URL', hidden = false }, err_class_ignored = { message = '<code class="cs1-code">&#124;class=</code> ignored', anchor = 'class_ignored', category = 'CS1 errors: class', hidden = false }, err_contributor_ignored = { message = '<code class="cs1-code">&#124;contributor=</code> ignored', anchor = 'contributor_ignored', category = 'CS1 errors: contributor', hidden = false }, err_contributor_missing_required_param = { message = '<code class="cs1-code">&#124;contributor=</code> requires <code class="cs1-code">&#124;$1=</code>', -- $1 is parameter name anchor = 'contributor_missing_required_param', category = 'CS1 errors: contributor', hidden = false }, err_deprecated_params = { message = 'Cite uses deprecated parameter <code class="cs1-code">&#124;$1=</code>', -- $1 is parameter name anchor = 'deprecated_params', category = 'CS1 errors: deprecated parameters', hidden = false }, err_disp_name = { message = 'Invalid <code class="cs1-code">&#124;$1=$2</code>', -- $1 is parameter name; $2 is the assigned value anchor = 'disp_name', category = 'CS1 errors: display-names', hidden = false, }, err_doibroken_missing_doi = { message = '<code class="cs1-code">&#124;$1=</code> requires <code class="cs1-code">&#124;doi=</code>', -- $1 is parameter name anchor = 'doibroken_missing_doi', category = 'CS1 errors: DOI', hidden = false }, err_embargo_missing_pmc = { message = '<code class="cs1-code">&#124;$1=</code> requires <code class="cs1-code">&#124;pmc=</code>', -- $1 is parameter name anchor = 'embargo_missing_pmc', category = 'CS1 errors: PMC embargo', hidden = false }, err_empty_citation = { message = 'Empty citation', anchor = 'empty_citation', category = 'CS1 errors: empty citation', hidden = false }, err_etal = { message = 'Explicit use of et al. in: <code class="cs1-code">&#124;$1=</code>', -- $1 is parameter name anchor = 'explicit_et_al', category = 'CS1 errors: explicit use of et al.', hidden = false }, err_extra_text_edition = { message = '<code class="cs1-code">&#124;edition=</code> has extra text', anchor = 'extra_text_edition', category = 'CS1 errors: extra text: edition', hidden = false, }, err_extra_text_issue = { message = '<code class="cs1-code">&#124;$1=</code> has extra text', -- $1 is parameter name anchor = 'extra_text_issue', category = 'CS1 errors: extra text: issue', hidden = false, }, err_extra_text_pages = { message = '<code class="cs1-code">&#124;$1=</code> has extra text', -- $1 is parameter name anchor = 'extra_text_pages', category = 'CS1 errors: extra text: pages', hidden = false, }, err_extra_text_volume = { message = '<code class="cs1-code">&#124;$1=</code> has extra text', -- $1 is parameter name anchor = 'extra_text_volume', category = 'CS1 errors: extra text: volume', hidden = false, }, err_first_missing_last = { message = '<code class="cs1-code">&#124;$1=</code> missing <code class="cs1-code">&#124;$2=</code>', -- $1 is first alias, $2 is matching last alias anchor = 'first_missing_last', category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator hidden = false }, err_format_missing_url = { message = '<code class="cs1-code">&#124;$1=</code> requires <code class="cs1-code">&#124;$2=</code>', -- $1 is format parameter $2 is url parameter anchor = 'format_missing_url', category = 'CS1 errors: format without URL', hidden = false }, err_generic_name = { message = '<code class="cs1-code">&#124;$1=</code> has generic name', -- $1 is parameter name anchor = 'generic_name', category = 'CS1 errors: generic name', hidden = false, }, err_generic_title = { message = 'Cite uses generic title', anchor = 'generic_title', category = 'CS1 errors: generic title', hidden = false, }, err_invalid_isbn_date = { message = 'ISBN / Date incompatibility', anchor = 'invalid_isbn_date', category = 'CS1 errors: ISBN date', hidden = true }, err_invalid_param_val = { message = 'Invalid <code class="cs1-code">&#124;$1=$2</code>', -- $1 is parameter name $2 is parameter value anchor = 'invalid_param_val', category = 'CS1 errors: invalid parameter value', hidden = false }, err_invisible_char = { message = '$1 in $2 at position $3', -- $1 is invisible char $2 is parameter name $3 is position number anchor = 'invisible_char', category = 'CS1 errors: invisible characters', hidden = false }, err_medrxiv_missing = { message = '<code class="cs1-code">&#124;medrxiv=</code> required', anchor = 'medrxiv_missing', category = 'CS1 errors: medRxiv', -- same as bad medRxiv hidden = false }, err_missing_name = { message = 'Missing <code class="cs1-code">&#124;$1$2=</code>', -- $1 is modified NameList; $2 is enumerator anchor = 'missing_name', category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator hidden = false }, err_missing_periodical = { message = 'Cite $1 requires <code class="cs1-code">&#124;$2=</code>', -- $1 is cs1 template name; $2 is canonical periodical parameter name for cite $1 anchor = 'missing_periodical', category = 'CS1 errors: missing periodical', hidden = false }, err_missing_pipe = { message = 'Missing pipe in: <code class="cs1-code">&#124;$1=</code>', -- $1 is parameter name anchor = 'missing_pipe', category = 'CS1 errors: missing pipe', hidden = false }, err_missing_publisher = { message = 'Cite $1 requires <code class="cs1-code">&#124;$2=</code>', -- $1 is cs1 template name; $2 is canonical publisher parameter name for cite $1 anchor = 'missing_publisher', category = 'CS1 errors: missing publisher', hidden = false }, err_numeric_names = { message = '<code class="cs1-code">&#124;$1=</code> has numeric name', -- $1 is parameter name', anchor = 'numeric_names', category = 'CS1 errors: numeric name', hidden = false, }, err_param_access_requires_param = { message = '<code class="cs1-code">&#124;$1-access=</code> requires <code class="cs1-code">&#124;$1=</code>', -- $1 is parameter name anchor = 'param_access_requires_param', category = 'CS1 errors: param-access', hidden = false }, err_param_has_ext_link = { message = 'External link in <code class="cs1-code">$1</code>', -- $1 is parameter name anchor = 'param_has_ext_link', category = 'CS1 errors: external links', hidden = false }, err_param_has_twl_url = { message = 'Wikipedia Library link in <code class="cs1-code">$1</code>', -- $1 is parameter name anchor = 'param_has_twl_url', category = 'CS1 errors: URL', hidden = false }, err_parameter_ignored = { message = 'Unknown parameter <code class="cs1-code">&#124;$1=</code> ignored', -- $1 is parameter name anchor = 'parameter_ignored', category = 'CS1 errors: unsupported parameter', hidden = false }, err_parameter_ignored_suggest = { message = 'Unknown parameter <code class="cs1-code">&#124;$1=</code> ignored (<code class="cs1-code">&#124;$2=</code> suggested)', -- $1 is unknown parameter $2 is suggested parameter name anchor = 'parameter_ignored_suggest', category = 'CS1 errors: unsupported parameter', hidden = false }, err_periodical_ignored = { message = '<code class="cs1-code">&#124;$1=</code> ignored', -- $1 is parameter name anchor = 'periodical_ignored', category = 'CS1 errors: periodical ignored', hidden = false }, err_redundant_parameters = { message = 'More than one of $1 specified', -- $1 is error message detail anchor = 'redundant_parameters', category = 'CS1 errors: redundant parameter', hidden = false }, err_script_parameter = { message = 'Invalid <code class="cs1-code">&#124;$1=</code>: $2', -- $1 is parameter name $2 is script language code or error detail anchor = 'script_parameter', category = 'CS1 errors: script parameters', hidden = false }, err_ssrn_missing = { message = '<code class="cs1-code">&#124;ssrn=</code> required', anchor = 'ssrn_missing', category = 'CS1 errors: SSRN', hidden = false }, err_text_ignored = { message = 'Text "$1" ignored', -- $1 is ignored text anchor = 'text_ignored', category = 'CS1 errors: unrecognized parameter', hidden = false }, err_trans_missing_title = { message = '<code class="cs1-code">&#124;trans-$1=</code> requires <code class="cs1-code">&#124;$1=</code> or <code class="cs1-code">&#124;script-$1=</code>', -- $1 is base parameter name anchor = 'trans_missing_title', category = 'CS1 errors: translated title', hidden = false }, err_param_unknown_empty = { message = 'Cite has empty unknown parameter$1: $2', -- $1 is 's' or empty space; $2 is emty unknown param list anchor = 'param_unknown_empty', category = 'CS1 errors: empty unknown parameters', hidden = false }, err_vancouver = { message = 'Vancouver style error: $1 in name $2', -- $1 is error detail, $2 is the nth name anchor = 'vancouver', category = 'CS1 errors: Vancouver style', hidden = false }, err_wikilink_in_url = { message = 'URL–wikilink conflict', -- uses ndash anchor = 'wikilink_in_url', category = 'CS1 errors: URL–wikilink conflict', -- uses ndash hidden = false }, --[[--------------------------< M A I N T >------------------------------------- maint messages do not have a message (message = nil); otherwise the structure is the same as error messages ]] maint_archive_origin = { message = nil, anchor = 'archive_origin', category = 'CS1 maint: archive origin', hidden = true, }, maint_archived_copy = { message = nil, anchor = 'archived_copy', category = 'CS1 maint: archived copy as title', hidden = true, }, maint_bibcode = { message = nil, anchor = 'bibcode', category = 'CS1 maint: bibcode', hidden = true, }, maint_location_no_publisher = { -- cite book, conference, encyclopedia; citation as book cite or encyclopedia cite message = nil, anchor = 'location_no_publisher', category = 'CS1 maint: location missing publisher', hidden = true, }, maint_bot_unknown = { message = nil, anchor = 'bot:_unknown', category = 'CS1 maint: bot: original URL status unknown', hidden = true, }, maint_date_auto_xlated = { -- date auto-translation not supported by en.wiki message = nil, anchor = 'date_auto_xlated', category = 'CS1 maint: date auto-translated', hidden = true, }, maint_date_format = { message = nil, anchor = 'date_format', category = 'CS1 maint: date format', hidden = true, }, maint_date_year = { message = nil, anchor = 'date_year', category = 'CS1 maint: date and year', hidden = true, }, maint_deprecated_archive = { message = nil, anchor = 'deprecated_archive', category = 'CS1 maint: deprecated archival service', hidden = true, }, maint_doi_ignore = { message = nil, anchor = 'doi_ignore', category = 'CS1 maint: ignored DOI errors', hidden = true, }, maint_doi_inactive = { message = nil, anchor = 'doi_inactive', category = 'CS1 maint: DOI neuvioyr', hidden = true, }, maint_doi_inactive_dated = { message = nil, anchor = 'doi_inactive_dated', category = 'CS1 maint: DOI neuvioyr ec $2$3$1', -- $1 is year, $2 is month-name or empty string, $3 is space or empty string hidden = true, }, maint_doi_unflagged_free = { message = nil, anchor = 'doi_unflagged_free', category = 'CS1 maint: DOI seyr neu-chowrit', hidden = true, }, maint_extra_punct = { message = nil, anchor = 'extra_punct', category = 'CS1 maint: extra punctuation', hidden = true, }, maint_id_limit_load_fail = { -- applies to all cs1|2 templates on a page; message = nil, -- maint message (category link) never emitted anchor = 'id_limit_load_fail', category = 'CS1 maint: ID limit load fail', hidden = true, }, maint_isbn_ignore = { message = nil, anchor = 'ignore_isbn_err', category = 'CS1 maint: ignored ISBN errors', hidden = true, }, maint_issn_ignore = { message = nil, anchor = 'ignore_issn', category = 'CS1 maint: ignored ISSN errors', hidden = true, }, maint_jfm_format = { message = nil, anchor = 'jfm_format', category = 'CS1 maint: JFM format', hidden = true, }, maint_location = { message = nil, anchor = 'location', category = 'CS1 maint: location', hidden = true, }, maint_missing_class = { message = nil, anchor = 'missing_class', category = 'CS1 maint: missing class', hidden = true, }, maint_mr_format = { message = nil, anchor = 'mr_format', category = 'CS1 maint: MR format', hidden = true, }, maint_mult_names = { message = nil, anchor = 'mult_names', category = 'CS1 maint: multiple names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table hidden = true, }, maint_numeric_names = { message = nil, anchor = 'numeric_names', category = 'CS1 maint: numeric names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table hidden = true, }, maint_others = { message = nil, anchor = 'others', category = 'CS1 maint: others', hidden = true, }, maint_others_avm = { message = nil, anchor = 'others_avm', category = 'CS1 maint: others in cite AV media (notes)', hidden = true, }, maint_overridden_setting = { message = nil, anchor = 'overridden', category = 'CS1 maint: overridden setting', hidden = true, }, maint_page_art_num = { message = nil, anchor = 'page_art_num', category = 'CS1 maint: article number as page number', hidden = true, }, maint_pmc_embargo = { message = nil, anchor = 'embargo', category = 'CS1 maint: PMC embargo expired', hidden = true, }, maint_pmc_format = { message = nil, anchor = 'pmc_format', category = 'CS1 maint: PMC format', hidden = true, }, maint_postscript = { message = nil, anchor = 'postscript', category = 'CS1 maint: postscript', hidden = true, }, maint_publisher_location = { message = nil, anchor = 'publisher_location', category = 'CS1 maint: publisher location', hidden = true, }, maint_ref_duplicates_default = { message = nil, anchor = 'ref_default', category = 'CS1 maint: ref duplicates default', hidden = true, }, maint_shortened_archive_url = { message = nil, anchor = 'shortened_archive_url', category = 'CS1 maint: shortened archive url', hidden = true, }, maint_unknown_lang = { message = nil, anchor = 'unknown_lang', category = 'CS1 maint: çhengey gyn enney', hidden = true, }, maint_untitled = { message = nil, anchor = 'untitled', category = 'CS1 maint: untitled periodical', hidden = true, }, maint_url_status = { message = nil, anchor = 'url_status', category = 'CS1 maint: url-status', hidden = true, }, maint_work_isbn = { message = nil, anchor = 'work_isbn', category = 'CS1 maint: work parameter with ISBN', hidden = true, }, maint_year= { message = nil, anchor = 'year', category = 'CS1 maint: year', hidden = true, }, maint_zbl = { message = nil, anchor = 'zbl', category = 'CS1 maint: Zbl', hidden = true, }, } --[[--------------------------< I D _ L I M I T S _ D A T A _ T >---------------------------------------------- fetch id limits for certain identifiers from c:Data:CS1/Identifier limits.tab. This source is a json tabular data file maintained at wikipedia commons. Convert the json format to a table of k/v pairs. The values from <id_limits_data_t> are used to set handle.id_limit. From 2025-02-21, MediaWiki is broken. Use this link to edit the tablular data file: https://commons.wikimedia.org/w/index.php?title=Data:CS1/Identifier_limits.tab&action=edit See Phab:T389105 ]] local id_limits_data_t = {}; local use_commons_data = true; -- set to false if your wiki does not have access to mediawiki commons; then, if false == use_commons_data then -- update this table from https://commons.wikimedia.org/wiki/Data:CS1/Identifier_limits.tab; last update: 2025-02-21 id_limits_data_t = {['OCLC'] = 10450000000, ['OSTI'] = 23010000, ['PMC'] = 11900000, ['PMID'] = 40400000, ['RFC'] = 9300, ['SSRN'] = 5200000, ['S2CID'] = 276000000}; -- this table must be maintained locally else -- here for wikis that do have access to mediawiki commons local load_fail_limit = 99999999999; -- very high number to avoid error messages on load failure id_limits_data_t = {['OCLC'] = load_fail_limit, ['OSTI'] = load_fail_limit, ['PMC'] = load_fail_limit, ['PMID'] = load_fail_limit, ['RFC'] = load_fail_limit, ['SSRN'] = load_fail_limit, ['S2CID'] = load_fail_limit}; local id_limits_data_load_fail = false; -- flag; assume that we will be successful when loading json id limit tabular data if mw.ext.data == nil then id_limits_data_load_fail = true; -- safeguard against Lua errors if mw.ext.data is not available for some reason else local tab_data_t = mw.ext.data.get ('CS1/Identifier limits.tab'); -- attempt to load the tabular data from commons into <tab_data_t> if false == tab_data_t then -- undocumented 'feature': mw.ext.data.get() sometimes returns false id_limits_data_load_fail = true; -- set the flag so that Module:Citation/CS1 can create an unannotated maint category else for _, limit_t in ipairs (tab_data_t.data) do -- overwrite default <load_fail_limit> values from the data table in the tabular data id_limits_data_t[limit_t[1]] = limit_t[2]; -- <limit[1]> is identifier; <limit[2]> is upper limit for that identifier end end end end --[[--------------------------< I D _ H A N D L E R S >-------------------------------------------------------- The following contains a list of values for various defined identifiers. For each identifier we specify a variety of information necessary to properly render the identifier in the citation. parameters: a list of parameter aliases for this identifier; first in the list is the canonical form link: Wikipedia article name redirect: a local redirect to a local Wikipedia article name; at en.wiki, 'ISBN (identifier)' is a redirect to 'International Standard Book Number' q: Wikidata q number for the identifier label: the label preceding the identifier; label is linked to a Wikipedia article (in this order): redirect from id_handlers['<id>'].redirect when use_identifier_redirects is true Wikidata-supplied article name for the local wiki from id_handlers['<id>'].q local article name from id_handlers['<id>'].link prefix: the first part of a URL that will be concatenated with a second part which usually contains the identifier suffix: optional third part to be added after the identifier encode: true if URI should be percent-encoded; otherwise false COinS: identifier link or keyword for use in COinS: for identifiers registered at info-uri.info use: info:.... where '...' is the appropriate identifier label for identifiers that have COinS keywords, use the keyword: rft.isbn, rft.issn, rft.eissn for |asin= and |ol=, which require assembly, use the keyword: url for others make a URL using the value in prefix/suffix and #label, use the keyword: pre (not checked; any text other than 'info', 'rft', or 'url' works here) set to nil to leave the identifier out of the COinS separator: character or text between label and the identifier in the rendered citation id_limit: for those identifiers with established limits, this property holds the upper limit access: use this parameter to set the access level for all instances of this identifier. the value must be a valid access level for an identifier (see ['id-access'] in this file). custom_access: to enable custom access level for an identifier, set this parameter to the parameter that should control it (normally 'id-access') ]] local id_handlers = { ['ARXIV'] = { parameters = {'arxiv', 'eprint'}, link = 'arXiv', redirect = 'arXiv (identifier)', q = 'Q118398', label = 'arXiv', prefix = 'https://arxiv.org/abs/', encode = false, COinS = 'info:arxiv', separator = ':', access = 'free', -- free to read }, ['ASIN'] = { parameters = { 'asin', 'ASIN' }, link = 'Amazon Standard Identification Number', redirect = 'ASIN (identifier)', q = 'Q1753278', label = 'ASIN', prefix = 'https://www.amazon.', COinS = 'url', separator = '&nbsp;', encode = false; }, ['BIBCODE'] = { parameters = {'bibcode'}, link = 'Bibcode', redirect = 'Bibcode (identifier)', q = 'Q25754', label = 'Bibcode', prefix = 'https://ui.adsabs.harvard.edu/abs/', encode = false, COinS = 'info:bibcode', separator = ':', custom_access = 'bibcode-access', }, ['BIORXIV'] = { parameters = {'biorxiv'}, link = 'bioRxiv', redirect = 'bioRxiv (identifier)', q = 'Q19835482', label = 'bioRxiv', prefix = 'https://doi.org/', COinS = 'pre', -- use prefix value access = 'free', -- free to read encode = true, separator = '&nbsp;', }, ['CITESEERX'] = { parameters = {'citeseerx'}, link = 'CiteSeerX', redirect = 'CiteSeerX (identifier)', q = 'Q2715061', label = 'CiteSeerX', prefix = 'https://citeseerx.ist.psu.edu/viewdoc/summary?doi=', COinS = 'pre', -- use prefix value access = 'free', -- free to read encode = true, separator = '&nbsp;', }, ['DOI'] = { -- Used by InternetArchiveBot parameters = { 'doi', 'DOI'}, link = 'Digital object identifier', redirect = 'doi (identifier)', q = 'Q25670', label = 'doi', prefix = 'https://doi.org/', COinS = 'info:doi', separator = ':', encode = true, custom_access = 'doi-access', }, ['EISSN'] = { parameters = {'eissn', 'EISSN'}, link = 'International Standard Serial Number#Electronic ISSN', redirect = 'eISSN (identifier)', q = 'Q46339674', label = 'eISSN', prefix = 'https://search.worldcat.org/issn/', COinS = 'rft.eissn', encode = false, separator = '&nbsp;', }, ['HDL'] = { parameters = { 'hdl', 'HDL' }, link = 'Handle System', redirect = 'hdl (identifier)', q = 'Q3126718', label = 'hdl', prefix = 'https://hdl.handle.net/', COinS = 'info:hdl', separator = ':', encode = true, custom_access = 'hdl-access', }, ['ISBN'] = { -- Used by InternetArchiveBot parameters = {'isbn', 'ISBN'}, link = 'International Standard Book Number', redirect = 'ISBN (identifier)', q = 'Q33057', label = 'ISBN', prefix = 'Special:BookSources/', COinS = 'rft.isbn', separator = '&nbsp;', }, ['ISMN'] = { parameters = {'ismn', 'ISMN'}, link = 'International Standard Music Number', redirect = 'ISMN (identifier)', q = 'Q1666938', label = 'ISMN', prefix = '', -- not currently used; COinS = nil, -- nil because we can't use pre or rft or info: separator = '&nbsp;', }, ['ISSN'] = { parameters = {'issn', 'ISSN'}, link = 'International Standard Serial Number', redirect = 'ISSN (identifier)', q = 'Q131276', label = 'ISSN', prefix = 'https://search.worldcat.org/issn/', COinS = 'rft.issn', encode = false, separator = '&nbsp;', }, ['JFM'] = { parameters = {'jfm', 'JFM'}, link = 'Jahrbuch über die Fortschritte der Mathematik', redirect = 'JFM (identifier)', q = '', label = 'JFM', prefix = 'https://zbmath.org/?format=complete&q=an:', COinS = 'pre', -- use prefix value encode = true, separator = '&nbsp;', }, ['JSTOR'] = { parameters = {'jstor', 'JSTOR'}, link = 'JSTOR', redirect = 'JSTOR (identifier)', q = 'Q1420342', label = 'JSTOR', prefix = 'https://www.jstor.org/stable/', COinS = 'pre', -- use prefix value encode = false, separator = '&nbsp;', custom_access = 'jstor-access', }, ['LCCN'] = { parameters = {'lccn', 'LCCN'}, link = 'Library of Congress Control Number', redirect = 'LCCN (identifier)', q = 'Q620946', label = 'LCCN', prefix = 'https://lccn.loc.gov/', COinS = 'info:lccn', encode = false, separator = '&nbsp;', }, ['MEDRXIV'] = { parameters = {'medrxiv'}, link = 'medRxiv', redirect = 'medRxiv (identifier)', q = 'Q58465838', label = 'medRxiv', prefix = 'https://www.medrxiv.org/content/', COinS = 'pre', -- use prefix value access = 'free', -- free to read encode = false, separator = '&nbsp;', }, ['MR'] = { parameters = {'mr', 'MR'}, link = 'Mathematical Reviews', redirect = 'MR (identifier)', q = 'Q211172', label = 'MR', prefix = 'https://mathscinet.ams.org/mathscinet-getitem?mr=', COinS = 'pre', -- use prefix value encode = true, separator = '&nbsp;', }, ['OCLC'] = { parameters = {'oclc', 'OCLC'}, link = 'OCLC', redirect = 'OCLC (identifier)', q = 'Q190593', label = 'OCLC', prefix = 'https://search.worldcat.org/oclc/', COinS = 'info:oclcnum', encode = true, separator = '&nbsp;', id_limit = id_limits_data_t.OCLC or 0, }, ['OL'] = { parameters = { 'ol', 'OL' }, link = 'Open Library', redirect = 'OL (identifier)', q = 'Q1201876', label = 'OL', prefix = 'https://openlibrary.org/', COinS = 'url', separator = '&nbsp;', encode = true, custom_access = 'ol-access', }, ['OSTI'] = { parameters = {'osti', 'OSTI'}, link = 'Office of Scientific and Technical Information', redirect = 'OSTI (identifier)', q = 'Q2015776', label = 'OSTI', prefix = 'https://www.osti.gov/biblio/', COinS = 'pre', -- use prefix value encode = true, separator = '&nbsp;', id_limit = id_limits_data_t.OSTI or 0, custom_access = 'osti-access', }, ['PMC'] = { parameters = {'pmc', 'PMC'}, link = 'PubMed Central', redirect = 'PMC (identifier)', q = 'Q229883', label = 'PMC', prefix = 'https://www.ncbi.nlm.nih.gov/pmc/articles/PMC', suffix = '', COinS = 'pre', -- use prefix value encode = true, separator = '&nbsp;', id_limit = id_limits_data_t.PMC or 0, access = 'free', -- free to read }, ['PMID'] = { parameters = {'pmid', 'PMID'}, link = 'PubMed Identifier', redirect = 'PMID (identifier)', q = 'Q2082879', label = 'PMID', prefix = 'https://pubmed.ncbi.nlm.nih.gov/', COinS = 'info:pmid', encode = false, separator = '&nbsp;', id_limit = id_limits_data_t.PMID or 0, }, ['RFC'] = { parameters = {'rfc', 'RFC'}, link = 'Request for Comments', redirect = 'RFC (identifier)', q = 'Q212971', label = 'RFC', prefix = 'https://tools.ietf.org/html/rfc', COinS = 'pre', -- use prefix value encode = false, separator = '&nbsp;', id_limit = id_limits_data_t.RFC or 0, access = 'free', -- free to read }, ['SBN'] = { parameters = {'sbn', 'SBN'}, link = 'Standard Book Number', -- redirect to International_Standard_Book_Number#History redirect = 'SBN (identifier)', label = 'SBN', prefix = 'Special:BookSources/0-', -- prefix has leading zero necessary to make 9-digit sbn a 10-digit isbn COinS = nil, -- nil because we can't use pre or rft or info: separator = '&nbsp;', }, ['SSRN'] = { parameters = {'ssrn', 'SSRN'}, link = 'Social Science Research Network', redirect = 'SSRN (identifier)', q = 'Q7550801', label = 'SSRN', prefix = 'https://papers.ssrn.com/sol3/papers.cfm?abstract_id=', COinS = 'pre', -- use prefix value encode = true, separator = '&nbsp;', id_limit = id_limits_data_t.SSRN or 0, custom_access = 'ssrn-access', }, ['S2CID'] = { parameters = {'s2cid', 'S2CID'}, link = 'Semantic Scholar', redirect = 'S2CID (identifier)', q = 'Q22908627', label = 'S2CID', prefix = 'https://api.semanticscholar.org/CorpusID:', COinS = 'pre', -- use prefix value encode = false, separator = '&nbsp;', id_limit = id_limits_data_t.S2CID or 0, custom_access = 's2cid-access', }, ['USENETID'] = { parameters = {'message-id'}, link = 'Usenet', redirect = 'Usenet (identifier)', q = 'Q193162', label = 'Usenet:', prefix = 'news:', encode = false, COinS = 'pre', -- use prefix value separator = '&nbsp;', }, ['ZBL'] = { parameters = {'zbl', 'ZBL' }, link = 'Zentralblatt MATH', redirect = 'Zbl (identifier)', q = 'Q190269', label = 'Zbl', prefix = 'https://zbmath.org/?format=complete&q=an:', COinS = 'pre', -- use prefix value encode = true, separator = '&nbsp;', }, } --[[--------------------------< E X P O R T S >--------------------------------- ]] return { use_identifier_redirects = use_identifier_redirects, -- booleans defined in the settings at the top of this module local_lang_cat_enable = local_lang_cat_enable, date_name_auto_xlate_enable = date_name_auto_xlate_enable, date_digit_auto_xlate_enable = date_digit_auto_xlate_enable, enable_sort_keys = enable_sort_keys, suppress_archive_today_urls = suppress_archive_today_urls, -- tables and variables created when this module is loaded dependencies_t = dependencies_t, -- used to suppress parameters dependent on url-holding parameters holding archive.today urls enum_needs_xlation = '1' ~= date_names.xlate_digits['1'], -- to avoid unnecessary enumerator translation global_df = get_date_format (), -- this line can be replaced with "global_df = 'dmy-all'," to have all dates auto translated to dmy format. global_cs1_config_t = global_cs1_config_t, -- global settings from {{cs1 config}} id_limits_data_load_fail = id_limits_data_load_fail, -- true when commons tabular identifier-limit data fails to load known_free_doi_registrants_t = build_free_doi_registrants_table(), punct_skip = build_skip_table (punct_skip, punct_meta_params), url_skip = build_skip_table (url_skip, url_meta_params), archive_today_tlds_t = {['today'] = true, ['ph'] = true, ['is'] = true, ['md'] = true, ['li'] = true, ['fo'] = true, ['vn'] = true}; -- used by is_archive_today_url() name_space_sort_keys = name_space_sort_keys, aliases = aliases, special_case_translation = special_case_translation, date_names = date_names, err_msg_supl = err_msg_supl, error_conditions = error_conditions, editor_markup_patterns = editor_markup_patterns, et_al_patterns = et_al_patterns, extended_registrants_t = extended_registrants_t, id_handlers = id_handlers, keywords_lists = keywords_lists, keywords_xlate = keywords_xlate, stripmarkers = stripmarkers, invisible_chars = invisible_chars, invisible_defs = invisible_defs, indic_script = indic_script, emoji_t = emoji_t, maint_cats = maint_cats, messages = messages, presentation = presentation, prop_cats = prop_cats, script_lang_codes = script_lang_codes, lang_tag_remap = lang_tag_remap, lang_name_remap = lang_name_remap, this_wiki_code = this_wiki_code, title_types = title_types, uncategorized_namespaces = uncategorized_namespaces_t, uncategorized_subpages = uncategorized_subpages, templates_using_volume = templates_using_volume, templates_using_issue = templates_using_issue, templates_not_using_page = templates_not_using_page, vol_iss_pg_patterns = vol_iss_pg_patterns, single_letter_2nd_lvl_domains_t = single_letter_2nd_lvl_domains_t, url_access_map_t = url_access_map_t, inter_wiki_map = inter_wiki_map, mw_languages_by_tag_t = mw_languages_by_tag_t, mw_languages_by_name_t = mw_languages_by_name_t, citation_class_map_t = citation_class_map_t, citation_issue_t = citation_issue_t, citation_no_volume_t = citation_no_volume_t, } i3bte5pk8vod8hnvo2c27oaaa2r0sc7 Ymmydeyr:Ansony89 2 29943 394639 389105 2026-10-17T09:50:44Z Ansony89 19983 394639 wikitext text/x-wiki {{#Babel:en-4|fr-3|ja-3|no-1|gv-0}} Come see me on [http://en.wikipedia.org/wiki/User:Ansony89 English Wikipedia]. a257euyucpj0y8xhz609fxutjzrsym8 Module:ISO 639 name/ISO 639-1 828 30251 394547 394406 2026-10-16T14:19:28Z MacTire02 219 wolofish 394547 Scribunto text/plain -- File-Date: 2023-10-16 return { ["aa"] = {"Afarish"}, ["ab"] = {"Abcaashish"}, ["ae"] = {"Avestan"}, ["af"] = {"Affrickaanish"}, ["ak"] = {"Akanish"}, ["am"] = {"Amharish"}, ["an"] = {"Aragonish"}, ["ar"] = {"Arabish"}, ["as"] = {"Assamish"}, ["av"] = {"Avarish"}, ["ay"] = {"Aymarish"}, ["az"] = {"Asserbajaanish"}, ["ba"] = {"Bashkeerish"}, ["be"] = {"Belarooshish"}, ["bg"] = {"Bulgeyrish"}, ["bh"] = {"Çhengaghyn Biharagh"}, ["bi"] = {"Bislama"}, ["bm"] = {"Bambara"}, ["bn"] = {"Bengaalish", "Bangla"}, ["bo"] = {"Tibetish"}, ["br"] = {"Britaanish"}, ["bs"] = {"Bosnish"}, ["ca"] = {"Cataloanish", "Valensish"}, ["ce"] = {"Sheshnish"}, ["ch"] = {"Chamorro"}, ["co"] = {"Corsickish"}, ["cr"] = {"Creeish"}, ["cs"] = {"Sheckish"}, ["cu"] = {"Slavish Agglish", "Slavonish Agglish", "Slavish yn Agglish", "Slavonish yn Agglish", "Shenn Vulgeyrish", "Shenn Slavonish Agglish", "Shenn Slavish Agglish"}, ["cv"] = {"Çhuvashish"}, ["cy"] = {"Bretnish"}, ["da"] = {"Danvargish"}, ["de"] = {"Germaanish"}, ["dv"] = {"Dhivehi", "Divehi", "Maldeevish"}, ["dz"] = {"Dzongkha"}, ["ee"] = {"Ewe"}, ["el"] = {"Greagish Noa-emshyragh (1453-)"}, ["en"] = {"Baarle"}, ["eo"] = {"Esperanto"}, ["es"] = {"Spaainish", "Casteelish"}, ["et"] = {"Estoinish", "Esthoinish", "Estaanish"}, ["eu"] = {"Bascish"}, ["fa"] = {"Pershish"}, ["ff"] = {"Fulah"}, ["fi"] = {"Finnish"}, ["fj"] = {"Fijian"}, ["fo"] = {"Faaroish"}, ["fr"] = {"Frangish"}, ["fy"] = {"Freeshlannish Heear"}, ["ga"] = {"Yernish", "Gaelg Nerin", "Gaelg ny h-Erin", "Gaelg Yernagh"}, ["gd"] = {"Gaelg ny h-Albey", "Gaelg Albinagh"}, ["gl"] = {"Galeeshish"}, ["gn"] = {"Guaranish"}, ["gu"] = {"Gujaratish"}, ["gv"] = {"Gaelg", "Gailck"}, ["ha"] = {"Hausa"}, ["he"] = {"Ewnish"}, ["hi"] = {"Hindish"}, ["ho"] = {"Hiri Motu"}, ["hr"] = {"Croitish"}, ["ht"] = {"Haitish", "Creeole Haiti"}, ["hu"] = {"Ungaarish"}, ["hy"] = {"Armeanish"}, ["hz"] = {"Herero"}, ["ia"] = {"Interlingua (International Auxiliary Language Association)"}, ["id"] = {"Indoneeshish"}, ["ie"] = {"Interlingue", "Occidental"}, ["ig"] = {"Igbo"}, ["ii"] = {"Sichuan Yi", "Nuosu"}, ["ik"] = {"Inupiaq"}, ["io"] = {"Ido"}, ["is"] = {"Eeslynnish"}, ["it"] = {"Iddaalish"}, ["iu"] = {"Inuktitut"}, ["ja"] = {"Shapaanish"}, ["jv"] = {"basa Jawa"}, ["ka"] = {"Shorshish"}, ["kg"] = {"Kongoish"}, ["ki"] = {"Kikuyu", "Gikuyu"}, ["kj"] = {"Kuanyama", "Kwanyama"}, ["kk"] = {"Kassaghish"}, ["kl"] = {"Kalaallisut", "Greenlynnish"}, ["km"] = {"Khmerish", "Khmerish Veanagh"}, ["kn"] = {"Kannada"}, ["ko"] = {"Koreeish"}, ["kr"] = {"Kanurish"}, ["ks"] = {"Kashmirish"}, ["ku"] = {"Kurdish"}, ["kv"] = {"Komish"}, ["kw"] = {"Cornish"}, ["ky"] = {"Kyrgish"}, ["la"] = {"Ladjyn"}, ["lb"] = {"Lucsemburgish", "Letzeburgesch"}, ["lg"] = {"Ganda", "Luganda"}, ["li"] = {"Limburgish"}, ["ln"] = {"Lingalish"}, ["lo"] = {"Laoish"}, ["lt"] = {"Litaanish"}, ["lu"] = {"Luba-Katanga"}, ["lv"] = {"Latvish"}, ["mg"] = {"Malagasish"}, ["mh"] = {"Marshylish"}, ["mi"] = {"Maorish"}, ["mk"] = {"Massadoanish"}, ["ml"] = {"Malayalamish"}, ["mn"] = {"Mongoilish"}, ["mr"] = {"Marathish"}, ["ms"] = {"Malayish (mooar-hengey)"}, ["mt"] = {"Maltish"}, ["my"] = {"Burmish"}, ["na"] = {"Nauru"}, ["nb"] = {"Bokmål Norlynnagh"}, ["nd"] = {"Ndebele Hwoaie"}, ["ne"] = {"Nepaalish (mooar-hengey)"}, ["ng"] = {"Ndonga"}, ["nl"] = {"Ollanish", "Flandrynish"}, ["nn"] = {"Nynorsk Norlynnagh"}, ["no"] = {"Norlynnish"}, ["nr"] = {"Ndebele Yiass"}, ["nv"] = {"Navajo", "Navaho"}, ["ny"] = {"Chewish", "Nyanja", "Chewa", "Chichewa"}, ["oc"] = {"Ocsitaanish (lurg 1500)"}, ["oj"] = {"Ojibwa"}, ["om"] = {"Oromoish"}, ["or"] = {"Oriyish (mooar-hengey)", "Odish (mooar-hengey)"}, ["os"] = {"Ossetish"}, ["pa"] = {"Panjabish", "Punjabish"}, ["pi"] = {"Palish"}, ["pl"] = {"Polynnish"}, ["ps"] = {"Pushtish", "Pashtish"}, ["pt"] = {"Portiugish"}, ["qu"] = {"Quechua"}, ["rm"] = {"Romanshish"}, ["rn"] = {"Rundish"}, ["ro"] = {"Romaanish", "Romaainish", "Moldaavish", "Moldovish"}, ["ru"] = {"Rooshish"}, ["rw"] = {"Kinyarwanda"}, ["sa"] = {"Sanskrit"}, ["sc"] = {"Sardeenish"}, ["sd"] = {"Sindhish"}, ["se"] = {"Samish Hwoaie"}, ["sg"] = {"Sango"}, ["sh"] = {"Serbo-Chroitish"}, ["si"] = {"Sinhala", "Sinhalish"}, ["sk"] = {"Slovackish"}, ["sl"] = {"Sloveanish"}, ["sm"] = {"Samoish"}, ["sn"] = {"Shonish"}, ["so"] = {"Somaalish"}, ["sq"] = {"Albaanish"}, ["sr"] = {"Serbish"}, ["ss"] = {"Swassish"}, ["st"] = {"Sothoish Yiass"}, ["su"] = {"Sundanish"}, ["sv"] = {"Soolynnish"}, ["sw"] = {"Swahilish (mooar-hengey)"}, ["ta"] = {"Tamilish"}, ["te"] = {"Teloogooish"}, ["tg"] = {"Tajikish"}, ["th"] = {"Thai"}, ["ti"] = {"Tigrinyish"}, ["tk"] = {"Turkmenish"}, ["tl"] = {"Tagalogish"}, ["tn"] = {"Tswaanish"}, ["to"] = {"Tonga (Ellanyn y Tongey)"}, ["tr"] = {"Turkish"}, ["ts"] = {"Tsongish"}, ["tt"] = {"Tatarish"}, ["tw"] = {"Twi"}, ["ty"] = {"Tahitish"}, ["ug"] = {"Uighurish", "Uyghurish"}, ["uk"] = {"Ukraanish"}, ["ur"] = {"Oordooish"}, ["uz"] = {"Oosbeckish"}, ["ve"] = {"Vendish"}, ["vi"] = {"Vietnamish"}, ["vo"] = {"Volapük"}, ["wa"] = {"Walloonish"}, ["wo"] = {"Wolofish"}, ["xh"] = {"Xhosa"}, ["yi"] = {"Ewdish"}, ["yo"] = {"Yorubish"}, ["za"] = {"Zhuang", "Chuang"}, ["zh"] = {"Sheenish"}, ["zu"] = {"Soolooish"} } tqnymye0i01f2ofstase4jirh6e32si Module:Language/data/iana languages 828 30253 394546 394513 2026-10-16T14:18:59Z MacTire02 219 wolofish 394546 Scribunto text/plain -- File-Date: 2023-10-16 local active = { ["aa"] = {"Afarish"}, ["ab"] = {"Abcaashish"}, ["ae"] = {"Avestan"}, ["af"] = {"Affrickaanish"}, ["ak"] = {"Akanish"}, ["am"] = {"Amharish"}, ["an"] = {"Aragonish"}, ["ar"] = {"Arabish"}, ["as"] = {"Assamish"}, ["av"] = {"Avarish"}, ["ay"] = {"Aymarish"}, ["az"] = {"Asserbajaanish"}, ["ba"] = {"Bashkeerish"}, ["be"] = {"Belarooshish"}, ["bg"] = {"Bulgeyrish"}, ["bh"] = {"çhengaghyn Bihari"}, ["bi"] = {"Bislama"}, ["bm"] = {"Bambarish"}, ["bn"] = {"Bengaalish", "Bangla"}, ["bo"] = {"Tibetish"}, ["br"] = {"Britaanish"}, ["bs"] = {"Bosnish"}, ["ca"] = {"Catalaanish", "Cataloanish", "Valensianish", "Valenciano"}, ["ce"] = {"Sheshnish"}, ["ch"] = {"Chamorro"}, ["co"] = {"Corsickish"}, ["cr"] = {"Creeish"}, ["cs"] = {"Sheckish"}, ["cu"] = {"Slavish Agglish", "Slavonish Agglish", "Slavish yn Agglish", "Slavonish yn Agglish", "Shenn Vulgeyrish", "Shenn Slavonish Agglish", "Shenn Slavish Agglish"}, ["cv"] = {"Shuvashish"}, ["cy"] = {"Bretnish"}, ["da"] = {"Danvargish"}, ["de"] = {"Germaanish"}, ["dv"] = {"Dhivehi", "Divehi", "Maldeevish"}, ["dz"] = {"Dzongkha"}, ["ee"] = {"Ewe"}, ["el"] = {"Greagish Noa-emshyragh (1453-)"}, ["en"] = {"Baarle"}, ["eo"] = {"Esperanto"}, ["es"] = {"Spaainish", "Cashteelish"}, ["et"] = {"Estaanish", "Estoinish", "Esthoinish"}, ["eu"] = {"Bascish"}, ["fa"] = {"Pershish"}, ["ff"] = {"Fulah"}, ["fi"] = {"Finnlynnish"}, ["fj"] = {"Fijian"}, ["fo"] = {"Faaroish"}, ["fr"] = {"Frangish"}, ["fy"] = {"Freeshlannish Heear"}, ["ga"] = {"Yernish", "Gaelg Nerin", "Gaelg ny h-Erin", "Gaelg Yernagh"}, ["gd"] = {"Gaelg ny h-Albey", "Gaelg Albinagh"}, ["gl"] = {"Galeeshish"}, ["gn"] = {"Guaranish"}, ["gu"] = {"Gujaratish"}, ["gv"] = {"Gaelg", "Gailck"}, ["ha"] = {"Hausish"}, ["he"] = {"Ewnish"}, ["hi"] = {"Hindish"}, ["ho"] = {"Hiri Motu"}, ["hr"] = {"Croitish"}, ["ht"] = {"Haitish", "Creeole Haiti"}, ["hu"] = {"Ungaarish"}, ["hy"] = {"Armeanish"}, ["hz"] = {"Hereroish"}, ["ia"] = {"Interlingua (International Auxiliary Language Association)"}, ["id"] = {"Indoneeshish"}, ["ie"] = {"Interlingue", "Occidental"}, ["ig"] = {"Igbo"}, ["ii"] = {"Sichuan Yi", "Nuosu"}, ["ik"] = {"Inupiaq"}, ["io"] = {"Idoish"}, ["is"] = {"Eeslynnish"}, ["it"] = {"Iddaalish"}, ["iu"] = {"Inuktitut"}, ["ja"] = {"Shapaanish"}, ["jv"] = {"Javish", "basa Jawa"}, ["ka"] = {"Shorshish"}, ["kg"] = {"Kongoish"}, ["ki"] = {"Kikuyuish", "Gikuyu"}, ["kj"] = {"Kuanyamish", "Kwanyama"}, ["kk"] = {"Kassaghish"}, ["kl"] = {"Kalaallisut", "Greenlynnish"}, ["km"] = {"Khmerish", "Khmerish Veanagh"}, ["kn"] = {"Kannada"}, ["ko"] = {"Koreeish"}, ["kr"] = {"Kanurish"}, ["ks"] = {"Kashmirish"}, ["ku"] = {"Kurdish"}, ["kv"] = {"Komish"}, ["kw"] = {"Cornish"}, ["ky"] = {"Kyrgish"}, ["la"] = {"Ladjyn"}, ["lb"] = {"Lucsemburgish", "Letzeburgesch"}, ["lg"] = {"Ganda", "Luganda"}, ["li"] = {"Limburgish"}, ["ln"] = {"Lingalish"}, ["lo"] = {"Laoish"}, ["lt"] = {"Litaanish"}, ["lu"] = {"Luba-Katanga"}, ["lv"] = {"Latvish"}, ["mg"] = {"Malagasish"}, ["mh"] = {"Marshylish"}, ["mi"] = {"Maorish"}, ["mk"] = {"Massadoanish"}, ["ml"] = {"Malayalamish"}, ["mn"] = {"Mongoilish"}, ["mr"] = {"Marathish"}, ["ms"] = {"Malayish (mooar-hengey)"}, ["mt"] = {"Maltish"}, ["my"] = {"Burmish"}, ["na"] = {"Nauru"}, ["nb"] = {"Bokmål Norlynnagh"}, ["nd"] = {"Ndebele Hwoaie"}, ["ne"] = {"Nepaalish"}, ["ng"] = {"Ndonga"}, ["nl"] = {"Ollanish", "Flandrynish"}, ["nn"] = {"Nynorsk Norlynnagh"}, ["no"] = {"Norlynnish"}, ["nr"] = {"Ndebele Yiass"}, ["nv"] = {"Navahoish", "Navajo", "Navaho"}, ["ny"] = {"Chewish", "Nyanja", "Chewa", "Chichewa"}, ["oc"] = {"Ocsitaanish (lurg 1500)"}, ["oj"] = {"Ojibwa"}, ["om"] = {"Oromoish"}, ["or"] = {"Oriyish (mooar-hengey)", "Odish (mooar-hengey)"}, ["os"] = {"Ossetish"}, ["pa"] = {"Panjabish", "Punjabish"}, ["pi"] = {"Palish"}, ["pl"] = {"Polynnish"}, ["ps"] = {"Pushtish", "Pashtish"}, ["pt"] = {"Portiugish"}, ["qu"] = {"Quechua"}, ["rm"] = {"Romansh", "Romanshish"}, ["rn"] = {"Rundish"}, ["ro"] = {"Romaanish", "Romaainish", "Moldaavish", "Moldovish"}, ["ru"] = {"Rooshish"}, ["rw"] = {"Kinyarooandish"}, ["sa"] = {"Sanskrit"}, ["sc"] = {"Sardeenish"}, ["sd"] = {"Sindhish"}, ["se"] = {"Saamish Hwoaie"}, ["sg"] = {"Sangoish"}, ["sh"] = {"Serbo-Chroitish"}, ["si"] = {"Sinhalish"}, ["sk"] = {"Slovackish"}, ["sl"] = {"Sloveanish"}, ["sm"] = {"Samoish"}, ["sn"] = {"Shonish"}, ["so"] = {"Somaalish"}, ["sq"] = {"Albaanish"}, ["sr"] = {"Serbish"}, ["ss"] = {"Swassish"}, ["st"] = {"Sotoish Yiass"}, ["su"] = {"Sundanish"}, ["sv"] = {"Soolynnish"}, ["sw"] = {"Swahilish (mooar-hengey)"}, ["ta"] = {"Tamilish"}, ["te"] = {"Teloogooish"}, ["tg"] = {"Tajikish"}, ["th"] = {"Thai"}, ["ti"] = {"Tigrinyish"}, ["tk"] = {"Turkmenish"}, ["tl"] = {"Tagalogish"}, ["tn"] = {"Tswaanish"}, ["to"] = {"Tonga (Ellanyn y Tongey)"}, ["tr"] = {"Turkish"}, ["ts"] = {"Tsongish"}, ["tt"] = {"Tatarish"}, ["tw"] = {"Twi"}, ["ty"] = {"Tahitish"}, ["ug"] = {"Uighurish", "Uyghurish"}, ["uk"] = {"Ookraanish"}, ["ur"] = {"Oordooish"}, ["uz"] = {"Oosbeckish"}, ["ve"] = {"Vendish"}, ["vi"] = {"Vietnamish"}, ["vo"] = {"Volapük"}, ["wa"] = {"Walloonish"}, ["wo"] = {"Wolofish"}, ["xh"] = {"Xhosa"}, ["yi"] = {"Ewdish"}, ["yo"] = {"Yorubish"}, ["za"] = {"Zhuang", "Chuang"}, ["zh"] = {"Sheenish"}, ["zu"] = {"Soolooish"}, ["aaa"] = {"Ghotuo"}, ["aab"] = {"Alumu-Tesu"}, ["aac"] = {"Ari"}, ["aad"] = {"Amal"}, ["aae"] = {"Albaanish Arbëreshë"}, ["aaf"] = {"Aranadanish"}, ["aag"] = {"Ambrakish"}, ["aah"] = {"Abu' Arapesh"}, ["aai"] = {"Arifama-Miniafia"}, ["aak"] = {"Ankave"}, ["aal"] = {"Afade"}, ["aan"] = {"Anambé"}, ["aao"] = {"Arabish Algearagh y Tahara"}, ["aap"] = {"Pará Arára"}, ["aaq"] = {"Abnakish Hiar"}, ["aas"] = {"Aasáx"}, ["aat"] = {"Albaanish Arvanitika"}, ["aau"] = {"Abau"}, ["aav"] = {"çhengaghyn Austro-Aishanagh"}, ["aaw"] = {"Solong"}, ["aax"] = {"Mandobo Atas"}, ["aaz"] = {"Amarasish"}, ["aba"] = {"Abé"}, ["abb"] = {"Bankonish"}, ["abc"] = {"Ambala Ayta"}, ["abd"] = {"Manide"}, ["abe"] = {"Abnakish Heear"}, ["abf"] = {"Abai Sungai"}, ["abg"] = {"Abaga"}, ["abh"] = {"Arabish Hajikagh"}, ["abi"] = {"Abidji"}, ["abj"] = {"Aka-Bea"}, ["abl"] = {"Lampung Nyo"}, ["abm"] = {"Abanyom"}, ["abn"] = {"Abua"}, ["abo"] = {"Abon"}, ["abp"] = {"Abellen Ayta"}, ["abq"] = {"Abaza"}, ["abr"] = {"Abron"}, ["abs"] = {"Ambonese Malay"}, ["abt"] = {"Ambulas"}, ["abu"] = {"Abure"}, ["abv"] = {"Baharna Arabic"}, ["abw"] = {"Pal"}, ["abx"] = {"Inabaknon"}, ["aby"] = {"Aneme Wake"}, ["abz"] = {"Abui"}, ["aca"] = {"Achagua"}, ["acb"] = {"Áncá"}, ["acd"] = {"Gikyode"}, ["ace"] = {"Achinish"}, ["acf"] = {"Creeole Frangish Noo Lucia"}, ["ach"] = {"Acoli"}, ["aci"] = {"Aka-Cari"}, ["ack"] = {"Aka-Kora"}, ["acl"] = {"Akar-Bale"}, ["acm"] = {"Arabish Vesopotaamagh"}, ["acn"] = {"Achang"}, ["acp"] = {"Acipa Hiar"}, ["acq"] = {"Ta'izzi-Adeni Arabic"}, ["acr"] = {"Achi"}, ["acs"] = {"Acroá"}, ["act"] = {"Achterhoeks"}, ["acu"] = {"Achuar-Shiwiar"}, ["acv"] = {"Achumawi"}, ["acw"] = {"Arabish Hijaz"}, ["acx"] = {"Arabish Omaanagh"}, ["acy"] = {"Arabish Cheepragh"}, ["acz"] = {"Acheron"}, ["ada"] = {"Adangme"}, ["adb"] = {"Atauran"}, ["add"] = {"Lidzonka", "Dzodinka"}, ["ade"] = {"Adele"}, ["adf"] = {"Arabish Dhofari"}, ["adg"] = {"Andegerebinha"}, ["adh"] = {"Adhola"}, ["adi"] = {"Adi"}, ["adj"] = {"Adioukrou"}, ["adl"] = {"Galo"}, ["adn"] = {"Adang"}, ["ado"] = {"Abu"}, ["adq"] = {"Adangbe"}, ["adr"] = {"Adonara"}, ["ads"] = {"Çhengey Chowree Adamorobe"}, ["adt"] = {"Adnyamathanha"}, ["adu"] = {"Aduge"}, ["adw"] = {"Amundava"}, ["adx"] = {"Tibetish Amdo"}, ["ady"] = {"Adyghe", "Adygei"}, ["adz"] = {"Adzera"}, ["aea"] = {"Areba"}, ["aeb"] = {"arabish Hooneeshagh"}, ["aec"] = {"Arabish Saidi"}, ["aed"] = {"Çhengey Chowree Argenteenagh"}, ["aee"] = {"Pashai Hiar Hwoaie", "Pashayi Hiar Hwoaie"}, ["aek"] = {"Haeke"}, ["ael"] = {"Ambele"}, ["aem"] = {"Arem"}, ["aen"] = {"Çhengey Chowree Armeanagh"}, ["aeq"] = {"Aer"}, ["aer"] = {"Arrernte Hiar"}, ["aes"] = {"Alsea"}, ["aeu"] = {"Akeu"}, ["aew"] = {"Ambakich"}, ["aey"] = {"Amele"}, ["aez"] = {"Aeka"}, ["afa"] = {"çhengaghyn Affro-Aishanagh"}, ["afb"] = {"Arabish Cheayn yn Arabaght"}, ["afd"] = {"Andai"}, ["afe"] = {"Putukwam"}, ["afg"] = {"Çhengey Chowree Afghaanagh"}, ["afh"] = {"Afrihili"}, ["afi"] = {"Akrukay", "Chini"}, ["afk"] = {"Nanubae"}, ["afn"] = {"Defaka"}, ["afo"] = {"Eloyi"}, ["afp"] = {"Tapei"}, ["afs"] = {"Creeole Affro-Seminolagh"}, ["aft"] = {"Afitti"}, ["afu"] = {"Awutu"}, ["afz"] = {"Obokuitai"}, ["aga"] = {"Aguano"}, ["agb"] = {"Legbo"}, ["agc"] = {"Agatu"}, ["agd"] = {"Agarabi"}, ["age"] = {"Angal"}, ["agf"] = {"Arguni"}, ["agg"] = {"Angor"}, ["agh"] = {"Ngelima"}, ["agi"] = {"Agariya"}, ["agj"] = {"Argobba"}, ["agk"] = {"Isarog Agta"}, ["agl"] = {"Fembe"}, ["agm"] = {"Angaataha"}, ["agn"] = {"Agutaynen"}, ["ago"] = {"Tainae"}, ["agq"] = {"Aghem"}, ["agr"] = {"Aguaruna"}, ["ags"] = {"Esimbi"}, ["agt"] = {"Cagayan Agta Meanagh"}, ["agu"] = {"Aguacateco"}, ["agv"] = {"Remontado Dumagat"}, ["agw"] = {"Kahua"}, ["agx"] = {"Aghul"}, ["agy"] = {"Alta Yiass"}, ["agz"] = {"Mt. Iriga Agta"}, ["aha"] = {"Ahanta"}, ["ahb"] = {"Axamb"}, ["ahg"] = {"Qimant"}, ["ahh"] = {"Aghu"}, ["ahi"] = {"Tiagbamrin Aizi"}, ["ahk"] = {"Akha"}, ["ahl"] = {"Igo"}, ["ahm"] = {"Mobumrin Aizi"}, ["ahn"] = {"Àhàn"}, ["aho"] = {"Ahom"}, ["ahp"] = {"Aproumu Aizi"}, ["ahr"] = {"Ahirani"}, ["ahs"] = {"Ashe"}, ["aht"] = {"Ahtena"}, ["aia"] = {"Arosi"}, ["aib"] = {"Ainu (y Çheen)"}, ["aic"] = {"Ainbai"}, ["aid"] = {"Alngith"}, ["aie"] = {"Amara"}, ["aif"] = {"Agi"}, ["aig"] = {"Creeole Baarle Antigua as Barbuda"}, ["aih"] = {"Ai-Cham"}, ["aii"] = {"Noa-Aramaaish Assyriagh"}, ["aij"] = {"Lishanid Noshan"}, ["aik"] = {"Ake"}, ["ail"] = {"Aimele"}, ["aim"] = {"Aimol"}, ["ain"] = {"Ainu (y Çhapaan)"}, ["aio"] = {"Aiton"}, ["aip"] = {"Burumakok"}, ["aiq"] = {"Aimaq"}, ["air"] = {"Airoran"}, ["ait"] = {"Arikem"}, ["aiw"] = {"Aari"}, ["aix"] = {"Aighon"}, ["aiy"] = {"Ali"}, ["aja"] = {"Aja (y Toodaan Yiass)"}, ["ajg"] = {"Aja (Benin)"}, ["aji"] = {"Ajië"}, ["ajn"] = {"Andajin"}, ["ajs"] = {"Algerian Jewish Sign Language"}, ["aju"] = {"Judeo-Moroccan Arabic"}, ["ajw"] = {"Ajawa"}, ["ajz"] = {"Amri Karbi"}, ["akb"] = {"Batak Angkola"}, ["akc"] = {"Mpur"}, ["akd"] = {"Ukpet-Ehom"}, ["ake"] = {"Akawaio"}, ["akf"] = {"Akpa"}, ["akg"] = {"Anakalangu"}, ["akh"] = {"Angal Heneng"}, ["aki"] = {"Aiome"}, ["akj"] = {"Aka-Jeru"}, ["akk"] = {"Akkadian"}, ["akl"] = {"Aklanon"}, ["akm"] = {"Aka-Bo"}, ["ako"] = {"Akurio"}, ["akp"] = {"Siwu"}, ["akq"] = {"Ak"}, ["akr"] = {"Araki"}, ["aks"] = {"Akaselem"}, ["akt"] = {"Akolet"}, ["aku"] = {"Akum"}, ["akv"] = {"Akhvakh"}, ["akw"] = {"Akwa"}, ["akx"] = {"Aka-Kede"}, ["aky"] = {"Aka-Kol"}, ["akz"] = {"Alabama"}, ["ala"] = {"Alago"}, ["alc"] = {"Qawasqar"}, ["ald"] = {"Alladian"}, ["ale"] = {"Aleutagh"}, ["alf"] = {"Alege"}, ["alg"] = {"çhengaghyn Algonquiagh"}, ["alh"] = {"Alawa"}, ["ali"] = {"Amaimon"}, ["alj"] = {"Alangan"}, ["alk"] = {"Alak"}, ["all"] = {"Allar"}, ["alm"] = {"Amblong"}, ["aln"] = {"Albaanish Gheg"}, ["alo"] = {"Larike-Wakasihu"}, ["alp"] = {"Alune"}, ["alq"] = {"Algonquin"}, ["alr"] = {"Alutorish"}, ["als"] = {"Albaanish Tosk"}, ["alt"] = {"Altayish Yiass"}, ["alu"] = {"'Are'are"}, ["alv"] = {"çhengaghyn Atlantagh-Congo"}, ["alw"] = {"Alaba-K’abeena", "Wanbasana"}, ["alx"] = {"Amol"}, ["aly"] = {"Alyawarr"}, ["alz"] = {"Alur"}, ["ama"] = {"Amanayé"}, ["amb"] = {"Ambo"}, ["amc"] = {"Amahuaca"}, ["ame"] = {"Yanesha'"}, ["amf"] = {"Hamer-Banna"}, ["amg"] = {"Amurdak"}, ["ami"] = {"Amis"}, ["amj"] = {"Amdang"}, ["amk"] = {"Ambai"}, ["aml"] = {"War-Jaintia"}, ["amm"] = {"Ama (Papooey Guinea Noa)"}, ["amn"] = {"Amanab"}, ["amo"] = {"Amo"}, ["amp"] = {"Alamblak"}, ["amq"] = {"Amahai"}, ["amr"] = {"Amarakaeri"}, ["ams"] = {"Amami-Oshima Yiass"}, ["amt"] = {"Amto"}, ["amu"] = {"Guerrero Amuzgo"}, ["amv"] = {"Ambelau"}, ["amw"] = {"Noa-Aramaaish Heear"}, ["amx"] = {"Anmatyerre"}, ["amy"] = {"Ami"}, ["amz"] = {"Atampaya"}, ["ana"] = {"Andaqui"}, ["anb"] = {"Andoa"}, ["anc"] = {"Ngas"}, ["and"] = {"Ansus"}, ["ane"] = {"Xârâcùù"}, ["anf"] = {"Animere"}, ["ang"] = {"Shenn Vaarle (ca. 450-1100)"}, ["anh"] = {"Nend"}, ["ani"] = {"Andi"}, ["anj"] = {"Anor"}, ["ank"] = {"Goemai"}, ["anl"] = {"Anu-Hkongso Chin"}, ["anm"] = {"Anal"}, ["ann"] = {"Obolo"}, ["ano"] = {"Andoque"}, ["anp"] = {"Angika"}, ["anq"] = {"Jarawa (yn Injey)"}, ["anr"] = {"Andh"}, ["ans"] = {"Anserma"}, ["ant"] = {"Antakarinya", "Antikarinya"}, ["anu"] = {"Anuak"}, ["anv"] = {"Denya"}, ["anw"] = {"Anaang"}, ["anx"] = {"Andra-Hus"}, ["any"] = {"Anyin"}, ["anz"] = {"Anem"}, ["aoa"] = {"Angolar"}, ["aob"] = {"Abom"}, ["aoc"] = {"Pemon"}, ["aod"] = {"Andarum"}, ["aoe"] = {"Angal Enen"}, ["aof"] = {"Bragat"}, ["aog"] = {"Angoram"}, ["aoi"] = {"Anindilyakwa"}, ["aoj"] = {"Mufian"}, ["aok"] = {"Arhö"}, ["aol"] = {"Alor"}, ["aom"] = {"Ömie"}, ["aon"] = {"Bumbita Arapesh"}, ["aor"] = {"Aore"}, ["aos"] = {"Taikat"}, ["aot"] = {"Atong (yn Injey)", "A'tong"}, ["aou"] = {"A'ou"}, ["aox"] = {"Atorada"}, ["aoz"] = {"Uab Meto"}, ["apa"] = {"çhengaghyn Apaçheeagh"}, ["apb"] = {"Sa'a"}, ["apc"] = {"Arabish Levaantagh"}, ["apd"] = {"Arabish Hoodaanagh"}, ["ape"] = {"Bukiyip"}, ["apf"] = {"Pahanan Agta"}, ["apg"] = {"Ampanang"}, ["aph"] = {"Athpariya"}, ["api"] = {"Apiaká"}, ["apj"] = {"Apaçheeish Jicarilla"}, ["apk"] = {"Apaçheeish Kiowa"}, ["apl"] = {"Apaçheeish Lipan"}, ["apm"] = {"Apaçheeish Mescalero-Chiricahua"}, ["apn"] = {"Apinayé"}, ["apo"] = {"Ambul"}, ["app"] = {"Apma"}, ["apq"] = {"A-Pucikwar"}, ["apr"] = {"Arop-Lokep"}, ["aps"] = {"Arop-Sissano"}, ["apt"] = {"Apatanish"}, ["apu"] = {"Apurinã"}, ["apv"] = {"Alapmunte"}, ["apw"] = {"Apaçheeish Heear"}, ["apx"] = {"Aputai"}, ["apy"] = {"Apalaí"}, ["apz"] = {"Safeyoka"}, ["aqa"] = {"çhengaghyn Alacalufan"}, ["aqc"] = {"Archi"}, ["aqd"] = {"Ampari Dogon"}, ["aqg"] = {"Arigidi"}, ["aqk"] = {"Aninka"}, ["aql"] = {"çhengaghyn Algagh"}, ["aqm"] = {"Atohwaim"}, ["aqn"] = {"Alta Hwoaie"}, ["aqp"] = {"Atakapa"}, ["aqr"] = {"Arhâ"}, ["aqt"] = {"Angaité"}, ["aqz"] = {"Akuntsu"}, ["arb"] = {"Arabish Stundayrtit"}, ["arc"] = {"Aramaaish Oikoil (700-300 RC)", "Aramaaish Impiroil (700-300 RC)"}, ["ard"] = {"Arabana"}, ["are"] = {"Arrarnta Heear"}, ["arh"] = {"Arhuaco"}, ["ari"] = {"Arikara"}, ["arj"] = {"Arapaso"}, ["ark"] = {"Arikapú"}, ["arl"] = {"Arabela"}, ["arn"] = {"Mapudungunish", "Mapuçhish"}, ["aro"] = {"Araona"}, ["arp"] = {"Arapahoish"}, ["arq"] = {"Arabish Algearagh"}, ["arr"] = {"Karo (y Vrasseel)"}, ["ars"] = {"Arabish Najdi"}, ["art"] = {"Çhengaghyn ellynagh"}, ["aru"] = {"Aruá (Steat Amazonas)", "Arawá"}, ["arv"] = {"Arbore"}, ["arw"] = {"Arawak"}, ["arx"] = {"Aruá (Steat Rodonia)"}, ["ary"] = {"Arabish Varocagh"}, ["arz"] = {"Arabish Egyptagh"}, ["asa"] = {"Asu (Tanzania)"}, ["asb"] = {"Assiniboine"}, ["asc"] = {"Casuarina Coast Asmat"}, ["ase"] = {"Çhengey Chowree Americaanagh"}, ["asf"] = {"Auslan", "Çhengey Chowree Austrailagh"}, ["asg"] = {"Cishingini"}, ["ash"] = {"Abishira"}, ["asi"] = {"Buruwai"}, ["asj"] = {"Sari"}, ["ask"] = {"Ashkun"}, ["asl"] = {"Asilulu"}, ["asn"] = {"Xingú Asuriní"}, ["aso"] = {"Dano"}, ["asp"] = {"Çhengey Chowree Algearagh"}, ["asq"] = {"Çhengey Chowree Austrailagh"}, ["asr"] = {"Asuri"}, ["ass"] = {"Ipulo"}, ["ast"] = {"Astoorish", "Astoorleonish", "Bable", "Leonish"}, ["asu"] = {"Tocantins Asurini"}, ["asv"] = {"Asoa"}, ["asw"] = {"Çhengey Chowree Vun-dooghyssee yn Austrail"}, ["asx"] = {"Muratayak"}, ["asy"] = {"Yaosakor Asmat"}, ["asz"] = {"As"}, ["ata"] = {"Pele-Ata"}, ["atb"] = {"Zaiwa"}, ["atc"] = {"Atsahuaca"}, ["atd"] = {"Ata Manobo"}, ["ate"] = {"Atemble"}, ["atg"] = {"Ivbie North-Okpela-Arhe"}, ["ath"] = {"çhengaghyn Athapascagh"}, ["ati"] = {"Attié"}, ["atj"] = {"Atikamekw"}, ["atk"] = {"Ati"}, ["atl"] = {"Mt. Iraya Agta"}, ["atm"] = {"Ata"}, ["atn"] = {"Ashtiani"}, ["ato"] = {"Atong (Cameroon)"}, ["atp"] = {"Pudtol Atta"}, ["atq"] = {"Aralle-Tabulahan"}, ["atr"] = {"Waimiri-Atroari"}, ["ats"] = {"Gros Ventre"}, ["att"] = {"Pamplona Atta"}, ["atu"] = {"Reel"}, ["atv"] = {"Altayish Hwoaie"}, ["atw"] = {"Atsugewi"}, ["atx"] = {"Arutani"}, ["aty"] = {"Aneityum"}, ["atz"] = {"Arta"}, ["aua"] = {"Asumboa"}, ["aub"] = {"Alugu"}, ["auc"] = {"Waorani"}, ["aud"] = {"Anuta"}, ["auf"] = {"çhengaghyn Arauagh"}, ["aug"] = {"Aguna"}, ["auh"] = {"Aushi"}, ["aui"] = {"Anuki"}, ["auj"] = {"Awjilah"}, ["auk"] = {"Heyo"}, ["aul"] = {"Aulua"}, ["aum"] = {"Asu (y Naigeer)"}, ["aun"] = {"Molmo One"}, ["auo"] = {"Auyokawa"}, ["aup"] = {"Makayam"}, ["auq"] = {"Anus", "Korur"}, ["aur"] = {"Aruek"}, ["aus"] = {"çhengaghyn Austrailagh"}, ["aut"] = {"Austral"}, ["auu"] = {"Auye"}, ["auw"] = {"Awyi"}, ["aux"] = {"Aurá"}, ["auy"] = {"Awiyaana"}, ["auz"] = {"Arabish Oosbeckagh"}, ["avb"] = {"Avau"}, ["avd"] = {"Alviri-Vidari"}, ["avi"] = {"Avikam"}, ["avk"] = {"Kotava"}, ["avl"] = {"Arabish Bedawi Egyptagh Hiar"}, ["avm"] = {"Angkamuthi"}, ["avn"] = {"Avatime"}, ["avo"] = {"Agavotaguerra"}, ["avs"] = {"Aushiri"}, ["avt"] = {"Au"}, ["avu"] = {"Avokaya"}, ["avv"] = {"Avá-Canoeiro"}, ["awa"] = {"Awadhi"}, ["awb"] = {"Awa (Papooey Guinea Noa)"}, ["awc"] = {"Cicipu"}, ["awd"] = {"çhengaghyn Arawakagh"}, ["awe"] = {"Awetí"}, ["awg"] = {"Anguthimri"}, ["awh"] = {"Awbono"}, ["awi"] = {"Aekyom"}, ["awk"] = {"Awabakal"}, ["awm"] = {"Arawum"}, ["awn"] = {"Awngi"}, ["awo"] = {"Awak"}, ["awr"] = {"Awera"}, ["aws"] = {"Awyu Yiass"}, ["awt"] = {"Araweté"}, ["awu"] = {"Awyu Meanagh"}, ["awv"] = {"Jair Awyu"}, ["aww"] = {"Awun"}, ["awx"] = {"Awara"}, ["awy"] = {"Edera Awyu"}, ["axb"] = {"Abipon"}, ["axe"] = {"Ayerrerenge"}, ["axg"] = {"Mato Grosso Arára"}, ["axk"] = {"Yaka (Pobblaght yn Affrick Veanagh)"}, ["axl"] = {"Arandish Yiass Injil"}, ["axm"] = {"Armeanish Veanagh"}, ["axx"] = {"Xârâgurè"}, ["aya"] = {"Awar"}, ["ayb"] = {"Ayizo Gbe"}, ["ayc"] = {"Aymarish Yiass"}, ["ayd"] = {"Ayabadhu"}, ["aye"] = {"Ayere"}, ["ayg"] = {"Ginyanga"}, ["ayh"] = {"Arabish Hadram"}, ["ayi"] = {"Leyigha"}, ["ayk"] = {"Akuku"}, ["ayl"] = {"Arabish Leebagh"}, ["ayn"] = {"Arabish Sanaanagh"}, ["ayo"] = {"Ayoreo"}, ["ayp"] = {"Arabish Vesopotaamagh Hwoaie"}, ["ayq"] = {"Ayi (Papooey Guinea Noa)"}, ["ayr"] = {"Aymarish Veanagh"}, ["ays"] = {"Sorsogon Ayta"}, ["ayt"] = {"Magbukun Ayta"}, ["ayu"] = {"Ayu"}, ["ayz"] = {"Mai Brat"}, ["aza"] = {"Azha"}, ["azb"] = {"Asserbajaanish Yiass"}, ["azc"] = {"çhengaghyn Uto-Asteckagh"}, ["azd"] = {"Nahuatl Durango Hiar"}, ["azg"] = {"San Pedro Amuzgos Amuzgo"}, ["azj"] = {"Asserbajaanish Hwoaie"}, ["azm"] = {"Ipalapa Amuzgo"}, ["azn"] = {"Nahuatl Durango Heear"}, ["azo"] = {"Awing"}, ["azt"] = {"Faire Atta"}, ["azz"] = {"Nahuatl Puebla Sleitoil"}, ["baa"] = {"Babatana"}, ["bab"] = {"Bainouk-Gunyuño"}, ["bac"] = {"Badui"}, ["bad"] = {"çhengaghyn Banda"}, ["bae"] = {"Baré"}, ["baf"] = {"Nubaca"}, ["bag"] = {"Tuki"}, ["bah"] = {"Creeole Baarle ny Bahamaghyn"}, ["bai"] = {"çhengaghyn Bamileke"}, ["baj"] = {"Barakai"}, ["bal"] = {"Balooçhish"}, ["ban"] = {"Balinish"}, ["bao"] = {"Waimaha"}, ["bap"] = {"Bantawa"}, ["bar"] = {"Baveyrish"}, ["bas"] = {"Basa (Cameroon)"}, ["bat"] = {"çhengaghyn Baltagh"}, ["bau"] = {"Bada (y Naigeer)"}, ["bav"] = {"Vengo"}, ["baw"] = {"Bambili-Bambui"}, ["bax"] = {"Bamun"}, ["bay"] = {"Batuley"}, ["bba"] = {"Baatonum"}, ["bbb"] = {"Barai"}, ["bbc"] = {"Batak Toba"}, ["bbd"] = {"Bau"}, ["bbe"] = {"Bangba"}, ["bbf"] = {"Baibai"}, ["bbg"] = {"Barama"}, ["bbh"] = {"Bugan"}, ["bbi"] = {"Barombi"}, ["bbj"] = {"Ghomálá'"}, ["bbk"] = {"Babanki"}, ["bbl"] = {"Bats"}, ["bbm"] = {"Babango"}, ["bbn"] = {"Uneapa"}, ["bbo"] = {"Bobo Madaré Hwoaie", "Konabéré"}, ["bbp"] = {"Banda Veanagh Heear"}, ["bbq"] = {"Bamali"}, ["bbr"] = {"Girawa"}, ["bbs"] = {"Bakpinka"}, ["bbt"] = {"Mburku"}, ["bbu"] = {"Kulung (y Naigeer)"}, ["bbv"] = {"Karnai"}, ["bbw"] = {"Baba"}, ["bbx"] = {"Bubia"}, ["bby"] = {"Befang"}, ["bca"] = {"Bai Meanagh"}, ["bcb"] = {"Bainouk-Samik"}, ["bcc"] = {"Balooçhish Yiass"}, ["bcd"] = {"Babar Hwoaie"}, ["bce"] = {"Bamenyam"}, ["bcf"] = {"Bamu"}, ["bcg"] = {"Baga Pokur"}, ["bch"] = {"Bariai"}, ["bci"] = {"Baoulé"}, ["bcj"] = {"Bardi"}, ["bck"] = {"Bunuba"}, ["bcl"] = {"Bikolish Veanagh"}, ["bcm"] = {"Bannoni"}, ["bcn"] = {"Bali (y Naigeer)"}, ["bco"] = {"Kaluli"}, ["bcp"] = {"Bali (Pobblaght Gheynlagh y Chongo)"}, ["bcq"] = {"Bench"}, ["bcr"] = {"Babine"}, ["bcs"] = {"Kohumono"}, ["bct"] = {"Bendi"}, ["bcu"] = {"Awad Bing"}, ["bcv"] = {"Shoo-Minda-Nye"}, ["bcw"] = {"Bana"}, ["bcy"] = {"Bacama"}, ["bcz"] = {"Bainouk-Gunyaamolo"}, ["bda"] = {"Bayot"}, ["bdb"] = {"Basap"}, ["bdc"] = {"Emberá-Baudó"}, ["bdd"] = {"Bunama"}, ["bde"] = {"Bade"}, ["bdf"] = {"Biage"}, ["bdg"] = {"Bonggi"}, ["bdh"] = {"Baka (y Toodaan Yiass)"}, ["bdi"] = {"Burun"}, ["bdj"] = {"Bai (y Toodaan Yiass)", "Bai"}, ["bdk"] = {"Budukh"}, ["bdl"] = {"Bajau Indoneeshagh"}, ["bdm"] = {"Buduma"}, ["bdn"] = {"Baldemu"}, ["bdo"] = {"Morom"}, ["bdp"] = {"Bende"}, ["bdq"] = {"Bahnar"}, ["bdr"] = {"Bajau y Choose Heear"}, ["bds"] = {"Burunge"}, ["bdt"] = {"Bokoto"}, ["bdu"] = {"Oroko"}, ["bdv"] = {"Bodo Parja"}, ["bdw"] = {"Baham"}, ["bdx"] = {"Budong-Budong"}, ["bdy"] = {"Bandjalang"}, ["bdz"] = {"Badeshi"}, ["bea"] = {"Beaver"}, ["beb"] = {"Bebele"}, ["bec"] = {"Iceve-Maci"}, ["bed"] = {"Bedoanas"}, ["bee"] = {"Byangsi"}, ["bef"] = {"Benabena"}, ["beg"] = {"Belait"}, ["beh"] = {"Biali"}, ["bei"] = {"Bekati'"}, ["bej"] = {"Beja", "Bedawiyet"}, ["bek"] = {"Bebeli"}, ["bem"] = {"Bemba (y Tambia)"}, ["beo"] = {"Beami"}, ["bep"] = {"Besoa"}, ["beq"] = {"Beembe"}, ["ber"] = {"çhengaghyn Berberagh"}, ["bes"] = {"Besme"}, ["bet"] = {"Guiberoua Béte"}, ["beu"] = {"Blagar"}, ["bev"] = {"Daloa Bété"}, ["bew"] = {"Betawi"}, ["bex"] = {"Jur Modo"}, ["bey"] = {"Beli (Papooey Guinea Noa)"}, ["bez"] = {"Bena (Tanzania)"}, ["bfa"] = {"Bari"}, ["bfb"] = {"Pauri Bareli"}, ["bfc"] = {"Panyi Bai", "Bai Hwoaie"}, ["bfd"] = {"Bafut"}, ["bfe"] = {"Betaf", "Tena"}, ["bff"] = {"Bofi"}, ["bfg"] = {"Busang Kayan"}, ["bfh"] = {"Blafe"}, ["bfi"] = {"Çhengey Chowree Ghoaldagh"}, ["bfj"] = {"Bafanji"}, ["bfk"] = {"Çhengey Chowree Ban Khor"}, ["bfl"] = {"Banda-Ndélé"}, ["bfm"] = {"Mmen"}, ["bfn"] = {"Bunak"}, ["bfo"] = {"Malba Birifor"}, ["bfp"] = {"Beba"}, ["bfq"] = {"Badaga"}, ["bfr"] = {"Bazigar"}, ["bfs"] = {"Bai Yiass"}, ["bft"] = {"Balti"}, ["bfu"] = {"Gahri"}, ["bfw"] = {"Bondo"}, ["bfx"] = {"Bantayanon"}, ["bfy"] = {"Bagheli"}, ["bfz"] = {"Mahasu Pahari"}, ["bga"] = {"Gwamhi-Wuri"}, ["bgb"] = {"Bobongko"}, ["bgc"] = {"Haryanvi"}, ["bgd"] = {"Rathwi Bareli"}, ["bge"] = {"Bauria"}, ["bgf"] = {"Bangandu"}, ["bgg"] = {"Bugun"}, ["bgi"] = {"Giangan"}, ["bgj"] = {"Bangolan"}, ["bgk"] = {"Bit", "Buxinhua"}, ["bgl"] = {"Bo (y Laos)"}, ["bgn"] = {"Balooçhish"}, ["bgo"] = {"Baga Koga"}, ["bgp"] = {"Balooçhish Hiar"}, ["bgq"] = {"Bagri"}, ["bgr"] = {"Bawm Chin"}, ["bgs"] = {"Tagabawa"}, ["bgt"] = {"Bughotu"}, ["bgu"] = {"Mbongno"}, ["bgv"] = {"Warkay-Bipim"}, ["bgw"] = {"Bhatri"}, ["bgx"] = {"Turkish Ghaugaussagh Balkanagh"}, ["bgy"] = {"Benggoi"}, ["bgz"] = {"Banggai"}, ["bha"] = {"Bharia"}, ["bhb"] = {"Bhili"}, ["bhc"] = {"Biga"}, ["bhd"] = {"Bhadrawahi"}, ["bhe"] = {"Bhaya"}, ["bhf"] = {"Odiai"}, ["bhg"] = {"Binandere"}, ["bhh"] = {"Bukharic"}, ["bhi"] = {"Bhilali"}, ["bhj"] = {"Bahing"}, ["bhl"] = {"Bimin"}, ["bhm"] = {"Bathari"}, ["bhn"] = {"Noa-Aramaaish Bohtan"}, ["bho"] = {"Bhojpuri"}, ["bhp"] = {"Bima"}, ["bhq"] = {"Tukang Besi South"}, ["bhr"] = {"Bara Malagasy"}, ["bhs"] = {"Buwal"}, ["bht"] = {"Bhattiyali"}, ["bhu"] = {"Bhunjia"}, ["bhv"] = {"Bahau"}, ["bhw"] = {"Biak"}, ["bhx"] = {"Bhalay"}, ["bhy"] = {"Bhele"}, ["bhz"] = {"Bada (yn Indoneesh)"}, ["bia"] = {"Badimaya"}, ["bib"] = {"Bissa", "Bisa"}, ["bid"] = {"Bidiyo"}, ["bie"] = {"Bepour"}, ["bif"] = {"Biafada"}, ["big"] = {"Biangai"}, ["bik"] = {"Bikol"}, ["bil"] = {"Bile"}, ["bim"] = {"Bimoba"}, ["bin"] = {"Bini", "Edo"}, ["bio"] = {"Nai"}, ["bip"] = {"Bila"}, ["biq"] = {"Bipi"}, ["bir"] = {"Bisorio"}, ["bit"] = {"Berinomo"}, ["biu"] = {"Biete"}, ["biv"] = {"Birifor Yiass"}, ["biw"] = {"Kol (Cameroon)"}, ["bix"] = {"Bijori"}, ["biy"] = {"Birhor"}, ["biz"] = {"Baloi"}, ["bja"] = {"Budza"}, ["bjb"] = {"Banggarla"}, ["bjc"] = {"Bariji"}, ["bje"] = {"Biao-Jiao Mien"}, ["bjf"] = {"Barzani Jewish Neo-Aramaic"}, ["bjg"] = {"Bidyogo"}, ["bjh"] = {"Bahinemo"}, ["bji"] = {"Burji"}, ["bjj"] = {"Kanauji"}, ["bjk"] = {"Barok"}, ["bjl"] = {"Bulu (Papooey Guinea Noa)"}, ["bjm"] = {"Bajelani"}, ["bjn"] = {"Banjar"}, ["bjo"] = {"Banda Jiass Veanagh"}, ["bjp"] = {"Fanamaket"}, ["bjr"] = {"Binumarien"}, ["bjs"] = {"Bajan"}, ["bjt"] = {"Balanta-Ganja"}, ["bju"] = {"Busuu"}, ["bjv"] = {"Bedjond"}, ["bjw"] = {"Bakwé"}, ["bjx"] = {"Banao Itneg"}, ["bjy"] = {"Bayali"}, ["bjz"] = {"Baruga"}, ["bka"] = {"Kyak"}, ["bkc"] = {"Baka (Cameroon)"}, ["bkd"] = {"Binukid", "Talaandig"}, ["bkf"] = {"Beeke"}, ["bkg"] = {"Buraka"}, ["bkh"] = {"Bakoko"}, ["bki"] = {"Baki"}, ["bkj"] = {"Pande"}, ["bkk"] = {"Brokskat"}, ["bkl"] = {"Berik"}, ["bkm"] = {"Kom (Cameroon)"}, ["bkn"] = {"Bukitan"}, ["bko"] = {"Kwa'"}, ["bkp"] = {"Boko (Pobblaght Gheynlagh y Chongo)"}, ["bkq"] = {"Bakairí"}, ["bkr"] = {"Bakumpai"}, ["bks"] = {"Sorsoganon Hwoaie"}, ["bkt"] = {"Boloki"}, ["bku"] = {"Buhid"}, ["bkv"] = {"Bekwarra"}, ["bkw"] = {"Bekwel"}, ["bkx"] = {"Baikeno"}, ["bky"] = {"Bokyi"}, ["bkz"] = {"Bungku"}, ["bla"] = {"Siksika"}, ["blb"] = {"Bilua"}, ["blc"] = {"Bella Coola"}, ["bld"] = {"Bolango"}, ["ble"] = {"Balanta-Kentohe"}, ["blf"] = {"Buol"}, ["blh"] = {"Kuwaa"}, ["bli"] = {"Bolia"}, ["blj"] = {"Bolongan"}, ["blk"] = {"Pa'o Karen", "Pa'O"}, ["bll"] = {"Biloxi"}, ["blm"] = {"Beli (y Toodaan Yiass)"}, ["bln"] = {"Bikol Catanduanes Yiass"}, ["blo"] = {"Anii"}, ["blp"] = {"Blablanga"}, ["blq"] = {"Baluan-Pam"}, ["blr"] = {"Blang"}, ["bls"] = {"Balaesang"}, ["blt"] = {"Tai Dam"}, ["blv"] = {"Kibala", "Bolo"}, ["blw"] = {"Balangao"}, ["blx"] = {"Mag-Indi Ayta"}, ["bly"] = {"Notre"}, ["blz"] = {"Balantak"}, ["bma"] = {"Lame"}, ["bmb"] = {"Bembe"}, ["bmc"] = {"Biem"}, ["bmd"] = {"Baga Manduri"}, ["bme"] = {"Limassa"}, ["bmf"] = {"Bom-Kim"}, ["bmg"] = {"Bamwe"}, ["bmh"] = {"Kein"}, ["bmi"] = {"Bagirmi"}, ["bmj"] = {"Bote-Majhi"}, ["bmk"] = {"Ghayavi"}, ["bml"] = {"Bomboli"}, ["bmm"] = {"Malagasish Betsimisaraka Hwoaie"}, ["bmn"] = {"Bina (Papooey Guinea Noa)"}, ["bmo"] = {"Bambalang"}, ["bmp"] = {"Bulgebi"}, ["bmq"] = {"Bomu"}, ["bmr"] = {"Muinane"}, ["bms"] = {"Bilma Kanuri"}, ["bmt"] = {"Biao Mon"}, ["bmu"] = {"Somba-Siawari"}, ["bmv"] = {"Bum"}, ["bmw"] = {"Bomwali"}, ["bmx"] = {"Baimak"}, ["bmz"] = {"Baramu"}, ["bna"] = {"Bonerate"}, ["bnb"] = {"Bookan"}, ["bnc"] = {"Bontok"}, ["bnd"] = {"Banda (yn Indoneesh)"}, ["bne"] = {"Bintauna"}, ["bnf"] = {"Masiwang"}, ["bng"] = {"Benga"}, ["bni"] = {"Bangi"}, ["bnj"] = {"Tawbuid Hiar"}, ["bnk"] = {"Bierebo"}, ["bnl"] = {"Boon"}, ["bnm"] = {"Batanga"}, ["bnn"] = {"Bunun"}, ["bno"] = {"Bantoanon"}, ["bnp"] = {"Bola"}, ["bnq"] = {"Bantik"}, ["bnr"] = {"Butmas-Tur"}, ["bns"] = {"Bundeli"}, ["bnt"] = {"çhengaghyn Bantu"}, ["bnu"] = {"Bentong"}, ["bnv"] = {"Bonerif", "Beneraf", "Edwas"}, ["bnw"] = {"Bisis"}, ["bnx"] = {"Bangubangu"}, ["bny"] = {"Bintulu"}, ["bnz"] = {"Beezen"}, ["boa"] = {"Bora"}, ["bob"] = {"Aweer"}, ["boe"] = {"Mundabli"}, ["bof"] = {"Bolon"}, ["bog"] = {"Çhengey Chowree Bamako"}, ["boh"] = {"Boma"}, ["boi"] = {"Barbareño"}, ["boj"] = {"Anjam"}, ["bok"] = {"Bonjo"}, ["bol"] = {"Bole"}, ["bom"] = {"Berom"}, ["bon"] = {"Bine"}, ["boo"] = {"Tiemacèwè Bozo"}, ["bop"] = {"Bonkiman"}, ["boq"] = {"Bogaya"}, ["bor"] = {"Borôro"}, ["bot"] = {"Bongo"}, ["bou"] = {"Bondei"}, ["bov"] = {"Tuwuli"}, ["bow"] = {"Rema"}, ["box"] = {"Buamu"}, ["boy"] = {"Bodo (Pobblaght yn Affrick Veanagh)"}, ["boz"] = {"Tiéyaxo Bozo"}, ["bpa"] = {"Daakaka"}, ["bpc"] = {"Mbuk"}, ["bpd"] = {"Banda-Banda"}, ["bpe"] = {"Bauni"}, ["bpg"] = {"Bonggo"}, ["bph"] = {"Botlikh"}, ["bpi"] = {"Bagupi"}, ["bpj"] = {"Binji"}, ["bpk"] = {"Orowe", "'Ôrôê"}, ["bpl"] = {"Broome Pearling Lugger Pidgin"}, ["bpm"] = {"Biyom"}, ["bpn"] = {"Dzao Min"}, ["bpo"] = {"Anasi"}, ["bpp"] = {"Kaure"}, ["bpq"] = {"Malayish Banda"}, ["bpr"] = {"Koronadal Blaan"}, ["bps"] = {"Sarangani Blaan"}, ["bpt"] = {"Barrow Point"}, ["bpu"] = {"Bongu"}, ["bpv"] = {"Bian Marind"}, ["bpw"] = {"Bo (Papooey Guinea Noa)"}, ["bpx"] = {"Palya Bareli"}, ["bpy"] = {"Bishnupriya"}, ["bpz"] = {"Bilba"}, ["bqa"] = {"Tchumbuli"}, ["bqb"] = {"Bagusa"}, ["bqc"] = {"Boko (Benin)", "Boo"}, ["bqd"] = {"Bung"}, ["bqf"] = {"Baga Kaloum"}, ["bqg"] = {"Bago-Kusuntu"}, ["bqh"] = {"Baima"}, ["bqi"] = {"Bakhtiari"}, ["bqj"] = {"Bandial"}, ["bqk"] = {"Banda-Mbrès"}, ["bql"] = {"Bilakura"}, ["bqm"] = {"Wumboko"}, ["bqn"] = {"Çhengey Chowree Vulgeyragh"}, ["bqo"] = {"Balo"}, ["bqp"] = {"Busa"}, ["bqq"] = {"Biritai"}, ["bqr"] = {"Burusu"}, ["bqs"] = {"Bosngun"}, ["bqt"] = {"Bamukumbit"}, ["bqu"] = {"Boguru"}, ["bqv"] = {"Koro Wachi", "Begbere-Ejar"}, ["bqw"] = {"Buru (y Naigeer)"}, ["bqx"] = {"Baangi"}, ["bqy"] = {"Çhengey Chowree Bengkala"}, ["bqz"] = {"Bakaka"}, ["bra"] = {"Braj"}, ["brb"] = {"Brao", "Lave"}, ["brc"] = {"Creeole Ollanish Berbice"}, ["brd"] = {"Baraamu"}, ["brf"] = {"Bira"}, ["brg"] = {"Baure"}, ["brh"] = {"Brahui"}, ["bri"] = {"Mokpwe"}, ["brj"] = {"Bieria"}, ["brk"] = {"Birked"}, ["brl"] = {"Birwa"}, ["brm"] = {"Barambu"}, ["brn"] = {"Boruca"}, ["bro"] = {"Brokkat"}, ["brp"] = {"Barapasi"}, ["brq"] = {"Breri"}, ["brr"] = {"Birao"}, ["brs"] = {"Baras"}, ["brt"] = {"Bitare"}, ["bru"] = {"Bru Hiar"}, ["brv"] = {"Bru Heear"}, ["brw"] = {"Bellari"}, ["brx"] = {"Bodo (yn Injey)"}, ["bry"] = {"Burui"}, ["brz"] = {"Bilbil"}, ["bsa"] = {"Abinomn"}, ["bsb"] = {"Brunei Bisaya"}, ["bsc"] = {"Bassari", "Oniyan"}, ["bse"] = {"Wushi"}, ["bsf"] = {"Bauchi"}, ["bsg"] = {"Bashkardish"}, ["bsh"] = {"Kati"}, ["bsi"] = {"Bassossi"}, ["bsj"] = {"Bangwinji"}, ["bsk"] = {"Burushaski"}, ["bsl"] = {"Basa-Gumna"}, ["bsm"] = {"Busami"}, ["bsn"] = {"Barasana-Eduria"}, ["bso"] = {"Buso"}, ["bsp"] = {"Baga Sitemu"}, ["bsq"] = {"Bassa"}, ["bsr"] = {"Bassa-Kontagora"}, ["bss"] = {"Akoose"}, ["bst"] = {"Basketo"}, ["bsu"] = {"Bahonsuai"}, ["bsv"] = {"Baga Sobané"}, ["bsw"] = {"Baiso"}, ["bsx"] = {"Yangkam"}, ["bsy"] = {"Sabah Bisaya"}, ["bta"] = {"Bata"}, ["btc"] = {"Bati (Cameroon)"}, ["btd"] = {"Batak Dairi"}, ["bte"] = {"Gamo-Ningi"}, ["btf"] = {"Birgit"}, ["btg"] = {"Gagnoa Bété"}, ["bth"] = {"Biatah Bidayuh"}, ["bti"] = {"Burate"}, ["btj"] = {"Malayish Vacanagh"}, ["btk"] = {"çhengaghyn Batak"}, ["btm"] = {"Batak Mandailing"}, ["btn"] = {"Ratagnon"}, ["bto"] = {"Rinconada Bikol"}, ["btp"] = {"Budibud"}, ["btq"] = {"Batek"}, ["btr"] = {"Baetora"}, ["bts"] = {"Batak Simalungun"}, ["btt"] = {"Bete-Bendi"}, ["btu"] = {"Batu"}, ["btv"] = {"Bateri"}, ["btw"] = {"Butuanon"}, ["btx"] = {"Batak Karo"}, ["bty"] = {"Bobot"}, ["btz"] = {"Batak Alas-Kluet"}, ["bua"] = {"Buryatish"}, ["bub"] = {"Bua"}, ["buc"] = {"Bushi"}, ["bud"] = {"Ntcham"}, ["bue"] = {"Beothuk"}, ["buf"] = {"Bushoong"}, ["bug"] = {"Buginish"}, ["buh"] = {"Younuo Bunu"}, ["bui"] = {"Bongili"}, ["buj"] = {"Basa-Gurmana"}, ["buk"] = {"Bugawac"}, ["bum"] = {"Bulu (Cameroon)"}, ["bun"] = {"Sherbro"}, ["buo"] = {"Terei"}, ["bup"] = {"Busoa"}, ["buq"] = {"Brem"}, ["bus"] = {"Bokobaru"}, ["but"] = {"Bungain"}, ["buu"] = {"Budu"}, ["buv"] = {"Bun"}, ["buw"] = {"Bubi"}, ["bux"] = {"Boghom"}, ["buy"] = {"Bullom So"}, ["buz"] = {"Bukwen"}, ["bva"] = {"Barein"}, ["bvb"] = {"Bube"}, ["bvc"] = {"Baelelea"}, ["bvd"] = {"Baeggu"}, ["bve"] = {"Malayish Berau"}, ["bvf"] = {"Boor"}, ["bvg"] = {"Bonkeng"}, ["bvh"] = {"Bure"}, ["bvi"] = {"Belanda Viri"}, ["bvj"] = {"Baan"}, ["bvk"] = {"Bukat"}, ["bvl"] = {"Çh Chowree Voliviagh"}, ["bvm"] = {"Bamunka"}, ["bvn"] = {"Buna"}, ["bvo"] = {"Bolgo"}, ["bvp"] = {"Bumang"}, ["bvq"] = {"Birri"}, ["bvr"] = {"Burarra"}, ["bvt"] = {"Bati (yn Indoneesh)"}, ["bvu"] = {"Malayish Bukit"}, ["bvv"] = {"Baniva"}, ["bvw"] = {"Boga"}, ["bvx"] = {"Dibole"}, ["bvy"] = {"Baybayanon"}, ["bvz"] = {"Bauzi"}, ["bwa"] = {"Bwatoo"}, ["bwb"] = {"Namosi-Naitasiri-Serua"}, ["bwc"] = {"Bwile"}, ["bwd"] = {"Bwaidoka"}, ["bwe"] = {"Bwe Karen"}, ["bwf"] = {"Boselewa"}, ["bwg"] = {"Barwe"}, ["bwh"] = {"Bishuo"}, ["bwi"] = {"Baniwa"}, ["bwj"] = {"Láá Láá Bwamu"}, ["bwk"] = {"Bauwaki"}, ["bwl"] = {"Bwela"}, ["bwm"] = {"Biwat"}, ["bwn"] = {"Wunai Bunu"}, ["bwo"] = {"Boro (yn Eetoip)", "Borna (yn Eetoip)"}, ["bwp"] = {"Mandobo Bawah"}, ["bwq"] = {"Bobo Madaré Yiass"}, ["bwr"] = {"Bura-Pabir"}, ["bws"] = {"Bomboma"}, ["bwt"] = {"Bafaw-Balong"}, ["bwu"] = {"Buli (y Ghaney)"}, ["bww"] = {"Bwa"}, ["bwx"] = {"Bu-Nao Bunu"}, ["bwy"] = {"Cwi Bwamu"}, ["bwz"] = {"Bwisi"}, ["bxa"] = {"Tairaha"}, ["bxb"] = {"Belanda Bor"}, ["bxc"] = {"Molengue"}, ["bxd"] = {"Pela"}, ["bxe"] = {"Birale"}, ["bxf"] = {"Bilur", "Minigir"}, ["bxg"] = {"Bangala"}, ["bxh"] = {"Buhutu"}, ["bxi"] = {"Pirlatapa"}, ["bxj"] = {"Bayungu"}, ["bxk"] = {"Bukusu", "Lubukusu"}, ["bxl"] = {"Jalkunan"}, ["bxm"] = {"Buryatish Vongoilagh"}, ["bxn"] = {"Burduna"}, ["bxo"] = {"Barikanchi"}, ["bxp"] = {"Bebil"}, ["bxq"] = {"Beele"}, ["bxr"] = {"Buryatish Rooshagh"}, ["bxs"] = {"Busam"}, ["bxu"] = {"Buryatish Heenagh"}, ["bxv"] = {"Berakou"}, ["bxw"] = {"Bankagooma"}, ["bxz"] = {"Binahari"}, ["bya"] = {"Batak"}, ["byb"] = {"Bikya"}, ["byc"] = {"Ubaghara"}, ["byd"] = {"Benyadu'"}, ["bye"] = {"Pouye"}, ["byf"] = {"Bete"}, ["byg"] = {"Baygo"}, ["byh"] = {"Bhujel"}, ["byi"] = {"Buyu"}, ["byj"] = {"Bina (y Naigeer)"}, ["byk"] = {"Biao"}, ["byl"] = {"Bayono"}, ["bym"] = {"Bidjara"}, ["byn"] = {"Bilin", "Blin"}, ["byo"] = {"Biyo"}, ["byp"] = {"Bumaji"}, ["byq"] = {"Basay"}, ["byr"] = {"Baruya", "Yipma"}, ["bys"] = {"Burak"}, ["byt"] = {"Berti"}, ["byv"] = {"Medumba"}, ["byw"] = {"Belhariya"}, ["byx"] = {"Qaqet"}, ["byz"] = {"Banaro"}, ["bza"] = {"Bandi"}, ["bzb"] = {"Andio"}, ["bzc"] = {"Malagasish Betsimisaraka Yiass"}, ["bzd"] = {"Bribri"}, ["bze"] = {"Jenaama Bozo"}, ["bzf"] = {"Boikin"}, ["bzg"] = {"Babuza"}, ["bzh"] = {"Mapos Buang"}, ["bzi"] = {"Bisu"}, ["bzj"] = {"Creeole Baarle Beleeshagh"}, ["bzk"] = {"Creeole Baarle Nickeraagagh"}, ["bzl"] = {"Boano (Sulawesi)"}, ["bzm"] = {"Bolondo"}, ["bzn"] = {"Boano (Maluku)"}, ["bzo"] = {"Bozaba"}, ["bzp"] = {"Kemberano"}, ["bzq"] = {"Buli (yn Indoneesh)"}, ["bzr"] = {"Biri"}, ["bzs"] = {"Çhengey Chowree Vrasseelagh"}, ["bzt"] = {"Brithenig"}, ["bzu"] = {"Burmeso"}, ["bzv"] = {"Naami"}, ["bzw"] = {"Basa (y Naigeer)"}, ["bzx"] = {"Kɛlɛngaxo Bozo"}, ["bzy"] = {"Obanliku"}, ["bzz"] = {"Evant"}, ["caa"] = {"Chortí"}, ["cab"] = {"Garifunish"}, ["cac"] = {"Chuj"}, ["cad"] = {"Caddo"}, ["cae"] = {"Lehar", "Laalaa"}, ["caf"] = {"Carrier Yiass"}, ["cag"] = {"Nivaclé"}, ["cah"] = {"Cahuarano"}, ["cai"] = {"çhengaghyn Injinagh Americaanagh Meanagh"}, ["caj"] = {"Chané"}, ["cak"] = {"Kaqchikel", "Cakchiquel"}, ["cal"] = {"Carolinish"}, ["cam"] = {"Cemuhî"}, ["can"] = {"Chambri"}, ["cao"] = {"Chácobo"}, ["cap"] = {"Chipaya"}, ["caq"] = {"Car Nicobarese"}, ["car"] = {"Caribish Galibi"}, ["cas"] = {"Tsimané"}, ["cau"] = {"çhengaghyn Coagaashagh"}, ["cav"] = {"Cavineña"}, ["caw"] = {"Callawalla"}, ["cax"] = {"Chiquitano"}, ["cay"] = {"Cayuga"}, ["caz"] = {"Canichana"}, ["cba"] = {"çhengaghyn Çhibçhagh"}, ["cbb"] = {"Cabiyarí"}, ["cbc"] = {"Carapana"}, ["cbd"] = {"Carijona"}, ["cbg"] = {"Chimila"}, ["cbi"] = {"Chachi"}, ["cbj"] = {"Ede Cabe"}, ["cbk"] = {"Chavacano"}, ["cbl"] = {"Bualkhaw Chin"}, ["cbn"] = {"Nyahkur"}, ["cbo"] = {"Izora"}, ["cbq"] = {"Tsucuba", "Cuba"}, ["cbr"] = {"Cashibo-Cacataibo"}, ["cbs"] = {"Cashinahua"}, ["cbt"] = {"Chayahuita"}, ["cbu"] = {"Candoshi-Shapra"}, ["cbv"] = {"Cacua"}, ["cbw"] = {"Kinabalish"}, ["cby"] = {"Carabayo"}, ["ccc"] = {"Chamicuro"}, ["ccd"] = {"Creeole Cafundo"}, ["cce"] = {"Chopi"}, ["ccg"] = {"Samba Daka"}, ["cch"] = {"Atsam"}, ["ccj"] = {"Kasanga"}, ["ccl"] = {"Cutchi-Swahili"}, ["ccm"] = {"Creeole Malayish Malacca"}, ["ccn"] = {"çhengaghyn Coagaashagh Hwoaie"}, ["cco"] = {"Comaltepec Chinantec"}, ["ccp"] = {"Chakma"}, ["ccr"] = {"Cacaopera"}, ["ccs"] = {"çhengaghyn Coagaashagh Yiass"}, ["cda"] = {"Choni"}, ["cdc"] = {"çhengaghyn Shadagh"}, ["cdd"] = {"çhengaghyn Caddoagh"}, ["cde"] = {"Chenchu"}, ["cdf"] = {"Chiru"}, ["cdh"] = {"Chambeali"}, ["cdi"] = {"Chodri"}, ["cdj"] = {"Churahi"}, ["cdm"] = {"Chepang"}, ["cdn"] = {"Chaudangsi"}, ["cdo"] = {"Sheenish Min Dong"}, ["cdr"] = {"Cinda-Regi-Tiyal"}, ["cds"] = {"Çhengey Chowree Hadagh"}, ["cdy"] = {"Chadong"}, ["cdz"] = {"Koda"}, ["cea"] = {"Chehalis Injil"}, ["ceb"] = {"Cebuano"}, ["ceg"] = {"Chamacoco"}, ["cek"] = {"Khumi Chin Hiar"}, ["cel"] = {"çhengaghyn Celtiagh"}, ["cen"] = {"Cen"}, ["cet"] = {"Centúúm"}, ["cey"] = {"Ekai Chin"}, ["cfa"] = {"Dijim-Bwilim"}, ["cfd"] = {"Cara"}, ["cfg"] = {"Como Karim"}, ["cfm"] = {"Falam Chin"}, ["cga"] = {"Changriwa"}, ["cgc"] = {"Kagayanen"}, ["cgg"] = {"Chiga"}, ["cgk"] = {"Chocangacakha"}, ["chb"] = {"Chibcha"}, ["chc"] = {"Catawba"}, ["chd"] = {"Chontal Oaxaca Sleitoil"}, ["chf"] = {"Chontal Tabasco"}, ["chg"] = {"Chagatai"}, ["chh"] = {"Chinook"}, ["chj"] = {"Ojitlán Chinantec"}, ["chk"] = {"Chuukese"}, ["chl"] = {"Cahuilla"}, ["chm"] = {"Marish (y Roosh)"}, ["chn"] = {"Chinookish"}, ["cho"] = {"Shoctawish"}, ["chp"] = {"Chipewyish", "Dene Suline"}, ["chq"] = {"Chinantec Quiotepec"}, ["chr"] = {"Sherokeeish"}, ["cht"] = {"Cholón"}, ["chw"] = {"Chuwabu"}, ["chx"] = {"Chantyal"}, ["chy"] = {"Cheyenne"}, ["chz"] = {"Chinantec Ozumacín"}, ["cia"] = {"Cia-Cia"}, ["cib"] = {"Ci Gbe"}, ["cic"] = {"Chickasawish"}, ["cid"] = {"Chimariko"}, ["cie"] = {"Cineni"}, ["cih"] = {"Chinali"}, ["cik"] = {"Chitkuli Kinnauri"}, ["cim"] = {"Cimbrish"}, ["cin"] = {"Cinta Larga"}, ["cip"] = {"Chiapanec"}, ["cir"] = {"Tiri", "Haméa", "Méa"}, ["ciw"] = {"Chippewa"}, ["ciy"] = {"Chaima"}, ["cja"] = {"Chamish Heear"}, ["cje"] = {"Chru"}, ["cjh"] = {"Chehalis Heose"}, ["cji"] = {"Chamalal"}, ["cjk"] = {"Chokwe"}, ["cjm"] = {"Chamish Hiar"}, ["cjn"] = {"Chenapish"}, ["cjo"] = {"Ashéninka Pajonal"}, ["cjp"] = {"Cabécar"}, ["cjs"] = {"Shor"}, ["cjv"] = {"Chuave"}, ["cjy"] = {"Sheenish Jinyu"}, ["ckb"] = {"Kurdish Veanagh"}, ["ckh"] = {"Chak"}, ["ckl"] = {"Cibak"}, ["ckm"] = {"Chakavish"}, ["ckn"] = {"Kaang Chin"}, ["cko"] = {"Anufo"}, ["ckq"] = {"Kajakse"}, ["ckr"] = {"Kairak"}, ["cks"] = {"Tayo"}, ["ckt"] = {"Shukçheeish"}, ["cku"] = {"Koasati"}, ["ckv"] = {"Kavalan"}, ["ckx"] = {"Caka"}, ["cky"] = {"Cakfem-Mushere"}, ["ckz"] = {"Çhengey Vestit Cakchiquel-Quiché"}, ["cla"] = {"Ron"}, ["clc"] = {"Chilcotin"}, ["cld"] = {"Noa-Aramaaish Haldeanagh"}, ["cle"] = {"Chinantec Lealao"}, ["clh"] = {"Chilisso"}, ["cli"] = {"Chakali"}, ["clj"] = {"Laitu Chin"}, ["clk"] = {"Idu-Mishmi"}, ["cll"] = {"Chala"}, ["clm"] = {"Clallam"}, ["clo"] = {"Chontal Oaxaca Injil"}, ["clt"] = {"Lautu Chin"}, ["clu"] = {"Caluyanun"}, ["clw"] = {"Chulym"}, ["cly"] = {"Chatino Sleitoil Hiar"}, ["cma"] = {"Maa"}, ["cmc"] = {"çhengaghyn Shamagh"}, ["cme"] = {"Cerma"}, ["cmg"] = {"Mongoilish Chlassicagh"}, ["cmi"] = {"Emberá-Chamí"}, ["cml"] = {"Campalagian"}, ["cmm"] = {"Michigamea"}, ["cmn"] = {"Sheenish Mandarin"}, ["cmo"] = {"Mnong Meanagh"}, ["cmr"] = {"Mro-Khimi Chin"}, ["cms"] = {"Messapic"}, ["cmt"] = {"Camtho"}, ["cna"] = {"Changthang"}, ["cnb"] = {"Chinbon Chin"}, ["cnc"] = {"Côông"}, ["cng"] = {"Qiang Hwoaie"}, ["cnh"] = {"Hakha Chin", "Haka Chin"}, ["cni"] = {"Asháninka"}, ["cnk"] = {"Khumi Chin"}, ["cnl"] = {"Lalana Chinantec"}, ["cno"] = {"Con"}, ["cnp"] = {"Sheenish Ping Hwoaie", "Pinghua Hwoaie"}, ["cnq"] = {"Chung"}, ["cnr"] = {"Montenegrish"}, ["cns"] = {"Asmatish Veanagh"}, ["cnt"] = {"Chinantec Tepetotutla"}, ["cnu"] = {"Chenoua"}, ["cnw"] = {"Ngawn Chin"}, ["cnx"] = {"Cornish Veanagh"}, ["coa"] = {"Malayish Ellanyn Cocos"}, ["cob"] = {"Chicomuceltec"}, ["coc"] = {"Cocopa"}, ["cod"] = {"Cocama-Cocamilla"}, ["coe"] = {"Koreguaje"}, ["cof"] = {"Colorado"}, ["cog"] = {"Chong"}, ["coh"] = {"Chonyi-Dzihana-Kauma", "Chichonyi-Chidzihana-Chikauma"}, ["coj"] = {"Cochimi"}, ["cok"] = {"Santa Teresa Cora"}, ["col"] = {"Columbia-Wenatchi"}, ["com"] = {"Comançheeish"}, ["con"] = {"Cofán"}, ["coo"] = {"Comox"}, ["cop"] = {"Coptish"}, ["coq"] = {"Coquille"}, ["cot"] = {"Caquinte"}, ["cou"] = {"Wamey"}, ["cov"] = {"Cao Miao"}, ["cow"] = {"Cowlitz"}, ["cox"] = {"Nanti"}, ["coz"] = {"Chochotec"}, ["cpa"] = {"Palantla Chinantec"}, ["cpb"] = {"Ucayali-Yurúa Ashéninka"}, ["cpc"] = {"Ajyíninka Apurucayali"}, ["cpe"] = {"creeoleyn as baarlaghyn brisht bunnit er y Vaarle"}, ["cpf"] = {"creeoleyn as baarlaghyn brisht bunnit er y Rangish"}, ["cpg"] = {"Greagish Cappadocia"}, ["cpi"] = {"Baarle Vrisht Heenagh"}, ["cpn"] = {"Cherepon"}, ["cpo"] = {"Kpeego"}, ["cpp"] = {"creeoleyn as baarlaghyn brisht bunnit er y Phortiugish"}, ["cps"] = {"Capiznon"}, ["cpu"] = {"Pichis Ashéninka"}, ["cpx"] = {"Sheenish Pu-Xian"}, ["cpy"] = {"Ashéninka Ucayali Yiass"}, ["cqd"] = {"Chuanqiandian Cluster Miao"}, ["cra"] = {"Chara"}, ["crb"] = {"Caribish Ellanagh"}, ["crc"] = {"Lonwolwol"}, ["crd"] = {"Coeur d'Alene"}, ["crf"] = {"Caramanta"}, ["crg"] = {"Michif"}, ["crh"] = {"Tatarish Chrimeeagh", "Turkish Chrimeeagh"}, ["cri"] = {"Sãotomense"}, ["crj"] = {"Creeish Hiar Yiass"}, ["crk"] = {"Creeish ny Strahyn"}, ["crl"] = {"Creeish Hiar Hwoaie"}, ["crm"] = {"Creeish Moose"}, ["crn"] = {"El Nayar Cora"}, ["cro"] = {"Crowish"}, ["crp"] = {"Creeoleyn as baarlaghyn brisht"}, ["crq"] = {"Iyo'wujwa Chorote"}, ["crr"] = {"Algonquiagh Carolina"}, ["crs"] = {"Creeole Frangish Seselwa"}, ["crt"] = {"Iyojwa'ja Chorote"}, ["crv"] = {"Chaura"}, ["crw"] = {"Chrau"}, ["crx"] = {"Carrier"}, ["cry"] = {"Cori"}, ["crz"] = {"Cruzeño"}, ["csa"] = {"Chinantec Chiltepec"}, ["csb"] = {"Kashoobish"}, ["csc"] = {"Çhengey Chowree Chataloanagh", "Lengua de señas catalana", "Llengua de Signes Catalana"}, ["csd"] = {"Çhengey Chowree Chiangmai"}, ["cse"] = {"Çhengey Chowree Heckagh"}, ["csf"] = {"Çhengey Chowree Choobagh"}, ["csg"] = {"Çhengey Chowree Hilleeagh"}, ["csh"] = {"Chin Asho"}, ["csi"] = {"Miwok Coose"}, ["csj"] = {"Chin Songlai"}, ["csk"] = {"Jola-Kasa"}, ["csl"] = {"Çhengey Chowree Heenagh"}, ["csm"] = {"Miwokish Sierra Veanagh"}, ["csn"] = {"Çhengey Chowree Cholombagh"}, ["cso"] = {"Chinantec Sochiapam", "Chinantec Sochiapan"}, ["csp"] = {"Sheenish Pink Yiass", "Pinghua Yiass"}, ["csq"] = {"Çhengey Chowree Chroitagh"}, ["csr"] = {"Çhengey Chowree Choose-verçhagh"}, ["css"] = {"Ohlone Yiass"}, ["cst"] = {"Ohlone Hwoaie"}, ["csu"] = {"çhengaghyn Soodaanagh Meanagh"}, ["csv"] = {"Chin Sumtu"}, ["csw"] = {"Creeish Ushlagh"}, ["csx"] = {"Çhengey Chowree Chamboydagh"}, ["csy"] = {"Siyin Chin"}, ["csz"] = {"Coos"}, ["cta"] = {"Tataltepec Chatino"}, ["ctc"] = {"Chetco"}, ["ctd"] = {"Chin Tedim"}, ["cte"] = {"Chinantec Tepinapa"}, ["ctg"] = {"Chittagonish"}, ["cth"] = {"Chin Thaiphum"}, ["ctl"] = {"Chinantec Tlacoatzintepec"}, ["ctm"] = {"Chitimacha"}, ["ctn"] = {"Chhintange"}, ["cto"] = {"Emberá-Catío"}, ["ctp"] = {"Chatino Sleitoil Heear"}, ["cts"] = {"Bikol Catanduanes Heear"}, ["ctt"] = {"Wayanad Chetti"}, ["ctu"] = {"Chol"}, ["cty"] = {"Moundadan Chetty"}, ["ctz"] = {"Chatino Zacatepec"}, ["cua"] = {"Cua"}, ["cub"] = {"Cubeo"}, ["cuc"] = {"Usila Chinantec"}, ["cuh"] = {"Chuka", "Gichuka"}, ["cui"] = {"Cuiba"}, ["cuj"] = {"Mashco Piro"}, ["cuk"] = {"San Blas Kuna"}, ["cul"] = {"Culina", "Kulina"}, ["cuo"] = {"Cumanagoto"}, ["cup"] = {"Cupeño"}, ["cuq"] = {"Cun"}, ["cur"] = {"Chhulung"}, ["cus"] = {"çhengaghyn Cushitagh"}, ["cut"] = {"Teutila Cuicatec"}, ["cuu"] = {"Tai Ya"}, ["cuv"] = {"Cuvok"}, ["cuw"] = {"Chukwa"}, ["cux"] = {"Tepeuxila Cuicatec"}, ["cuy"] = {"Cuitlatec"}, ["cvg"] = {"Chug"}, ["cvn"] = {"Valle Nacional Chinantec"}, ["cwa"] = {"Kabwa"}, ["cwb"] = {"Maindo"}, ["cwd"] = {"Creeish ny Keylljyn"}, ["cwe"] = {"Kwere"}, ["cwg"] = {"Chewong", "Cheq Wong"}, ["cwt"] = {"Kuwaataay"}, ["cxh"] = {"Cha'ari"}, ["cya"] = {"Nopala Chatino"}, ["cyb"] = {"Cayubaba"}, ["cyo"] = {"Cuyonon"}, ["czh"] = {"Sheenish Huizhou"}, ["czk"] = {"Knaanic"}, ["czn"] = {"Zenzontepec Chatino"}, ["czo"] = {"Sheenish Min Zhong"}, ["czt"] = {"Zotung Chin"}, ["daa"] = {"Dangaléat"}, ["dac"] = {"Dambi"}, ["dad"] = {"Marik"}, ["dae"] = {"Duupa"}, ["dag"] = {"Dagbani"}, ["dah"] = {"Gwahatike"}, ["dai"] = {"Day"}, ["daj"] = {"Dar Fur Daju"}, ["dak"] = {"Dakota"}, ["dal"] = {"Dahalo"}, ["dam"] = {"Damakawa"}, ["dao"] = {"Daai Chin"}, ["daq"] = {"Dandami Maria"}, ["dar"] = {"Dargwa"}, ["das"] = {"Daho-Doo"}, ["dau"] = {"Dar Sila Daju"}, ["dav"] = {"Taita", "Dawida"}, ["daw"] = {"Davawenyo"}, ["dax"] = {"Dayi"}, ["day"] = {"çhengaghyn Land Dayak"}, ["daz"] = {"Dao"}, ["dba"] = {"Bangime"}, ["dbb"] = {"Deno"}, ["dbd"] = {"Dadiya"}, ["dbe"] = {"Dabe"}, ["dbf"] = {"Edopi"}, ["dbg"] = {"Dogul Dom Dogon"}, ["dbi"] = {"Doka"}, ["dbj"] = {"Ida'an"}, ["dbl"] = {"Dyirbal"}, ["dbm"] = {"Duguri"}, ["dbn"] = {"Duriankere"}, ["dbo"] = {"Dulbu"}, ["dbp"] = {"Duwai"}, ["dbq"] = {"Daba"}, ["dbr"] = {"Dabarre"}, ["dbt"] = {"Ben Tey Dogon"}, ["dbu"] = {"Bondum Dom Dogon"}, ["dbv"] = {"Dungu"}, ["dbw"] = {"Bankan Tey Dogon"}, ["dby"] = {"Dibiyaso"}, ["dcc"] = {"Deccan"}, ["dcr"] = {"Negerhollands"}, ["dda"] = {"Dadi Dadi"}, ["ddd"] = {"Dongotono"}, ["dde"] = {"Doondo"}, ["ddg"] = {"Fataluku"}, ["ddi"] = {"West Goodenough"}, ["ddj"] = {"Jaru"}, ["ddn"] = {"Dendi (Benin)"}, ["ddo"] = {"Dido"}, ["ddr"] = {"Dhudhuroa"}, ["dds"] = {"Donno So Dogon"}, ["ddw"] = {"Dawera-Daweloor"}, ["dec"] = {"Dagik"}, ["ded"] = {"Dedua"}, ["dee"] = {"Dewoin"}, ["def"] = {"Dezfuli"}, ["deg"] = {"Degema"}, ["deh"] = {"Dehwari"}, ["dei"] = {"Demisa"}, ["dek"] = {"Dek"}, ["del"] = {"Delaware"}, ["dem"] = {"Dem"}, ["den"] = {"Slavish (Athapascagh)"}, ["dep"] = {"Pidgin Delaware"}, ["deq"] = {"Dendi (Pobblaght yn Affrick Veanagh)"}, ["der"] = {"Deori"}, ["des"] = {"Desano"}, ["dev"] = {"Domung"}, ["dez"] = {"Dengese"}, ["dga"] = {"Dagaare Yiass"}, ["dgb"] = {"Bunoge Dogon"}, ["dgc"] = {"Casiguran Dumagat Agta"}, ["dgd"] = {"Dagaari Dioula"}, ["dge"] = {"Degenan"}, ["dgg"] = {"Doga"}, ["dgh"] = {"Dghwede"}, ["dgi"] = {"Dagara Hwoaie"}, ["dgk"] = {"Dagba"}, ["dgl"] = {"Andaandi", "Dongolawi"}, ["dgn"] = {"Dagoman"}, ["dgo"] = {"Dogri (çhengey er lheh)"}, ["dgr"] = {"Dogrib", "Tłı̨chǫ"}, ["dgs"] = {"Dogoso"}, ["dgt"] = {"Ndra'ngith"}, ["dgw"] = {"Daungwurrung"}, ["dgx"] = {"Doghoro"}, ["dgz"] = {"Daga"}, ["dhd"] = {"Dhundari"}, ["dhg"] = {"Dhangu-Djangu", "Dhangu", "Djangu"}, ["dhi"] = {"Dhimal"}, ["dhl"] = {"Dhalandji"}, ["dhm"] = {"Zemba"}, ["dhn"] = {"Dhanki"}, ["dho"] = {"Dhodia"}, ["dhr"] = {"Dhargari"}, ["dhs"] = {"Dhaiso"}, ["dhu"] = {"Dhurga"}, ["dhv"] = {"Dehu", "Drehu"}, ["dhw"] = {"Dhanwar (Nepaal)"}, ["dhx"] = {"Dhungaloo"}, ["dia"] = {"Dia"}, ["dib"] = {"Dinka Yiass Veanagh"}, ["dic"] = {"Lakota Dida"}, ["did"] = {"Didinga"}, ["dif"] = {"Dieri", "Diyari"}, ["dig"] = {"Digo", "Chidigo"}, ["dih"] = {"Kumiai"}, ["dii"] = {"Dimbong"}, ["dij"] = {"Dai"}, ["dik"] = {"Dinka Heear Yiass"}, ["dil"] = {"Dilling"}, ["dim"] = {"Dime"}, ["din"] = {"Dinka"}, ["dio"] = {"Dibo"}, ["dip"] = {"Dinka Hiar Yiass"}, ["diq"] = {"Dimli (çhengey er lheh)"}, ["dir"] = {"Dirim"}, ["dis"] = {"Dimasa"}, ["diu"] = {"Diriku"}, ["diw"] = {"Dinka Heear Hwoaie"}, ["dix"] = {"Dixon Reef"}, ["diy"] = {"Diuwe"}, ["diz"] = {"Ding"}, ["dja"] = {"Djadjawurrung"}, ["djb"] = {"Djinba"}, ["djc"] = {"Dar Daju Daju"}, ["djd"] = {"Djamindjung", "Ngaliwurru"}, ["dje"] = {"Zarma"}, ["djf"] = {"Djangun"}, ["dji"] = {"Djinang"}, ["djj"] = {"Djeebbana"}, ["djk"] = {"Creeole Maroon Hiar", "Businenge Tongo", "Nenge"}, ["djm"] = {"Jamsay Dogon"}, ["djn"] = {"Jawoyn", "Djauan"}, ["djo"] = {"Jangkang"}, ["djr"] = {"Djambarrpuyngu"}, ["dju"] = {"Kapriman"}, ["djw"] = {"Djawi"}, ["dka"] = {"Dakpakha"}, ["dkg"] = {"Kadung"}, ["dkk"] = {"Dakka"}, ["dkr"] = {"Kuijau"}, ["dks"] = {"Dinka Hiar Yiass"}, ["dkx"] = {"Mazagway"}, ["dlg"] = {"Dolgan"}, ["dlk"] = {"Dahalik"}, ["dlm"] = {"Dalmaatish"}, ["dln"] = {"Darlong"}, ["dma"] = {"Duma"}, ["dmb"] = {"Mombo Dogon"}, ["dmc"] = {"Gavak"}, ["dmd"] = {"Madhi Madhi"}, ["dme"] = {"Dugwor"}, ["dmf"] = {"Medefaidrin"}, ["dmg"] = {"Kinabatangan Heose"}, ["dmk"] = {"Domaaki"}, ["dml"] = {"Dameli"}, ["dmm"] = {"Dama"}, ["dmn"] = {"çhengaghyn Mande"}, ["dmo"] = {"Kemedzung"}, ["dmr"] = {"Damar Hiar"}, ["dms"] = {"Dampelas"}, ["dmu"] = {"Dubu", "Tebi"}, ["dmv"] = {"Dumpas"}, ["dmw"] = {"Mudburra"}, ["dmx"] = {"Dema"}, ["dmy"] = {"Demta", "Sowari"}, ["dna"] = {"Dani yn Upper Grand Valley"}, ["dnd"] = {"Daonda"}, ["dne"] = {"Ndendeule"}, ["dng"] = {"Dungan"}, ["dni"] = {"Dani yn Lower Grand Valley"}, ["dnj"] = {"Dan"}, ["dnk"] = {"Dengka"}, ["dnn"] = {"Dzùùngoo"}, ["dno"] = {"Ndrulo", "Lendu Hwoaie"}, ["dnr"] = {"Danaru"}, ["dnt"] = {"Dani yn Mid Grand Valley"}, ["dnu"] = {"Danau"}, ["dnv"] = {"Danu"}, ["dnw"] = {"Dani Heear"}, ["dny"] = {"Dení"}, ["doa"] = {"Dom"}, ["dob"] = {"Dobu"}, ["doc"] = {"Dong Hwoaie"}, ["doe"] = {"Doe"}, ["dof"] = {"Domu"}, ["doh"] = {"Dong"}, ["doi"] = {"Dogri (mooar-hengey)"}, ["dok"] = {"Dondo"}, ["dol"] = {"Doso"}, ["don"] = {"Toura (Papooey Guinea Noa)"}, ["doo"] = {"Dongo"}, ["dop"] = {"Lukpa"}, ["doq"] = {"Çhengey Chowree Ghominicagh"}, ["dor"] = {"Dori'o"}, ["dos"] = {"Dogosé"}, ["dot"] = {"Dass"}, ["dov"] = {"Dombe"}, ["dow"] = {"Doyayo"}, ["dox"] = {"Bussa"}, ["doy"] = {"Dompo"}, ["doz"] = {"Dorze"}, ["dpp"] = {"Papar"}, ["dra"] = {"çhengaghyn Dravidagh"}, ["drb"] = {"Dair"}, ["drc"] = {"Minderico"}, ["drd"] = {"Darmiya"}, ["dre"] = {"Dolpo"}, ["drg"] = {"Rungus"}, ["dri"] = {"C'Lela"}, ["drl"] = {"Paakantyi"}, ["drn"] = {"Damar Heear"}, ["dro"] = {"Daro-Matu Melanau"}, ["drq"] = {"Dura"}, ["drs"] = {"Gedeo"}, ["drt"] = {"Drents"}, ["dru"] = {"Rukai"}, ["dry"] = {"Darai"}, ["dsb"] = {"Sorbish Eeghtyragh"}, ["dse"] = {"Çhengey Chowree Ollanagh"}, ["dsh"] = {"Daasanach"}, ["dsi"] = {"Disa"}, ["dsk"] = {"Dokshi"}, ["dsl"] = {"Çhengey Chowree Ghanvargagh"}, ["dsn"] = {"Dusner"}, ["dso"] = {"Desiya"}, ["dsq"] = {"Tadaksahak"}, ["dsz"] = {"Çh Chowree Mardin"}, ["dta"] = {"Daur"}, ["dtb"] = {"Labuk-Kinabatangan Kadazan"}, ["dtd"] = {"Ditidaht"}, ["dth"] = {"Adithinngithigh"}, ["dti"] = {"Ana Tinga Dogon"}, ["dtk"] = {"Tene Kan Dogon"}, ["dtm"] = {"Tomo Kan Dogon"}, ["dtn"] = {"Daatsʼíin"}, ["dto"] = {"Tommo So Dogon"}, ["dtp"] = {"Kadazan Dusun", "Dusun Veanagh"}, ["dtr"] = {"Lotud"}, ["dts"] = {"Toro So Dogon"}, ["dtt"] = {"Toro Tegu Dogon"}, ["dtu"] = {"Tebul Ure Dogon"}, ["dty"] = {"Dotyali"}, ["dua"] = {"Duala"}, ["dub"] = {"Dubli"}, ["duc"] = {"Duna"}, ["due"] = {"Umiray Dumaget Agta"}, ["duf"] = {"Dumbea", "Drubea"}, ["dug"] = {"Duruma", "Chiduruma"}, ["duh"] = {"Dungra Bhil"}, ["dui"] = {"Dumun"}, ["duk"] = {"Uyajitaya"}, ["dul"] = {"Alabat Island Agta"}, ["dum"] = {"Ollanish Veanagh (ca. 1050-1350)"}, ["dun"] = {"Dusun Deyah"}, ["duo"] = {"Dupaninan Agta"}, ["dup"] = {"Duano"}, ["duq"] = {"Dusun Malang"}, ["dur"] = {"Dii"}, ["dus"] = {"Dumi"}, ["duu"] = {"Drung"}, ["duv"] = {"Duvle"}, ["duw"] = {"Dusun Witu"}, ["dux"] = {"Duungooma"}, ["duy"] = {"Dicamay Agta"}, ["duz"] = {"Duli-Gey"}, ["dva"] = {"Duau"}, ["dwa"] = {"Diri"}, ["dwk"] = {"Dawik Kui"}, ["dwr"] = {"Dawro"}, ["dws"] = {"Dutton World Speedwords"}, ["dwu"] = {"Dhuwal"}, ["dww"] = {"Dawawa"}, ["dwy"] = {"Dhuwaya"}, ["dwz"] = {"Dewas Rai"}, ["dya"] = {"Dyan"}, ["dyb"] = {"Dyaberdyaber"}, ["dyd"] = {"Dyugun"}, ["dyg"] = {"Villa Viciosa Agta"}, ["dyi"] = {"Djimini Senoufo"}, ["dym"] = {"Yanda Dom Dogon"}, ["dyn"] = {"Dyangadi", "Dhanggatti"}, ["dyo"] = {"Jola-Fonyi"}, ["dyr"] = {"Dyarim"}, ["dyu"] = {"Dyulish"}, ["dyy"] = {"Djabugay", "Dyaabugay"}, ["dza"] = {"Tunzu"}, ["dzd"] = {"Daza"}, ["dze"] = {"Djiwarli"}, ["dzg"] = {"Dazaga"}, ["dzl"] = {"Dzalakha"}, ["dzn"] = {"Dzando"}, ["eaa"] = {"Karenggapa"}, ["ebc"] = {"Beginci"}, ["ebg"] = {"Ebughu"}, ["ebk"] = {"Bontok Hiar"}, ["ebo"] = {"Teke-Ebo"}, ["ebr"] = {"Ebrié"}, ["ebu"] = {"Embu", "Kiembu"}, ["ecr"] = {"Eteocretan"}, ["ecs"] = {"Çhengey Chowree Ecuadoragh"}, ["ecy"] = {"Eteocheeprish"}, ["eee"] = {"E"}, ["efa"] = {"Efai"}, ["efe"] = {"Efe"}, ["efi"] = {"Efik"}, ["ega"] = {"Ega"}, ["egl"] = {"Emilianish"}, ["egm"] = {"Benamanga"}, ["ego"] = {"Eggon"}, ["egx"] = {"çhengaghyn Egyptagh"}, ["egy"] = {"Egyptish (Shenn)"}, ["ehs"] = {"Çhengey Chowree Miyakubo"}, ["ehu"] = {"Ehueun"}, ["eip"] = {"Eipomek"}, ["eit"] = {"Eitiep"}, ["eiv"] = {"Askopan"}, ["eja"] = {"Ejamat"}, ["eka"] = {"Ekajuk"}, ["eke"] = {"Ekit"}, ["ekg"] = {"Ekari"}, ["eki"] = {"Eki"}, ["ekk"] = {"Estoinish"}, ["ekl"] = {"Kol (y Vangladesh)", "Kol"}, ["ekm"] = {"Elip"}, ["eko"] = {"Koti"}, ["ekp"] = {"Ekpeye"}, ["ekr"] = {"Yace"}, ["eky"] = {"Kayah Hiar"}, ["ele"] = {"Elepi"}, ["elh"] = {"El Hugeirat"}, ["eli"] = {"Nding"}, ["elk"] = {"Elkei"}, ["elm"] = {"Eleme"}, ["elo"] = {"El Molo"}, ["elu"] = {"Elu"}, ["elx"] = {"Elamish"}, ["ema"] = {"Emai-Iuleha-Ora"}, ["emb"] = {"Embaloh"}, ["eme"] = {"Emerillon"}, ["emg"] = {"Meohang Hiar"}, ["emi"] = {"Mussau-Emira"}, ["emk"] = {"Maninkish Hiar"}, ["emm"] = {"Mamulique"}, ["emn"] = {"Emanish"}, ["emp"] = {"Emberá Hwoaie"}, ["emq"] = {"Minyagish Hiar"}, ["ems"] = {"Yupik Lhoob y Cheayn Sheealtagh"}, ["emu"] = {"Muria Hiar"}, ["emw"] = {"Emplawas"}, ["emx"] = {"Erromintxela"}, ["emy"] = {"Mayish Epigrafagh"}, ["emz"] = {"Mbessa"}, ["ena"] = {"Apali"}, ["enb"] = {"Markweeta"}, ["enc"] = {"En"}, ["end"] = {"Ende"}, ["enf"] = {"Enetsish ny Keylljyn"}, ["enh"] = {"Enetsish y Tundrey"}, ["enl"] = {"Enlhet"}, ["enm"] = {"Baarle Veanagh (1100-1500)"}, ["enn"] = {"Engenni"}, ["eno"] = {"Enggano"}, ["enq"] = {"Enga"}, ["enr"] = {"Emumu", "Emem"}, ["enu"] = {"Enu"}, ["env"] = {"Enwan (Steat Edo)"}, ["enw"] = {"Enwan (Steat Akwa Ibom)"}, ["enx"] = {"Enxet"}, ["eot"] = {"Beti (y Clyst Iuaagagh)"}, ["epi"] = {"Epie"}, ["era"] = {"Eravallan"}, ["erg"] = {"Sie"}, ["erh"] = {"Eruwa"}, ["eri"] = {"Ogea"}, ["erk"] = {"Efate Yiass"}, ["ero"] = {"Horpa"}, ["err"] = {"Erre"}, ["ers"] = {"Ersu"}, ["ert"] = {"Eritai"}, ["erw"] = {"Erokwanas"}, ["ese"] = {"Ese Ejja"}, ["esg"] = {"Aheri Gondi"}, ["esh"] = {"Eshtehardi"}, ["esi"] = {"Inupiatun Alaska Hwoaie"}, ["esk"] = {"Inupiatun Alaska Heear Hwoaie"}, ["esl"] = {"Çhengey Chowree yn Egypt"}, ["esm"] = {"Esuma"}, ["esn"] = {"Çhengey Chowree Halvadoragh"}, ["eso"] = {"Çhengey Chowree Estaanagh"}, ["esq"] = {"Esselen"}, ["ess"] = {"Yupik y Çhibbeyr Veanagh"}, ["esu"] = {"Yupik Veanagh"}, ["esx"] = {"çhengaghyn Eskimogh-Aleutagh"}, ["esy"] = {"Eskayan"}, ["etb"] = {"Etebi"}, ["etc"] = {"Etchemin"}, ["eth"] = {"Çhengey Chowree Eetoipagh"}, ["etn"] = {"Eton (Vanuatu)"}, ["eto"] = {"Eton (Cameroon)"}, ["etr"] = {"Edolo"}, ["ets"] = {"Yekhee"}, ["ett"] = {"Etruscish"}, ["etu"] = {"Ejagham"}, ["etx"] = {"Eten"}, ["etz"] = {"Semimi"}, ["eud"] = {"Eudeve"}, ["euq"] = {"Bascagh (kynney)"}, ["eve"] = {"Evenish"}, ["evh"] = {"Uvbie"}, ["evn"] = {"Evenkish"}, ["ewo"] = {"Ewondo"}, ["ext"] = {"Estremadurish"}, ["eya"] = {"Eyak"}, ["eyo"] = {"Keiyo"}, ["eza"] = {"Ezaa"}, ["eze"] = {"Uzekwe"}, ["faa"] = {"Fasu"}, ["fab"] = {"Fa d'Ambu"}, ["fad"] = {"Wagi"}, ["faf"] = {"Fagani"}, ["fag"] = {"Finongan"}, ["fah"] = {"Baissa Fali"}, ["fai"] = {"Faiwol"}, ["faj"] = {"Faita"}, ["fak"] = {"Fang (Cameroon)"}, ["fal"] = {"Fali Yiass"}, ["fam"] = {"Fam"}, ["fan"] = {"Fang (Guinea Chryss ny Cruinney)"}, ["fap"] = {"Paloor"}, ["far"] = {"Fataleka"}, ["fat"] = {"Fanti"}, ["fau"] = {"Fayu"}, ["fax"] = {"Fala"}, ["fay"] = {"Fars Heear Yiass"}, ["faz"] = {"Fars Heear Hwoaie"}, ["fbl"] = {"Bikol Albay Heear"}, ["fcs"] = {"Çhengey Chowree Québec"}, ["fer"] = {"Feroge"}, ["ffi"] = {"Foia Foia"}, ["ffm"] = {"Maasina Fulfulde"}, ["fgr"] = {"Fongoro"}, ["fia"] = {"Nobiin"}, ["fie"] = {"Fyer"}, ["fif"] = {"Faifi"}, ["fil"] = {"Philippeenish"}, ["fip"] = {"Fipa"}, ["fir"] = {"Firan"}, ["fit"] = {"Finnlynnish Tornedal", "Meänkieli"}, ["fiu"] = {"çhengaghyn Finn-Oogragh"}, ["fiw"] = {"Fiwaga"}, ["fkk"] = {"Kirya-Konzəl"}, ["fkv"] = {"Finnlynnish Kven"}, ["fla"] = {"Kalispel-Pend d'Oreille"}, ["flh"] = {"Foau"}, ["fli"] = {"Fali"}, ["fll"] = {"Fali Hwoaie"}, ["fln"] = {"Flinders Island"}, ["flr"] = {"Fuliiru"}, ["fly"] = {"Flaaitaal", "Tsotsitaal"}, ["fmp"] = {"Fe'fe'"}, ["fmu"] = {"Muria Heear Foddey"}, ["fnb"] = {"Fanbak"}, ["fng"] = {"Fanagalo"}, ["fni"] = {"Fania"}, ["fod"] = {"Foodo"}, ["foi"] = {"Foi"}, ["fom"] = {"Foma"}, ["fon"] = {"Fon"}, ["for"] = {"Fore"}, ["fos"] = {"Siraya"}, ["fox"] = {"çhengaghyn Formosagh"}, ["fpe"] = {"Creeole Baarle Fernando Po"}, ["fqs"] = {"Fas"}, ["frc"] = {"Frangish Cajun"}, ["frd"] = {"Fordata"}, ["frk"] = {"Frankish"}, ["frm"] = {"Frangish Veanagh (ca. 1400-1600)"}, ["fro"] = {"Shenn Rangish (842-ca. 1400)"}, ["frp"] = {"Arpitanish", "Francoprovençal"}, ["frq"] = {"Forak"}, ["frr"] = {"Freeshlannish Hwoaie"}, ["frs"] = {"Freeshlannish Hiar"}, ["frt"] = {"Fortsenal"}, ["fse"] = {"Çhengey Cowree Innlynnagh"}, ["fsl"] = {"Çhengey Chowree Rangagh"}, ["fss"] = {"Çhengey Chowree Finnlynn-y Toolynn", "finlandssvenskt teckenspråk", "suomenruotsalainen viittomakieli"}, ["fub"] = {"Adamawa Fulfulde"}, ["fuc"] = {"Pulaarish"}, ["fud"] = {"Futuna Hiar"}, ["fue"] = {"Borgu Fulfulde"}, ["fuf"] = {"Pularish"}, ["fuh"] = {"Fulfulde y Neegeyr Heear"}, ["fui"] = {"Fulfulde Bagirmi"}, ["fuj"] = {"Ko"}, ["fum"] = {"Fum"}, ["fun"] = {"Fulniô"}, ["fuq"] = {"Fulfulde y Neegeyr Hiar Veanagh"}, ["fur"] = {"Friulish"}, ["fut"] = {"Futuna-Aniwa"}, ["fuu"] = {"Furu"}, ["fuv"] = {"Fulfulde y Naigeer"}, ["fuy"] = {"Fuyug"}, ["fvr"] = {"Fur"}, ["fwa"] = {"Fwâi"}, ["fwe"] = {"Fwe"}, ["gaa"] = {"Ga"}, ["gab"] = {"Gabri"}, ["gac"] = {"Andamanish Vooar Vestit"}, ["gad"] = {"Gaddang"}, ["gae"] = {"Guarequena"}, ["gaf"] = {"Gende"}, ["gag"] = {"Gagauzish"}, ["gah"] = {"Alekano"}, ["gai"] = {"Borei"}, ["gaj"] = {"Gadsup"}, ["gak"] = {"Gamkonora"}, ["gal"] = {"Galolen"}, ["gam"] = {"Kandawo"}, ["gan"] = {"Sheenish Gan"}, ["gao"] = {"Gants"}, ["gap"] = {"Gal"}, ["gaq"] = {"Gata'"}, ["gar"] = {"Galeya"}, ["gas"] = {"Adiwasi Garasia"}, ["gat"] = {"Kenati"}, ["gau"] = {"Mudhili Gadaba"}, ["gaw"] = {"Nobonob"}, ["gax"] = {"Borana-Arsi-Guji Oromo"}, ["gay"] = {"Gayo"}, ["gaz"] = {"Oromoish Veanagh Heear"}, ["gba"] = {"Gbaya (Pobblaght yn Affrick Veanagh)"}, ["gbb"] = {"Kaytetye"}, ["gbd"] = {"Karajarri"}, ["gbe"] = {"Niksek"}, ["gbf"] = {"Gaikundi"}, ["gbg"] = {"Gbanziri"}, ["gbh"] = {"Defi Gbe"}, ["gbi"] = {"Galela"}, ["gbj"] = {"Bodo Gadaba"}, ["gbk"] = {"Gaddi"}, ["gbl"] = {"Gamit"}, ["gbm"] = {"Garhwali"}, ["gbn"] = {"Mo'da"}, ["gbo"] = {"Grebo Hwoaie"}, ["gbp"] = {"Gbaya-Bossangoa"}, ["gbq"] = {"Gbaya-Bozoum"}, ["gbr"] = {"Gbagyi"}, ["gbs"] = {"Gbesi Gbe"}, ["gbu"] = {"Gagadu"}, ["gbv"] = {"Gbanu"}, ["gbw"] = {"Gabi-Gabi"}, ["gbx"] = {"Xwla Gbe Hiar"}, ["gby"] = {"Gbari"}, ["gbz"] = {"Darish Horoastrianagh"}, ["gcc"] = {"Mali"}, ["gcd"] = {"Ganggalida"}, ["gce"] = {"Galice"}, ["gcf"] = {"Creeole Frangish Guadeloupe"}, ["gcl"] = {"Creeole Baarle Grenadagh"}, ["gcn"] = {"Gaina"}, ["gcr"] = {"Creeole Frangish Geeaanagh"}, ["gct"] = {"Germaanish Colonia Tovar"}, ["gda"] = {"Gade Lohar"}, ["gdb"] = {"Pottangi Ollar Gadaba"}, ["gdc"] = {"Gugu Badhun"}, ["gdd"] = {"Gedaged"}, ["gde"] = {"Gude"}, ["gdf"] = {"Guduf-Gava"}, ["gdg"] = {"Ga'dang"}, ["gdh"] = {"Gadjerawang", "Gajirrabeng"}, ["gdi"] = {"Gundi"}, ["gdj"] = {"Gurdjar"}, ["gdk"] = {"Gadang"}, ["gdl"] = {"Dirasha"}, ["gdm"] = {"Laal"}, ["gdn"] = {"Umanakaina"}, ["gdo"] = {"Ghodoberi"}, ["gdq"] = {"Mehri"}, ["gdr"] = {"Wipi"}, ["gds"] = {"Çhengey CHowree Ghandruk"}, ["gdt"] = {"Kungardutyi"}, ["gdu"] = {"Gudu"}, ["gdx"] = {"Godwari"}, ["gea"] = {"Geruma"}, ["geb"] = {"Kire"}, ["gec"] = {"Gboloo Grebo"}, ["ged"] = {"Gade"}, ["gef"] = {"Gerai"}, ["geg"] = {"Gengle"}, ["geh"] = {"Germaanish utteragh", "Hutterisch"}, ["gei"] = {"Gebe"}, ["gej"] = {"Gen"}, ["gek"] = {"Ywom"}, ["gel"] = {"ut-Ma'in"}, ["gem"] = {"çhengaghyn Germaanic"}, ["geq"] = {"Geme"}, ["ges"] = {"Geser-Gorom"}, ["gev"] = {"Eviya"}, ["gew"] = {"Gera"}, ["gex"] = {"Garre"}, ["gey"] = {"Enya"}, ["gez"] = {"Geez"}, ["gfk"] = {"Patpatar"}, ["gft"] = {"Gafat"}, ["gga"] = {"Gao"}, ["ggb"] = {"Gbii"}, ["ggd"] = {"Gugadj"}, ["gge"] = {"Gurr-goni"}, ["ggg"] = {"Gurgula"}, ["ggk"] = {"Kungarakany"}, ["ggl"] = {"Ganglau"}, ["ggt"] = {"Gitua"}, ["ggu"] = {"Gagu", "Gban"}, ["ggw"] = {"Gogodala"}, ["gha"] = {"Ghadamès"}, ["ghc"] = {"Gaelg Yerno-Albinagh"}, ["ghe"] = {"Ghale Yiass"}, ["ghh"] = {"Ghale Hwoaie"}, ["ghk"] = {"Karenish Geko"}, ["ghl"] = {"Ghulfan"}, ["ghn"] = {"Ghanongga"}, ["gho"] = {"Ghomara"}, ["ghr"] = {"Ghera"}, ["ghs"] = {"Guhu-Samane"}, ["ght"] = {"Kuke", "Kutang Ghale"}, ["gia"] = {"Kija"}, ["gib"] = {"Gibanawa"}, ["gic"] = {"Gail"}, ["gid"] = {"Gidar"}, ["gie"] = {"Gaɓogbo", "Guébie"}, ["gig"] = {"Goaria"}, ["gih"] = {"Githabul"}, ["gii"] = {"Girirra"}, ["gil"] = {"Gilbertish"}, ["gim"] = {"Gimi (yn Ard-Heer Hiar)"}, ["gin"] = {"Hinukh"}, ["gip"] = {"Gimi (y Vretyn Noa Heear)"}, ["giq"] = {"Gelao Eayney"}, ["gir"] = {"Gelao Jiarg"}, ["gis"] = {"Giziga Hwoaie"}, ["git"] = {"Gitxsan"}, ["giu"] = {"Mulao"}, ["giw"] = {"Gelao Bane"}, ["gix"] = {"Gilima"}, ["giy"] = {"Giyug"}, ["giz"] = {"Giziga Yiass"}, ["gjk"] = {"Kachi Koli"}, ["gjm"] = {"Gunditjmara"}, ["gjn"] = {"Gonja"}, ["gjr"] = {"Kriol Gurindji"}, ["gju"] = {"Gujari"}, ["gka"] = {"Guya"}, ["gkd"] = {"Magɨ (Queiggey Madang)"}, ["gke"] = {"Ndai"}, ["gkn"] = {"Gokana"}, ["gko"] = {"Kok-Nar"}, ["gkp"] = {"Kpelle yn Ghuinea"}, ["gku"] = {"ǂUngkue"}, ["glb"] = {"Belning"}, ["glc"] = {"Bon Gula"}, ["gld"] = {"Nanai"}, ["glh"] = {"Pashai Heear Hwoaie", "Pashayi Heear Hwoaie"}, ["glj"] = {"Gula Iro"}, ["glk"] = {"Gilaki"}, ["gll"] = {"Garlali"}, ["glo"] = {"Galambu"}, ["glr"] = {"Glaro-Twabo"}, ["glu"] = {"Gula (Shad)"}, ["glw"] = {"Glavda"}, ["gly"] = {"Gule"}, ["gma"] = {"Gambera"}, ["gmb"] = {"Gula'alaa"}, ["gmd"] = {"Mághdì"}, ["gme"] = {"çhengaghyn Germaanic Hiar"}, ["gmg"] = {"Magɨyi"}, ["gmh"] = {"Ard-Ghermaanish Veanagh (ca. 1050-1500)"}, ["gml"] = {"Germaanish Injil Veanagh"}, ["gmm"] = {"Gbaya-Mbodomo"}, ["gmn"] = {"Gimnime"}, ["gmq"] = {"çhengaghyn Germaanic Hwoaie"}, ["gmr"] = {"Mirning", "Mirniny"}, ["gmu"] = {"Gumalu"}, ["gmv"] = {"Gamo"}, ["gmw"] = {"çhengaghyn Germaanagh Heear"}, ["gmx"] = {"Magoma"}, ["gmy"] = {"Greagish Vycenaeagh"}, ["gmz"] = {"Mgbolizhia"}, ["gna"] = {"Kaansa"}, ["gnb"] = {"Gangte"}, ["gnc"] = {"Guançhish"}, ["gnd"] = {"Zulgo-Gemzek"}, ["gne"] = {"Ganang"}, ["gng"] = {"Ngangam"}, ["gnh"] = {"Lere"}, ["gni"] = {"Gooniyandi"}, ["gnj"] = {"Ngen"}, ["gnk"] = {"ǁGana"}, ["gnl"] = {"Gangulu"}, ["gnm"] = {"Ginuman"}, ["gnn"] = {"Gumatj"}, ["gno"] = {"Gondi Hwoaie"}, ["gnq"] = {"Gana"}, ["gnr"] = {"Gureng Gureng"}, ["gnt"] = {"Guntai"}, ["gnu"] = {"Gnau"}, ["gnw"] = {"Guaranish Voliviagh Heear"}, ["gnz"] = {"Ganzi"}, ["goa"] = {"Guro"}, ["gob"] = {"Playero"}, ["goc"] = {"Gorakor"}, ["god"] = {"Godié"}, ["goe"] = {"Gongduk"}, ["gof"] = {"Gofa"}, ["gog"] = {"Gogo"}, ["goh"] = {"Shenn Ard-Ghermaanish (ca. 750-1050)"}, ["goi"] = {"Gobasi"}, ["goj"] = {"Gowlan"}, ["gok"] = {"Gowli"}, ["gol"] = {"Gola"}, ["gom"] = {"Goan Konkani"}, ["gon"] = {"Gondi"}, ["goo"] = {"Gone Dau"}, ["gop"] = {"Yeretuar"}, ["goq"] = {"Gorap"}, ["gor"] = {"Gorontalo"}, ["gos"] = {"Gronings"}, ["got"] = {"Gothish"}, ["gou"] = {"Gavar"}, ["gov"] = {"Goo"}, ["gow"] = {"Gorowa"}, ["gox"] = {"Gobu"}, ["goy"] = {"Goundo"}, ["goz"] = {"Gozarkhani"}, ["gpa"] = {"Gupa-Abawa"}, ["gpe"] = {"Baarle Vrisht Ghanaiagh"}, ["gpn"] = {"Taiap"}, ["gqa"] = {"Ga'anda"}, ["gqi"] = {"Guiqiong"}, ["gqn"] = {"Guana (y Vrasseel)"}, ["gqr"] = {"Gor"}, ["gqu"] = {"Qau"}, ["gra"] = {"Garasia Rajput"}, ["grb"] = {"Grebo"}, ["grc"] = {"Shenn Ghreagish (derrey 1453)"}, ["grd"] = {"Guruntum-Mbaaru"}, ["grg"] = {"Madi"}, ["grh"] = {"Gbiri-Niragu"}, ["gri"] = {"Ghari"}, ["grj"] = {"Grebo Yiass"}, ["grk"] = {"çhengaghyn Greagagh"}, ["grm"] = {"Kota Marudu Talantang"}, ["gro"] = {"Groma"}, ["grq"] = {"Gorovu"}, ["grr"] = {"Taznatit"}, ["grs"] = {"Gresi"}, ["grt"] = {"Garo"}, ["gru"] = {"Kistane"}, ["grv"] = {"Grebo Veanagh"}, ["grw"] = {"Gweda"}, ["grx"] = {"Guriaso"}, ["gry"] = {"Grebo Barclayville"}, ["grz"] = {"Guramalum"}, ["gse"] = {"Çhengey Chowree Ghanaiagh"}, ["gsg"] = {"Çhengey Chowree Ghermaanagh"}, ["gsl"] = {"Gusilay"}, ["gsm"] = {"Çhengey Chowree Ghuatemalagh"}, ["gsn"] = {"Nema", "Gusan"}, ["gso"] = {"Gbaya Heear Yiass"}, ["gsp"] = {"Wasembo"}, ["gss"] = {"Çhengey Chowree Ghreagagh"}, ["gsw"] = {"Germaanish Elveeishagh", "Alemannish", "Alsaasish"}, ["gta"] = {"Guató"}, ["gtu"] = {"Aghu-Tharnggala"}, ["gua"] = {"Shiki"}, ["gub"] = {"Guajajára"}, ["guc"] = {"Wayuu"}, ["gud"] = {"Yocoboué Dida"}, ["gue"] = {"Gurindji"}, ["guf"] = {"Gupapuyngu"}, ["gug"] = {"Guaranish Pharaguayagh"}, ["guh"] = {"Guahibo"}, ["gui"] = {"Guaranish Voliviagh Hiar"}, ["guk"] = {"Gumuz"}, ["gul"] = {"Creeole Baarle Gullah"}, ["gum"] = {"Guambiano"}, ["gun"] = {"Mbyá Guaraní"}, ["guo"] = {"Guayabero"}, ["gup"] = {"Gunwinggu"}, ["guq"] = {"Aché"}, ["gur"] = {"Farefare"}, ["gus"] = {"Çhengey Chowree Guineagh"}, ["gut"] = {"Maléku Jaíka"}, ["guu"] = {"Yanomamö"}, ["guw"] = {"Gun"}, ["gux"] = {"Gourmanchéma"}, ["guz"] = {"Gusii", "Ekegusii"}, ["gva"] = {"Guana (y Pharaguay)"}, ["gvc"] = {"Guanano"}, ["gve"] = {"Duwet"}, ["gvf"] = {"Golin"}, ["gvj"] = {"Guajá"}, ["gvl"] = {"Gulay"}, ["gvm"] = {"Gurmana"}, ["gvn"] = {"Kuku-Yalanji"}, ["gvo"] = {"Gavião Do Jiparaná"}, ["gvp"] = {"Pará Gavião"}, ["gvr"] = {"Gurung"}, ["gvs"] = {"Gumawana"}, ["gvy"] = {"Guyani"}, ["gwa"] = {"Mbato"}, ["gwb"] = {"Gwa"}, ["gwc"] = {"Gawri", "Kalami"}, ["gwd"] = {"Gawwada"}, ["gwe"] = {"Gweno"}, ["gwf"] = {"Gowro"}, ["gwg"] = {"Moo"}, ["gwi"] = {"Gwichʼin"}, ["gwj"] = {"ǀGwi"}, ["gwm"] = {"Awngthim"}, ["gwn"] = {"Gwandara"}, ["gwr"] = {"Gwere"}, ["gwt"] = {"Gawar-Bati"}, ["gwu"] = {"Guwamu"}, ["gww"] = {"Kwini"}, ["gwx"] = {"Gua"}, ["gxx"] = {"Wè Yiass"}, ["gya"] = {"Gbaya Heear Hwoaie"}, ["gyb"] = {"Garus"}, ["gyd"] = {"Kayardild"}, ["gye"] = {"Gyem"}, ["gyf"] = {"Gungabula"}, ["gyg"] = {"Gbayi"}, ["gyi"] = {"Gyele"}, ["gyl"] = {"Gayil"}, ["gym"] = {"Ngäbere"}, ["gyn"] = {"Creeole Baarle Geeaanagh"}, ["gyo"] = {"Gyalsumdo"}, ["gyr"] = {"Guarayu"}, ["gyy"] = {"Gunya"}, ["gyz"] = {"Geji", "Gyaazi"}, ["gza"] = {"Ganza"}, ["gzi"] = {"Gazi"}, ["gzn"] = {"Gane"}, ["haa"] = {"Han"}, ["hab"] = {"Çhengey Chowree Hanoi"}, ["hac"] = {"Guranish"}, ["had"] = {"Hatam"}, ["hae"] = {"Oromoish Hiar"}, ["haf"] = {"Çhengey Chowree Haiphong"}, ["hag"] = {"Hanga"}, ["hah"] = {"Hahon"}, ["hai"] = {"Haida"}, ["haj"] = {"Hajong"}, ["hak"] = {"Sheenish Hakka"}, ["hal"] = {"Halang"}, ["ham"] = {"Hewa"}, ["han"] = {"Hangaza"}, ["hao"] = {"Hakö"}, ["hap"] = {"Hupla"}, ["haq"] = {"Ha"}, ["har"] = {"Harari"}, ["has"] = {"Haisla"}, ["hav"] = {"Havu"}, ["haw"] = {"Hawaiish"}, ["hax"] = {"Haida Yiass"}, ["hay"] = {"Haya"}, ["haz"] = {"Hazaragi"}, ["hba"] = {"Hamba"}, ["hbb"] = {"Huba"}, ["hbn"] = {"Heiban"}, ["hbo"] = {"Shenn Ewnish"}, ["hbu"] = {"Habu"}, ["hca"] = {"Creeole Hindish Andamanagh"}, ["hch"] = {"Huichol"}, ["hdn"] = {"Haida Hwoaie"}, ["hds"] = {"Çhengey Chowree Hondooragh"}, ["hdy"] = {"Hadiyya"}, ["hea"] = {"Miao Qiandong Hwoaie"}, ["hed"] = {"Herdé"}, ["heg"] = {"Helong"}, ["heh"] = {"Hehe"}, ["hei"] = {"Heiltsuk"}, ["hem"] = {"Hemba"}, ["hgm"] = {"Haiǁom"}, ["hgw"] = {"Haigwai"}, ["hhi"] = {"Hoia Hoia"}, ["hhr"] = {"Kerak"}, ["hhy"] = {"Hoyahoya"}, ["hia"] = {"Lamang"}, ["hib"] = {"Hibito"}, ["hid"] = {"Hidatsa"}, ["hif"] = {"Hindish Fiji"}, ["hig"] = {"Kamwe"}, ["hih"] = {"Pamosu"}, ["hii"] = {"Hindurish"}, ["hij"] = {"Hijuk"}, ["hik"] = {"Seit-Kaitetu"}, ["hil"] = {"Hiligaynonish"}, ["him"] = {"çhengaghyn Himachalagh", "çhengaghyn Paharagh Heear"}, ["hio"] = {"Tsoa"}, ["hir"] = {"Himarimã"}, ["hit"] = {"Hittish"}, ["hiw"] = {"Hiw"}, ["hix"] = {"Hixkaryána"}, ["hji"] = {"Haji"}, ["hka"] = {"Kahe"}, ["hke"] = {"Hunde"}, ["hkh"] = {"Khah", "Poguli"}, ["hkk"] = {"Hunjara-Kaina Ke"}, ["hkn"] = {"Mel-Khaonh"}, ["hks"] = {"Çhengey Chowree Hong Kong", "Heung Kong Sau Yue"}, ["hla"] = {"Halia"}, ["hlb"] = {"Halbi"}, ["hld"] = {"Halang Doan"}, ["hle"] = {"Hlersu"}, ["hlt"] = {"Matu Chin"}, ["hlu"] = {"Luwish Yalloo-ocklagh"}, ["hma"] = {"Hmongish Mashan Yiass", "Miaoish Mashan Yiass"}, ["hmb"] = {"Humburi Senni Songhay"}, ["hmc"] = {"Hmongish Huishui Veanagh", "Miaoish Huishui Veanagh"}, ["hmd"] = {"Miaoish Vooar-Ornaidagh", "A-hmaos", "Miaoish Da-Hua"}, ["hme"] = {"Hmongish Huishui Hiar", "Miaoish Huishui Hiar"}, ["hmf"] = {"Hmongish Don"}, ["hmg"] = {"Hmongish Guiyang Heear Yiass"}, ["hmh"] = {"Hmongish Huishui Heear Yiass", "Miaoish Huishui Heear Yiass"}, ["hmi"] = {"Hmongish Huishui Hwoaie", "Miaoish Huishui Hwoaie"}, ["hmj"] = {"Ge", "Gejia"}, ["hmk"] = {"Maek"}, ["hml"] = {"Hmongish Luopohe", "Miaoish Luopohe"}, ["hmm"] = {"Hmongish Mashan Veanagh", "Miaoish Mashan Veanagh"}, ["hmn"] = {"Hmongish", "Mongish"}, ["hmp"] = {"Hmongish Mashan Hwoaie", "Miaoish Mashan Hwoaie"}, ["hmq"] = {"Miaoish Qiandong Hiar"}, ["hmr"] = {"Hmar"}, ["hms"] = {"Miaoish Qiandong Yiass"}, ["hmt"] = {"Hamtai"}, ["hmu"] = {"Hamap"}, ["hmv"] = {"Hmong Dô"}, ["hmw"] = {"Hmongish Mashan Heear", "Miaoish Mashan Heear"}, ["hmx"] = {"çhengaghyn Hmong-Mien"}, ["hmy"] = {"Hmongish Guiyang Yiass", "Miaoish Guiyang Yiass"}, ["hmz"] = {"Hmongish Shua", "Miaoish Heenit"}, ["hna"] = {"Mina (Cameroon)"}, ["hnd"] = {"Hindko Yiass"}, ["hne"] = {"Chhattisgarhi"}, ["hng"] = {"Hungu"}, ["hnh"] = {"ǁAni"}, ["hni"] = {"Hani"}, ["hnj"] = {"Hmongish Njua", "Mong Leng", "Mong Njua"}, ["hnn"] = {"Hanunoo"}, ["hno"] = {"Hindko Hwoaie"}, ["hns"] = {"Hindustaanish Charibagh"}, ["hnu"] = {"Hung"}, ["hoa"] = {"Hoava"}, ["hob"] = {"Marish (Queiggey Madang)"}, ["hoc"] = {"Ho"}, ["hod"] = {"Holma"}, ["hoe"] = {"Horom"}, ["hoh"] = {"Hobyót"}, ["hoi"] = {"Holikachuk"}, ["hoj"] = {"Hadothish", "Harotish"}, ["hok"] = {"çhengaghyn Hokagh"}, ["hol"] = {"Holu"}, ["hom"] = {"Homa"}, ["hoo"] = {"Holoholo"}, ["hop"] = {"Hopi"}, ["hor"] = {"Horo"}, ["hos"] = {"Çhengey Chowree Chaayr Ho Chi Minh"}, ["hot"] = {"Hote", "Malê"}, ["hov"] = {"Hovongan"}, ["how"] = {"Honi"}, ["hoy"] = {"Holiya"}, ["hoz"] = {"Hozo"}, ["hpo"] = {"Hpon"}, ["hps"] = {"Glare Chowree Hawai'i (HSL)", "Çhengey Chowree Hawaiish Vrisht"}, ["hra"] = {"Hrangkhol"}, ["hrc"] = {"Niwer Mil"}, ["hre"] = {"Hre"}, ["hrk"] = {"Haruku"}, ["hrm"] = {"Miaoish Eairkagh"}, ["hro"] = {"Haroi"}, ["hrp"] = {"Nhirrpi"}, ["hrt"] = {"Hértevin"}, ["hru"] = {"Hruso"}, ["hrw"] = {"Warwar Feni"}, ["hrx"] = {"Hunsrikish"}, ["hrz"] = {"Harzanish"}, ["hsb"] = {"Sorbish Eaghtyragh"}, ["hsh"] = {"Glare Chowree Ungaaragh"}, ["hsl"] = {"Glare Chowree Hausagh"}, ["hsn"] = {"Sheenish Xiang"}, ["hss"] = {"Harsusi"}, ["hti"] = {"Hoti"}, ["hto"] = {"Minica Huitoto"}, ["hts"] = {"Hadza"}, ["htu"] = {"Hitu"}, ["htx"] = {"Hittish Veanagh"}, ["hub"] = {"Huambisa"}, ["huc"] = {"ǂHua", "ǂʼAmkhoe"}, ["hud"] = {"Huaulu"}, ["hue"] = {"San Francisco Del Mar Huave"}, ["huf"] = {"Humene"}, ["hug"] = {"Huachipaeri"}, ["huh"] = {"Huilliche"}, ["hui"] = {"Huli"}, ["huj"] = {"Hmongish Guiyang Hwoaie", "Miaoish Guiyang Hwoaie"}, ["huk"] = {"Hulung"}, ["hul"] = {"Hula"}, ["hum"] = {"Hungana"}, ["huo"] = {"Hu"}, ["hup"] = {"Hupa"}, ["huq"] = {"Tsat"}, ["hur"] = {"Halkomelem"}, ["hus"] = {"Huastecish"}, ["hut"] = {"Humla"}, ["huu"] = {"Murui Huitoto"}, ["huv"] = {"San Mateo Del Mar Huave"}, ["huw"] = {"Hukumina"}, ["hux"] = {"Nüpode Huitoto"}, ["huy"] = {"Hulaulá"}, ["huz"] = {"Hunzibish"}, ["hvc"] = {"Çhengey Chultoor Vodoun Haitagh"}, ["hve"] = {"San Dionisio Del Mar Huave"}, ["hvk"] = {"Haveke"}, ["hvn"] = {"Sabu"}, ["hvv"] = {"Santa María Del Mar Huave"}, ["hwa"] = {"Wané"}, ["hwc"] = {"Creeole Baarle Hawaiianagh", "Hawaiish Vrisht"}, ["hwo"] = {"Hwana"}, ["hya"] = {"Hya"}, ["hyw"] = {"Armeanish Heear"}, ["hyx"] = {"Armeanagh (kynney)"}, ["iai"] = {"Iaai"}, ["ian"] = {"Iatmul"}, ["iar"] = {"Purari"}, ["iba"] = {"Iban"}, ["ibb"] = {"Ibibio"}, ["ibd"] = {"Iwaidja"}, ["ibe"] = {"Akpes"}, ["ibg"] = {"Ibanag"}, ["ibh"] = {"Bih"}, ["ibl"] = {"Ibaloi"}, ["ibm"] = {"Agoi"}, ["ibn"] = {"Ibino"}, ["ibr"] = {"Ibuoro"}, ["ibu"] = {"Ibu"}, ["iby"] = {"Ibani"}, ["ica"] = {"Ede Ica"}, ["ich"] = {"Etkywan"}, ["icl"] = {"Çhengey Chowree Eeslynnagh"}, ["icr"] = {"Creeole San Andrés–Providencia"}, ["ida"] = {"Idakho-Isukha-Tiriki", "Luidakho-Luisukha-Lutirichi"}, ["idb"] = {"Portiugish Injinagh"}, ["idc"] = {"Idon", "Ajiya"}, ["idd"] = {"Ede Idaca"}, ["ide"] = {"Idere"}, ["idi"] = {"Idi"}, ["idr"] = {"Indri"}, ["ids"] = {"Idesa"}, ["idt"] = {"Idaté"}, ["idu"] = {"Idoma"}, ["ifa"] = {"Amganad Ifugao"}, ["ifb"] = {"Batad Ifugao", "Ayangan Ifugao"}, ["ife"] = {"Ifè"}, ["iff"] = {"Ifo"}, ["ifk"] = {"Tuwali Ifugao"}, ["ifm"] = {"Teke-Fuumu"}, ["ifu"] = {"Mayoyao Ifugao"}, ["ify"] = {"Keley-I Kallahan"}, ["igb"] = {"Ebira"}, ["ige"] = {"Igede"}, ["igg"] = {"Igana"}, ["igl"] = {"Igala"}, ["igm"] = {"Kanggape"}, ["ign"] = {"Ignaciano"}, ["igo"] = {"Isebe"}, ["igs"] = {"Interglossa"}, ["igw"] = {"Igwe"}, ["ihb"] = {"Iha Vrisht"}, ["ihi"] = {"Ihievbe"}, ["ihp"] = {"Iha"}, ["ihw"] = {"Bidhawal"}, ["iin"] = {"Thiin"}, ["iir"] = {"çhengaghyn Ind-Eeraanagh"}, ["ijc"] = {"Izon"}, ["ije"] = {"Biseni"}, ["ijj"] = {"Ede Ije"}, ["ijn"] = {"Kalabari"}, ["ijo"] = {"çhengaghyn Ijo"}, ["ijs"] = {"Ijo Hiar Yiass"}, ["ike"] = {"Inuktitut Hiar y Chanadey"}, ["ikh"] = {"Ikhin-Arokho"}, ["iki"] = {"Iko"}, ["ikk"] = {"Ika"}, ["ikl"] = {"Ikulu"}, ["iko"] = {"Olulumo-Ikom"}, ["ikp"] = {"Ikpeshi"}, ["ikr"] = {"Ikaranggal"}, ["iks"] = {"Çhengey Chowree Inuitagh"}, ["ikt"] = {"Inuinnaqtun", "Inuktitut Heear y Chanadey"}, ["ikv"] = {"Iku-Gora-Ankwa"}, ["ikw"] = {"Ikwere"}, ["ikx"] = {"Ik"}, ["ikz"] = {"Ikizu"}, ["ila"] = {"Ile Ape"}, ["ilb"] = {"Ila"}, ["ilg"] = {"Garig-Ilgar"}, ["ili"] = {"Ili Turki"}, ["ilk"] = {"Ilongot"}, ["ilm"] = {"Iranun (y Valaysia)"}, ["ilo"] = {"Iloko"}, ["ilp"] = {"Iranun (ny h-Ellanyn Philippeenagh)"}, ["ils"] = {"Çhengey Chowree Eddyr-ashoonagh"}, ["ilu"] = {"Ili'uun"}, ["ilv"] = {"Ilue"}, ["ima"] = {"Mala Malasar"}, ["imi"] = {"Anamgura"}, ["iml"] = {"Miluk"}, ["imn"] = {"Imonda"}, ["imo"] = {"Imbongu"}, ["imr"] = {"Imroing"}, ["ims"] = {"Marsish"}, ["imt"] = {"Imotong"}, ["imy"] = {"Milyan"}, ["inb"] = {"Inga"}, ["inc"] = {"çhengaghyn Indagh"}, ["ine"] = {"çhengaghyn Ind-Oarpagh"}, ["ing"] = {"Degexit'an"}, ["inh"] = {"Ingushish"}, ["inj"] = {"Inga yn Jungyl"}, ["inl"] = {"Çhengey Chowree Indoneeshagh"}, ["inm"] = {"Minaeish"}, ["inn"] = {"Isinai"}, ["ino"] = {"Inoke-Yate"}, ["inp"] = {"Iñapari"}, ["ins"] = {"Çhengey Chowree Injinagh"}, ["int"] = {"Intha"}, ["inz"] = {"Ineseño"}, ["ior"] = {"Inor"}, ["iou"] = {"Tuma-Irumu"}, ["iow"] = {"Iowa-Oto"}, ["ipi"] = {"Ipili"}, ["ipo"] = {"Ipiko"}, ["iqu"] = {"Iquito"}, ["iqw"] = {"Ikwo"}, ["ira"] = {"çhengaghyn Eeraanagh"}, ["ire"] = {"Iresim"}, ["irh"] = {"Irarutu"}, ["iri"] = {"Rigwe", "Irigwe"}, ["irk"] = {"Iraqw"}, ["irn"] = {"Irántxe"}, ["iro"] = {"çhengaghyn Iroquoiagh"}, ["irr"] = {"Ir"}, ["iru"] = {"Irula"}, ["irx"] = {"Kamberau"}, ["iry"] = {"Iraya"}, ["isa"] = {"Isabi"}, ["isc"] = {"Isconahua"}, ["isd"] = {"Isnag"}, ["ise"] = {"Çhengey Chowree Iddaalagh"}, ["isg"] = {"Çhengey Chowree Yernagh"}, ["ish"] = {"Esan"}, ["isi"] = {"Nkem-Nkum"}, ["isk"] = {"Ishkashimi"}, ["ism"] = {"Masimasi"}, ["isn"] = {"Isanzu"}, ["iso"] = {"Isoko"}, ["isr"] = {"Çhengey Chowree Israelagh"}, ["ist"] = {"Istriotish"}, ["isu"] = {"Isu (Rheynn Menchum)"}, ["itb"] = {"Binongan Itneg"}, ["itc"] = {"çhengaghyn Iddaalagh"}, ["itd"] = {"Tidung Yiass"}, ["ite"] = {"Itene"}, ["iti"] = {"Inlaod Itneg"}, ["itk"] = {"Iddaalish Ewagh"}, ["itl"] = {"Itelmenish"}, ["itm"] = {"Itu Mbon Uzo"}, ["ito"] = {"Itonama"}, ["itr"] = {"Iteri"}, ["its"] = {"Isekiri"}, ["itt"] = {"Maeng Itneg"}, ["itv"] = {"Itawit"}, ["itw"] = {"Ito"}, ["itx"] = {"Itik"}, ["ity"] = {"Moyadan Itneg"}, ["itz"] = {"Itzá"}, ["ium"] = {"Iu Mien"}, ["ivb"] = {"Ibatan"}, ["ivv"] = {"Ivatan"}, ["iwk"] = {"I-Wak"}, ["iwm"] = {"Iwam"}, ["iwo"] = {"Iwur"}, ["iws"] = {"Sepik Iwam"}, ["ixc"] = {"Ixcatecish"}, ["ixl"] = {"Ixil"}, ["iya"] = {"Iyayu"}, ["iyo"] = {"Mesaka"}, ["iyx"] = {"Yaka (y Congo)"}, ["izh"] = {"Ingrish"}, ["izm"] = {"Kizamani"}, ["izr"] = {"Izere"}, ["izz"] = {"Izii"}, ["jaa"] = {"Jamamadí"}, ["jab"] = {"Hyam"}, ["jac"] = {"Popti'", "Jakalteko"}, ["jad"] = {"Jahanka"}, ["jae"] = {"Yabem"}, ["jaf"] = {"Jara"}, ["jah"] = {"Jah Hut"}, ["jaj"] = {"Zazao"}, ["jak"] = {"Jakun"}, ["jal"] = {"Yalahatan"}, ["jam"] = {"Creeole Baarle Jamaicagh"}, ["jan"] = {"Jandai"}, ["jao"] = {"Yanyuwa"}, ["jaq"] = {"Yaqay"}, ["jas"] = {"Javish y Chaladoan Noa"}, ["jat"] = {"Jakati"}, ["jau"] = {"Yaur"}, ["jax"] = {"Malaish Jambi"}, ["jay"] = {"Yan-nhangu", "Nhangu"}, ["jaz"] = {"Jawe"}, ["jbe"] = {"Berberish Ewagh"}, ["jbi"] = {"Badjiri"}, ["jbj"] = {"Arandai"}, ["jbk"] = {"Barikewa"}, ["jbm"] = {"Bijim"}, ["jbn"] = {"Nafusi"}, ["jbo"] = {"Lojban"}, ["jbr"] = {"Jofotek-Bromnya"}, ["jbt"] = {"Jabutí"}, ["jbu"] = {"Jukun Takum"}, ["jbw"] = {"Yawijibaya"}, ["jcs"] = {"Çhengey Chowree Heeragh Yamaicagh"}, ["jct"] = {"Krymchak"}, ["jda"] = {"Jad"}, ["jdg"] = {"Jadgali"}, ["jdt"] = {"Tatish Ewagh"}, ["jeb"] = {"Jebero"}, ["jee"] = {"Jerung"}, ["jeh"] = {"Jeh"}, ["jei"] = {"Yei"}, ["jek"] = {"Jeri Kuo"}, ["jel"] = {"Yelmek"}, ["jen"] = {"Dza"}, ["jer"] = {"Jere"}, ["jet"] = {"Manem"}, ["jeu"] = {"Jonkor Bourmataguil"}, ["jgb"] = {"Ngbee"}, ["jge"] = {"Shorshish Ewagh"}, ["jgk"] = {"Gwak"}, ["jgo"] = {"Ngomba"}, ["jhi"] = {"Jehai"}, ["jhs"] = {"Çhengey Chowree Jhankot"}, ["jia"] = {"Jina"}, ["jib"] = {"Jibu"}, ["jic"] = {"Tol"}, ["jid"] = {"Bu (Steat Kaduna)"}, ["jie"] = {"Jilbe"}, ["jig"] = {"Jingulu", "Djingili"}, ["jih"] = {"sTodsde", "Shangzhai"}, ["jii"] = {"Jiiddu"}, ["jil"] = {"Jilim"}, ["jim"] = {"Jimi (Cameroon)"}, ["jio"] = {"Jiamao"}, ["jiq"] = {"Guanyinqiao", "Lavrung"}, ["jit"] = {"Jita"}, ["jiu"] = {"Jinuo Youle"}, ["jiv"] = {"Shuar"}, ["jiy"] = {"Jinuo Buyuan"}, ["jje"] = {"Jejueo"}, ["jjr"] = {"Bankal"}, ["jka"] = {"Kaera"}, ["jkm"] = {"Karenish Mobwa"}, ["jko"] = {"Kubo"}, ["jkp"] = {"Karenish Paku"}, ["jkr"] = {"Koro (yn Injey)"}, ["jks"] = {"Çhengey Chowree Amami Koniya"}, ["jku"] = {"Labir"}, ["jle"] = {"Ngile"}, ["jls"] = {"Çhengey Chowree Yamaicagh"}, ["jma"] = {"Dima"}, ["jmb"] = {"Zumbun"}, ["jmc"] = {"Machame"}, ["jmd"] = {"Yamdena"}, ["jmi"] = {"Jimi (y Naigeer)"}, ["jml"] = {"Jumli"}, ["jmn"] = {"Makuri Naga"}, ["jmr"] = {"Kamara"}, ["jms"] = {"Mashi (y Naigeer)"}, ["jmw"] = {"Mouwase"}, ["jmx"] = {"Mixtecish Juxtlahuaca Heear"}, ["jna"] = {"Jangshung"}, ["jnd"] = {"Jandavra"}, ["jng"] = {"Yangman"}, ["jni"] = {"Janji"}, ["jnj"] = {"Yemsa"}, ["jnl"] = {"Rawat"}, ["jns"] = {"Jaunsari"}, ["job"] = {"Joba"}, ["jod"] = {"Wojenaka"}, ["jog"] = {"Jogi"}, ["jor"] = {"Jorá"}, ["jos"] = {"Çhengey Chowree Yordaanagh"}, ["jow"] = {"Jowulu"}, ["jpa"] = {"Aramaaish Phalasteenagh Ewagh"}, ["jpr"] = {"Pershish Ewagh"}, ["jpx"] = {"Shapaanagh (kynney)"}, ["jqr"] = {"Jaqaru"}, ["jra"] = {"Jarai"}, ["jrb"] = {"Arabish Ewagh"}, ["jrr"] = {"Jiru"}, ["jrt"] = {"Jakattoe"}, ["jru"] = {"Japrería"}, ["jsl"] = {"Çhengey Chowree Hapaanagh"}, ["jua"] = {"Júma"}, ["jub"] = {"Wannu"}, ["juc"] = {"Jurchen"}, ["jud"] = {"Worodougou"}, ["juh"] = {"Hõne"}, ["jui"] = {"Ngadjuri"}, ["juk"] = {"Wapan"}, ["jul"] = {"Jirel"}, ["jum"] = {"Jumjum"}, ["jun"] = {"Juang"}, ["juo"] = {"Jiba"}, ["jup"] = {"Hupdë"}, ["jur"] = {"Jurúna"}, ["jus"] = {"Çhengey Chowree Jumla"}, ["jut"] = {"Jutish"}, ["juu"] = {"Ju"}, ["juw"] = {"Wãpha"}, ["juy"] = {"Juray"}, ["jvd"] = {"Javindo"}, ["jvn"] = {"Javish Charibagh"}, ["jwi"] = {"Jwira-Pepesa"}, ["jya"] = {"Jiarong"}, ["jye"] = {"Arabish Yemenagh Ewagh"}, ["jyy"] = {"Jaya"}, ["kaa"] = {"Kara-Kalpakish", "Karakalpakish"}, ["kab"] = {"Kabylish"}, ["kac"] = {"Kachin", "Jingpho"}, ["kad"] = {"Adara"}, ["kae"] = {"Ketangalan"}, ["kaf"] = {"Katso"}, ["kag"] = {"Kajaman"}, ["kah"] = {"Kara (Pobblaght yn Affrick Veanagh)"}, ["kai"] = {"Karekare"}, ["kaj"] = {"Jju"}, ["kak"] = {"Kalanguya", "Kayapa Kallahan"}, ["kam"] = {"Kamba (y Cheinney)"}, ["kao"] = {"Xaasongaxango"}, ["kap"] = {"Bezhta"}, ["kaq"] = {"Capanahua"}, ["kar"] = {"çhengaghyn Karenagh"}, ["kav"] = {"Katukína"}, ["kaw"] = {"Kawi"}, ["kax"] = {"Kao"}, ["kay"] = {"Kamayurá"}, ["kba"] = {"Kalarko"}, ["kbb"] = {"Kaxuiâna"}, ["kbc"] = {"Kadiwéu"}, ["kbd"] = {"Kabardish"}, ["kbe"] = {"Kanju"}, ["kbg"] = {"Khamba"}, ["kbh"] = {"Camsá"}, ["kbi"] = {"Kaptiau"}, ["kbj"] = {"Kari"}, ["kbk"] = {"Grass Koiari"}, ["kbl"] = {"Kanembu"}, ["kbm"] = {"Iwal"}, ["kbn"] = {"Kare (Pobblaght yn Affrick Veanagh)"}, ["kbo"] = {"Keliko"}, ["kbp"] = {"Kabiyè"}, ["kbq"] = {"Kamano"}, ["kbr"] = {"Kafa"}, ["kbs"] = {"Kande"}, ["kbt"] = {"Abadi"}, ["kbu"] = {"Kabutra"}, ["kbv"] = {"Dera (yn Indoneesh)"}, ["kbw"] = {"Kaiep"}, ["kbx"] = {"Ap Ma"}, ["kby"] = {"Manga Kanuri"}, ["kbz"] = {"Duhwa"}, ["kca"] = {"Khanty"}, ["kcb"] = {"Kawacha"}, ["kcc"] = {"Lubila"}, ["kcd"] = {"Ngkâlmpw Kanum"}, ["kce"] = {"Kaivi"}, ["kcf"] = {"Ukaan"}, ["kcg"] = {"Tyap"}, ["kch"] = {"Vono"}, ["kci"] = {"Kamantanish"}, ["kcj"] = {"Kobiana"}, ["kck"] = {"Kalanga"}, ["kcl"] = {"Kela (Papeey Guinea Noa)", "Kala"}, ["kcm"] = {"Gula (Pobblaght yn Affrick Veanagh)"}, ["kcn"] = {"Nubi"}, ["kco"] = {"Kinalakna"}, ["kcp"] = {"Kanga"}, ["kcq"] = {"Kamo"}, ["kcr"] = {"Katla"}, ["kcs"] = {"Koenoem"}, ["kct"] = {"Kaian"}, ["kcu"] = {"Kami (Tanzania)"}, ["kcv"] = {"Kete"}, ["kcw"] = {"Kabwari"}, ["kcx"] = {"Kachama-Ganjule"}, ["kcy"] = {"Korandje"}, ["kcz"] = {"Konongo"}, ["kda"] = {"Worimi"}, ["kdc"] = {"Kutu"}, ["kdd"] = {"Yankunytjatjara"}, ["kde"] = {"Makonde"}, ["kdf"] = {"Mamusi"}, ["kdg"] = {"Seba"}, ["kdh"] = {"Tem"}, ["kdi"] = {"Kumam"}, ["kdj"] = {"Karamojong"}, ["kdk"] = {"Numèè", "Kwényi"}, ["kdl"] = {"Tsikimba"}, ["kdm"] = {"Kagoma"}, ["kdn"] = {"Kunda"}, ["kdo"] = {"çhengaghyn Kordofaniagh"}, ["kdp"] = {"Kaningdon-Nindem"}, ["kdq"] = {"Koch"}, ["kdr"] = {"Karaimish"}, ["kdt"] = {"Kuy"}, ["kdu"] = {"Kadaru"}, ["kdw"] = {"Koneraw"}, ["kdx"] = {"Kam"}, ["kdy"] = {"Keder", "Keijar"}, ["kdz"] = {"Kwaja"}, ["kea"] = {"Kabuverdianu"}, ["keb"] = {"Kélé"}, ["kec"] = {"Keiga"}, ["ked"] = {"Kerewe"}, ["kee"] = {"Keres Hiar"}, ["kef"] = {"Kpessi"}, ["keg"] = {"Tese"}, ["keh"] = {"Keak"}, ["kei"] = {"Kei"}, ["kej"] = {"Kadar"}, ["kek"] = {"Kekchí"}, ["kel"] = {"Kela (Pobblaght Gheynlagh y Chongo)"}, ["kem"] = {"Kemak"}, ["ken"] = {"Kenyang"}, ["keo"] = {"Kakwa"}, ["kep"] = {"Kaikadi"}, ["keq"] = {"Kamar"}, ["ker"] = {"Kera"}, ["kes"] = {"Kugbo"}, ["ket"] = {"Ket"}, ["keu"] = {"Akebu"}, ["kev"] = {"Kanikkaran"}, ["kew"] = {"Kewa Heear"}, ["kex"] = {"Kukna"}, ["key"] = {"Kupia"}, ["kez"] = {"Kukele"}, ["kfa"] = {"Kodava"}, ["kfb"] = {"Kolamish Heear Hwoaie"}, ["kfc"] = {"Konda-Dora"}, ["kfd"] = {"Korra Koraga"}, ["kfe"] = {"Kota (yn Injey)"}, ["kff"] = {"Koya"}, ["kfg"] = {"Kudiya"}, ["kfh"] = {"Kurichiya"}, ["kfi"] = {"Kurumba Kannada"}, ["kfj"] = {"Kemiehua"}, ["kfk"] = {"Kinnaurish"}, ["kfl"] = {"Kung"}, ["kfm"] = {"Khunsarish"}, ["kfn"] = {"Kuk"}, ["kfo"] = {"Koro (y Clyst Iuaagagh)"}, ["kfp"] = {"Korwa"}, ["kfq"] = {"Korku"}, ["kfr"] = {"Kachhish", "Kutchish"}, ["kfs"] = {"Bilaspurish"}, ["kft"] = {"Kanjarish"}, ["kfu"] = {"Katkarish"}, ["kfv"] = {"Kurmukarish"}, ["kfw"] = {"Kharam Naga"}, ["kfx"] = {"Kullu Pahari"}, ["kfy"] = {"Kumaoni"}, ["kfz"] = {"Koromfé"}, ["kga"] = {"Koyaga"}, ["kgb"] = {"Kawe"}, ["kge"] = {"Komering"}, ["kgf"] = {"Kube"}, ["kgg"] = {"Kusunda"}, ["kgi"] = {"Çhengey Chowree Selangor"}, ["kgj"] = {"Gamale Kham"}, ["kgk"] = {"Kaiwá"}, ["kgl"] = {"Kunggari"}, ["kgn"] = {"Karingani"}, ["kgo"] = {"Krongo"}, ["kgp"] = {"Kaingang"}, ["kgq"] = {"Kamoro"}, ["kgr"] = {"Abun"}, ["kgs"] = {"Kumbainggar"}, ["kgt"] = {"Somyev"}, ["kgu"] = {"Kobol"}, ["kgv"] = {"Karas"}, ["kgw"] = {"Karon Dori"}, ["kgx"] = {"Kamaru"}, ["kgy"] = {"Kyerung"}, ["kha"] = {"Khasi"}, ["khb"] = {"Lü"}, ["khc"] = {"Tukang Besi North"}, ["khd"] = {"Bädi Kanum"}, ["khe"] = {"Korowai"}, ["khf"] = {"Khuen"}, ["khg"] = {"Khams Tibetan"}, ["khh"] = {"Kehu"}, ["khi"] = {"çhengaghyn Khoisan"}, ["khj"] = {"Kuturmi"}, ["khk"] = {"Mongoilish Halh"}, ["khl"] = {"Lusi"}, ["khn"] = {"Khandesi"}, ["kho"] = {"Khotanish", "Sakan"}, ["khp"] = {"Kapori", "Kapauri"}, ["khq"] = {"Koyra Chiini Songhay"}, ["khr"] = {"Kharia"}, ["khs"] = {"Kasua"}, ["kht"] = {"Khamti"}, ["khu"] = {"Nkhumbi"}, ["khv"] = {"Khvarshi"}, ["khw"] = {"Khowar"}, ["khx"] = {"Kanu"}, ["khy"] = {"Kele (Pobblaght Gheynlagh y Chongo)"}, ["khz"] = {"Keapara"}, ["kia"] = {"Kim"}, ["kib"] = {"Koalib"}, ["kic"] = {"Kickapoo"}, ["kid"] = {"Koshin"}, ["kie"] = {"Kibet"}, ["kif"] = {"Magar Kham Hiar"}, ["kig"] = {"Kimaama", "Kimaghima"}, ["kih"] = {"Kilmeri"}, ["kii"] = {"Kitsai"}, ["kij"] = {"Kilivila"}, ["kil"] = {"Kariya"}, ["kim"] = {"Karagas"}, ["kio"] = {"Kiowa"}, ["kip"] = {"Sheshi Kham"}, ["kiq"] = {"Kosadle", "Kosare"}, ["kis"] = {"Kis"}, ["kit"] = {"Agob"}, ["kiu"] = {"Kirmanjki (çhengey er lheh)"}, ["kiv"] = {"Kimbu"}, ["kiw"] = {"Kiwai Hiar Hwoaie"}, ["kix"] = {"Khiamniungan Naga"}, ["kiy"] = {"Kirikiri"}, ["kiz"] = {"Kisi"}, ["kja"] = {"Mlap"}, ["kjb"] = {"Q'anjob'al", "Kanjobal"}, ["kjc"] = {"Konjo Slystagh"}, ["kjd"] = {"Kiwai Yiass"}, ["kje"] = {"Kisar"}, ["kjg"] = {"Khmu"}, ["kjh"] = {"Khakas"}, ["kji"] = {"Zabana"}, ["kjj"] = {"Khinalugh"}, ["kjk"] = {"Konjo Sleitoil"}, ["kjl"] = {"Magar Kham Heear"}, ["kjm"] = {"Kháng"}, ["kjn"] = {"Kunjen"}, ["kjo"] = {"Kinnaurish Harijan"}, ["kjp"] = {"Karenish Hiar Pwo"}, ["kjq"] = {"Keres Heear"}, ["kjr"] = {"Kurudu"}, ["kjs"] = {"Kewa Hiar"}, ["kjt"] = {"Karenish Phrae Pwo"}, ["kju"] = {"Kashaya"}, ["kjv"] = {"Çhengey Lettyragh Kaikavagh"}, ["kjx"] = {"Ramopa"}, ["kjy"] = {"Erave"}, ["kjz"] = {"Bumthangkha"}, ["kka"] = {"Kakanda"}, ["kkb"] = {"Kwerisa"}, ["kkc"] = {"Odoodee"}, ["kkd"] = {"Kinuku"}, ["kke"] = {"Kakabe"}, ["kkf"] = {"Kalaktang Monpa"}, ["kkg"] = {"Kalinga Ghlion Mabaka"}, ["kkh"] = {"Khün"}, ["kki"] = {"Kagulu"}, ["kkj"] = {"Kako"}, ["kkk"] = {"Kokota"}, ["kkl"] = {"Kosarek Yale"}, ["kkm"] = {"Kiong"}, ["kkn"] = {"Kon Keu"}, ["kko"] = {"Karko"}, ["kkp"] = {"Gugubera", "Koko-Bera"}, ["kkq"] = {"Kaeku"}, ["kkr"] = {"Kir-Balar"}, ["kks"] = {"Giiwo"}, ["kkt"] = {"Koi"}, ["kku"] = {"Tumi"}, ["kkv"] = {"Kangean"}, ["kkw"] = {"Teke-Kukuya"}, ["kkx"] = {"Kohin"}, ["kky"] = {"Guugu Yimidhirr", "Guguyimidjir"}, ["kkz"] = {"Kaska"}, ["kla"] = {"Klamath-Modoc"}, ["klb"] = {"Kiliwa"}, ["klc"] = {"Kolbila"}, ["kld"] = {"Gamilaraay"}, ["kle"] = {"Kulung (Nepaal)"}, ["klf"] = {"Kendeje"}, ["klg"] = {"Tagakaulo"}, ["klh"] = {"Weliki"}, ["kli"] = {"Kalumpang"}, ["klj"] = {"Khalaj"}, ["klk"] = {"Kono (y Naigeer)"}, ["kll"] = {"Kagan Kalagan"}, ["klm"] = {"Migum"}, ["kln"] = {"Kalenjin"}, ["klo"] = {"Kapya"}, ["klp"] = {"Kamasa"}, ["klq"] = {"Rumu"}, ["klr"] = {"Khaling"}, ["kls"] = {"Kalasha"}, ["klt"] = {"Nukna"}, ["klu"] = {"Klao"}, ["klv"] = {"Maskelynes"}, ["klw"] = {"Tado", "Lindu"}, ["klx"] = {"Koluwawa"}, ["kly"] = {"Kalao"}, ["klz"] = {"Kabola"}, ["kma"] = {"Konni"}, ["kmb"] = {"Kimbundu"}, ["kmc"] = {"Dong Yiass"}, ["kmd"] = {"Majukayang Kalinga"}, ["kme"] = {"Bakole"}, ["kmf"] = {"Kare (Papooe Guinea Noa)"}, ["kmg"] = {"Kâte"}, ["kmh"] = {"Kalam"}, ["kmi"] = {"Kami (y Naigeer)"}, ["kmj"] = {"Kumarbhag Paharia"}, ["kmk"] = {"Limos Kalinga"}, ["kml"] = {"Tanudan Kalinga"}, ["kmm"] = {"Kom (yn Injey)"}, ["kmn"] = {"Awtuw"}, ["kmo"] = {"Kwoma"}, ["kmp"] = {"Gimme"}, ["kmq"] = {"Kwama"}, ["kmr"] = {"Kurdish Hwoaie"}, ["kms"] = {"Kamasau"}, ["kmt"] = {"Kemtuik"}, ["kmu"] = {"Kanite"}, ["kmv"] = {"Creeole Frangish Karipúna"}, ["kmw"] = {"Komo (Pobblaght Gheynlagh y Chongo)"}, ["kmx"] = {"Waboda"}, ["kmy"] = {"Koma"}, ["kmz"] = {"Turkish Khorasan"}, ["kna"] = {"Dera (y Naigeer)"}, ["knb"] = {"Lubuagan Kalinga"}, ["knc"] = {"Kanurish Veanagh"}, ["knd"] = {"Konda"}, ["kne"] = {"Kankanaey"}, ["knf"] = {"Mankanya"}, ["kng"] = {"Koongo"}, ["kni"] = {"Kanufi"}, ["knj"] = {"Kanjobal Heear"}, ["knk"] = {"Kuranko"}, ["knl"] = {"Keninjal"}, ["knm"] = {"Kanamarí"}, ["knn"] = {"Konkani (çhengey er lheh)"}, ["kno"] = {"Kono (Sierra Leone)"}, ["knp"] = {"Kwanja"}, ["knq"] = {"Kintaq"}, ["knr"] = {"Kaningra"}, ["kns"] = {"Kensiu"}, ["knt"] = {"Panoan Katukína"}, ["knu"] = {"Kono (y Ghuinea)"}, ["knv"] = {"Tabo"}, ["knw"] = {"Kung-Ekoka"}, ["knx"] = {"Kendayan", "Salako"}, ["kny"] = {"Kanyok"}, ["knz"] = {"Kalamsé"}, ["koa"] = {"Konomala"}, ["koc"] = {"Kpati"}, ["kod"] = {"Kodi"}, ["koe"] = {"Kacipo-Bale Suri"}, ["kof"] = {"Kubi"}, ["kog"] = {"Cogui", "Kogi"}, ["koh"] = {"Koyo"}, ["koi"] = {"Komish Phermagh"}, ["kok"] = {"Konkanish (mooar-hengey)"}, ["kol"] = {"Kol (Papooey Guinea Noa)"}, ["koo"] = {"Konzo"}, ["kop"] = {"Waube"}, ["koq"] = {"Kota (Gabon)"}, ["kos"] = {"Kosraeish"}, ["kot"] = {"Lagwan"}, ["kou"] = {"Koke"}, ["kov"] = {"Kudu-Camo"}, ["kow"] = {"Kugama"}, ["koy"] = {"Koyukon"}, ["koz"] = {"Korak"}, ["kpa"] = {"Kutto"}, ["kpb"] = {"Mullu Kurumba"}, ["kpc"] = {"Curripaco"}, ["kpd"] = {"Koba"}, ["kpe"] = {"Kpelle"}, ["kpf"] = {"Komba"}, ["kpg"] = {"Kapingamarangi"}, ["kph"] = {"Kplang"}, ["kpi"] = {"Kofei"}, ["kpj"] = {"Karajá"}, ["kpk"] = {"Kpan"}, ["kpl"] = {"Kpala"}, ["kpm"] = {"Koho"}, ["kpn"] = {"Kepkiriwát"}, ["kpo"] = {"Ikposo"}, ["kpq"] = {"Korupun-Sela"}, ["kpr"] = {"Korafe-Yegha"}, ["kps"] = {"Tehit"}, ["kpt"] = {"Karata"}, ["kpu"] = {"Kafoa"}, ["kpv"] = {"Komish Hyriagh"}, ["kpw"] = {"Kobon"}, ["kpx"] = {"Koialish Sleitoil"}, ["kpy"] = {"Koryakish"}, ["kpz"] = {"Kupsabiny"}, ["kqa"] = {"Mum"}, ["kqb"] = {"Kovai"}, ["kqc"] = {"Doromu-Koki"}, ["kqd"] = {"Koy Sanjaq Surat"}, ["kqe"] = {"Kalagan"}, ["kqf"] = {"Kakabai"}, ["kqg"] = {"Khe"}, ["kqh"] = {"Kisankasa"}, ["kqi"] = {"Koitabu"}, ["kqj"] = {"Koromira"}, ["kqk"] = {"Kotafon Gbe"}, ["kql"] = {"Kyenele"}, ["kqm"] = {"Khisa"}, ["kqn"] = {"Kaonde"}, ["kqo"] = {"Krahn Hiar"}, ["kqp"] = {"Kimré"}, ["kqq"] = {"Krenak"}, ["kqr"] = {"Kimaragang"}, ["kqs"] = {"Kissi Hwoaie"}, ["kqt"] = {"Kadazan yn Awin Klias"}, ["kqu"] = {"Seroa"}, ["kqv"] = {"Okolod"}, ["kqw"] = {"Kandas"}, ["kqx"] = {"Mser"}, ["kqy"] = {"Koorete"}, ["kqz"] = {"Korana"}, ["kra"] = {"Kumhali"}, ["krb"] = {"Karkin"}, ["krc"] = {"Karaçhayish-Balkarish"}, ["krd"] = {"Kairui-Midiki"}, ["kre"] = {"Panará"}, ["krf"] = {"Koro (Vanuatu)"}, ["krh"] = {"Kurama"}, ["kri"] = {"Krio"}, ["krj"] = {"Kinaray-A"}, ["krk"] = {"Kerek"}, ["krl"] = {"Karelish"}, ["krn"] = {"Sapo"}, ["kro"] = {"çhengaghyn Kru"}, ["krp"] = {"Durop"}, ["krr"] = {"Krung"}, ["krs"] = {"Gbaya (y Toodaan)"}, ["krt"] = {"Tumari Kanuri"}, ["kru"] = {"Kurukh"}, ["krv"] = {"Kavet"}, ["krw"] = {"Krahn Heear"}, ["krx"] = {"Karon"}, ["kry"] = {"Kryts"}, ["krz"] = {"Sota Kanum"}, ["ksb"] = {"Shambala"}, ["ksc"] = {"Kalinga Yiass"}, ["ksd"] = {"Kuanua"}, ["kse"] = {"Kuni"}, ["ksf"] = {"Bafia"}, ["ksg"] = {"Kusaghe"}, ["ksh"] = {"Kölsch"}, ["ksi"] = {"Krisa", "I'saka"}, ["ksj"] = {"Uare"}, ["ksk"] = {"Kansa"}, ["ksl"] = {"Kumalu"}, ["ksm"] = {"Kumba"}, ["ksn"] = {"Kasiguranin"}, ["kso"] = {"Kofa"}, ["ksp"] = {"Kaba"}, ["ksq"] = {"Kwaami"}, ["ksr"] = {"Borong"}, ["kss"] = {"Kisi Yiass"}, ["kst"] = {"Winyé"}, ["ksu"] = {"Khamyang"}, ["ksv"] = {"Kusu"}, ["ksw"] = {"Karenish S'gaw"}, ["ksx"] = {"Kedang"}, ["ksy"] = {"Kharia Thar"}, ["ksz"] = {"Kodaku"}, ["kta"] = {"Katua"}, ["ktb"] = {"Kambaata"}, ["ktc"] = {"Kholok"}, ["ktd"] = {"Kokata", "Kukatha"}, ["kte"] = {"Nubri"}, ["ktf"] = {"Kwami"}, ["ktg"] = {"Kalkutung"}, ["kth"] = {"Karanga"}, ["kti"] = {"Muyu Hwoaie"}, ["ktj"] = {"Plapo Krumen"}, ["ktk"] = {"Kaniet"}, ["ktl"] = {"Koroshi"}, ["ktm"] = {"Kurti"}, ["ktn"] = {"Karitiâna"}, ["kto"] = {"Kuot"}, ["ktp"] = {"Kaduo"}, ["ktq"] = {"Katabaga"}, ["kts"] = {"Muyu Yiass"}, ["ktt"] = {"Ketum"}, ["ktu"] = {"Kitubish (Pobblaght Gheynlagh y Chongo)"}, ["ktv"] = {"Katu Hiar"}, ["ktw"] = {"Kato"}, ["ktx"] = {"Kaxararí"}, ["kty"] = {"Kango (Slyst Bas-Uélé)"}, ["ktz"] = {"Juǀʼhoan", "Juǀʼhoansi"}, ["kub"] = {"Kutep"}, ["kuc"] = {"Kwinsu"}, ["kud"] = {"'Auhelawa"}, ["kue"] = {"Kuman (Papooey Guinea Noa)"}, ["kuf"] = {"Katu Heear"}, ["kug"] = {"Kupa"}, ["kuh"] = {"Kushi"}, ["kui"] = {"Kuikúro-Kalapálo", "Kalapalo"}, ["kuj"] = {"Kuria"}, ["kuk"] = {"Kepo'"}, ["kul"] = {"Kulere"}, ["kum"] = {"Kumykish"}, ["kun"] = {"Kunama"}, ["kuo"] = {"Kumukio"}, ["kup"] = {"Kunimaipa"}, ["kuq"] = {"Karipuna"}, ["kus"] = {"Kusaal"}, ["kut"] = {"Kutenai"}, ["kuu"] = {"Kuskokwim Eaghtyragh"}, ["kuv"] = {"Kur"}, ["kuw"] = {"Kpagua"}, ["kux"] = {"Kukatja"}, ["kuy"] = {"Kuuku-Ya'u"}, ["kuz"] = {"Kunza"}, ["kva"] = {"Bagvalal"}, ["kvb"] = {"Kubu"}, ["kvc"] = {"Kove"}, ["kvd"] = {"Kui (yn Indoneesh)"}, ["kve"] = {"Kalabakanish"}, ["kvf"] = {"Kabalai"}, ["kvg"] = {"Kuni-Boazi"}, ["kvh"] = {"Komodo"}, ["kvi"] = {"Kwang"}, ["kvj"] = {"Psikye"}, ["kvk"] = {"Çhengey Chowree Choreeagh"}, ["kvl"] = {"Kayaw"}, ["kvm"] = {"Kendem"}, ["kvn"] = {"Border Kuna"}, ["kvo"] = {"Dobel"}, ["kvp"] = {"Kompane"}, ["kvq"] = {"Karenish Geba"}, ["kvr"] = {"Kerinci"}, ["kvt"] = {"Karenish Lahta", "Lahta"}, ["kvu"] = {"Karenish Yinbaw"}, ["kvv"] = {"Kola"}, ["kvw"] = {"Wersing"}, ["kvx"] = {"Parkari Koli"}, ["kvy"] = {"Karenish Yintale", "Yintale"}, ["kvz"] = {"Tsakwambo", "Tsaukambo"}, ["kwa"] = {"Dâw"}, ["kwb"] = {"Kwa"}, ["kwc"] = {"Likwala"}, ["kwd"] = {"Kwaio"}, ["kwe"] = {"Kwerba"}, ["kwf"] = {"Kwara'ae"}, ["kwg"] = {"Sara Kaba Deme"}, ["kwh"] = {"Kowiai"}, ["kwi"] = {"Awa-Cuaiquer"}, ["kwj"] = {"Kwanga"}, ["kwk"] = {"Kwakiutl"}, ["kwl"] = {"Kofyar"}, ["kwm"] = {"Kwambish"}, ["kwn"] = {"Kwangalish"}, ["kwo"] = {"Kwomtarish"}, ["kwp"] = {"Kodia"}, ["kwr"] = {"Kwer"}, ["kws"] = {"Kwese"}, ["kwt"] = {"Kwesten"}, ["kwu"] = {"Kwakum"}, ["kwv"] = {"Sara Kaba Náà"}, ["kww"] = {"Kwintish"}, ["kwx"] = {"Khirwar"}, ["kwy"] = {"Kongo San Salvador"}, ["kwz"] = {"Kwadi"}, ["kxa"] = {"Kairiru"}, ["kxb"] = {"Krobu"}, ["kxc"] = {"Konso", "Khonso"}, ["kxd"] = {"Brunei"}, ["kxf"] = {"Manumanaw Karen", "Manumanaw"}, ["kxh"] = {"Karo (yn Eetoip)"}, ["kxi"] = {"Keningau Murut"}, ["kxj"] = {"Kulfa"}, ["kxk"] = {"Karenish Zayein"}, ["kxm"] = {"Khmerish Hwoaie"}, ["kxn"] = {"Kanowit-Tanjong Melanau"}, ["kxo"] = {"Kanoé"}, ["kxp"] = {"Wadiyara Koli"}, ["kxq"] = {"Smärky Kanum"}, ["kxr"] = {"Koro (Papooey Guinea Noa)"}, ["kxs"] = {"Kangjia"}, ["kxt"] = {"Koiwat"}, ["kxv"] = {"Kuvi"}, ["kxw"] = {"Konai"}, ["kxx"] = {"Likuba"}, ["kxy"] = {"Kayong"}, ["kxz"] = {"Kerewo"}, ["kya"] = {"Kwaya"}, ["kyb"] = {"Butbut Kalinga"}, ["kyc"] = {"Kyaka"}, ["kyd"] = {"Karey"}, ["kye"] = {"Krache"}, ["kyf"] = {"Kouya"}, ["kyg"] = {"Keyagana"}, ["kyh"] = {"Karok"}, ["kyi"] = {"Kiput"}, ["kyj"] = {"Karao"}, ["kyk"] = {"Kamayo"}, ["kyl"] = {"Kalapuya"}, ["kym"] = {"Kpatili"}, ["kyn"] = {"Binukidnon Hwoaie"}, ["kyo"] = {"Kelon"}, ["kyp"] = {"Kang"}, ["kyq"] = {"Kenga"}, ["kyr"] = {"Kuruáya"}, ["kys"] = {"Baram Kayan"}, ["kyt"] = {"Kayagar"}, ["kyu"] = {"Kayah Heear"}, ["kyv"] = {"Kayort"}, ["kyw"] = {"Kudmali"}, ["kyx"] = {"Rapoisi"}, ["kyy"] = {"Kambaira"}, ["kyz"] = {"Kayabí"}, ["kza"] = {"Karaboro Heear"}, ["kzb"] = {"Kaibobo"}, ["kzc"] = {"Bondoukou Kulango"}, ["kzd"] = {"Kadai"}, ["kze"] = {"Kosena"}, ["kzf"] = {"Da'a Kaili"}, ["kzg"] = {"Kikai"}, ["kzi"] = {"Kelabit"}, ["kzk"] = {"Kazukuru"}, ["kzl"] = {"Kayeli"}, ["kzm"] = {"Kais"}, ["kzn"] = {"Kokola"}, ["kzo"] = {"Kaningi"}, ["kzp"] = {"Kaidipang"}, ["kzq"] = {"Kaike"}, ["kzr"] = {"Karang"}, ["kzs"] = {"Sugut Dusun"}, ["kzu"] = {"Kayupulau"}, ["kzv"] = {"Komyandaret"}, ["kzw"] = {"Karirí-Xocó"}, ["kzx"] = {"Kamarian"}, ["kzy"] = {"Kango (Slyst Tshopo)"}, ["kzz"] = {"Kalabra"}, ["laa"] = {"Subanen Yiass"}, ["lab"] = {"Linnagh A"}, ["lac"] = {"Lacandon"}, ["lad"] = {"Ladinoish"}, ["lae"] = {"Pattani"}, ["laf"] = {"Lafofa"}, ["lag"] = {"Rangi"}, ["lah"] = {"Lahnda"}, ["lai"] = {"Lambya"}, ["laj"] = {"Lango (Ooganda)"}, ["lal"] = {"Lalia"}, ["lam"] = {"Lamba"}, ["lan"] = {"Laru"}, ["lap"] = {"Laka (Shad)"}, ["laq"] = {"Qabiao"}, ["lar"] = {"Larteh"}, ["las"] = {"Lama (y Togo)"}, ["lau"] = {"Laba"}, ["law"] = {"Lauje"}, ["lax"] = {"Tiwa"}, ["lay"] = {"Lama Bai"}, ["laz"] = {"Aribwatsa"}, ["lbb"] = {"Label"}, ["lbc"] = {"Lakkia"}, ["lbe"] = {"Lakish"}, ["lbf"] = {"Tinani"}, ["lbg"] = {"Laopang"}, ["lbi"] = {"La'bi"}, ["lbj"] = {"Ladakhi"}, ["lbk"] = {"Bontok Veanagh"}, ["lbl"] = {"Bikol Libon"}, ["lbm"] = {"Lodhi"}, ["lbn"] = {"Rmeet"}, ["lbo"] = {"Laven"}, ["lbq"] = {"Wampar"}, ["lbr"] = {"Lohorung"}, ["lbs"] = {"Çhengey Chowree Leebagh"}, ["lbt"] = {"Lachi"}, ["lbu"] = {"Labu"}, ["lbv"] = {"Lavatbura-Lamusong"}, ["lbw"] = {"Tolaki"}, ["lbx"] = {"Lawangan"}, ["lby"] = {"Lamalama", "Lamu-Lamu"}, ["lbz"] = {"Lardil"}, ["lcc"] = {"Legenyem"}, ["lcd"] = {"Lola"}, ["lce"] = {"Loncong", "Sekak"}, ["lcf"] = {"Lubu"}, ["lch"] = {"Luchazi"}, ["lcl"] = {"Lisela"}, ["lcm"] = {"Tungag"}, ["lcp"] = {"Lawa Heear"}, ["lcq"] = {"Luhu"}, ["lcs"] = {"Lisabata-Nuniali"}, ["lda"] = {"Kla-Dan"}, ["ldb"] = {"Dũya"}, ["ldd"] = {"Lurish"}, ["ldg"] = {"Lenyima"}, ["ldh"] = {"Lamja-Dengsa-Tola"}, ["ldi"] = {"Laari"}, ["ldj"] = {"Lemoro"}, ["ldk"] = {"Leelau"}, ["ldl"] = {"Kaan"}, ["ldm"] = {"Landoma"}, ["ldn"] = {"Láadan"}, ["ldo"] = {"Loo"}, ["ldp"] = {"Tso"}, ["ldq"] = {"Lufu"}, ["lea"] = {"Lega-Shabunda"}, ["leb"] = {"Lala-Bisa"}, ["lec"] = {"Leco"}, ["led"] = {"Lendu"}, ["lee"] = {"Lyélé"}, ["lef"] = {"Lelemi"}, ["leh"] = {"Lenje"}, ["lei"] = {"Lemio"}, ["lej"] = {"Lengola"}, ["lek"] = {"Leipon"}, ["lel"] = {"Lele (Pobblaght Gheynlagh y Chongo)"}, ["lem"] = {"Nomaande"}, ["len"] = {"Lenca"}, ["leo"] = {"Leti (Cameroon)"}, ["lep"] = {"Lepcha"}, ["leq"] = {"Lembena"}, ["ler"] = {"Lenkau"}, ["les"] = {"Lese"}, ["let"] = {"Lesing-Gelimi", "Amio-Gelimi"}, ["leu"] = {"Kara (Papooey Guinea Noa)"}, ["lev"] = {"Lamma"}, ["lew"] = {"Ledo Kaili"}, ["lex"] = {"Luang"}, ["ley"] = {"Lemolang"}, ["lez"] = {"Lesgish"}, ["lfa"] = {"Lefa"}, ["lfn"] = {"Lingua Franca Nova"}, ["lga"] = {"Lungga"}, ["lgb"] = {"Laghu"}, ["lgg"] = {"Lugbara"}, ["lgh"] = {"Laghuu"}, ["lgi"] = {"Lengilu"}, ["lgk"] = {"Lingarak", "Neverver"}, ["lgl"] = {"Wala"}, ["lgm"] = {"Lega-Mwenga"}, ["lgn"] = {"T'apo", "Opuuo"}, ["lgo"] = {"Lango (y Toodaan Yiass)"}, ["lgq"] = {"Logba"}, ["lgr"] = {"Lengo"}, ["lgs"] = {"Çhengey Chowree Ghuinea-Bissau", "Língua Gestual Guineense"}, ["lgt"] = {"Pahi"}, ["lgu"] = {"Longgu"}, ["lgz"] = {"Ligenza"}, ["lha"] = {"Laha (Viet Nam)"}, ["lhh"] = {"Laha (yn Indoneesh)"}, ["lhi"] = {"Lahu Shi"}, ["lhl"] = {"Lahul Lohar"}, ["lhm"] = {"Lhomi"}, ["lhn"] = {"Lahanan"}, ["lhp"] = {"Lhokpu"}, ["lhs"] = {"Mlahsö"}, ["lht"] = {"Lo-Toga"}, ["lhu"] = {"Lahu"}, ["lia"] = {"Limba Veanagh Heear"}, ["lib"] = {"Likum"}, ["lic"] = {"Hlai"}, ["lid"] = {"Nyindrou"}, ["lie"] = {"Likila"}, ["lif"] = {"Limbu"}, ["lig"] = {"Ligbi"}, ["lih"] = {"Lihir"}, ["lij"] = {"Ligoorish"}, ["lik"] = {"Lika"}, ["lil"] = {"Lillooet"}, ["lio"] = {"Liki"}, ["lip"] = {"Sekpele"}, ["liq"] = {"Libido"}, ["lir"] = {"Baarle Laibeeragh"}, ["lis"] = {"Lisu"}, ["liu"] = {"Logorik"}, ["liv"] = {"Liv"}, ["liw"] = {"Col"}, ["lix"] = {"Liabuku"}, ["liy"] = {"Banda-Bambari"}, ["liz"] = {"Libinza"}, ["lja"] = {"Golpa"}, ["lje"] = {"Rampi"}, ["lji"] = {"Laiyolo"}, ["ljl"] = {"Li'o"}, ["ljp"] = {"Lampung Api"}, ["ljw"] = {"Yirandali"}, ["ljx"] = {"Yuru"}, ["lka"] = {"Lakalei"}, ["lkb"] = {"Kabras", "Lukabaras"}, ["lkc"] = {"Kucong"}, ["lkd"] = {"Lakondê"}, ["lke"] = {"Kenyi"}, ["lkh"] = {"Lakha"}, ["lki"] = {"Laki"}, ["lkj"] = {"Remun"}, ["lkl"] = {"Laeko-Libuat"}, ["lkm"] = {"Kalaamaya"}, ["lkn"] = {"Lakon", "Vure"}, ["lko"] = {"Khayo", "Olukhayo"}, ["lkr"] = {"Päri"}, ["lks"] = {"Kisa", "Olushisa"}, ["lkt"] = {"Lakota"}, ["lku"] = {"Kungkari"}, ["lky"] = {"Lokoya"}, ["lla"] = {"Lala-Roba"}, ["llb"] = {"Lolo"}, ["llc"] = {"Lele (y Ghuinea)"}, ["lld"] = {"Ladin"}, ["lle"] = {"Lele (Papooey Guinea Noa)"}, ["llf"] = {"Hermit"}, ["llg"] = {"Lole"}, ["llh"] = {"Lamu"}, ["lli"] = {"Teke-Laali"}, ["llj"] = {"Ladji Ladji"}, ["llk"] = {"Lelak"}, ["lll"] = {"Lilau"}, ["llm"] = {"Lasalimu"}, ["lln"] = {"Lele (Shad)"}, ["llp"] = {"Efate Hwoaie"}, ["llq"] = {"Lolak"}, ["lls"] = {"Çhengey Chowree Litaanagh"}, ["llu"] = {"Lau"}, ["llx"] = {"Lauan"}, ["lma"] = {"Limba Hiar"}, ["lmb"] = {"Merei"}, ["lmc"] = {"Limilngan"}, ["lmd"] = {"Lumun"}, ["lme"] = {"Pévé"}, ["lmf"] = {"Lembata Yiass"}, ["lmg"] = {"Lamogai"}, ["lmh"] = {"Lambichhong"}, ["lmi"] = {"Lombi"}, ["lmj"] = {"Lembata Heear"}, ["lmk"] = {"Lamkang"}, ["lml"] = {"Hano"}, ["lmn"] = {"Lambadi"}, ["lmo"] = {"Lombardish"}, ["lmp"] = {"Limbum"}, ["lmq"] = {"Lamatuka"}, ["lmr"] = {"Lamalera"}, ["lmu"] = {"Lamenu"}, ["lmv"] = {"Lomaiviti"}, ["lmw"] = {"Lake Miwok"}, ["lmx"] = {"Laimbue"}, ["lmy"] = {"Lamboya"}, ["lna"] = {"Langbashe"}, ["lnb"] = {"Mbalanhu"}, ["lnd"] = {"Lundayeh", "Lun Bawang"}, ["lng"] = {"Langobardish"}, ["lnh"] = {"Lanoh"}, ["lni"] = {"Daantanai'"}, ["lnj"] = {"Leningitij"}, ["lnl"] = {"Banda Veanagh Yiass"}, ["lnm"] = {"Langam"}, ["lnn"] = {"Lorediakarkar"}, ["lns"] = {"Lamnso'"}, ["lnu"] = {"Longuda"}, ["lnw"] = {"Lanima"}, ["lnz"] = {"Lonzo"}, ["loa"] = {"Loloda"}, ["lob"] = {"Lobi"}, ["loc"] = {"Inonhan"}, ["loe"] = {"Saluan"}, ["lof"] = {"Logol"}, ["log"] = {"Logo"}, ["loh"] = {"Laarim", "Narim"}, ["loi"] = {"Loma (y Clyst Iuaagagh)"}, ["loj"] = {"Lou"}, ["lok"] = {"Loko"}, ["lol"] = {"Mongo"}, ["lom"] = {"Loma (y Laibeer)"}, ["lon"] = {"Lombwe Malawi"}, ["loo"] = {"Lombo"}, ["lop"] = {"Lopa"}, ["loq"] = {"Lobala"}, ["lor"] = {"Téén"}, ["los"] = {"Loniu"}, ["lot"] = {"Otuho"}, ["lou"] = {"Creeole Louisiana"}, ["lov"] = {"Lopi"}, ["low"] = {"Tampias Lobu"}, ["lox"] = {"Loun"}, ["loy"] = {"Loke"}, ["loz"] = {"Lozish"}, ["lpa"] = {"Lelepa"}, ["lpe"] = {"Lepki"}, ["lpn"] = {"Long Phuri Naga"}, ["lpo"] = {"Lipo"}, ["lpx"] = {"Lopit"}, ["lqr"] = {"Logir"}, ["lra"] = {"Rara Bakati'"}, ["lrc"] = {"Lurish Hwoaie"}, ["lre"] = {"Lauryssish"}, ["lrg"] = {"Laragia"}, ["lri"] = {"Marachi", "Olumarachi"}, ["lrk"] = {"Loarki"}, ["lrl"] = {"Lari"}, ["lrm"] = {"Marama", "Olumarama"}, ["lrn"] = {"Lorang"}, ["lro"] = {"Laro"}, ["lrr"] = {"Yamphu Yiass"}, ["lrt"] = {"Malayish Larantuka"}, ["lrv"] = {"Larevat"}, ["lrz"] = {"Lemerig"}, ["lsa"] = {"Lasgerdi"}, ["lsb"] = {"Çhengey Chowree Vurundeeagh", "Langue des Signes Burundaise"}, ["lsc"] = {"Çhengey Chowree Albarradas", "Lengua de señas Albarradas"}, ["lsd"] = {"Lishana Deni"}, ["lse"] = {"Lusengo"}, ["lsh"] = {"Lish"}, ["lsi"] = {"Lashi"}, ["lsl"] = {"Çhengey Chowree Latvagh"}, ["lsm"] = {"Saamia", "Olusamia"}, ["lsn"] = {"Çhengey Chowree Hibetagh"}, ["lso"] = {"Çhengey Chowree Laosaghe"}, ["lsp"] = {"Çhengey Chowree Phanamaagh", "Lengua de Señas Panameñas"}, ["lsr"] = {"Aruop"}, ["lss"] = {"Lasi"}, ["lst"] = {"Çhengey Chowree yn Trinaid as Tobago"}, ["lsv"] = {"Çhengey Chowree Sivia"}, ["lsw"] = {"Çhengey Chowree Heshellagh", "Lalang Siny Seselwa", "Langue des Signes Seychelloise"}, ["lsy"] = {"Çhengey Chowree Wirrishagh"}, ["ltc"] = {"Sheenish Veanagh Yeianagh"}, ["ltg"] = {"Latgalish"}, ["lth"] = {"Thur"}, ["lti"] = {"Leti (yn Indoneesh)"}, ["ltn"] = {"Latundê"}, ["lto"] = {"Tsotso", "Olutsotso"}, ["lts"] = {"Tachoni", "Lutachoni"}, ["ltu"] = {"Latu"}, ["lua"] = {"Luba-Lulua"}, ["luc"] = {"Aringa"}, ["lud"] = {"Ludish"}, ["lue"] = {"Luvale"}, ["luf"] = {"Laua"}, ["lui"] = {"Luiseno"}, ["luj"] = {"Luna"}, ["luk"] = {"Lunanakha"}, ["lul"] = {"Olu'bo"}, ["lum"] = {"Luimbi"}, ["lun"] = {"Lunda"}, ["luo"] = {"Luo (y Cheinney as Tanzania)", "Dholuo"}, ["lup"] = {"Lumbu"}, ["luq"] = {"Lucumi"}, ["lur"] = {"Laura"}, ["lus"] = {"Lushai"}, ["lut"] = {"Lushootseed"}, ["luu"] = {"Lumba-Yakkha"}, ["luv"] = {"Luwati"}, ["luw"] = {"Luo (Cameroon)"}, ["luy"] = {"Luyia", "Oluluyia"}, ["luz"] = {"Lurish Yiass"}, ["lva"] = {"Maku'a"}, ["lvi"] = {"Lavi"}, ["lvk"] = {"Lavukaleve"}, ["lvl"] = {"Lwel"}, ["lvs"] = {"Latvish Stundayrtit"}, ["lvu"] = {"Levuka"}, ["lwa"] = {"Lwalu"}, ["lwe"] = {"Lewo Eleng"}, ["lwg"] = {"Wanga", "Oluwanga"}, ["lwh"] = {"Lachi Bane"}, ["lwl"] = {"Lawa Hiar"}, ["lwm"] = {"Laomish"}, ["lwo"] = {"Luwo"}, ["lws"] = {"Çhengey Chowree Malawi"}, ["lwt"] = {"Lewotobi"}, ["lwu"] = {"Lawu"}, ["lww"] = {"Lewo"}, ["lxm"] = {"Lakurumau"}, ["lya"] = {"Layakha"}, ["lyg"] = {"Lyngngam"}, ["lyn"] = {"Luyana"}, ["lzh"] = {"Sheenish Lettyragh"}, ["lzl"] = {"Litzlitz"}, ["lzn"] = {"Leinong Naga"}, ["lzz"] = {"Laz"}, ["maa"] = {"Mazatecish Tecóatl San Jerónimo"}, ["mab"] = {"Mixtecish Yutanduchi"}, ["mad"] = {"Madurish"}, ["mae"] = {"Bo-Rukul"}, ["maf"] = {"Mafa"}, ["mag"] = {"Magahi"}, ["mai"] = {"Maithilish"}, ["maj"] = {"Mazatecish Jalapa De Díaz"}, ["mak"] = {"Makasar"}, ["mam"] = {"Mam"}, ["man"] = {"Mandingo", "Manding"}, ["map"] = {"çhengaghyn Austroneeshagh"}, ["maq"] = {"Mazatecish Chiquihuitlán"}, ["mas"] = {"Masai"}, ["mat"] = {"Matlatzinca San Francisco"}, ["mau"] = {"Mazatecish Huautla"}, ["mav"] = {"Sateré-Mawé"}, ["maw"] = {"Mampruli"}, ["max"] = {"Malayish Maluku Hwoaie"}, ["maz"] = {"Mazahua Veanagh"}, ["mba"] = {"Higaonon"}, ["mbb"] = {"Manobo Bukidnon Heear"}, ["mbc"] = {"Macushi"}, ["mbd"] = {"Manobo Dibabawon"}, ["mbe"] = {"Molale"}, ["mbf"] = {"Malayish Baba"}, ["mbh"] = {"Mangseng"}, ["mbi"] = {"Manobo Ilianen"}, ["mbj"] = {"Nadëb"}, ["mbk"] = {"Malol"}, ["mbl"] = {"Maxakalí"}, ["mbm"] = {"Ombamba"}, ["mbn"] = {"Macaguán"}, ["mbo"] = {"Mbo (Cameroon)"}, ["mbp"] = {"Malayo"}, ["mbq"] = {"Maisin"}, ["mbr"] = {"Nukak Makú"}, ["mbs"] = {"Manobo Sarangani"}, ["mbt"] = {"Manobo Matigsalug"}, ["mbu"] = {"Mbula-Bwazza"}, ["mbv"] = {"Mbulungish"}, ["mbw"] = {"Maring"}, ["mbx"] = {"Mari (Queiggey East Sepik)"}, ["mby"] = {"Memoni"}, ["mbz"] = {"Mixtecish Amoltepec"}, ["mca"] = {"Maca"}, ["mcb"] = {"Machiguenga"}, ["mcc"] = {"Bitur"}, ["mcd"] = {"Sharanahua"}, ["mce"] = {"Mixtecish Itundujia"}, ["mcf"] = {"Matsés"}, ["mcg"] = {"Mapoyo"}, ["mch"] = {"Maquiritari"}, ["mci"] = {"Mese"}, ["mcj"] = {"Mvanip"}, ["mck"] = {"Mbunda"}, ["mcl"] = {"Macaguaje"}, ["mcm"] = {"Creeole Portiugish Malaccagh"}, ["mcn"] = {"Masana"}, ["mco"] = {"Coatlán Mixe"}, ["mcp"] = {"Makaa"}, ["mcq"] = {"Ese"}, ["mcr"] = {"Menya"}, ["mcs"] = {"Mambai"}, ["mct"] = {"Mengisa"}, ["mcu"] = {"Mambila Chameroon"}, ["mcv"] = {"Minanibai"}, ["mcw"] = {"Mawa (Shad)"}, ["mcx"] = {"Mpiemo"}, ["mcy"] = {"Watut Yiass"}, ["mcz"] = {"Mawan"}, ["mda"] = {"Mada (y Naigeer)"}, ["mdb"] = {"Morigi"}, ["mdc"] = {"Male (Papooey Guinea Noa)"}, ["mdd"] = {"Mbum"}, ["mde"] = {"Maba (Shad)"}, ["mdf"] = {"Moksha"}, ["mdg"] = {"Massalat"}, ["mdh"] = {"Maguindanaon"}, ["mdi"] = {"Mamvu"}, ["mdj"] = {"Mangbetu"}, ["mdk"] = {"Mangbutu"}, ["mdl"] = {"Çhengey Chowree Valtagh"}, ["mdm"] = {"Mayogo"}, ["mdn"] = {"Mbati"}, ["mdp"] = {"Mbala"}, ["mdq"] = {"Mbole"}, ["mdr"] = {"Mandar"}, ["mds"] = {"Maria (Papooey Guinea Noa)"}, ["mdt"] = {"Mbere"}, ["mdu"] = {"Mboko"}, ["mdv"] = {"Mixtecish Monteverde Santa Lucía"}, ["mdw"] = {"Mbosi"}, ["mdx"] = {"Dizin"}, ["mdy"] = {"Male (yn Eetoipt)"}, ["mdz"] = {"Suruí Do Pará"}, ["mea"] = {"Menka"}, ["meb"] = {"Ikobi"}, ["mec"] = {"Marra"}, ["med"] = {"Melpa"}, ["mee"] = {"Mengen"}, ["mef"] = {"Megam"}, ["meh"] = {"Mixtecish Tlaxiaco Heear Yiass"}, ["mei"] = {"Midob"}, ["mej"] = {"Meyah"}, ["mek"] = {"Mekeo"}, ["mel"] = {"Melanau Veanagh"}, ["mem"] = {"Mangala"}, ["men"] = {"Mende (Sierra Leone)"}, ["meo"] = {"Malayish Kedah"}, ["mep"] = {"Miriwoong"}, ["meq"] = {"Merey"}, ["mer"] = {"Meru"}, ["mes"] = {"Masmaje"}, ["met"] = {"Mato"}, ["meu"] = {"Motu"}, ["mev"] = {"Mano"}, ["mew"] = {"Maaka"}, ["mey"] = {"Hassaniyya"}, ["mez"] = {"Menominee"}, ["mfa"] = {"Malayish Pattani Malay"}, ["mfb"] = {"Bangka"}, ["mfc"] = {"Mba"}, ["mfd"] = {"Mendankwe-Nkwen"}, ["mfe"] = {"Morisyen"}, ["mff"] = {"Naki"}, ["mfg"] = {"Mogofin"}, ["mfh"] = {"Matal"}, ["mfi"] = {"Wandala"}, ["mfj"] = {"Mefele"}, ["mfk"] = {"Mofu Hwoaie"}, ["mfl"] = {"Putai"}, ["mfm"] = {"Marghi Yiass"}, ["mfn"] = {"Mbembe Cross River"}, ["mfo"] = {"Mbe"}, ["mfp"] = {"Malayish Makassar"}, ["mfq"] = {"Moba"}, ["mfr"] = {"Marrithiyel"}, ["mfs"] = {"Çhengey Chowree Veksicagh"}, ["mft"] = {"Mokerang"}, ["mfu"] = {"Mbwela"}, ["mfv"] = {"Mandjak"}, ["mfw"] = {"Mulaha"}, ["mfx"] = {"Melo"}, ["mfy"] = {"Mayo"}, ["mfz"] = {"Mabaan"}, ["mga"] = {"Yernish Veanagh (900-1200)"}, ["mgb"] = {"Mararit"}, ["mgc"] = {"Morokodo"}, ["mgd"] = {"Moru"}, ["mge"] = {"Mango"}, ["mgf"] = {"Maklew"}, ["mgg"] = {"Mpumpong"}, ["mgh"] = {"Makhuwa-Meetto"}, ["mgi"] = {"Lijili"}, ["mgj"] = {"Abureni"}, ["mgk"] = {"Mawes"}, ["mgl"] = {"Maleu-Kilenge"}, ["mgm"] = {"Mambae"}, ["mgn"] = {"Mbangi"}, ["mgo"] = {"Meta'"}, ["mgp"] = {"Magar Hiar"}, ["mgq"] = {"Malila"}, ["mgr"] = {"Mambwe-Lungu"}, ["mgs"] = {"Manda (Tanzania)"}, ["mgt"] = {"Mongol"}, ["mgu"] = {"Mailu"}, ["mgv"] = {"Matengo"}, ["mgw"] = {"Matumbi"}, ["mgy"] = {"Mbunga"}, ["mgz"] = {"Mbugwe"}, ["mha"] = {"Manda (yn Injey)"}, ["mhb"] = {"Mahongwe"}, ["mhc"] = {"Mocho"}, ["mhd"] = {"Mbugu"}, ["mhe"] = {"Besisi", "Mah Meri"}, ["mhf"] = {"Mamaa"}, ["mhg"] = {"Margu"}, ["mhi"] = {"Ma'di"}, ["mhj"] = {"Mogholi"}, ["mhk"] = {"Mungaka"}, ["mhl"] = {"Mauwake"}, ["mhm"] = {"Makhuwa-Moniga"}, ["mhn"] = {"Mócheno"}, ["mho"] = {"Mashi (y Tambia)"}, ["mhp"] = {"Malayish Bali"}, ["mhq"] = {"Mandan"}, ["mhr"] = {"Mari Hiar"}, ["mhs"] = {"Buru (yn Indoneesh)"}, ["mht"] = {"Mandahuaca"}, ["mhu"] = {"Digaro-Mishmi", "Darang Deng"}, ["mhw"] = {"Mbukushu"}, ["mhx"] = {"Maru", "Lhaovo"}, ["mhy"] = {"Ma'anyan"}, ["mhz"] = {"Mor (Elanyn Mor)"}, ["mia"] = {"Miami"}, ["mib"] = {"Mixtecish Atatláhuca"}, ["mic"] = {"Mi'kmaq", "Micmacish"}, ["mid"] = {"Mandaish"}, ["mie"] = {"Mixtecish Ocotepec"}, ["mif"] = {"Mofu-Gudur"}, ["mig"] = {"Mixtecish San Miguel El Grande"}, ["mih"] = {"Mixtecish Chayuco"}, ["mii"] = {"Mixtecish Chigmecatitlán"}, ["mij"] = {"Abar", "Mungbam"}, ["mik"] = {"Mikasuki"}, ["mil"] = {"Mixtecish Peñoles"}, ["mim"] = {"Mixtecish Alacatlatzala"}, ["min"] = {"Minangkabau"}, ["mio"] = {"Mixtecish Pinotepa Nacional"}, ["mip"] = {"Mixtecish Apasco-Apoala"}, ["miq"] = {"Mískito"}, ["mir"] = {"Isthmus Mixe"}, ["mis"] = {"çhengaghyn gyn coad"}, ["mit"] = {"Mixtecish Puebla Yiassc"}, ["miu"] = {"Mixtecish Cacaloxtepec"}, ["miw"] = {"Akoye"}, ["mix"] = {"Mixtecish Mixtepec"}, ["miy"] = {"Mixtecish Ayutla"}, ["miz"] = {"Mixtecish Coatzospan"}, ["mjb"] = {"Makalero"}, ["mjc"] = {"Mixtecish San Juan Colorado"}, ["mjd"] = {"Maidu Heear Hwoaie"}, ["mje"] = {"Muskum"}, ["mjg"] = {"Tu"}, ["mjh"] = {"Mwera (Nyasa)"}, ["mji"] = {"Kim Mun"}, ["mjj"] = {"Mawak"}, ["mjk"] = {"Matukar"}, ["mjl"] = {"Mandeali"}, ["mjm"] = {"Medebur"}, ["mjn"] = {"Ma (Papooey Guinea Noa)"}, ["mjo"] = {"Malankuravan"}, ["mjp"] = {"Malapandaram"}, ["mjq"] = {"Malaryan"}, ["mjr"] = {"Malavedan"}, ["mjs"] = {"Miship"}, ["mjt"] = {"Sauria Paharia"}, ["mju"] = {"Manna-Dora"}, ["mjv"] = {"Mannan"}, ["mjw"] = {"Karbi"}, ["mjx"] = {"Mahali"}, ["mjy"] = {"Mohicanish"}, ["mjz"] = {"Majhi"}, ["mka"] = {"Mbre"}, ["mkb"] = {"Mal Paharia"}, ["mkc"] = {"Siliput"}, ["mke"] = {"Mawchi"}, ["mkf"] = {"Miya"}, ["mkg"] = {"Mak (y Çheen)"}, ["mkh"] = {"çhengaghyn Mon-Khmeragh"}, ["mki"] = {"Dhatki"}, ["mkj"] = {"Mokilish"}, ["mkk"] = {"Byep"}, ["mkl"] = {"Mokole"}, ["mkm"] = {"Moklen"}, ["mkn"] = {"Malayish Kupang"}, ["mko"] = {"Mingang Doso"}, ["mkp"] = {"Moikodi"}, ["mkq"] = {"Bay Miwok"}, ["mkr"] = {"Malas"}, ["mks"] = {"Mixtecish Silacayoapan"}, ["mkt"] = {"Vamale"}, ["mku"] = {"Konyanka Maninka"}, ["mkv"] = {"Mafea"}, ["mkw"] = {"Kitubish (y Congo)"}, ["mkx"] = {"Minobo Kinamiging"}, ["mky"] = {"Makish Hiar"}, ["mkz"] = {"Makasae"}, ["mla"] = {"Malo"}, ["mlb"] = {"Mbule"}, ["mlc"] = {"Cao Lan"}, ["mle"] = {"Manambu"}, ["mlf"] = {"Mal"}, ["mlh"] = {"Mape"}, ["mli"] = {"Malimpung"}, ["mlj"] = {"Miltu"}, ["mlk"] = {"Ilwana", "Kiwilwana"}, ["mll"] = {"Malua Bay"}, ["mlm"] = {"Mulam"}, ["mln"] = {"Malango"}, ["mlo"] = {"Mlomp"}, ["mlp"] = {"Bargam"}, ["mlq"] = {"Maninkish Heear"}, ["mlr"] = {"Vame"}, ["mls"] = {"Masalit"}, ["mlu"] = {"To'abaita"}, ["mlv"] = {"Motlav", "Mwotlap"}, ["mlw"] = {"Moloko"}, ["mlx"] = {"Malfaxal", "Naha'ai"}, ["mlz"] = {"Malaynon"}, ["mma"] = {"Mama"}, ["mmb"] = {"Momina"}, ["mmc"] = {"Mazahua Michoacán"}, ["mmd"] = {"Maonan"}, ["mme"] = {"Mae"}, ["mmf"] = {"Mundat"}, ["mmg"] = {"Ambrym Hwoaie"}, ["mmh"] = {"Mehináku"}, ["mmi"] = {"Musar"}, ["mmj"] = {"Majhwar"}, ["mmk"] = {"Mukha-Dora"}, ["mml"] = {"Man Met"}, ["mmm"] = {"Maii"}, ["mmn"] = {"Mamanwa"}, ["mmo"] = {"Mangga Buang"}, ["mmp"] = {"Siawi"}, ["mmq"] = {"Musak"}, ["mmr"] = {"Miaoish Xiangxi Heear"}, ["mmt"] = {"Malalamai"}, ["mmu"] = {"Mmaala"}, ["mmv"] = {"Miriti"}, ["mmw"] = {"Emae"}, ["mmx"] = {"Madak"}, ["mmy"] = {"Migaama"}, ["mmz"] = {"Mabaale"}, ["mna"] = {"Mbula"}, ["mnb"] = {"Muna"}, ["mnc"] = {"Mançhooish"}, ["mnd"] = {"Mondé"}, ["mne"] = {"Naba"}, ["mnf"] = {"Mundanish"}, ["mng"] = {"Mnong Hiar"}, ["mnh"] = {"Mono (Pobblaght Gheynlagh y Chongo)"}, ["mni"] = {"Manipurish"}, ["mnj"] = {"Munji"}, ["mnk"] = {"Mandinkish"}, ["mnl"] = {"Tiale"}, ["mnm"] = {"Mapena"}, ["mnn"] = {"Mnong Yiass"}, ["mno"] = {"çhengaghyn Manobo"}, ["mnp"] = {"Sheenish Min Bei"}, ["mnq"] = {"Minriq"}, ["mnr"] = {"Mono (SUA)"}, ["mns"] = {"Mansi"}, ["mnu"] = {"Mer"}, ["mnv"] = {"Rennell-Bellona"}, ["mnw"] = {"Mon"}, ["mnx"] = {"Manikion"}, ["mny"] = {"Manyawa"}, ["mnz"] = {"Moni"}, ["moa"] = {"Mwan"}, ["moc"] = {"Mocoví"}, ["mod"] = {"Mobilish"}, ["moe"] = {"Innu", "Montagnais"}, ["mog"] = {"Mongondow"}, ["moh"] = {"Mohawkish"}, ["moi"] = {"Mboi"}, ["moj"] = {"Monzombo"}, ["mok"] = {"Morori"}, ["mom"] = {"Mangue"}, ["moo"] = {"Monom"}, ["mop"] = {"Mayish Mopán"}, ["moq"] = {"Mor (Lieh-innys Bomberai)"}, ["mor"] = {"Moroish"}, ["mos"] = {"Mossish"}, ["mot"] = {"Barí"}, ["mou"] = {"Mogum"}, ["mov"] = {"Mohave"}, ["mow"] = {"Moi (y Congo)"}, ["mox"] = {"Molima"}, ["moy"] = {"Shekkacho"}, ["moz"] = {"Mukulu", "Gergiko"}, ["mpa"] = {"Mpoto"}, ["mpb"] = {"Malak Malak", "Mullukmulluk"}, ["mpc"] = {"Mangarrayi"}, ["mpd"] = {"Machinere"}, ["mpe"] = {"Majang"}, ["mpg"] = {"Marba"}, ["mph"] = {"Maung"}, ["mpi"] = {"Mpade"}, ["mpj"] = {"Martu Wangka", "Wangkajunga"}, ["mpk"] = {"Mbara (Shad)"}, ["mpl"] = {"Watut Veanagh"}, ["mpm"] = {"Mixtecish Yosondúa"}, ["mpn"] = {"Mindiri"}, ["mpo"] = {"Miu"}, ["mpp"] = {"Migabac"}, ["mpq"] = {"Matís"}, ["mpr"] = {"Vangunu"}, ["mps"] = {"Dadibi"}, ["mpt"] = {"Mian"}, ["mpu"] = {"Makuráp"}, ["mpv"] = {"Mungkip"}, ["mpw"] = {"Mapidish"}, ["mpx"] = {"Misima-Panaeati"}, ["mpy"] = {"Mapia"}, ["mpz"] = {"Mpi"}, ["mqa"] = {"Maba (yn Indoneesh)"}, ["mqb"] = {"Mbuko"}, ["mqc"] = {"Mangole"}, ["mqe"] = {"Matepi"}, ["mqf"] = {"Momuna"}, ["mqg"] = {"Mlayish Kota Bangun Kutai"}, ["mqh"] = {"Mixtecish Tlazoyaltepec"}, ["mqi"] = {"Mariri"}, ["mqj"] = {"Mamasa"}, ["mqk"] = {"Rajah Kabunsuwan Manobo"}, ["mql"] = {"Mbelime"}, ["mqm"] = {"Marquesish Yiass"}, ["mqn"] = {"Moronene"}, ["mqo"] = {"Modole"}, ["mqp"] = {"Manipa"}, ["mqq"] = {"Minokok"}, ["mqr"] = {"Mander"}, ["mqs"] = {"Makish Heear"}, ["mqt"] = {"Mok"}, ["mqu"] = {"Mandari"}, ["mqv"] = {"Mosimo"}, ["mqw"] = {"Murupi"}, ["mqx"] = {"Mamuju"}, ["mqy"] = {"Manggarai"}, ["mqz"] = {"Pano"}, ["mra"] = {"Mlabri"}, ["mrb"] = {"Marino"}, ["mrc"] = {"Maricopa"}, ["mrd"] = {"Magar Heear"}, ["mre"] = {"Çhengey Chowree Martha's Vineyard"}, ["mrf"] = {"Elseng"}, ["mrg"] = {"Mising"}, ["mrh"] = {"Mara Chin"}, ["mrj"] = {"Marish Heear"}, ["mrk"] = {"Hmwaveke"}, ["mrl"] = {"Mortlockish"}, ["mrm"] = {"Merlav", "Mwerlap"}, ["mrn"] = {"Cheke Holo"}, ["mro"] = {"Mru"}, ["mrp"] = {"Morouas"}, ["mrq"] = {"Marquesish Hwoaie"}, ["mrr"] = {"Maria (yn Injey)"}, ["mrs"] = {"Maragus"}, ["mrt"] = {"Marghi Veanagh"}, ["mru"] = {"Mono (Cameroon)"}, ["mrv"] = {"Mangareva"}, ["mrw"] = {"Maranao"}, ["mrx"] = {"Maremgi", "Dineor"}, ["mry"] = {"Mandaya"}, ["mrz"] = {"Marind"}, ["msb"] = {"Masbatenyo"}, ["msc"] = {"Sankaran Maninka"}, ["msd"] = {"Çhengey Chowree Mayagh Yucatec"}, ["mse"] = {"Musey"}, ["msf"] = {"Mekwei"}, ["msg"] = {"Moraid"}, ["msh"] = {"Malagasish Masikoro"}, ["msi"] = {"Malayish Sabah"}, ["msj"] = {"Ma (Pobblaght Gheynlagh y Chongo)"}, ["msk"] = {"Mansaka"}, ["msl"] = {"Molof", "Poule"}, ["msm"] = {"Agusan Manobo"}, ["msn"] = {"Vurës"}, ["mso"] = {"Mombum"}, ["msp"] = {"Maritsauá"}, ["msq"] = {"Caac"}, ["msr"] = {"Çhengey Chowree Vongoilagh"}, ["mss"] = {"Masela Heear"}, ["msu"] = {"Musom"}, ["msv"] = {"Maslam"}, ["msw"] = {"Mansoanka"}, ["msx"] = {"Moresada"}, ["msy"] = {"Aruamu"}, ["msz"] = {"Momare"}, ["mta"] = {"Manobo Cotabato"}, ["mtb"] = {"Anyin Morofo"}, ["mtc"] = {"Munit"}, ["mtd"] = {"Mualang"}, ["mte"] = {"Mono (Ellanyn Solomon)"}, ["mtf"] = {"Murik (Papooey Guinea Noa)"}, ["mtg"] = {"Una"}, ["mth"] = {"Munggui"}, ["mti"] = {"Maiwa (Papooey Guinea Noa)"}, ["mtj"] = {"Moskona"}, ["mtk"] = {"Mbe'"}, ["mtl"] = {"Montol"}, ["mtm"] = {"Mator"}, ["mtn"] = {"Matagalpa"}, ["mto"] = {"Totontepec Mixe"}, ["mtp"] = {"Wichí Lhamtés Nocten"}, ["mtq"] = {"Muong"}, ["mtr"] = {"Mewari"}, ["mts"] = {"Yora"}, ["mtt"] = {"Mota"}, ["mtu"] = {"Mixtecish Tututepec"}, ["mtv"] = {"Asaro'o"}, ["mtw"] = {"Binukidnon Yiass"}, ["mtx"] = {"Mixtecish Tidaá"}, ["mty"] = {"Nabi"}, ["mua"] = {"Mundang"}, ["mub"] = {"Mubi"}, ["muc"] = {"Ajumbu"}, ["mud"] = {"Aleutish Mednyj"}, ["mue"] = {"Media Lengua"}, ["mug"] = {"Musgu"}, ["muh"] = {"Mündü"}, ["mui"] = {"Musi"}, ["muj"] = {"Mabire"}, ["muk"] = {"Mugom"}, ["mul"] = {"Ymmodee çhengaghyn"}, ["mum"] = {"Maiwala"}, ["mun"] = {"çhengaghyn Munda"}, ["muo"] = {"Nyong"}, ["mup"] = {"Malvi"}, ["muq"] = {"Miaoish Xiangxi Hiar"}, ["mur"] = {"Murle"}, ["mus"] = {"Creekish"}, ["mut"] = {"Murish Heear"}, ["muu"] = {"Yaaku"}, ["muv"] = {"Muthuvan"}, ["mux"] = {"Bo-Ung"}, ["muy"] = {"Muyang"}, ["muz"] = {"Mursi"}, ["mva"] = {"Manam"}, ["mvb"] = {"Mattole"}, ["mvd"] = {"Mamboru"}, ["mve"] = {"Marwari (y Phakistaan)"}, ["mvf"] = {"Mongoilish Ymmyllagh"}, ["mvg"] = {"Mixtecish Yucuañe"}, ["mvh"] = {"Mulgi"}, ["mvi"] = {"Miyako"}, ["mvk"] = {"Mekmek"}, ["mvl"] = {"Mbara (yn Austrail)"}, ["mvn"] = {"Minaveha"}, ["mvo"] = {"Marovo"}, ["mvp"] = {"Duri"}, ["mvq"] = {"Moere"}, ["mvr"] = {"Marau"}, ["mvs"] = {"Massep"}, ["mvt"] = {"Mpotovoro"}, ["mvu"] = {"Marfa"}, ["mvv"] = {"Tagal Murut"}, ["mvw"] = {"Machinga"}, ["mvx"] = {"Meoswar"}, ["mvy"] = {"Kohistaanish Indus"}, ["mvz"] = {"Mesqan"}, ["mwa"] = {"Mwatebu"}, ["mwb"] = {"Juwal"}, ["mwc"] = {"Are"}, ["mwe"] = {"Mwera (Chimwera)"}, ["mwf"] = {"Murrinh-Patha"}, ["mwg"] = {"Aiklep"}, ["mwh"] = {"Mouk-Aria"}, ["mwi"] = {"Labo", "Ninde"}, ["mwk"] = {"Maninkish Kita"}, ["mwl"] = {"Mirandish"}, ["mwm"] = {"Sar"}, ["mwn"] = {"Nyamwanga"}, ["mwo"] = {"Maewo Veanagh"}, ["mwp"] = {"Kala Lagaw Ya"}, ["mwq"] = {"Mün Chin"}, ["mwr"] = {"Marwari"}, ["mws"] = {"Mwimbi-Muthambi"}, ["mwt"] = {"Moken"}, ["mwu"] = {"Mittu"}, ["mwv"] = {"Mentawai"}, ["mww"] = {"Hmong Daw"}, ["mwz"] = {"Moingi"}, ["mxa"] = {"Mixtecish Oaxaca Heear Hwoaie"}, ["mxb"] = {"Mixtecish Tezoatlán"}, ["mxc"] = {"Manyika"}, ["mxd"] = {"Modang"}, ["mxe"] = {"Mele-Fila"}, ["mxf"] = {"Malgbe"}, ["mxg"] = {"Mbangala"}, ["mxh"] = {"Mvuba"}, ["mxi"] = {"Mozarabish"}, ["mxj"] = {"Miju-Mishmi", "Geman Deng"}, ["mxk"] = {"Monumbo"}, ["mxl"] = {"Maxi Gbe"}, ["mxm"] = {"Meramera"}, ["mxn"] = {"Moi (yn Indoneesh)"}, ["mxo"] = {"Mbowe"}, ["mxp"] = {"Tlahuitoltepec Mixe"}, ["mxq"] = {"Juquila Mixe"}, ["mxr"] = {"Murik (y Valaysia)"}, ["mxs"] = {"Mixtecish Huitepec"}, ["mxt"] = {"Mixtecish Jamiltepec"}, ["mxu"] = {"Mada (Cameroon)"}, ["mxv"] = {"Mixtecish Metlatónoc"}, ["mxw"] = {"Namo"}, ["mxx"] = {"Mahou", "Mawukakan"}, ["mxy"] = {"Mixtecish Nochixtlán Hiar Yiass"}, ["mxz"] = {"Masela Veanagh"}, ["myb"] = {"Mbay"}, ["myc"] = {"Mayeka"}, ["mye"] = {"Myene"}, ["myf"] = {"Bambassi"}, ["myg"] = {"Manta"}, ["myh"] = {"Makah"}, ["myj"] = {"Mangayat"}, ["myk"] = {"Mamara Senoufo"}, ["myl"] = {"Moma"}, ["mym"] = {"Me'en"}, ["myn"] = {"çhengaghyn Mayagh"}, ["myo"] = {"Anfillo"}, ["myp"] = {"Pirahã"}, ["myr"] = {"Muniche"}, ["mys"] = {"Mesmes"}, ["myu"] = {"Mundurukú"}, ["myv"] = {"Erzya"}, ["myw"] = {"Muyuw"}, ["myx"] = {"Masaaba"}, ["myy"] = {"Macuna"}, ["myz"] = {"Mandaish Chlassicagh"}, ["mza"] = {"Mixtecish Zacatepec Santa María"}, ["mzb"] = {"Tumzabt"}, ["mzc"] = {"Çhengey Chowree Vadagascar"}, ["mzd"] = {"Malimba"}, ["mze"] = {"Morawa"}, ["mzg"] = {"Çhengey Chowree Vaynaghoil"}, ["mzh"] = {"Wichí Lhamtés Güisnay"}, ["mzi"] = {"Mazatec Ixcatlán"}, ["mzj"] = {"Manya"}, ["mzk"] = {"Mambila yn Naigeer"}, ["mzl"] = {"Mazatlán Mixe"}, ["mzm"] = {"Mumuye"}, ["mzn"] = {"Mazanderanish"}, ["mzo"] = {"Matipuhy"}, ["mzp"] = {"Movima"}, ["mzq"] = {"Mori Atas"}, ["mzr"] = {"Marúbo"}, ["mzs"] = {"Macanish"}, ["mzt"] = {"Mintil"}, ["mzu"] = {"Inapang"}, ["mzv"] = {"Manza"}, ["mzw"] = {"Deg"}, ["mzx"] = {"Mawayana"}, ["mzy"] = {"Çhengey Chowree Vosambeeckagh"}, ["mzz"] = {"Maiadomu"}, ["naa"] = {"Namla"}, ["nab"] = {"Nambikuára Yiass"}, ["nac"] = {"Narak"}, ["nae"] = {"Naka'ela"}, ["naf"] = {"Nabak"}, ["nag"] = {"Naga Vrisht"}, ["nah"] = {"çhengaghyn Nahuatl"}, ["nai"] = {"çhengaghyn Injinagh Americaanagh Hwoaie"}, ["naj"] = {"Nalu"}, ["nak"] = {"Nakanai"}, ["nal"] = {"Nalik"}, ["nam"] = {"Ngan'gityemerri"}, ["nan"] = {"Sheenish Min Nan"}, ["nao"] = {"Naaba"}, ["nap"] = {"Naaplish"}, ["naq"] = {"Khoekhoeish", "Nama (y Nameeb)"}, ["nar"] = {"Iguta"}, ["nas"] = {"Naasioi"}, ["nat"] = {"Ca̱hungwa̱rya̱", "Hungworo"}, ["naw"] = {"Nawuri"}, ["nax"] = {"Nakwi"}, ["nay"] = {"Ngarrindjeri"}, ["naz"] = {"Nahuatl Coatepec"}, ["nba"] = {"Nyemba"}, ["nbb"] = {"Ndoe"}, ["nbc"] = {"Chang Naga"}, ["nbd"] = {"Ngbinda"}, ["nbe"] = {"Konyak Naga"}, ["nbg"] = {"Nagarchal"}, ["nbh"] = {"Ngamo"}, ["nbi"] = {"Mao Naga"}, ["nbj"] = {"Ngarinyman"}, ["nbk"] = {"Nake"}, ["nbm"] = {"Ngbaka Ma'bo"}, ["nbn"] = {"Kuri"}, ["nbo"] = {"Nkukoli"}, ["nbp"] = {"Nnam"}, ["nbq"] = {"Nggem"}, ["nbr"] = {"Numana"}, ["nbs"] = {"Çhengey Chowree Nameebagh"}, ["nbt"] = {"Na"}, ["nbu"] = {"Rongmei Naga"}, ["nbv"] = {"Ngamambo"}, ["nbw"] = {"Ngbandi Yiass"}, ["nby"] = {"Ningera"}, ["nca"] = {"Iyo"}, ["ncb"] = {"Nicobarish Veanagh"}, ["ncc"] = {"Ponam"}, ["ncd"] = {"Nachering"}, ["nce"] = {"Yale"}, ["ncf"] = {"Notsi"}, ["ncg"] = {"Nisga'a"}, ["nch"] = {"Nahuatl Huasteca Veanagh"}, ["nci"] = {"Nahuatl Chlassicagh"}, ["ncj"] = {"Nahuatl Puebla Hwoaie"}, ["nck"] = {"Na-kara"}, ["ncl"] = {"Nahuatl Michoacán"}, ["ncm"] = {"Nambo"}, ["ncn"] = {"Nauna"}, ["nco"] = {"Sibe"}, ["ncq"] = {"Katang Hwoaie"}, ["ncr"] = {"Ncane"}, ["ncs"] = {"Çhengey Chowree Nickeraagagh"}, ["nct"] = {"Naga Chothe"}, ["ncu"] = {"Chumburung"}, ["ncx"] = {"Nahuatl Puebla Veanagh"}, ["ncz"] = {"Natchez"}, ["nda"] = {"Ndasa"}, ["ndb"] = {"Kenswei Nsei"}, ["ndc"] = {"Ndauish"}, ["ndd"] = {"Nde-Nsele-Nta"}, ["ndf"] = {"Nadruvish"}, ["ndg"] = {"Ndengereko"}, ["ndh"] = {"Ndali"}, ["ndi"] = {"Samba Leko"}, ["ndj"] = {"Ndamba"}, ["ndk"] = {"Ndaka"}, ["ndl"] = {"Ndolo"}, ["ndm"] = {"Ndam"}, ["ndn"] = {"Ngundi"}, ["ndp"] = {"Ndo"}, ["ndq"] = {"Ndombe"}, ["ndr"] = {"Ndoola"}, ["nds"] = {"Germaanish Injil", "Saxonish Injil"}, ["ndt"] = {"Ndunga"}, ["ndu"] = {"Dugun"}, ["ndv"] = {"Ndut"}, ["ndw"] = {"Ndobo"}, ["ndx"] = {"Nduga"}, ["ndy"] = {"Lutos"}, ["ndz"] = {"Ndogo"}, ["nea"] = {"Ngad'a Hiar"}, ["neb"] = {"Toura (y Clyst Iuaagagh)"}, ["nec"] = {"Nedebang"}, ["ned"] = {"Nde-Gbite"}, ["nee"] = {"Nêlêmwa-Nixumwak"}, ["nef"] = {"Nefamese"}, ["neg"] = {"Negidal"}, ["neh"] = {"Nyenkha"}, ["nei"] = {"Noa-Hittish"}, ["nej"] = {"Neko"}, ["nek"] = {"Neku"}, ["nem"] = {"Nemi"}, ["nen"] = {"Nengone"}, ["neo"] = {"Ná-Meo"}, ["neq"] = {"Mixe Veanagh Hwoaie"}, ["ner"] = {"Yahadish"}, ["nes"] = {"Kinnaurish Bhoti"}, ["net"] = {"Nete"}, ["neu"] = {"Neo"}, ["nev"] = {"Nyaheun"}, ["new"] = {"Newari", "Nepal Bhasa"}, ["nex"] = {"Neme"}, ["ney"] = {"Neyo"}, ["nez"] = {"Nez Perce"}, ["nfa"] = {"Dhao"}, ["nfd"] = {"Ahwai"}, ["nfl"] = {"Ayiwo", "Äiwoo"}, ["nfr"] = {"Nafaanra"}, ["nfu"] = {"Mfumte"}, ["nga"] = {"Ngbaka"}, ["ngb"] = {"Ngbandi Hwoaie"}, ["ngc"] = {"Ngombe (Pobblaght Gheynlagh y Chongo)"}, ["ngd"] = {"Ngando (Pobblaght yn Affrick Veanagh)"}, ["nge"] = {"Ngemba"}, ["ngf"] = {"çhengaghyn tessen-Noa-Ghuineagh"}, ["ngg"] = {"Ngbaka Manza"}, ["ngh"] = {"Nǁng"}, ["ngi"] = {"Ngizim"}, ["ngj"] = {"Ngie"}, ["ngk"] = {"Dalabon"}, ["ngl"] = {"Lomwe"}, ["ngm"] = {"Creeole Fir Ngatik"}, ["ngn"] = {"Ngwo"}, ["ngp"] = {"Ngulu"}, ["ngq"] = {"Ngurimi", "Ngoreme"}, ["ngr"] = {"Engdewu"}, ["ngs"] = {"Gvoko"}, ["ngt"] = {"Kriang", "Ngeq"}, ["ngu"] = {"Nahuatl Guerrero"}, ["ngv"] = {"Nagumi"}, ["ngw"] = {"Ngwaba"}, ["ngx"] = {"Nggwahyi"}, ["ngy"] = {"Tibea"}, ["ngz"] = {"Ngungwel"}, ["nha"] = {"Nhanda"}, ["nhb"] = {"Beng"}, ["nhc"] = {"Nahuatl Tabasco"}, ["nhd"] = {"Chiripá", "Guaranish Ava"}, ["nhe"] = {"Nahuatl Huasteca Hiar"}, ["nhf"] = {"Nhuwala"}, ["nhg"] = {"Nahuatl Tetelcingo"}, ["nhh"] = {"Nahari"}, ["nhi"] = {"Nahuatl Zacatlán-Ahuacatlán-Tepetzintla"}, ["nhk"] = {"Nahuatl Isthmus-Cosoleacaque"}, ["nhm"] = {"Nahuatl Morelos"}, ["nhn"] = {"Nahuatl Veanagh"}, ["nho"] = {"Takuu"}, ["nhp"] = {"Nahuatl Isthmus-Pajapan"}, ["nhq"] = {"Nahuatl Huaxcaleca"}, ["nhr"] = {"Naro"}, ["nht"] = {"Nahuatl Ometepec"}, ["nhu"] = {"Noone"}, ["nhv"] = {"Nahuatl Temascaltepec"}, ["nhw"] = {"Nahuatl Huasteca Heear"}, ["nhx"] = {"Nahuatl Isthmus-Mecayapan"}, ["nhy"] = {"Nahuatl Oaxaca Hwoaie"}, ["nhz"] = {"Nahuatl Santa María La Alta"}, ["nia"] = {"Nias"}, ["nib"] = {"Nakame"}, ["nic"] = {"çhengaghyn Neegeyr-Kordofanagh"}, ["nid"] = {"Ngandi"}, ["nie"] = {"Niellim"}, ["nif"] = {"Nek"}, ["nig"] = {"Ngalakgan"}, ["nih"] = {"Nyiha (Tanzania)"}, ["nii"] = {"Nii"}, ["nij"] = {"Ngaju"}, ["nik"] = {"Nicobarish Yiass"}, ["nil"] = {"Nila"}, ["nim"] = {"Nilamba"}, ["nin"] = {"Ninzo"}, ["nio"] = {"Nganasanish"}, ["niq"] = {"Nandi"}, ["nir"] = {"Nimborish"}, ["nis"] = {"Nimi"}, ["nit"] = {"Kolamish Hiar Yiass"}, ["niu"] = {"Niuean"}, ["niv"] = {"Gilyakish"}, ["niw"] = {"Nimo"}, ["nix"] = {"Hema"}, ["niy"] = {"Ngiti"}, ["niz"] = {"Ningil"}, ["nja"] = {"Nzanyi"}, ["njb"] = {"Naga Nocte"}, ["njd"] = {"Ndonde Hamba"}, ["njh"] = {"Naga Lotha"}, ["nji"] = {"Gudanji"}, ["njj"] = {"Njen"}, ["njl"] = {"Njalgulgule"}, ["njm"] = {"Angami Naga"}, ["njn"] = {"Naga Liangmai"}, ["njo"] = {"Naga Ao"}, ["njr"] = {"Njerep"}, ["njs"] = {"Nisa"}, ["njt"] = {"Ndyuka-Trio Vrisht"}, ["nju"] = {"Ngadjunmaya"}, ["njx"] = {"Kunyi"}, ["njy"] = {"Njyem"}, ["njz"] = {"Nyishi"}, ["nka"] = {"Nkoya"}, ["nkb"] = {"Naga Khoibu"}, ["nkc"] = {"Nkongho"}, ["nkd"] = {"Koireng"}, ["nke"] = {"Duke"}, ["nkf"] = {"Naga Inpui"}, ["nkg"] = {"Nekgini"}, ["nkh"] = {"Naga Khezha"}, ["nki"] = {"Naga Thangal"}, ["nkj"] = {"Nakai"}, ["nkk"] = {"Nokuku"}, ["nkm"] = {"Namat"}, ["nkn"] = {"Nkangala"}, ["nko"] = {"Nkonya"}, ["nkp"] = {"Niuatoputapu"}, ["nkq"] = {"Nkami"}, ["nkr"] = {"Nukuoro"}, ["nks"] = {"Asmat Hwoaie"}, ["nkt"] = {"Nyika (Tanzania)"}, ["nku"] = {"Bouna Kulango"}, ["nkv"] = {"Nyika (Malawi as y Tambia)"}, ["nkw"] = {"Nkutu"}, ["nkx"] = {"Nkoroo"}, ["nkz"] = {"Nkari"}, ["nla"] = {"Ngombale"}, ["nlc"] = {"Nalca"}, ["nle"] = {"Nyala Hiar"}, ["nlg"] = {"Gela"}, ["nli"] = {"Grangali"}, ["nlj"] = {"Nyali"}, ["nlk"] = {"Ninia Yali"}, ["nll"] = {"Nihali"}, ["nlm"] = {"Mankiyali"}, ["nlo"] = {"Ngul"}, ["nlq"] = {"Naga Lao"}, ["nlu"] = {"Nchumbulu"}, ["nlv"] = {"Orizaba Nahuatl"}, ["nlw"] = {"Walangama"}, ["nlx"] = {"Nahali"}, ["nly"] = {"Nyamal"}, ["nlz"] = {"Nalögo"}, ["nma"] = {"Naga Maram"}, ["nmb"] = {"Nambas Vooar", "V'ënen Taut"}, ["nmc"] = {"Ngam"}, ["nmd"] = {"Ndumu"}, ["nme"] = {"Naga Mzieme"}, ["nmf"] = {"Naga Tangkhul (yn Injey)"}, ["nmg"] = {"Kwasio"}, ["nmh"] = {"Naga Monsang"}, ["nmi"] = {"Nyam"}, ["nmj"] = {"Ngombe (Pobblaght yn Affrick Veanagh)"}, ["nmk"] = {"Namakura"}, ["nml"] = {"Ndemli"}, ["nmm"] = {"Manangba"}, ["nmn"] = {"ǃXóõ"}, ["nmo"] = {"Naga Moyon"}, ["nmp"] = {"Nimanbur"}, ["nmq"] = {"Nambya"}, ["nmr"] = {"Nimbari"}, ["nms"] = {"Letemboi"}, ["nmt"] = {"Namonuito"}, ["nmu"] = {"Maidu Hiar Hwoaie"}, ["nmv"] = {"Ngamini"}, ["nmw"] = {"Nimoa", "Rifao"}, ["nmx"] = {"Nama (Papooey Guinea Noa)"}, ["nmy"] = {"Namuyi"}, ["nmz"] = {"Nawdm"}, ["nna"] = {"Nyangumarta"}, ["nnb"] = {"Nande"}, ["nnc"] = {"Nancere"}, ["nnd"] = {"Ambae Heear"}, ["nne"] = {"Ngandyera"}, ["nnf"] = {"Ngaing"}, ["nng"] = {"Naga Maring"}, ["nnh"] = {"Ngiemboon"}, ["nni"] = {"Nuaulu Hwoaie"}, ["nnj"] = {"Nyangatom"}, ["nnk"] = {"Nankina"}, ["nnl"] = {"Naga Rengma Hwoaie "}, ["nnm"] = {"Namia"}, ["nnn"] = {"Ngete"}, ["nnp"] = {"Naga Wancho"}, ["nnq"] = {"Ngindo"}, ["nnr"] = {"Narungga"}, ["nnt"] = {"Nanticoke"}, ["nnu"] = {"Dwang"}, ["nnv"] = {"Nugunu (yn Austrail)"}, ["nnw"] = {"Nuni Yiass"}, ["nny"] = {"Nyangga"}, ["nnz"] = {"Nda'nda'"}, ["noa"] = {"Woun Meu"}, ["noc"] = {"Nuk"}, ["nod"] = {"Thai Hwoaie"}, ["noe"] = {"Nimadi"}, ["nof"] = {"Nomane"}, ["nog"] = {"Nogaish"}, ["noh"] = {"Nomu"}, ["noi"] = {"Noiri"}, ["noj"] = {"Nonuya"}, ["nok"] = {"Nooksack"}, ["nol"] = {"Nomlaki"}, ["non"] = {"Shenn Loghlynnish"}, ["nop"] = {"Numanggang"}, ["noq"] = {"Ngongo"}, ["nos"] = {"Nisu Hiar"}, ["not"] = {"Nomatsiguenga"}, ["nou"] = {"Ewage-Notu"}, ["nov"] = {"Novial"}, ["now"] = {"Nyambo"}, ["noy"] = {"Noy"}, ["noz"] = {"Nayi"}, ["npa"] = {"Nar Phu"}, ["npb"] = {"Nupbikha"}, ["npg"] = {"Naga Ponyo-Gongwang"}, ["nph"] = {"Naga Phom"}, ["npi"] = {"Nepaalish"}, ["npl"] = {"Nahuatl Puebla Hiar Yiass"}, ["npn"] = {"Mondropolon"}, ["npo"] = {"Naga Pochuri"}, ["nps"] = {"Nipsan"}, ["npu"] = {"Naga Puimei"}, ["npx"] = {"Noipx"}, ["npy"] = {"Napu"}, ["nqg"] = {"Nago Yiass"}, ["nqk"] = {"Kura Ede Nago"}, ["nql"] = {"Ngendelengo"}, ["nqm"] = {"Ndom"}, ["nqn"] = {"Nen"}, ["nqo"] = {"N'Ko", "N’Ko"}, ["nqq"] = {"Naga Kyan-Karyaw"}, ["nqt"] = {"Nteng"}, ["nqy"] = {"Naga Akyaung Ari"}, ["nra"] = {"Ngom"}, ["nrb"] = {"Nara"}, ["nrc"] = {"Norish"}, ["nre"] = {"Naga Rengma Yiass"}, ["nrf"] = {"Jèrriais", "Guernésiais", "Sercquiais"}, ["nrg"] = {"Narango"}, ["nri"] = {"Naga Chokri"}, ["nrk"] = {"Ngarla"}, ["nrl"] = {"Ngarluma"}, ["nrm"] = {"Narom"}, ["nrn"] = {"Nornish"}, ["nrp"] = {"Picenish Hwoaie"}, ["nrr"] = {"Norra", "Nora"}, ["nrt"] = {"Kalapuya Hwoaie"}, ["nru"] = {"Narua"}, ["nrx"] = {"Ngurmbur"}, ["nrz"] = {"Lala"}, ["nsa"] = {"Naga Sangtam"}, ["nsb"] = {"Nossob Injil"}, ["nsc"] = {"Nshi"}, ["nsd"] = {"Nisu Yiass"}, ["nse"] = {"Nsenga"}, ["nsf"] = {"Nisu Heear Hwoaie"}, ["nsg"] = {"Ngasa"}, ["nsh"] = {"Ngoshie"}, ["nsi"] = {"Çhengey Chowree Naigeeragh"}, ["nsk"] = {"Naskapi"}, ["nsl"] = {"Çhengey Chowree Norlynnagh"}, ["nsm"] = {"Naga Sumi"}, ["nsn"] = {"Nehan"}, ["nso"] = {"Pedish", "Sotoish Hwoaie", "Sepedi"}, ["nsp"] = {"Çhengey Chowree Nepaalagh"}, ["nsq"] = {"Miwokish Sierra Hwoaie"}, ["nsr"] = {"Çhengey Chowree Vooiragh"}, ["nss"] = {"Nali"}, ["nst"] = {"Naga Tase"}, ["nsu"] = {"Nahuatl Sierra Negra"}, ["nsv"] = {"Nisu Heear Yiass"}, ["nsw"] = {"Navut"}, ["nsx"] = {"Nsongo"}, ["nsy"] = {"Nasal"}, ["nsz"] = {"Nisenan"}, ["ntd"] = {"Tidung Hwoaie"}, ["nte"] = {"Nathembo"}, ["ntg"] = {"Ngantangarra"}, ["nti"] = {"Natioro"}, ["ntj"] = {"Ngaanyatjarra"}, ["ntk"] = {"Ikoma-Nata-Isenye"}, ["ntm"] = {"Nateni"}, ["nto"] = {"Ntomba"}, ["ntp"] = {"Tepehuan Hwoaie"}, ["ntr"] = {"Delo"}, ["ntu"] = {"Natügu"}, ["ntw"] = {"Nottoway"}, ["ntx"] = {"Naga Tangkhul (Myanmar)"}, ["nty"] = {"Mantsi"}, ["ntz"] = {"Natanzi"}, ["nua"] = {"Yuanga"}, ["nub"] = {"çhengaghyn Nubiagh"}, ["nuc"] = {"Nukuini"}, ["nud"] = {"Ngala"}, ["nue"] = {"Ngundu"}, ["nuf"] = {"Nusu"}, ["nug"] = {"Nungali"}, ["nuh"] = {"Ndunda"}, ["nui"] = {"Ngumbi"}, ["nuj"] = {"Nyole"}, ["nuk"] = {"Nuu-chah-nulth", "Nuuchahnulth"}, ["nul"] = {"Nusa Laut"}, ["num"] = {"Niuafo'ou"}, ["nun"] = {"Anong"}, ["nuo"] = {"Nguôn"}, ["nup"] = {"Nupe-Nupe-Tako"}, ["nuq"] = {"Nukumanu"}, ["nur"] = {"Nukuria"}, ["nus"] = {"Nuer"}, ["nut"] = {"Nung (Viet Nam)"}, ["nuu"] = {"Ngbundu"}, ["nuv"] = {"Nuni Hwoaie"}, ["nuw"] = {"Nguluwan"}, ["nux"] = {"Mehek"}, ["nuy"] = {"Nunggubuyu"}, ["nuz"] = {"Nahuatl Tlamacazapa"}, ["nvh"] = {"Nasarish"}, ["nvm"] = {"Namiae"}, ["nvo"] = {"Nyokon"}, ["nwa"] = {"Nawathinehena"}, ["nwb"] = {"Nyabwa"}, ["nwc"] = {"Newarish Chlassicagh", "Nepal Bhasa Chlassicagh", "Shenn Newarish"}, ["nwe"] = {"Ngwe"}, ["nwg"] = {"Ngayawung"}, ["nwi"] = {"Tanna Heear Yiass"}, ["nwm"] = {"Nyamusa-Molo"}, ["nwo"] = {"Nauo"}, ["nwr"] = {"Nawaru"}, ["nww"] = {"Ndwewe"}, ["nwx"] = {"Newarish Veanagh"}, ["nwy"] = {"Nottoway-Meherrin"}, ["nxa"] = {"Nauete"}, ["nxd"] = {"Ngando (Pobblaght Gheynlagh y Chongo)"}, ["nxe"] = {"Nage"}, ["nxg"] = {"Ngad'a"}, ["nxi"] = {"Nindi"}, ["nxk"] = {"Naga Koki"}, ["nxl"] = {"Nuaulu Yiass"}, ["nxm"] = {"Numidish"}, ["nxn"] = {"Ngawun"}, ["nxo"] = {"Ndambomo"}, ["nxq"] = {"Naxi"}, ["nxr"] = {"Ninggerum"}, ["nxx"] = {"Nafri"}, ["nyb"] = {"Nyangbo"}, ["nyc"] = {"Nyanga-li"}, ["nyd"] = {"Nyore", "Olunyole"}, ["nye"] = {"Nyengo"}, ["nyf"] = {"Giryama", "Kigiryama"}, ["nyg"] = {"Nyindu"}, ["nyh"] = {"Nyikina"}, ["nyi"] = {"Ama (y Toodaan)"}, ["nyj"] = {"Nyanga"}, ["nyk"] = {"Nyaneka"}, ["nyl"] = {"Nyeu"}, ["nym"] = {"Nyamwezi"}, ["nyn"] = {"Nyankole"}, ["nyo"] = {"Nyoro"}, ["nyp"] = {"Nyang'i"}, ["nyq"] = {"Nayini"}, ["nyr"] = {"Nyiha (Malawi)"}, ["nys"] = {"Nyungar"}, ["nyt"] = {"Nyawaygi"}, ["nyu"] = {"Nyungwe"}, ["nyv"] = {"Nyulnyul"}, ["nyw"] = {"Nyaw"}, ["nyx"] = {"Nganyaywana"}, ["nyy"] = {"Nyakyusa-Ngonde"}, ["nza"] = {"Tigon Mbembe"}, ["nzb"] = {"Njebi"}, ["nzd"] = {"Nzadi"}, ["nzi"] = {"Nzima"}, ["nzk"] = {"Nzakara"}, ["nzm"] = {"Zeme Naga"}, ["nzr"] = {"Dir-Nyamzak-Mbarimi"}, ["nzs"] = {"Çhengey Chowree Noa-Heelynnagh"}, ["nzu"] = {"Teke-Nzikou"}, ["nzy"] = {"Nzakambay"}, ["nzz"] = {"Nanga Dama Dogon"}, ["oaa"] = {"Orok"}, ["oac"] = {"Oroch"}, ["oar"] = {"Shenn Aramaaish (derrey 700 RC)", "Aramaaish Henndeeagh (derrey 700 RC)"}, ["oav"] = {"Shenn Avarish"}, ["obi"] = {"Obispeño"}, ["obk"] = {"Bontok Yiass"}, ["obl"] = {"Oblo"}, ["obm"] = {"Moabite"}, ["obo"] = {"Obo Manobo"}, ["obr"] = {"Shenn Vurmish"}, ["obt"] = {"Shenn Vritaanish"}, ["obu"] = {"Obulom"}, ["oca"] = {"Ocaina"}, ["och"] = {"Shenn Heenish"}, ["ocm"] = {"Shenn Cham"}, ["oco"] = {"Shenn Chornish"}, ["ocu"] = {"Atzingo Matlatzinca"}, ["oda"] = {"Odut"}, ["odk"] = {"Od"}, ["odt"] = {"Shenn Ollanish"}, ["odu"] = {"Odual"}, ["ofo"] = {"Ofo"}, ["ofs"] = {"Shenn Reeshlannish"}, ["ofu"] = {"Efutop"}, ["ogb"] = {"Ogbia"}, ["ogc"] = {"Ogbah"}, ["oge"] = {"Shenn Horshish"}, ["ogg"] = {"Ogbogolo"}, ["ogo"] = {"Khana"}, ["ogu"] = {"Ogbronuagum"}, ["oht"] = {"Shenn Hittish"}, ["ohu"] = {"Shenn Ungaarish"}, ["oia"] = {"Oirata"}, ["oie"] = {"Okolie"}, ["oin"] = {"Inebu One"}, ["ojb"] = {"OjibwaHeear Hwoaie"}, ["ojc"] = {"Ojibwa Veanagh"}, ["ojg"] = {"Ojibwa Hiar"}, ["ojp"] = {"Shenn Hapaanish"}, ["ojs"] = {"Ojibwa Severn"}, ["ojv"] = {"Javish Ontong"}, ["ojw"] = {"Ojibwa Heear"}, ["oka"] = {"Okanagan"}, ["okb"] = {"Okobo"}, ["okc"] = {"Kobo"}, ["okd"] = {"Okodia"}, ["oke"] = {"Okpe (Edo Heear Yiass)"}, ["okg"] = {"Koko Babangk"}, ["okh"] = {"Koresh-e Rostam"}, ["oki"] = {"Okiek"}, ["okj"] = {"Oko-Juwoi"}, ["okk"] = {"Kwamtim One"}, ["okl"] = {"Shenn Çhengey Chowree Kent"}, ["okm"] = {"Koreeish Veanagh (10oo-16oo eash)"}, ["okn"] = {"Oki-No-Erabu"}, ["oko"] = {"Shenn Choreeish (3oo-9oo eash)"}, ["okr"] = {"Kirike"}, ["oks"] = {"Oko-Eni-Osayen"}, ["oku"] = {"Oku"}, ["okv"] = {"Orokaiva"}, ["okx"] = {"Okpe (Edo Heear Hwoaie)"}, ["okz"] = {"Shenn Khmerish"}, ["ola"] = {"Walungge"}, ["old"] = {"Mochi"}, ["ole"] = {"Olekha"}, ["olk"] = {"Olkol"}, ["olm"] = {"Oloma"}, ["olo"] = {"Livvish"}, ["olr"] = {"Olrat"}, ["olt"] = {"Shenn Litaanish"}, ["olu"] = {"Kuvale"}, ["oma"] = {"Omaha-Ponca"}, ["omb"] = {"Ambae Hiar"}, ["omc"] = {"Mochica"}, ["omg"] = {"Omagua"}, ["omi"] = {"Omi"}, ["omk"] = {"Omok"}, ["oml"] = {"Ombo"}, ["omn"] = {"Minoan"}, ["omo"] = {"Utarmbung"}, ["omp"] = {"Shenn Vanipurish"}, ["omq"] = {"çhengaghyn Oto-Mangueagh"}, ["omr"] = {"Shenn Varathish"}, ["omt"] = {"Omotik"}, ["omu"] = {"Omurano"}, ["omv"] = {"çhengaghyn Omotagh"}, ["omw"] = {"Tairora Yiass"}, ["omx"] = {"Shenn Mon"}, ["omy"] = {"Shenn Valayish"}, ["ona"] = {"Ona"}, ["onb"] = {"Lingao"}, ["one"] = {"Oneida"}, ["ong"] = {"Olo"}, ["oni"] = {"Onin"}, ["onj"] = {"Onjob"}, ["onk"] = {"Kabore One"}, ["onn"] = {"Onobasulu"}, ["ono"] = {"Onondaga"}, ["onp"] = {"Sartang"}, ["onr"] = {"One Hwoaie"}, ["ons"] = {"Ono"}, ["ont"] = {"Ontenu"}, ["onu"] = {"Unua"}, ["onw"] = {"Shenn Nubish"}, ["onx"] = {"Onin Vrisht"}, ["ood"] = {"Tohono O'odham"}, ["oog"] = {"Ong"}, ["oon"] = {"Önge"}, ["oor"] = {"Oorlams"}, ["oos"] = {"Shenn Ossetish"}, ["opa"] = {"Okpamheri"}, ["opk"] = {"Kopkaka"}, ["opm"] = {"Oksapmin"}, ["opo"] = {"Opao"}, ["opt"] = {"Opata"}, ["opy"] = {"Ofayé"}, ["ora"] = {"Oroha"}, ["orc"] = {"Orma"}, ["ore"] = {"Orejón"}, ["org"] = {"Oring"}, ["orh"] = {"Oroqen"}, ["orn"] = {"Orang Kanaq"}, ["oro"] = {"Orokolo"}, ["orr"] = {"Oruma"}, ["ors"] = {"Orang Seletar"}, ["ort"] = {"Adivasi Oriya"}, ["oru"] = {"Ormuri"}, ["orv"] = {"Shenn Rooshish"}, ["orw"] = {"Oro Win"}, ["orx"] = {"Oro"}, ["ory"] = {"Odish (çhengey er lheh)", "Oriyish (çhengey er lheh)"}, ["orz"] = {"Ormu"}, ["osa"] = {"Osage"}, ["osc"] = {"Oscan"}, ["osi"] = {"Osing"}, ["osn"] = {"Shenn Hundanish"}, ["oso"] = {"Ososo"}, ["osp"] = {"Shenn Spaainish"}, ["ost"] = {"Osatu"}, ["osu"] = {"One Yiass"}, ["osx"] = {"Shenn Haxonish"}, ["ota"] = {"Turkish Ottomanagh (1500-1928)"}, ["otb"] = {"Shenn Tibetish"}, ["otd"] = {"Ot Danum"}, ["ote"] = {"Otomi Mezquital"}, ["oti"] = {"Oti"}, ["otk"] = {"Shenn Turkish"}, ["otl"] = {"Otomi Tilapa"}, ["otm"] = {"Otomi Sleitoil Hiar"}, ["otn"] = {"Otomi Tenango"}, ["oto"] = {"çhengaghyn Otomagh"}, ["otq"] = {"Otomi Querétaro"}, ["otr"] = {"Otoro"}, ["ots"] = {"Otomi Estado de México"}, ["ott"] = {"Otomi Temoaya"}, ["otu"] = {"Otuke"}, ["otw"] = {"Ottawa"}, ["otx"] = {"Otomi Texcatepec"}, ["oty"] = {"Shenn Tamilish"}, ["otz"] = {"Otomi Ixtenco"}, ["oua"] = {"Tagargrent"}, ["oub"] = {"Glio-Oubi"}, ["oue"] = {"Oune"}, ["oui"] = {"Shenn Uighurish"}, ["oum"] = {"Ouma"}, ["ovd"] = {"Elfdalish", "Övdalish"}, ["owi"] = {"Owiniga"}, ["owl"] = {"Shenn Vretnish"}, ["oyb"] = {"Oy"}, ["oyd"] = {"Oyda"}, ["oym"] = {"Wayampi"}, ["oyy"] = {"Oya'oya"}, ["ozm"] = {"Koonzime"}, ["paa"] = {"çhengaghyn Papooagh"}, ["pab"] = {"Parecís"}, ["pac"] = {"Pacoh"}, ["pad"] = {"Paumarí"}, ["pae"] = {"Pagibete"}, ["paf"] = {"Paranawát"}, ["pag"] = {"Pangasinan"}, ["pah"] = {"Tenharim"}, ["pai"] = {"Pe"}, ["pak"] = {"Parakanã"}, ["pal"] = {"Pahlavi"}, ["pam"] = {"Pampanga", "Kapampangan"}, ["pao"] = {"Paiute Hwoaie"}, ["pap"] = {"Papiamento"}, ["paq"] = {"Parya"}, ["par"] = {"Panamint", "Timbisha"}, ["pas"] = {"Papasena"}, ["pau"] = {"Palauish"}, ["pav"] = {"Pakaásnovos"}, ["paw"] = {"Pawneeish"}, ["pax"] = {"Pankararé"}, ["pay"] = {"Pech"}, ["paz"] = {"Pankararú"}, ["pbb"] = {"Páez"}, ["pbc"] = {"Patamona"}, ["pbe"] = {"Popoloca Mezontla"}, ["pbf"] = {"Popoloca Coyotepec"}, ["pbg"] = {"Paraujano"}, ["pbh"] = {"E'ñapa Woromaipu"}, ["pbi"] = {"Parkwa"}, ["pbl"] = {"Mak (y Naigeer)"}, ["pbm"] = {"Mazatec Puebla"}, ["pbn"] = {"Kpasam"}, ["pbo"] = {"Papel"}, ["pbp"] = {"Badyara"}, ["pbr"] = {"Pangwa"}, ["pbs"] = {"Pame Veanagh"}, ["pbt"] = {"Pashtish Yiass"}, ["pbu"] = {"Pashtish Hwoaie"}, ["pbv"] = {"Pnar"}, ["pby"] = {"Pyu (Papooey Guinea Noa)"}, ["pca"] = {"Popoloca Ahuatempan Santa Inés"}, ["pcb"] = {"Pear"}, ["pcc"] = {"Bouyei"}, ["pcd"] = {"Picardish"}, ["pce"] = {"Ruching Palaung"}, ["pcf"] = {"Paliyan"}, ["pcg"] = {"Paniya"}, ["pch"] = {"Pardhan"}, ["pci"] = {"Duruwa"}, ["pcj"] = {"Parenga"}, ["pck"] = {"Paite Chin"}, ["pcl"] = {"Pardhi"}, ["pcm"] = {"Naigeerish Vrisht"}, ["pcn"] = {"Piti"}, ["pcp"] = {"Pacahuara"}, ["pcw"] = {"Pyapun"}, ["pda"] = {"Anam"}, ["pdc"] = {"Germaanish Pennsylvania"}, ["pdi"] = {"Pa Di"}, ["pdn"] = {"Podena", "Fedan"}, ["pdo"] = {"Padoe"}, ["pdt"] = {"Plautdietsch"}, ["pdu"] = {"Kayan"}, ["pea"] = {"Indoneeshish Peranakan"}, ["peb"] = {"Pomo Hiar"}, ["ped"] = {"Mala (Papooey Guinea Noa)"}, ["pee"] = {"Taje"}, ["pef"] = {"Pomo Hiar Hwoaie"}, ["peg"] = {"Pengo"}, ["peh"] = {"Bonan"}, ["pei"] = {"Chichimeca-Jonaz"}, ["pej"] = {"Pomo Hwoaie"}, ["pek"] = {"Penchal"}, ["pel"] = {"Pekal"}, ["pem"] = {"Phende"}, ["peo"] = {"Shenn Phershish (ca. 600-400 RC)"}, ["pep"] = {"Kunja"}, ["peq"] = {"Pomo Yiass"}, ["pes"] = {"Pershish Eeraanagh"}, ["pev"] = {"Pémono"}, ["pex"] = {"Petats"}, ["pey"] = {"Petjo"}, ["pez"] = {"Penan Hiar"}, ["pfa"] = {"Pááfang"}, ["pfe"] = {"Pere"}, ["pfl"] = {"Pfaelzisch"}, ["pga"] = {"Creeole Arabish Soodaanagh"}, ["pgd"] = {"Gāndhārī"}, ["pgg"] = {"Pangwali"}, ["pgi"] = {"Pagi"}, ["pgk"] = {"Rerep"}, ["pgl"] = {"Yernish Vunneydagh"}, ["pgn"] = {"Paelignian"}, ["pgs"] = {"Pangseng"}, ["pgu"] = {"Pagu"}, ["pgz"] = {"Çhengey Phapooey Guinea Noa"}, ["pha"] = {"Pa-Hng"}, ["phd"] = {"Phudagi"}, ["phg"] = {"Phuong"}, ["phh"] = {"Phukha"}, ["phi"] = {"çhengaghyn Philippeenagh"}, ["phj"] = {"Pahari"}, ["phk"] = {"Phake"}, ["phl"] = {"Phalura", "Palula"}, ["phm"] = {"Phimbi"}, ["phn"] = {"çhengaghyn Feaneeckagh"}, ["pho"] = {"Phunoi"}, ["phq"] = {"Phana'"}, ["phr"] = {"Pahari-Potwari"}, ["pht"] = {"Thai Phu"}, ["phu"] = {"Phuan"}, ["phv"] = {"Pahlavanish"}, ["phw"] = {"Phangduwali"}, ["pia"] = {"Pima Bajo"}, ["pib"] = {"Yine"}, ["pic"] = {"Pinji"}, ["pid"] = {"Piaroa"}, ["pie"] = {"Piro"}, ["pif"] = {"Pingelapish"}, ["pig"] = {"Pisabo"}, ["pih"] = {"Pitcairn-Norfolk"}, ["pij"] = {"Pijao"}, ["pil"] = {"Yom"}, ["pim"] = {"Powhatanish"}, ["pin"] = {"Piame"}, ["pio"] = {"Piapoco"}, ["pip"] = {"Pero"}, ["pir"] = {"Piratapuyo"}, ["pis"] = {"Pijin"}, ["pit"] = {"Pitta Pitta"}, ["piu"] = {"Pintupi-Luritja"}, ["piv"] = {"Pileni", "Vaeakau-Taumako"}, ["piw"] = {"Pimbwe"}, ["pix"] = {"Piu"}, ["piy"] = {"Piya-Kwonci"}, ["piz"] = {"Pije"}, ["pjt"] = {"Pitjantjatjara"}, ["pka"] = {"Ardhamāgadhī Prākrit"}, ["pkb"] = {"Pokomo", "Kipfokomo"}, ["pkc"] = {"Paekche"}, ["pkg"] = {"Pak-Tong"}, ["pkh"] = {"Pankhu"}, ["pkn"] = {"Pakanha"}, ["pko"] = {"Pökoot"}, ["pkp"] = {"Pukapuka"}, ["pkr"] = {"Attapady Kurumba"}, ["pks"] = {"Çhengey Chowree Phakistaanagh"}, ["pkt"] = {"Maleng"}, ["pku"] = {"Paku"}, ["pla"] = {"Miani"}, ["plb"] = {"Polonombauk"}, ["plc"] = {"Palawano Veanagh"}, ["pld"] = {"Polari"}, ["ple"] = {"Palu'e"}, ["plf"] = {"çhengaghyn Malayo-Pholaneeshagh Meanagh"}, ["plg"] = {"Pilagá"}, ["plh"] = {"Paulohi"}, ["plk"] = {"Shina Kohistan"}, ["pll"] = {"Shwe Palaung"}, ["pln"] = {"Palenquero"}, ["plo"] = {"Popoluca Oluta"}, ["plq"] = {"Palaic"}, ["plr"] = {"Palaka Senoufo"}, ["pls"] = {"Popoloca Tlacoyalco San Marcos", "Popoloca Tlalcoyalco San Marcos"}, ["plt"] = {"Malagasish yn Ard-chlaare"}, ["plu"] = {"Palikúr"}, ["plv"] = {"Palawano Heear Yiass"}, ["plw"] = {"Palawano Brooke's Point"}, ["ply"] = {"Bolyu"}, ["plz"] = {"Paluan"}, ["pma"] = {"Paama"}, ["pmb"] = {"Pambia"}, ["pmd"] = {"Pallanganmiddang"}, ["pme"] = {"Pwaamei"}, ["pmf"] = {"Pamona"}, ["pmh"] = {"Māhārāṣṭri Prākrit"}, ["pmi"] = {"Pumi Hwoaie"}, ["pmj"] = {"Pumi Yiass"}, ["pml"] = {"Lingua Franca"}, ["pmm"] = {"Pomo"}, ["pmn"] = {"Pam"}, ["pmo"] = {"Pom"}, ["pmq"] = {"Pame Hwoaie"}, ["pmr"] = {"Paynamar"}, ["pms"] = {"Piedmontish"}, ["pmt"] = {"Tuamotuan"}, ["pmw"] = {"Miwokish ny Strahyn"}, ["pmx"] = {"Naga Poumei"}, ["pmy"] = {"Malayish Phapooagh"}, ["pmz"] = {"Pame Yiass"}, ["pna"] = {"Punan Bah-Biau"}, ["pnb"] = {"Panjabish Heear"}, ["pnc"] = {"Pannei"}, ["pnd"] = {"Mpinda"}, ["pne"] = {"Penan Heear"}, ["png"] = {"Pangu", "Pongu"}, ["pnh"] = {"Penrhyn"}, ["pni"] = {"Aoheng"}, ["pnj"] = {"Pinjarup"}, ["pnk"] = {"Paunaka"}, ["pnl"] = {"Paleni"}, ["pnm"] = {"Punan Batu 1"}, ["pnn"] = {"Pinai-Hagahai"}, ["pno"] = {"Panobo"}, ["pnp"] = {"Pancana"}, ["pnq"] = {"Pana (Burkina Faso)"}, ["pnr"] = {"Panim"}, ["pns"] = {"Ponosakan"}, ["pnt"] = {"Pontish"}, ["pnu"] = {"Jiongnai Bunu"}, ["pnv"] = {"Pinigura"}, ["pnw"] = {"Banyjima", "Panytyima"}, ["pnx"] = {"Phong-Kniang"}, ["pny"] = {"Pinyin"}, ["pnz"] = {"Pana (Pobblaght yn Affrick Veanagh)"}, ["poc"] = {"Poqomam"}, ["poe"] = {"Popoloca Atzingo San Juan"}, ["pof"] = {"Poke"}, ["pog"] = {"Potiguára"}, ["poh"] = {"Poqomchi'"}, ["poi"] = {"Popoluca Sleitoil"}, ["pok"] = {"Pokangá"}, ["pom"] = {"Pomo Hiar Yiass"}, ["pon"] = {"Pohnpeish"}, ["poo"] = {"Pomo Veanagh"}, ["pop"] = {"Pwapwâ"}, ["poq"] = {"Popoloca Texistepec"}, ["pos"] = {"Popoloca Sayula"}, ["pot"] = {"Potawatomi"}, ["pov"] = {"Crioulo Ghuinea Eaghtyragh"}, ["pow"] = {"Popoluca Otlaltepec San Felipe"}, ["pox"] = {"Polabish"}, ["poy"] = {"Pogolo"}, ["poz"] = {"çhengaghyn Malayo-Pholaneeshagh"}, ["ppe"] = {"Papi"}, ["ppi"] = {"Paipai"}, ["ppk"] = {"Uma"}, ["ppl"] = {"Pipil", "Nicarao"}, ["ppm"] = {"Papuma"}, ["ppn"] = {"Papapana"}, ["ppo"] = {"Folopa"}, ["ppp"] = {"Pelende"}, ["ppq"] = {"Pei"}, ["pps"] = {"Popoloca Temalacayuca San Luís"}, ["ppt"] = {"Pare"}, ["ppu"] = {"Papora"}, ["pqa"] = {"Pa'a"}, ["pqe"] = {"çhengaghyn Malayo-Pholaneeshagh Hiar"}, ["pqm"] = {"Malecite-Passamaquoddy"}, ["pqw"] = {"çhengaghyn Malayo-Pholaneeshagh Heear"}, ["pra"] = {"çhengaghyn Prakrit"}, ["prc"] = {"Parachi"}, ["prd"] = {"Parsish-Darish"}, ["pre"] = {"Principensish"}, ["prf"] = {"Paranan"}, ["prg"] = {"Prooshish"}, ["prh"] = {"Porohanon"}, ["pri"] = {"Paicî"}, ["prk"] = {"Parauk"}, ["prl"] = {"Çhengey Chowree Pherooagh"}, ["prm"] = {"Kibiri"}, ["prn"] = {"Prasuni"}, ["pro"] = {"Shenn Provençal (derrey 1500)", "Shenn Ocsitaanish (derrey 1500)"}, ["prq"] = {"Ashéninka Perené"}, ["prr"] = {"Puri"}, ["prs"] = {"Darish", "Pershish Afghaanagh"}, ["prt"] = {"Phai"}, ["pru"] = {"Puragi"}, ["prw"] = {"Parawen"}, ["prx"] = {"Purik"}, ["prz"] = {"Çhengey Chowree Providencia"}, ["psa"] = {"Asue Awyu"}, ["psc"] = {"Çhengey Chowree Eeraanagh", "Çhengey Chowree Phershagh"}, ["psd"] = {"Çhengey Chowree Injinee ny Strahyn"}, ["pse"] = {"Malayish Veanagh"}, ["psg"] = {"Çhengey Chowree Penang"}, ["psh"] = {"Pashai Heear Yiass", "Pashayi Heear Yiass"}, ["psi"] = {"Pashai Hiar Yiass", "Pashayi Hiar Yiass"}, ["psl"] = {"Çhengey Chowree Phurt-verçhagh"}, ["psm"] = {"Pauserna"}, ["psn"] = {"Panasuan"}, ["pso"] = {"Çhengey Chowree Pholynnagh"}, ["psp"] = {"Çhengey Chowree Philippeenagh"}, ["psq"] = {"Pasi"}, ["psr"] = {"Çhengey Chowree Phortiugagh"}, ["pss"] = {"Kaulong"}, ["pst"] = {"Pashtish Veanagh"}, ["psu"] = {"Sauraseni Prākrit"}, ["psw"] = {"Port Sandwich"}, ["psy"] = {"Piscataway"}, ["pta"] = {"Pai Tavytera"}, ["pth"] = {"Pataxó Hã-Ha-Hãe"}, ["pti"] = {"Pindiini", "Wangkatha"}, ["ptn"] = {"Patanish"}, ["pto"] = {"Zo'é"}, ["ptp"] = {"Patep"}, ["ptq"] = {"Pattapu"}, ["ptr"] = {"Piamatsina"}, ["ptt"] = {"Enrekang"}, ["ptu"] = {"Bambam"}, ["ptv"] = {"Port Vato"}, ["ptw"] = {"Pentlatch"}, ["pty"] = {"Pathiya"}, ["pua"] = {"Purepecha Sleitoil Heear"}, ["pub"] = {"Purum"}, ["puc"] = {"Punan Merap"}, ["pud"] = {"Punan Aput"}, ["pue"] = {"Puelche"}, ["puf"] = {"Punan Merah"}, ["pug"] = {"Phuie"}, ["pui"] = {"Puinave"}, ["puj"] = {"Punan Tubu"}, ["pum"] = {"Puma"}, ["puo"] = {"Puoc"}, ["pup"] = {"Pulabu"}, ["puq"] = {"Puquina"}, ["pur"] = {"Puruborá"}, ["put"] = {"Putoh"}, ["puu"] = {"Punu"}, ["puw"] = {"Puluwatish"}, ["pux"] = {"Puare"}, ["puy"] = {"Purisimeño"}, ["pwa"] = {"Pawaia"}, ["pwb"] = {"Panawa"}, ["pwg"] = {"Gapapaiwa"}, ["pwi"] = {"Patwin"}, ["pwm"] = {"Molbog"}, ["pwn"] = {"Paiwan"}, ["pwo"] = {"Karenish Heear Pwo"}, ["pwr"] = {"Powari"}, ["pww"] = {"Karenish Hwoaie Pwo"}, ["pxm"] = {"Quetzaltepec Mixe"}, ["pye"] = {"Pye Krumen"}, ["pym"] = {"Fyam"}, ["pyn"] = {"Poyanáwa"}, ["pys"] = {"Çhengey Chowree Pharaguayagh", "Lengua de Señas del Paraguay"}, ["pyu"] = {"Puyuma"}, ["pyx"] = {"Pyu (Myanmar)"}, ["pyy"] = {"Pyen"}, ["pze"] = {"Pesse"}, ["pzh"] = {"Pazeh"}, ["pzn"] = {"Jejara Naga", "Para Naga"}, ["qua"] = {"Quapaw"}, ["qub"] = {"Quechua Huallaga Huánuco"}, ["quc"] = {"K'iche'", "Quiché"}, ["qud"] = {"Quichua Sleitoil Calderón"}, ["quf"] = {"Quechua Lambayeque"}, ["qug"] = {"Quichua Sleitoil Chimborazo"}, ["quh"] = {"Quechua Voliviagh Yiass"}, ["qui"] = {"Quileute"}, ["quk"] = {"Quechua Chachapoyas"}, ["qul"] = {"Quechua Voliviagh Hwoaie"}, ["qum"] = {"Sipacapense"}, ["qun"] = {"Quinault"}, ["qup"] = {"Quechua Pastaza Yiass"}, ["quq"] = {"Quinqui"}, ["qur"] = {"Quechua Yanahuanca Pasco"}, ["qus"] = {"Quichua Santiago del Estero"}, ["quv"] = {"Sacapulteco"}, ["quw"] = {"Quichua Injil Tena"}, ["qux"] = {"Quechua Yauyos"}, ["quy"] = {"Quechua Ayacucho"}, ["quz"] = {"Quechua Cusco"}, ["qva"] = {"Quechua Ambo-Pasco"}, ["qvc"] = {"Quechua Cajamarca"}, ["qve"] = {"Quechua Apurímac Hiar"}, ["qvh"] = {"Quechua Huánaco Huamalíes-Dos de Mayo"}, ["qvi"] = {"Quichua Sleitoil Imbabura"}, ["qvj"] = {"Quichua Sleitoil Loja"}, ["qvl"] = {"Quechua Lima Hwoaie Cajatambo"}, ["qvm"] = {"Quechua Margos-Yarowilca-Lauricocha"}, ["qvn"] = {"Quechua Junín Hwoaie"}, ["qvo"] = {"Quechua Injil Napo"}, ["qvp"] = {"Quechua Pacaraos"}, ["qvs"] = {"Quechua San Martín"}, ["qvw"] = {"Quechua Huaylla Wanca"}, ["qvy"] = {"Queyu"}, ["qvz"] = {"Quechua Pastaza Hwoaie"}, ["qwa"] = {"Quechua Ancash Corongo"}, ["qwc"] = {"Quechua Chlassicagh"}, ["qwe"] = {"Quechuagh (kynney)"}, ["qwh"] = {"Quechua Ancash Huaylas"}, ["qwm"] = {"Kumanish (y Roosh)"}, ["qws"] = {"Quechua Ancash Sihuas"}, ["qwt"] = {"Kwalhioqua-Tlatskanai"}, ["qxa"] = {"Quechua Ancash Chiquián"}, ["qxc"] = {"Quechua Chincha"}, ["qxh"] = {"Quechua Huánuco Panao"}, ["qxl"] = {"Quechua Sleitoil Salasaca"}, ["qxn"] = {"Quechua Ancash Conchucos Hwoaie"}, ["qxo"] = {"Quechua Ancash Conchucos Yiass"}, ["qxp"] = {"Quechua Puno"}, ["qxq"] = {"Qashqa'i"}, ["qxr"] = {"Quichua Sleitoil Cañar"}, ["qxs"] = {"Qiang Yiass"}, ["qxt"] = {"Quechua Pasco Santa Ana de Tusi"}, ["qxu"] = {"Quechua Arequipa-La Unión"}, ["qxw"] = {"Quechua Jauja Wanca"}, ["qya"] = {"Quenya"}, ["qyp"] = {"Quiripi"}, ["raa"] = {"Dungmali"}, ["rab"] = {"Camling"}, ["rac"] = {"Rasawa"}, ["rad"] = {"Rade"}, ["raf"] = {"Meohang Heear"}, ["rag"] = {"Logooli", "Lulogooli"}, ["rah"] = {"Rabha"}, ["rai"] = {"Ramoaaina"}, ["raj"] = {"Rajasthanish"}, ["rak"] = {"Tulu-Bohuai"}, ["ral"] = {"Ralte"}, ["ram"] = {"Canela"}, ["ran"] = {"Riantana"}, ["rao"] = {"Rao"}, ["rap"] = {"Rapanui"}, ["raq"] = {"Saam"}, ["rar"] = {"Rarotongan", "Maorish Ellanyn Cook"}, ["ras"] = {"Tegali"}, ["rat"] = {"Razajerdi"}, ["rau"] = {"Raute"}, ["rav"] = {"Sampang"}, ["raw"] = {"Rawang"}, ["rax"] = {"Rang"}, ["ray"] = {"Rapa"}, ["raz"] = {"Rahambuu"}, ["rbb"] = {"Rumai Palaung"}, ["rbk"] = {"Bontok Hwoaie"}, ["rbl"] = {"Miraya Bikol"}, ["rbp"] = {"Barababaraba"}, ["rcf"] = {"Creeole Frangish Réunion"}, ["rdb"] = {"Rudbari"}, ["rea"] = {"Rerau"}, ["reb"] = {"Rembong"}, ["ree"] = {"Rejang Kayan"}, ["reg"] = {"Kara (Tanzania)"}, ["rei"] = {"Reli"}, ["rej"] = {"Rejang"}, ["rel"] = {"Rendille"}, ["rem"] = {"Remo"}, ["ren"] = {"Rengao"}, ["rer"] = {"Rer Bare"}, ["res"] = {"Reshe"}, ["ret"] = {"Retta"}, ["rey"] = {"Reyesano"}, ["rga"] = {"Roria"}, ["rge"] = {"Greagish Romanagh"}, ["rgk"] = {"Rangkas"}, ["rgn"] = {"Romagnolish"}, ["rgr"] = {"Resígaro"}, ["rgs"] = {"Roglai Yiass"}, ["rgu"] = {"Ringgou"}, ["rhg"] = {"Rohingya"}, ["rhp"] = {"Yahang"}, ["ria"] = {"Riang (yn Injey)"}, ["rib"] = {"Çhengey Chowree Bribri"}, ["rif"] = {"Tarifit"}, ["ril"] = {"Riang Lang", "Riang (Myanmar)"}, ["rim"] = {"Nyaturu"}, ["rin"] = {"Nungu"}, ["rir"] = {"Ribun"}, ["rit"] = {"Ritharrngu"}, ["riu"] = {"Riung"}, ["rjg"] = {"Rajong"}, ["rji"] = {"Raji"}, ["rjs"] = {"Rajbanshi"}, ["rka"] = {"Kraol"}, ["rkb"] = {"Rikbaktsa"}, ["rkh"] = {"Rakahanga-Manihiki"}, ["rki"] = {"Rakhine"}, ["rkm"] = {"Marka"}, ["rkt"] = {"Rangpuri", "Kamta"}, ["rkw"] = {"Arakwal"}, ["rma"] = {"Rama"}, ["rmb"] = {"Rembarrnga"}, ["rmc"] = {"Romanish Charpathagh"}, ["rmd"] = {"Danvargish Romanagh"}, ["rme"] = {"Baarle Romanagh"}, ["rmf"] = {"Kaloromanish Innlynnagh"}, ["rmg"] = {"Norlynnish Romanagh"}, ["rmh"] = {"Murkim"}, ["rmi"] = {"Lomavren"}, ["rmk"] = {"Romkun"}, ["rml"] = {"Romanish Valtagh"}, ["rmm"] = {"Romanish"}, ["rmn"] = {"Romanish Valkanagh"}, ["rmo"] = {"Romanish Sinte"}, ["rmp"] = {"Rempi"}, ["rmq"] = {"Caló"}, ["rms"] = {"Çhengey Chowree Romaanagh"}, ["rmt"] = {"Domari"}, ["rmu"] = {"Romanish Tavringagh"}, ["rmv"] = {"Romanova"}, ["rmw"] = {"Romanish Vretnagh"}, ["rmx"] = {"Romam"}, ["rmy"] = {"Romanish Vlax"}, ["rmz"] = {"Marma"}, ["rnb"] = {"Çhengey Chowree Brunca"}, ["rnd"] = {"Ruund"}, ["rng"] = {"Ronga"}, ["rnl"] = {"Ranglong"}, ["rnn"] = {"Roon"}, ["rnp"] = {"Rongpo"}, ["rnr"] = {"Nari Nari"}, ["rnw"] = {"Rungwa"}, ["roa"] = {"çhengaghyn Romansagh"}, ["rob"] = {"Tae'"}, ["roc"] = {"Cacgia Roglai"}, ["rod"] = {"Rogo"}, ["roe"] = {"Ronji"}, ["rof"] = {"Rombo"}, ["rog"] = {"Roglai Hwoaie"}, ["rol"] = {"Romblomanon"}, ["rom"] = {"Romanish"}, ["roo"] = {"Rotokas"}, ["rop"] = {"Kriol"}, ["ror"] = {"Rongga"}, ["rou"] = {"Runga"}, ["row"] = {"Dela-Oenale"}, ["rpn"] = {"Repanbitip"}, ["rpt"] = {"Rapting"}, ["rri"] = {"Ririo"}, ["rro"] = {"Waima"}, ["rrt"] = {"Arritinngithigh"}, ["rsb"] = {"Serbish Romanagh"}, ["rsk"] = {"Ruthenish", "Rusnak"}, ["rsl"] = {"Çhengey Chowree Rooshagh"}, ["rsm"] = {"Çhengey Chowree Miriwoong"}, ["rsn"] = {"Çhengey Chowree Rooandagh"}, ["rsw"] = {"Rishiwa"}, ["rtc"] = {"Rungtu Chin"}, ["rth"] = {"Ratahan"}, ["rtm"] = {"Rotuman"}, ["rts"] = {"Yuratsish"}, ["rtw"] = {"Rathawi"}, ["rub"] = {"Gungu"}, ["ruc"] = {"Ruuli"}, ["rue"] = {"Rusynish"}, ["ruf"] = {"Luguru"}, ["rug"] = {"Roviana"}, ["ruh"] = {"Ruga"}, ["rui"] = {"Rufiji"}, ["ruk"] = {"Che"}, ["ruo"] = {"Istro-Romaanish"}, ["rup"] = {"Massado-Romaanish", "Aromaanish", "Arumaanish"}, ["ruq"] = {"Megleno-Romaanish"}, ["rut"] = {"Rutulish"}, ["ruu"] = {"Lanas Lobu"}, ["ruy"] = {"Mala (y Naigeer)"}, ["ruz"] = {"Ruma"}, ["rwa"] = {"Rawo"}, ["rwk"] = {"Rwa"}, ["rwl"] = {"Ruwila"}, ["rwm"] = {"Amba (Oogandey)"}, ["rwo"] = {"Rawa"}, ["rwr"] = {"Marwari (yn Injey)"}, ["rxd"] = {"Ngardi"}, ["rxw"] = {"Karuwali", "Garuwali"}, ["ryn"] = {"Amami-Oshima Hwoaie"}, ["rys"] = {"Yaeyama"}, ["ryu"] = {"Okinawish Veanagh"}, ["rzh"] = {"Rāziḥī"}, ["saa"] = {"Saba"}, ["sab"] = {"Buglere"}, ["sac"] = {"Meskwaki"}, ["sad"] = {"Sandawe"}, ["sae"] = {"Sabanê"}, ["saf"] = {"Safaliba"}, ["sah"] = {"Yakutish"}, ["sai"] = {"çhengaghyn Injinagh Americaanagh Yiass"}, ["saj"] = {"Sahu"}, ["sak"] = {"Sake"}, ["sal"] = {"çhengaghyn Salishanagh"}, ["sam"] = {"Aramaaish Hamaaragh"}, ["sao"] = {"Sause"}, ["saq"] = {"Samburu"}, ["sar"] = {"Saraveca"}, ["sas"] = {"Sasak"}, ["sat"] = {"Santali"}, ["sau"] = {"Saleman"}, ["sav"] = {"Saafi-Saafi"}, ["saw"] = {"Sawi"}, ["sax"] = {"Sa"}, ["say"] = {"Saya"}, ["saz"] = {"Saurashtra"}, ["sba"] = {"Ngambay"}, ["sbb"] = {"Simbo"}, ["sbc"] = {"Kele (Papooey Guinea Noa)"}, ["sbd"] = {"Samo Yiass"}, ["sbe"] = {"Saliba"}, ["sbf"] = {"Chabu", "Shabo"}, ["sbg"] = {"Seget"}, ["sbh"] = {"Sori-Harengan"}, ["sbi"] = {"Seti"}, ["sbj"] = {"Surbakhal"}, ["sbk"] = {"Safwa"}, ["sbl"] = {"Botolan Sambal"}, ["sbm"] = {"Sagala"}, ["sbn"] = {"Sindhi Bhil"}, ["sbo"] = {"Sabüm"}, ["sbp"] = {"Sangu (Tanzania)"}, ["sbq"] = {"Sileibi"}, ["sbr"] = {"Sembakung Murut"}, ["sbs"] = {"Subiya"}, ["sbt"] = {"Kimki"}, ["sbu"] = {"Stod Bhoti"}, ["sbv"] = {"Sabine"}, ["sbw"] = {"Simba"}, ["sbx"] = {"Seberuang"}, ["sby"] = {"Soli"}, ["sbz"] = {"Sara Kaba"}, ["scb"] = {"Chut"}, ["sce"] = {"Dongxiang"}, ["scf"] = {"Creeole Frangish San Miguel"}, ["scg"] = {"Sanggau"}, ["sch"] = {"Sakachep"}, ["sci"] = {"Creeole Malayish Sri Lanka"}, ["sck"] = {"Sadri"}, ["scl"] = {"Shina"}, ["scn"] = {"Shisslish"}, ["sco"] = {"Baarle Albinagh"}, ["scp"] = {"Hyolmo", "Helambu Sherpa"}, ["scq"] = {"Sa'och"}, ["scs"] = {"Slavish Hwoaie"}, ["sct"] = {"Katang Yiass"}, ["scu"] = {"Shumcho"}, ["scv"] = {"Sheni"}, ["scw"] = {"Sha"}, ["scx"] = {"Sicel"}, ["sda"] = {"Toraja-Sa'dan"}, ["sdb"] = {"Shabak"}, ["sdc"] = {"Sardeenish Hassaragh"}, ["sde"] = {"Surubu"}, ["sdf"] = {"Sarli"}, ["sdg"] = {"Savi"}, ["sdh"] = {"Kurdish Yiass"}, ["sdj"] = {"Suundi"}, ["sdk"] = {"Sos Kundi"}, ["sdl"] = {"Çhengey Chowree Arabagh Saudi"}, ["sdn"] = {"Sardeenish Ghalluragh"}, ["sdo"] = {"Bukar-Sadung Bidayuh"}, ["sdp"] = {"Sherdukpen"}, ["sdq"] = {"Semandang"}, ["sdr"] = {"Oraon Sadri"}, ["sds"] = {"Sened"}, ["sdt"] = {"Shuadit"}, ["sdu"] = {"Sarudu"}, ["sdv"] = {"çhengaghyn Soodaanagh Hiar"}, ["sdx"] = {"Sibu Melanau"}, ["sdz"] = {"Sallands"}, ["sea"] = {"Semai"}, ["seb"] = {"Shempire Senoufo"}, ["sec"] = {"Sechelt"}, ["sed"] = {"Sedang"}, ["see"] = {"Seneca"}, ["sef"] = {"Cebaara Senoufo"}, ["seg"] = {"Segeju"}, ["seh"] = {"Sena"}, ["sei"] = {"Seri"}, ["sej"] = {"Sene"}, ["sek"] = {"Sekani"}, ["sel"] = {"Selkup"}, ["sem"] = {"çhengaghyn Shemmagh"}, ["sen"] = {"Nanerigé Sénoufo"}, ["seo"] = {"Suarmin"}, ["sep"] = {"Sìcìté Sénoufo"}, ["seq"] = {"Senara Sénoufo"}, ["ser"] = {"Serrano"}, ["ses"] = {"Koyraboro Senni Songhai"}, ["set"] = {"Sentani"}, ["seu"] = {"Serui-Laut"}, ["sev"] = {"Nyarafolo Senoufo"}, ["sew"] = {"Sewa Bay"}, ["sey"] = {"Secoya"}, ["sez"] = {"Senthang Chin"}, ["sfb"] = {"Langue des signes de Belgique Francophone", "Çhengey Chowree Rangee yn Velg"}, ["sfe"] = {"Subanen Hiar"}, ["sfm"] = {"Miaoish Veg-ornaidagh"}, ["sfs"] = {"Çhengey Chowree yn Affrick Yiass"}, ["sfw"] = {"Sehwi"}, ["sga"] = {"Shenn Yernish (derrey 900)"}, ["sgb"] = {"Mag-antsi Ayta"}, ["sgc"] = {"Kipsigis"}, ["sgd"] = {"Surigaonon"}, ["sge"] = {"Segai"}, ["sgg"] = {"Çhengey Chowree Ghermaanagh Elveeishagh"}, ["sgh"] = {"Shughni"}, ["sgi"] = {"Suga"}, ["sgj"] = {"Surgujia"}, ["sgk"] = {"Sangkong"}, ["sgm"] = {"Singa"}, ["sgn"] = {"Çhengaghyn cowree"}, ["sgp"] = {"Singpho"}, ["sgr"] = {"Sangisari"}, ["sgs"] = {"Samogitish"}, ["sgt"] = {"Brokpake"}, ["sgu"] = {"Salas"}, ["sgw"] = {"Sebat Bet Gurage"}, ["sgx"] = {"Çhengey Chowree Sierra Leone"}, ["sgy"] = {"Sanglechi"}, ["sgz"] = {"Sursurunga"}, ["sha"] = {"Shall-Zwall"}, ["shb"] = {"Ninam"}, ["shc"] = {"Sonde"}, ["shd"] = {"Kundal Shahi"}, ["she"] = {"Sheko"}, ["shg"] = {"Shua"}, ["shh"] = {"Shoshoni"}, ["shi"] = {"Tachelhit"}, ["shj"] = {"Shatt"}, ["shk"] = {"Shilluk"}, ["shl"] = {"Shendu"}, ["shm"] = {"Shahrudi"}, ["shn"] = {"Shan"}, ["sho"] = {"Shanga"}, ["shp"] = {"Shipibo-Conibo"}, ["shq"] = {"Sala"}, ["shr"] = {"Shi"}, ["shs"] = {"Shuswap"}, ["sht"] = {"Shasta"}, ["shu"] = {"Arabish Hadagh"}, ["shv"] = {"Shehri"}, ["shw"] = {"Shwai"}, ["shx"] = {"She"}, ["shy"] = {"Tachawit"}, ["shz"] = {"Syenara Senoufo"}, ["sia"] = {"Saamish Akkala"}, ["sib"] = {"Sebop"}, ["sid"] = {"Sidamo"}, ["sie"] = {"Simaa"}, ["sif"] = {"Siamou"}, ["sig"] = {"Paasaal"}, ["sih"] = {"Zire", "Sîshëë"}, ["sii"] = {"Shom Peng"}, ["sij"] = {"Numbami"}, ["sik"] = {"Sikiana"}, ["sil"] = {"Tumulung Sisaala"}, ["sim"] = {"Mende (Papooey Guinea Noa)"}, ["sio"] = {"çhengaghyn Siouagh"}, ["sip"] = {"Sikkimish"}, ["siq"] = {"Sonia"}, ["sir"] = {"Siri"}, ["sis"] = {"Siuslaw"}, ["sit"] = {"çhengaghyn Sheen-Tibetagh"}, ["siu"] = {"Sinagen"}, ["siv"] = {"Sumariup"}, ["siw"] = {"Siwai"}, ["six"] = {"Sumau"}, ["siy"] = {"Sivandi"}, ["siz"] = {"Siwi"}, ["sja"] = {"Epena"}, ["sjb"] = {"Sajau Basap"}, ["sjd"] = {"Saamish Kildin"}, ["sje"] = {"Saamish Pite"}, ["sjg"] = {"Assangori"}, ["sjk"] = {"Saamish Kemi"}, ["sjl"] = {"Sajalong", "Miji"}, ["sjm"] = {"Mapun"}, ["sjn"] = {"Sindarin"}, ["sjo"] = {"Xibe"}, ["sjp"] = {"Surjapuri"}, ["sjr"] = {"Siar-Lak"}, ["sjs"] = {"Senhaja De Srair"}, ["sjt"] = {"Saamish Ter"}, ["sju"] = {"Saamish Ume"}, ["sjw"] = {"Shawneeish"}, ["ska"] = {"Skagit"}, ["skb"] = {"Saek"}, ["skc"] = {"Ma Manda"}, ["skd"] = {"Miwokish Sierra Yiass"}, ["ske"] = {"Seke (Vanuatu)"}, ["skf"] = {"Sakirabiá"}, ["skg"] = {"Malagasish Sakalava"}, ["skh"] = {"Sikule"}, ["ski"] = {"Sika"}, ["skj"] = {"Seke (Nepaal)"}, ["skm"] = {"Kutong"}, ["skn"] = {"Kolibugan Subanon"}, ["sko"] = {"Seko Tengah"}, ["skp"] = {"Sekapan"}, ["skq"] = {"Sininkere"}, ["skr"] = {"Saraiki", "Seraiki"}, ["sks"] = {"Maia"}, ["skt"] = {"Sakata"}, ["sku"] = {"Sakao"}, ["skv"] = {"Skou"}, ["skw"] = {"Creeole Ollanish Skepi"}, ["skx"] = {"Seko Padang"}, ["sky"] = {"Sikaiana"}, ["skz"] = {"Sekar"}, ["sla"] = {"çhengaghyn Slavagh"}, ["slc"] = {"Sáliba"}, ["sld"] = {"Sissala"}, ["sle"] = {"Sholaga"}, ["slf"] = {"Çhengey Chowree Iddaalagh Elveeishagh"}, ["slg"] = {"Selungai Murut"}, ["slh"] = {"Salish Yiass Puget Sound"}, ["sli"] = {"Sileeshish Eeghtyragh"}, ["slj"] = {"Salumá"}, ["sll"] = {"Salt-Yui"}, ["slm"] = {"Pangutaran Sama"}, ["sln"] = {"Salinan"}, ["slp"] = {"Lamaholot"}, ["slr"] = {"Salar"}, ["sls"] = {"Çhengey Chowree Singapore"}, ["slt"] = {"Sila"}, ["slu"] = {"Selaru"}, ["slw"] = {"Sialum"}, ["slx"] = {"Salampasu"}, ["sly"] = {"Selayar"}, ["slz"] = {"Ma'ya"}, ["sma"] = {"Saamish Yiass"}, ["smb"] = {"Simbari"}, ["smc"] = {"Som"}, ["smf"] = {"Auwe"}, ["smg"] = {"Simbali"}, ["smh"] = {"Samei"}, ["smi"] = {"çhengaghyn Saamagh"}, ["smj"] = {"Saamish Lule"}, ["smk"] = {"Bolinao"}, ["sml"] = {"Sama Veanagh"}, ["smm"] = {"Musasa"}, ["smn"] = {"Saamish Inari"}, ["smp"] = {"Samaarish"}, ["smq"] = {"Samo"}, ["smr"] = {"Simeulue"}, ["sms"] = {"Saamish Skolt"}, ["smt"] = {"Simte"}, ["smu"] = {"Somray"}, ["smv"] = {"Samvedi"}, ["smw"] = {"Sumbawa"}, ["smx"] = {"Samba"}, ["smy"] = {"Semnani"}, ["smz"] = {"Simeku"}, ["snc"] = {"Sinaugoro"}, ["sne"] = {"Bau Bidayuh"}, ["snf"] = {"Noon"}, ["sng"] = {"Sanga (Pobblaght Gheynlagh y Chongo)"}, ["sni"] = {"Sensi"}, ["snj"] = {"Riverain Sango"}, ["snk"] = {"Soninke"}, ["snl"] = {"Sangil"}, ["snm"] = {"Ma'di Yiass"}, ["snn"] = {"Siona"}, ["sno"] = {"Snohomish"}, ["snp"] = {"Siane"}, ["snq"] = {"Sangu (Gabon)"}, ["snr"] = {"Sihan"}, ["sns"] = {"South West Bay", "Nahavaq"}, ["snu"] = {"Senggi", "Viid"}, ["snv"] = {"Sa'ban"}, ["snw"] = {"Selee"}, ["snx"] = {"Sam"}, ["sny"] = {"Saniyo-Hiyewe"}, ["snz"] = {"Kou"}, ["soa"] = {"Song Thai"}, ["sob"] = {"Sobei"}, ["soc"] = {"So (Pobblaght Gheynlagh y Chongo)"}, ["sod"] = {"Songoora"}, ["soe"] = {"Songomeno"}, ["sog"] = {"Sogdish"}, ["soh"] = {"Aka"}, ["soi"] = {"Sonha"}, ["soj"] = {"Soi"}, ["sok"] = {"Sokoro"}, ["sol"] = {"Solos"}, ["son"] = {"çhengaghyn Songhai"}, ["soo"] = {"Songo"}, ["sop"] = {"Songe"}, ["soq"] = {"Kanasi"}, ["sor"] = {"Somrai"}, ["sos"] = {"Seeku"}, ["sou"] = {"Thai Yiass"}, ["sov"] = {"Sonsorol"}, ["sow"] = {"Sowanda"}, ["sox"] = {"Swo"}, ["soy"] = {"Miyobe"}, ["soz"] = {"Temi"}, ["spb"] = {"Sepa (yn Indoneesh)"}, ["spc"] = {"Sapé"}, ["spd"] = {"Saep"}, ["spe"] = {"Sepa (Papooey Guinea Noa)"}, ["spg"] = {"Sian"}, ["spi"] = {"Saponi"}, ["spk"] = {"Sengo"}, ["spl"] = {"Selepet"}, ["spm"] = {"Akukem"}, ["spn"] = {"Sanapaná"}, ["spo"] = {"Spokane"}, ["spp"] = {"Supyire Senoufo"}, ["spq"] = {"Spaainish Loreto-Ucayali"}, ["spr"] = {"Saparua"}, ["sps"] = {"Saposa"}, ["spt"] = {"Spiti Bhoti"}, ["spu"] = {"Sapuan"}, ["spv"] = {"Sambalpuri", "Kosli"}, ["spx"] = {"Picenish Yiass"}, ["spy"] = {"Sabaot"}, ["sqa"] = {"Shama-Sambuga"}, ["sqh"] = {"Shau"}, ["sqj"] = {"çhengaghyn Albaanagh"}, ["sqk"] = {"Çhengey Chowree Albaanagh"}, ["sqm"] = {"Suma"}, ["sqn"] = {"Susquehannock"}, ["sqo"] = {"Sorkhei"}, ["sqq"] = {"Sou"}, ["sqr"] = {"Arabish Hisslagh"}, ["sqs"] = {"Çhengey Chowree Sri Lanka"}, ["sqt"] = {"Soqotri"}, ["squ"] = {"Squamish"}, ["sqx"] = {"Çhengey Chowree Kufr Qassem (KQSL)"}, ["sra"] = {"Saruga"}, ["srb"] = {"Sora"}, ["src"] = {"Sardeenish Logudoragh"}, ["sre"] = {"Sara"}, ["srf"] = {"Nafi"}, ["srg"] = {"Sulod"}, ["srh"] = {"Sarikoli"}, ["sri"] = {"Siriano"}, ["srk"] = {"Serudung Murut"}, ["srl"] = {"Isirawa"}, ["srm"] = {"Saramaccan"}, ["srn"] = {"Sranan Tongo"}, ["sro"] = {"Sardeenish Campidanagh"}, ["srq"] = {"Sirionó"}, ["srr"] = {"Serer"}, ["srs"] = {"Sarsi"}, ["srt"] = {"Sauri"}, ["sru"] = {"Suruí"}, ["srv"] = {"Sorsoganon Yiass"}, ["srw"] = {"Serua"}, ["srx"] = {"Sirmauri"}, ["sry"] = {"Sera"}, ["srz"] = {"Shahmirzadi"}, ["ssa"] = {"çhengaghyn Neelagh-Saharagh"}, ["ssb"] = {"Sama Yiass"}, ["ssc"] = {"Suba-Simbiti"}, ["ssd"] = {"Siroi"}, ["sse"] = {"Balangingi", "Bangingih Sama"}, ["ssf"] = {"Thao"}, ["ssg"] = {"Seimat"}, ["ssh"] = {"Arabish Shihhi"}, ["ssi"] = {"Sansi"}, ["ssj"] = {"Sausi"}, ["ssk"] = {"Sunam"}, ["ssl"] = {"Sisaala Heear"}, ["ssm"] = {"Semnam"}, ["ssn"] = {"Waata"}, ["sso"] = {"Sissano"}, ["ssp"] = {"Çhengey Chowree Spaainagh"}, ["ssq"] = {"So'a"}, ["ssr"] = {"Çhengey Chowree Rangagh Elveeishagh"}, ["sss"] = {"Sô"}, ["sst"] = {"Sinasina"}, ["ssu"] = {"Susuami"}, ["ssv"] = {"Shark Bay"}, ["ssx"] = {"Samberigi"}, ["ssy"] = {"Saho"}, ["ssz"] = {"Sengseng"}, ["sta"] = {"Settla"}, ["stb"] = {"Subanen Hwoaie"}, ["std"] = {"Sentinel"}, ["ste"] = {"Liana-Seti"}, ["stf"] = {"Seta"}, ["stg"] = {"Trieng"}, ["sth"] = {"Shelta"}, ["sti"] = {"Bulo Stieng"}, ["stj"] = {"Matya Samo"}, ["stk"] = {"Arammba"}, ["stl"] = {"Stellingwerfs"}, ["stm"] = {"Setaman"}, ["stn"] = {"Owa"}, ["sto"] = {"Stonish"}, ["stp"] = {"Tepehuan Hiar Yiass"}, ["stq"] = {"Saterfriesisch"}, ["str"] = {"Salish ny Keyllyssyn"}, ["sts"] = {"Shumashti"}, ["stt"] = {"Budeh Stieng"}, ["stu"] = {"Samtao"}, ["stv"] = {"Silt'e"}, ["stw"] = {"Satawalish"}, ["sty"] = {"Tatarish Hibbeyragh"}, ["sua"] = {"Sulka"}, ["sub"] = {"Suku"}, ["suc"] = {"Subanon Heear"}, ["sue"] = {"Suena"}, ["sug"] = {"Suganga"}, ["sui"] = {"Suki"}, ["suj"] = {"Shubi"}, ["suk"] = {"Sukuma"}, ["suo"] = {"Bouni"}, ["suq"] = {"Tirmaga-Chai Suri", "Suri"}, ["sur"] = {"Mwaghavul"}, ["sus"] = {"Susu"}, ["sut"] = {"Subtiaba"}, ["suv"] = {"Puroik"}, ["suw"] = {"Sumbwa"}, ["sux"] = {"Sumerish"}, ["suy"] = {"Suyá"}, ["suz"] = {"Sunwar"}, ["sva"] = {"Svan"}, ["svb"] = {"Ulau-Suain"}, ["svc"] = {"Creeole Baarle Winsenagh"}, ["sve"] = {"Serili"}, ["svk"] = {"Çhengey Chowree Slovackagh"}, ["svm"] = {"Slavomolisano"}, ["svs"] = {"Savosavo"}, ["svx"] = {"Skalvish"}, ["swb"] = {"Comoroish Maore"}, ["swc"] = {"Swahili yn Chongo"}, ["swf"] = {"Sere"}, ["swg"] = {"Swabish"}, ["swh"] = {"Swahili (çhengey er lheh)", "Kiswahili"}, ["swi"] = {"Sui"}, ["swj"] = {"Sira"}, ["swk"] = {"Malawi Sena"}, ["swl"] = {"Çhengey Chowree Hoolynnagh"}, ["swm"] = {"Samosa"}, ["swn"] = {"Sawknah"}, ["swo"] = {"Shanenawa"}, ["swp"] = {"Suau"}, ["swq"] = {"Sharwa"}, ["swr"] = {"Saweru"}, ["sws"] = {"Seluwasan"}, ["swt"] = {"Sawila"}, ["swu"] = {"Suwawa"}, ["swv"] = {"Shekhawati"}, ["sww"] = {"Sowa"}, ["swx"] = {"Suruahá"}, ["swy"] = {"Sarua"}, ["sxb"] = {"Suba"}, ["sxc"] = {"Sicanish"}, ["sxe"] = {"Sighu"}, ["sxg"] = {"Shuhi", "Shixing"}, ["sxk"] = {"Kalapuya Yiass"}, ["sxl"] = {"Selian"}, ["sxm"] = {"Samre"}, ["sxn"] = {"Sangir"}, ["sxo"] = {"Sorothaptish"}, ["sxr"] = {"Saaroa"}, ["sxs"] = {"Sasaru"}, ["sxu"] = {"Saxonish Eaghtyragh"}, ["sxw"] = {"Saxwe Gbe"}, ["sya"] = {"Siang"}, ["syb"] = {"Subanen Veanagh"}, ["syc"] = {"Seerish Chlassicagh"}, ["syd"] = {"çhengaghyn Samoyedagh"}, ["syi"] = {"Seki"}, ["syk"] = {"Sukur"}, ["syl"] = {"Sylheti"}, ["sym"] = {"Maya Samo"}, ["syn"] = {"Senaya"}, ["syo"] = {"Suoy"}, ["syr"] = {"Seerish"}, ["sys"] = {"Sinyar"}, ["syw"] = {"Kagate"}, ["syx"] = {"Samay"}, ["syy"] = {"Çhengey Chowree ny Bedouin Al-Sayyid"}, ["sza"] = {"Semelai"}, ["szb"] = {"Ngalum"}, ["szc"] = {"Semaq Beri"}, ["sze"] = {"Seze"}, ["szg"] = {"Sengele"}, ["szl"] = {"Sileeshish"}, ["szn"] = {"Sula"}, ["szp"] = {"Suabo"}, ["szs"] = {"Çhengey Chowree Ellanyn Solomon"}, ["szv"] = {"Isu (Rheynn Fako)"}, ["szw"] = {"Sawai"}, ["szy"] = {"Sakizaya"}, ["taa"] = {"Tanana Eeghtyragh"}, ["tab"] = {"Tabassaranish"}, ["tac"] = {"Tarahumara Injil"}, ["tad"] = {"Tause"}, ["tae"] = {"Tariana"}, ["taf"] = {"Tapirapé"}, ["tag"] = {"Tagoi"}, ["tai"] = {"çhengaghyn Tai"}, ["taj"] = {"Tamang Hiar"}, ["tak"] = {"Tala"}, ["tal"] = {"Tal"}, ["tan"] = {"Tangale"}, ["tao"] = {"Yami"}, ["tap"] = {"Taabwa"}, ["taq"] = {"Tamasheq"}, ["tar"] = {"Tarahumara Veanagh"}, ["tas"] = {"Tay Boi"}, ["tau"] = {"Tanana Eaghtyragh"}, ["tav"] = {"Tatuyo"}, ["taw"] = {"Tai"}, ["tax"] = {"Tamki"}, ["tay"] = {"Atayal"}, ["taz"] = {"Tocho"}, ["tba"] = {"Aikanã"}, ["tbc"] = {"Takia"}, ["tbd"] = {"Kaki Ae"}, ["tbe"] = {"Tanimbili"}, ["tbf"] = {"Mandara"}, ["tbg"] = {"Tairora Hwoaie"}, ["tbh"] = {"Dharawal", "Thurawal"}, ["tbi"] = {"Gaam"}, ["tbj"] = {"Tiang"}, ["tbk"] = {"Calamian Tagbanwa"}, ["tbl"] = {"Tboli"}, ["tbm"] = {"Tagbu"}, ["tbn"] = {"Barro Negro Tunebo"}, ["tbo"] = {"Tawala"}, ["tbp"] = {"Taworta", "Diebroud"}, ["tbq"] = {"çhengaghyn Tibetagh-Burmagh"}, ["tbr"] = {"Tumtum"}, ["tbs"] = {"Tanguat"}, ["tbt"] = {"Tembo (Kitembo)"}, ["tbu"] = {"Tubar"}, ["tbv"] = {"Tobo"}, ["tbw"] = {"Tagbanwa"}, ["tbx"] = {"Kapin"}, ["tby"] = {"Tabaru"}, ["tbz"] = {"Ditammari"}, ["tca"] = {"Ticuna"}, ["tcb"] = {"Tanacross"}, ["tcc"] = {"Datooga"}, ["tcd"] = {"Tafi"}, ["tce"] = {"Tutchone Yiass"}, ["tcf"] = {"Malinaltepec Me'phaa", "Malinaltepec Tlapanec"}, ["tcg"] = {"Tamagario"}, ["tch"] = {"Creeole Baarle ny Turkee as Caicos"}, ["tci"] = {"Wára"}, ["tck"] = {"Tchitchege"}, ["tcl"] = {"Taman (Myanmar)"}, ["tcm"] = {"Tanahmerah"}, ["tcn"] = {"Tichurong"}, ["tco"] = {"Taungyo"}, ["tcp"] = {"Tawr Chin"}, ["tcq"] = {"Kaiy"}, ["tcs"] = {"Creeole Keyllys Torres", "Yumplatok"}, ["tct"] = {"T'en"}, ["tcu"] = {"Tarahumara Hiar Yiass"}, ["tcw"] = {"Totonac Tecpatlán"}, ["tcx"] = {"Toda"}, ["tcy"] = {"Tulu"}, ["tcz"] = {"Chinish Thado"}, ["tda"] = {"Tagdal"}, ["tdb"] = {"Panchpargania"}, ["tdc"] = {"Emberá-Tadó"}, ["tdd"] = {"Tai Nüa"}, ["tde"] = {"Tiranige Diga Dogon"}, ["tdf"] = {"Talieng"}, ["tdg"] = {"Tamang Heear"}, ["tdh"] = {"Thulung"}, ["tdi"] = {"Tomadino"}, ["tdj"] = {"Tajio"}, ["tdk"] = {"Tambas"}, ["tdl"] = {"Sur"}, ["tdm"] = {"Taruma"}, ["tdn"] = {"Tondano"}, ["tdo"] = {"Teme"}, ["tdq"] = {"Tita"}, ["tdr"] = {"Todrah"}, ["tds"] = {"Doutai"}, ["tdt"] = {"Tetun Dili"}, ["tdv"] = {"Toro"}, ["tdx"] = {"Malagasish Tandroy-Mahafaly"}, ["tdy"] = {"Tadyawan"}, ["tea"] = {"Temiar"}, ["teb"] = {"Tetete"}, ["tec"] = {"Terik"}, ["ted"] = {"Tepo Krumen"}, ["tee"] = {"Huehuetla Tepehua"}, ["tef"] = {"Teressa"}, ["teg"] = {"Teke-Tege"}, ["teh"] = {"Tehuelçhish"}, ["tei"] = {"Torricelli"}, ["tek"] = {"Ibali Teke"}, ["tem"] = {"Timne"}, ["ten"] = {"Tama (y Cholombey)"}, ["teo"] = {"Teso"}, ["tep"] = {"Tepecano"}, ["teq"] = {"Temein"}, ["ter"] = {"Tereno"}, ["tes"] = {"Tengger"}, ["tet"] = {"Tetum"}, ["teu"] = {"Soo"}, ["tev"] = {"Teor"}, ["tew"] = {"Tewa (SUA)"}, ["tex"] = {"Tennet"}, ["tey"] = {"Tulishi"}, ["tez"] = {"Tetserret"}, ["tfi"] = {"Tofin Gbe"}, ["tfn"] = {"Tanaina"}, ["tfo"] = {"Tefaro"}, ["tfr"] = {"Teribe"}, ["tft"] = {"Ternate"}, ["tga"] = {"Sagalla"}, ["tgb"] = {"Tobilung"}, ["tgc"] = {"Tigak"}, ["tgd"] = {"Ciwogai"}, ["tge"] = {"Tamang Hiar Gorkha"}, ["tgf"] = {"Chalikha"}, ["tgh"] = {"Creeole Baarle Tobago"}, ["tgi"] = {"Lawunuia"}, ["tgj"] = {"Tagin"}, ["tgn"] = {"Tandaganon"}, ["tgo"] = {"Sudest"}, ["tgp"] = {"Tangoa"}, ["tgq"] = {"Tring"}, ["tgr"] = {"Tareng"}, ["tgs"] = {"Nume"}, ["tgt"] = {"Tagbanwa Veanagh"}, ["tgu"] = {"Tanggu"}, ["tgv"] = {"Tingui-Boto"}, ["tgw"] = {"Tagwana Senoufo"}, ["tgx"] = {"Tagish"}, ["tgy"] = {"Togoyo"}, ["tgz"] = {"Tagalaka"}, ["thd"] = {"Kuuk Thaayorre", "Thayore"}, ["the"] = {"Chitwania Tharu"}, ["thf"] = {"Thangmi"}, ["thh"] = {"Tarahumara Hwoaie"}, ["thi"] = {"Tai Long"}, ["thk"] = {"Tharaka", "Kitharaka"}, ["thl"] = {"Dangaura Tharu"}, ["thm"] = {"Aheu"}, ["thn"] = {"Thachanadan"}, ["thp"] = {"Thompson"}, ["thq"] = {"Kochila Tharu"}, ["thr"] = {"Rana Tharu"}, ["ths"] = {"Thakali"}, ["tht"] = {"Tahltan"}, ["thu"] = {"Thuri"}, ["thv"] = {"Tahaggart Tamahaq"}, ["thy"] = {"Tha"}, ["thz"] = {"Tayart Tamajeq"}, ["tia"] = {"Tamazight Tidikelt"}, ["tic"] = {"Tira"}, ["tif"] = {"Tifal"}, ["tig"] = {"Tigre"}, ["tih"] = {"Timugon Murut"}, ["tii"] = {"Tiene"}, ["tij"] = {"Tilung"}, ["tik"] = {"Tikar"}, ["til"] = {"Tillamook"}, ["tim"] = {"Timbe"}, ["tin"] = {"Tindi"}, ["tio"] = {"Teop"}, ["tip"] = {"Trimuris"}, ["tiq"] = {"Tiéfo"}, ["tis"] = {"Masadiit Itneg"}, ["tit"] = {"Tinigua"}, ["tiu"] = {"Adasen"}, ["tiv"] = {"Tiv"}, ["tiw"] = {"Tiwi"}, ["tix"] = {"Tiwa Yiass"}, ["tiy"] = {"Tiruray"}, ["tiz"] = {"Tai Hongjin"}, ["tja"] = {"Tajuasohn"}, ["tjg"] = {"Tunjung"}, ["tji"] = {"Tujia Hwoaie"}, ["tjj"] = {"Tjungundji"}, ["tjl"] = {"Tai Laing"}, ["tjm"] = {"Timucua"}, ["tjn"] = {"Tonjon"}, ["tjo"] = {"Tamazight Témacine"}, ["tjp"] = {"Tjupany"}, ["tjs"] = {"Tujia Yiass"}, ["tju"] = {"Tjurruru"}, ["tjw"] = {"Djabwurrung"}, ["tka"] = {"Truká"}, ["tkb"] = {"Buksa"}, ["tkd"] = {"Tukudede"}, ["tke"] = {"Takwane"}, ["tkf"] = {"Tukumanféd"}, ["tkg"] = {"Malagasish Tesaka"}, ["tkl"] = {"Tokelauish"}, ["tkm"] = {"Takelma"}, ["tkn"] = {"Toku-No-Shima"}, ["tkp"] = {"Tikopia"}, ["tkq"] = {"Tee"}, ["tkr"] = {"Tsakhurish"}, ["tks"] = {"Takestaanish"}, ["tkt"] = {"Kathoriya Tharu"}, ["tku"] = {"Totonac Necaxa Heose"}, ["tkv"] = {"Mur Pano"}, ["tkw"] = {"Teanu"}, ["tkx"] = {"Tangko"}, ["tkz"] = {"Takua"}, ["tla"] = {"Tepehuan Heear Yiass"}, ["tlb"] = {"Tobelo"}, ["tlc"] = {"Totonac Yecuatla"}, ["tld"] = {"Talaud"}, ["tlf"] = {"Telefol"}, ["tlg"] = {"Tofanma"}, ["tlh"] = {"Klingon", "tlhIngan Hol"}, ["tli"] = {"Tlingit"}, ["tlj"] = {"Talinga-Bwisi"}, ["tlk"] = {"Taloki"}, ["tll"] = {"Tetela"}, ["tlm"] = {"Tolomako"}, ["tln"] = {"Talondo'"}, ["tlo"] = {"Talodi"}, ["tlp"] = {"Totonac Filomena Mata-Coahuitlán"}, ["tlq"] = {"Tai Loi"}, ["tlr"] = {"Talise"}, ["tls"] = {"Tambotalo"}, ["tlt"] = {"Sou Nama", "Teluti"}, ["tlu"] = {"Tulehu"}, ["tlv"] = {"Taliabu"}, ["tlx"] = {"Khehek"}, ["tly"] = {"Talysh"}, ["tma"] = {"Tama (Shad)"}, ["tmb"] = {"Katbol", "Avava"}, ["tmc"] = {"Tumak"}, ["tmd"] = {"Haruai"}, ["tme"] = {"Tremembé"}, ["tmf"] = {"Toba-Maskoy"}, ["tmg"] = {"Ternateño"}, ["tmh"] = {"Tamashek"}, ["tmi"] = {"Tutuba"}, ["tmj"] = {"Samarokena"}, ["tml"] = {"Tamnim Citak"}, ["tmm"] = {"Tai Thanh"}, ["tmn"] = {"Taman (yn Indoneesh)"}, ["tmo"] = {"Temoq"}, ["tmq"] = {"Tumleo"}, ["tmr"] = {"Aramaaish Vabylonagh Ewagh (ca. 200-1200 BNJ)"}, ["tms"] = {"Tima"}, ["tmt"] = {"Tasmate"}, ["tmu"] = {"Iau"}, ["tmv"] = {"Tembo (Motembo)"}, ["tmw"] = {"Temuan"}, ["tmy"] = {"Tami"}, ["tmz"] = {"Tamanaku"}, ["tna"] = {"Tacana"}, ["tnb"] = {"Tunebo Heear"}, ["tnc"] = {"Tanimuca-Retuarã"}, ["tnd"] = {"Angosturas Tunebo"}, ["tng"] = {"Tobanga"}, ["tnh"] = {"Maiani"}, ["tni"] = {"Tandia"}, ["tnk"] = {"Kwamera"}, ["tnl"] = {"Lenakel"}, ["tnm"] = {"Tabla"}, ["tnn"] = {"Tanna Hwoaie"}, ["tno"] = {"Toromono"}, ["tnp"] = {"Whitesands"}, ["tnq"] = {"Taino"}, ["tnr"] = {"Ménik"}, ["tns"] = {"Tenis"}, ["tnt"] = {"Tontemboan"}, ["tnu"] = {"Tay Khang"}, ["tnv"] = {"Tangchangya"}, ["tnw"] = {"Tonsawang"}, ["tnx"] = {"Tanema"}, ["tny"] = {"Tongwe"}, ["tnz"] = {"Ten'edn"}, ["tob"] = {"Toba"}, ["toc"] = {"Totonac Coyutla"}, ["tod"] = {"Toma"}, ["tof"] = {"Gizrra"}, ["tog"] = {"Tonga (Nyasa)"}, ["toh"] = {"Gitonga"}, ["toi"] = {"Tonga (y Tambia)"}, ["toj"] = {"Tojolabal"}, ["tok"] = {"Toki Pona"}, ["tol"] = {"Tolowa"}, ["tom"] = {"Tombulu"}, ["too"] = {"Totonac Xicotepec De Juárez"}, ["top"] = {"Totonac Papantla"}, ["toq"] = {"Toposa"}, ["tor"] = {"Togbo-Vara Banda"}, ["tos"] = {"Totonac Sleitoil"}, ["tou"] = {"Tho"}, ["tov"] = {"Taromi Eaghtyragh"}, ["tow"] = {"Jemez"}, ["tox"] = {"Tobian"}, ["toy"] = {"Topoiyo"}, ["toz"] = {"To"}, ["tpa"] = {"Taupota"}, ["tpc"] = {"Me'phaa Azoyú", "Tlapanec Azoyú"}, ["tpe"] = {"Tippera"}, ["tpf"] = {"Tarpia"}, ["tpg"] = {"Kula"}, ["tpi"] = {"Tok Pisin"}, ["tpj"] = {"Tapieté"}, ["tpk"] = {"Tupinikin"}, ["tpl"] = {"Me'phaa Tlacoapa", "Tlapanec Tlacoapa"}, ["tpm"] = {"Tampulma"}, ["tpn"] = {"Tupinambá"}, ["tpo"] = {"Tai Pao"}, ["tpp"] = {"Tepehua Pisaflores"}, ["tpq"] = {"Tukpa"}, ["tpr"] = {"Tuparí"}, ["tpt"] = {"Tepehua Tlachichilco"}, ["tpu"] = {"Tampuan"}, ["tpv"] = {"Tanapag"}, ["tpx"] = {"Me'phaa Acatepec", "Tlapanec Acatepec"}, ["tpy"] = {"Trumai"}, ["tpz"] = {"Tinputz"}, ["tqb"] = {"Tembé"}, ["tql"] = {"Lehali"}, ["tqm"] = {"Turumsa"}, ["tqn"] = {"Tenino"}, ["tqo"] = {"Toaripi"}, ["tqp"] = {"Tomoip"}, ["tqq"] = {"Tunni"}, ["tqr"] = {"Torona"}, ["tqt"] = {"Totonac Heear"}, ["tqu"] = {"Touo"}, ["tqw"] = {"Tonkawa"}, ["tra"] = {"Tirahi"}, ["trb"] = {"Terebu"}, ["trc"] = {"Copala Triqui"}, ["trd"] = {"Turi"}, ["tre"] = {"Tarangan Hiar"}, ["trf"] = {"Creeole Baarle Trinaidagh"}, ["trg"] = {"Lishán Didán"}, ["trh"] = {"Turaka"}, ["tri"] = {"Trió"}, ["trj"] = {"Toram"}, ["trk"] = {"çhengaghyn Turkagh"}, ["trl"] = {"Albinish Romanagh"}, ["trm"] = {"Tregami"}, ["trn"] = {"Trinitario"}, ["tro"] = {"Tarao Naga"}, ["trp"] = {"Kok Borok"}, ["trq"] = {"Triqui San Martín Itunyoso"}, ["trr"] = {"Taushiro"}, ["trs"] = {"Triqui Chicahuaxtla"}, ["trt"] = {"Tunggare"}, ["tru"] = {"Turoyo", "Surayt"}, ["trv"] = {"Sediq", "Seediq", "Taroko"}, ["trw"] = {"Torwali"}, ["trx"] = {"Bidayuh Tringgus-Sembaan"}, ["try"] = {"Turung"}, ["trz"] = {"Torá"}, ["tsa"] = {"Tsaangi"}, ["tsb"] = {"Tsamai"}, ["tsc"] = {"Tswa"}, ["tsd"] = {"Tsakonish"}, ["tse"] = {"Çhengey Chowree Hooneeshagh"}, ["tsg"] = {"Tausug"}, ["tsh"] = {"Tsuvan"}, ["tsi"] = {"Tsimshian"}, ["tsj"] = {"Tshangla"}, ["tsk"] = {"Tseku"}, ["tsl"] = {"Ts'ün-Lao"}, ["tsm"] = {"Çhengey Chowree Hurkagh", "Türk İşaret Dili"}, ["tsp"] = {"Tusya Hwoaie"}, ["tsq"] = {"Çhengey Chowree Thai"}, ["tsr"] = {"Akei"}, ["tss"] = {"Çhengey Chowree Haiwaanagh"}, ["tst"] = {"Tondi Songway Kiini"}, ["tsu"] = {"Tsou"}, ["tsv"] = {"Tsogo"}, ["tsw"] = {"Tsishingini"}, ["tsx"] = {"Mubami"}, ["tsy"] = {"Çhengey Chowree Tebul"}, ["tsz"] = {"Purepecha"}, ["tta"] = {"Tutelo"}, ["ttb"] = {"Gaa"}, ["ttc"] = {"Tektiteko"}, ["ttd"] = {"Tauade"}, ["tte"] = {"Bwanabwana"}, ["ttf"] = {"Tuotomb"}, ["ttg"] = {"Tutong"}, ["tth"] = {"Ta'oih Heose"}, ["tti"] = {"Tobati"}, ["ttj"] = {"Tooro"}, ["ttk"] = {"Totoro"}, ["ttl"] = {"Totela"}, ["ttm"] = {"Tutchone Hwoaie"}, ["ttn"] = {"Towei"}, ["tto"] = {"Ta'oih Injil"}, ["ttp"] = {"Tombelala"}, ["ttq"] = {"Tamajaq Tawallammat"}, ["ttr"] = {"Tera"}, ["tts"] = {"Thai Hiar Hwoaie"}, ["ttt"] = {"Tatish Voslymagh"}, ["ttu"] = {"Torau"}, ["ttv"] = {"Titan"}, ["ttw"] = {"Long Wat"}, ["tty"] = {"Sikaritai"}, ["ttz"] = {"Tsum"}, ["tua"] = {"Wiarumus"}, ["tub"] = {"Tübatulabal"}, ["tuc"] = {"Mutu"}, ["tud"] = {"Tuxá"}, ["tue"] = {"Tuyuca"}, ["tuf"] = {"Tunebo Veanagh"}, ["tug"] = {"Tunia"}, ["tuh"] = {"Taulil"}, ["tui"] = {"Tupuri"}, ["tuj"] = {"Tugutil"}, ["tul"] = {"Tula"}, ["tum"] = {"Tumbukish"}, ["tun"] = {"Tunica"}, ["tuo"] = {"Tucano"}, ["tup"] = {"çhengaghyn Tupi"}, ["tuq"] = {"Tedaga"}, ["tus"] = {"Tuscarora"}, ["tut"] = {"çhengaghyn Altaiagh"}, ["tuu"] = {"Tututni"}, ["tuv"] = {"Turkana"}, ["tuw"] = {"çhengaghyn Tungusagh"}, ["tux"] = {"Tuxináwa"}, ["tuy"] = {"Tugen"}, ["tuz"] = {"Turka"}, ["tva"] = {"Vaghua"}, ["tvd"] = {"Tsuvadi"}, ["tve"] = {"Te'un"}, ["tvi"] = {"Tulai"}, ["tvk"] = {"Ambrym Hiar Yiass"}, ["tvl"] = {"Tuvalu"}, ["tvm"] = {"Tela-Masbuar"}, ["tvn"] = {"Tavoyan"}, ["tvo"] = {"Tidore"}, ["tvs"] = {"Taveta"}, ["tvt"] = {"Naga Tutsa"}, ["tvu"] = {"Tunen"}, ["tvw"] = {"Sedoa"}, ["tvx"] = {"Taivoan"}, ["tvy"] = {"Timorish Vrisht"}, ["twa"] = {"Twana"}, ["twb"] = {"Tawbuid Heear"}, ["twc"] = {"Teshenawa"}, ["twd"] = {"Twents"}, ["twe"] = {"Tewa (yn Indoneesh)"}, ["twf"] = {"Tiwa Hwoaie"}, ["twg"] = {"Tereweng"}, ["twh"] = {"Tai Dón"}, ["twl"] = {"Tawara"}, ["twm"] = {"Tawang Monpa"}, ["twn"] = {"Twendi"}, ["two"] = {"Tswapong"}, ["twp"] = {"Ere"}, ["twq"] = {"Tasawaq"}, ["twr"] = {"Tarahumara Heear Yiass"}, ["twt"] = {"Turiwára"}, ["twu"] = {"Termanu"}, ["tww"] = {"Tuwari"}, ["twx"] = {"Tewe"}, ["twy"] = {"Tawoyan"}, ["txa"] = {"Tombonuo"}, ["txb"] = {"Tokharish B"}, ["txc"] = {"Tsetsaut"}, ["txe"] = {"Totoli"}, ["txg"] = {"Tangut"}, ["txh"] = {"Thrackish"}, ["txi"] = {"Ikpeng"}, ["txj"] = {"Tarjumo"}, ["txm"] = {"Tomini"}, ["txn"] = {"Tarangan Heear"}, ["txo"] = {"Toto"}, ["txq"] = {"Tii"}, ["txr"] = {"Tartessish"}, ["txs"] = {"Tonsea"}, ["txt"] = {"Citak"}, ["txu"] = {"Kayapó"}, ["txx"] = {"Tatana"}, ["txy"] = {"Malagasish Tanosy"}, ["tya"] = {"Tauya"}, ["tye"] = {"Kyanga"}, ["tyh"] = {"O'du"}, ["tyi"] = {"Teke-Tsaayi"}, ["tyj"] = {"Tai Do", "Tai Yo"}, ["tyl"] = {"Thu Lao"}, ["tyn"] = {"Kombai"}, ["typ"] = {"Thaypan"}, ["tyr"] = {"Tai Daeng"}, ["tys"] = {"Tày Sa Pa"}, ["tyt"] = {"Tày Tac"}, ["tyu"] = {"Kua"}, ["tyv"] = {"Tuvish"}, ["tyx"] = {"Teke-Tyee"}, ["tyy"] = {"Tiyaa"}, ["tyz"] = {"Tày"}, ["tza"] = {"Çhengey Chowree Tanzania"}, ["tzh"] = {"Tzeltal"}, ["tzj"] = {"Tz'utujil"}, ["tzl"] = {"Talossan"}, ["tzm"] = {"Tamazight Atlas Veanagh"}, ["tzn"] = {"Tugun"}, ["tzo"] = {"Tzotzil"}, ["tzx"] = {"Tabriak"}, ["uam"] = {"Uamué"}, ["uan"] = {"Kuan"}, ["uar"] = {"Tairuma"}, ["uba"] = {"Ubang"}, ["ubi"] = {"Ubi"}, ["ubl"] = {"Buhi'non Bikol"}, ["ubr"] = {"Ubir"}, ["ubu"] = {"Umbu-Ungu"}, ["uby"] = {"Ubykhish"}, ["uda"] = {"Uda"}, ["ude"] = {"Udihe"}, ["udg"] = {"Muduga"}, ["udi"] = {"Udi"}, ["udj"] = {"Ujir"}, ["udl"] = {"Wuzlam"}, ["udm"] = {"Udmurtish"}, ["udu"] = {"Uduk"}, ["ues"] = {"Kioko"}, ["ufi"] = {"Ufim"}, ["uga"] = {"Oogaritish"}, ["ugb"] = {"Kuku-Ugbanh"}, ["uge"] = {"Ughele"}, ["ugh"] = {"Kubachi"}, ["ugn"] = {"Çhengey Chowree Oogandagh"}, ["ugo"] = {"Ugong"}, ["ugy"] = {"Çhengey Chowree Ooraguayagh"}, ["uha"] = {"Uhami"}, ["uhn"] = {"Damal"}, ["uis"] = {"Uisai"}, ["uiv"] = {"Iyive"}, ["uji"] = {"Tanjijili"}, ["uka"] = {"Kaburi"}, ["ukg"] = {"Ukuriguma"}, ["ukh"] = {"Ukhwejo"}, ["uki"] = {"Kui (yn Injey)"}, ["ukk"] = {"Muak Sa-aak"}, ["ukl"] = {"Çhengey Chowree Ookraanagh"}, ["ukp"] = {"Ukpe-Bayobiri"}, ["ukq"] = {"Ukwa"}, ["uks"] = {"Çhengey Chowree Urubú-Kaapor", "Çhengey Chowree Kaapor"}, ["uku"] = {"Ukue"}, ["ukv"] = {"Kuku"}, ["ukw"] = {"Ukwuani-Aboh-Ndoni"}, ["uky"] = {"Kuuk-Yak"}, ["ula"] = {"Fungwa"}, ["ulb"] = {"Ulukwumi"}, ["ulc"] = {"Ulch"}, ["ule"] = {"Lule"}, ["ulf"] = {"Usku", "Afra"}, ["uli"] = {"Ulithish"}, ["ulk"] = {"Meriam Mir"}, ["ull"] = {"Ullatan"}, ["ulm"] = {"Ulumanda'"}, ["uln"] = {"Unserdeutsch"}, ["ulu"] = {"Uma' Lung"}, ["ulw"] = {"Ulwa"}, ["uly"] = {"Buli"}, ["uma"] = {"Umatilla"}, ["umb"] = {"Umbundu"}, ["umc"] = {"Marrucinish"}, ["umd"] = {"Umbindhamu"}, ["umg"] = {"Morrobalama", "Umbuygamu"}, ["umi"] = {"Ukit"}, ["umm"] = {"Umon"}, ["umn"] = {"Makyan Naga"}, ["umo"] = {"Umotína"}, ["ump"] = {"Umpila"}, ["umr"] = {"Umbugarla"}, ["ums"] = {"Pendau"}, ["umu"] = {"Munsee"}, ["una"] = {"Watut Hwoaie"}, ["und"] = {"Neuoolit"}, ["une"] = {"Uneme"}, ["ung"] = {"Ngarinyin"}, ["uni"] = {"Uni"}, ["unk"] = {"Enawené-Nawé"}, ["unm"] = {"Unami"}, ["unn"] = {"Kurnai"}, ["unr"] = {"Mundari"}, ["unu"] = {"Unubahe"}, ["unx"] = {"Munda"}, ["unz"] = {"Unde Kaili"}, ["uon"] = {"Kulon"}, ["upi"] = {"Umeda"}, ["upv"] = {"Uripiv-Wala-Rano-Atchin"}, ["ura"] = {"Urarina"}, ["urb"] = {"Urubú-Kaapor", "Kaapor"}, ["urc"] = {"Urningangg"}, ["ure"] = {"Uru"}, ["urf"] = {"Uradhi"}, ["urg"] = {"Urigina"}, ["urh"] = {"Urhobo"}, ["uri"] = {"Urim"}, ["urj"] = {"çhengaghyn Ooralagh"}, ["urk"] = {"Urak Lawoi'"}, ["url"] = {"Urali"}, ["urm"] = {"Urapmin"}, ["urn"] = {"Uruangnirin"}, ["uro"] = {"Ura (Papooey Guinea Noa)"}, ["urp"] = {"Uru-Pa-In"}, ["urr"] = {"Lehalurup", "Löyöp"}, ["urt"] = {"Urat"}, ["uru"] = {"Urumi"}, ["urv"] = {"Uruava"}, ["urw"] = {"Sop"}, ["urx"] = {"Urimo"}, ["ury"] = {"Orya"}, ["urz"] = {"Uru-Eu-Wau-Wau"}, ["usa"] = {"Usarufa"}, ["ush"] = {"Ushojo"}, ["usi"] = {"Usui"}, ["usk"] = {"Usaghade"}, ["usp"] = {"Uspanteco"}, ["uss"] = {"us-Saare"}, ["usu"] = {"Uya"}, ["uta"] = {"Otank"}, ["ute"] = {"Ute-Paiute Yiass"}, ["uth"] = {"ut-Hun"}, ["utp"] = {"Amba (Ellanyn Solomon)"}, ["utr"] = {"Etulo"}, ["utu"] = {"Utu"}, ["uum"] = {"Urum"}, ["uur"] = {"Ura (Vanuatu)"}, ["uuu"] = {"U"}, ["uve"] = {"Uveish Heear", "Fagauvea"}, ["uvh"] = {"Uri"}, ["uvl"] = {"Lote"}, ["uwa"] = {"Kuku-Uwanh"}, ["uya"] = {"Doko-Uyanga"}, ["uzn"] = {"Oosbeckish Hwoaie"}, ["uzs"] = {"Oosbeckish Yiass"}, ["vaa"] = {"Vaagri Booli"}, ["vae"] = {"Vale"}, ["vaf"] = {"Vafsi"}, ["vag"] = {"Vagla"}, ["vah"] = {"Varhadi-Nagpuri"}, ["vai"] = {"Vai"}, ["vaj"] = {"Sekele", "ǃKung Heear Hwoaie", "Vasekele"}, ["val"] = {"Vehes"}, ["vam"] = {"Vanimo"}, ["van"] = {"Valman"}, ["vao"] = {"Vao"}, ["vap"] = {"Vaiphei"}, ["var"] = {"Huarijio"}, ["vas"] = {"Vasavi"}, ["vau"] = {"Vanuma"}, ["vav"] = {"Varli"}, ["vay"] = {"Wayu"}, ["vbb"] = {"Babar Hiar Yiass"}, ["vbk"] = {"Bontok Heear Yiass"}, ["vec"] = {"Veneeshish"}, ["ved"] = {"Veddah"}, ["vel"] = {"Veluws"}, ["vem"] = {"Vemgo-Mabas"}, ["veo"] = {"Ventureño"}, ["vep"] = {"Vepsish"}, ["ver"] = {"Mom Jango"}, ["vgr"] = {"Vaghri"}, ["vgt"] = {"Vlaamse Gebarentaal", "Çhengey Chowree Landrynagh"}, ["vic"] = {"Creeole Baarle Ellanyn y Voidyn"}, ["vid"] = {"Vidunda"}, ["vif"] = {"Vili"}, ["vig"] = {"Viemo"}, ["vil"] = {"Vilela"}, ["vin"] = {"Vinza"}, ["vis"] = {"Vishavan"}, ["vit"] = {"Viti"}, ["viv"] = {"Iduna"}, ["vjk"] = {"Bajjika"}, ["vka"] = {"Kariyarra"}, ["vkj"] = {"Kujarge"}, ["vkk"] = {"Kaur"}, ["vkl"] = {"Kulisusu"}, ["vkm"] = {"Kamakan"}, ["vkn"] = {"Koro Nulu"}, ["vko"] = {"Kodeoha"}, ["vkp"] = {"Creeole Portiugish Korlai"}, ["vkt"] = {"Malayish Tenggarong Kutai"}, ["vku"] = {"Kurrama"}, ["vkz"] = {"Koro Zuba"}, ["vlp"] = {"Valpei"}, ["vls"] = {"Vlaams"}, ["vma"] = {"Martuyhunira"}, ["vmb"] = {"Barbaram"}, ["vmc"] = {"Mixtecish Juxtlahuaca"}, ["vmd"] = {"Mudu Koraga"}, ["vme"] = {"Masela Hiar"}, ["vmf"] = {"Mainfränkisch"}, ["vmg"] = {"Lungalunga"}, ["vmh"] = {"Maraghei"}, ["vmi"] = {"Miwa"}, ["vmj"] = {"Mixtecish Ixtayutla"}, ["vmk"] = {"Makhuwa-Shirima"}, ["vml"] = {"Malgana"}, ["vmm"] = {"Mixtecish Mitlatongo"}, ["vmp"] = {"Mazatec Soyaltepec"}, ["vmq"] = {"Mixtecish Soyaltepec"}, ["vmr"] = {"Marenje"}, ["vms"] = {"Moksela"}, ["vmu"] = {"Muluridyi"}, ["vmv"] = {"Maidu Ghlionney"}, ["vmw"] = {"Makhuwa"}, ["vmx"] = {"Mixtecish Tamazola"}, ["vmy"] = {"Mazatec Ayautla"}, ["vmz"] = {"Mazatec Mazatlán"}, ["vnk"] = {"Vano", "Lovono"}, ["vnm"] = {"Vinmavis", "Neve'ei"}, ["vnp"] = {"Vunapu"}, ["vor"] = {"Voroish"}, ["vot"] = {"Votish"}, ["vra"] = {"Vera'a"}, ["vro"] = {"Võro"}, ["vrs"] = {"Varisi"}, ["vrt"] = {"Burmbar", "Banam Bay"}, ["vsi"] = {"Çhengey Chowree Voldovagh"}, ["vsl"] = {"Çhengey Chowree Veneswaalagh"}, ["vsv"] = {"Çhengey Chowree Valensianagh", "Llengua de signes valenciana"}, ["vto"] = {"Vitou"}, ["vum"] = {"Vumbu"}, ["vun"] = {"Vunjo"}, ["vut"] = {"Vute"}, ["vwa"] = {"Awa (y Çheen)"}, ["waa"] = {"Walla Walla"}, ["wab"] = {"Wab"}, ["wac"] = {"Wasco-Wishram"}, ["wad"] = {"Wamesa", "Wondama"}, ["wae"] = {"Walser"}, ["waf"] = {"Wakoná"}, ["wag"] = {"Wa'ema"}, ["wah"] = {"Watubela"}, ["wai"] = {"Wares"}, ["waj"] = {"Waffa"}, ["wak"] = {"çhengaghyn Wakashagh"}, ["wal"] = {"Wolaytta", "Wolaitta"}, ["wam"] = {"Wampanoag"}, ["wan"] = {"Wan"}, ["wao"] = {"Wappo"}, ["wap"] = {"Wapishana"}, ["waq"] = {"Wagiman"}, ["war"] = {"Waray (ny h-Ellanyn Philippeenagh)"}, ["was"] = {"Washo"}, ["wat"] = {"Kaninuwa"}, ["wau"] = {"Waurá"}, ["wav"] = {"Waka"}, ["waw"] = {"Waiwai"}, ["wax"] = {"Watam", "Marangis"}, ["way"] = {"Wayana"}, ["waz"] = {"Wampur"}, ["wba"] = {"Warao"}, ["wbb"] = {"Wabo"}, ["wbe"] = {"Waritai"}, ["wbf"] = {"Wara"}, ["wbh"] = {"Wanda"}, ["wbi"] = {"Vwanji"}, ["wbj"] = {"Alagwa"}, ["wbk"] = {"Waigali"}, ["wbl"] = {"Wakhi"}, ["wbm"] = {"Wa"}, ["wbp"] = {"Warlpiri"}, ["wbq"] = {"Waddar"}, ["wbr"] = {"Wagdi"}, ["wbs"] = {"Çhengey Chowree y Vengaal Heear"}, ["wbt"] = {"Warnman"}, ["wbv"] = {"Wajarri"}, ["wbw"] = {"Woi"}, ["wca"] = {"Yanomámi"}, ["wci"] = {"Waci Gbe"}, ["wdd"] = {"Wandji"}, ["wdg"] = {"Wadaginam"}, ["wdj"] = {"Wadjiginy"}, ["wdk"] = {"Wadikali"}, ["wdt"] = {"Wendat"}, ["wdu"] = {"Wadjigu"}, ["wdy"] = {"Wadjabangayi"}, ["wea"] = {"Wewaw"}, ["wec"] = {"Wè Heear"}, ["wed"] = {"Wedau"}, ["weg"] = {"Wergaia"}, ["weh"] = {"Weh"}, ["wei"] = {"Kiunum"}, ["wem"] = {"Weme Gbe"}, ["wen"] = {"çhengaghyn Sorbagh"}, ["weo"] = {"Wemale"}, ["wep"] = {"Westphalien"}, ["wer"] = {"Weri"}, ["wes"] = {"Cameroonish Vrisht"}, ["wet"] = {"Perai"}, ["weu"] = {"Rawngtu Chin"}, ["wew"] = {"Wejewa"}, ["wfg"] = {"Yafi", "Zorop"}, ["wga"] = {"Wagaya"}, ["wgb"] = {"Wagawaga"}, ["wgg"] = {"Wangkangurru", "Wangganguru"}, ["wgi"] = {"Wahgi"}, ["wgo"] = {"Waigeo"}, ["wgu"] = {"Wirangu"}, ["wgy"] = {"Warrgamay"}, ["wha"] = {"Sou Upaa", "Manusela"}, ["whg"] = {"Wahgi Hwoaie"}, ["whk"] = {"Wahau Kenyah"}, ["whu"] = {"Wahau Kayan"}, ["wib"] = {"Tusya Yiass"}, ["wic"] = {"Wichita"}, ["wie"] = {"Wik-Epa"}, ["wif"] = {"Wik-Keyangan"}, ["wig"] = {"Wik Ngathan"}, ["wih"] = {"Wik-Me'anha"}, ["wii"] = {"Minidien"}, ["wij"] = {"Wik-Iiyanh"}, ["wik"] = {"Wikalkan"}, ["wil"] = {"Wilawila"}, ["wim"] = {"Wik-Mungkan"}, ["win"] = {"Ho-Chunk"}, ["wir"] = {"Wiraféd"}, ["wiu"] = {"Wiru"}, ["wiv"] = {"Vitu"}, ["wiy"] = {"Wiyot"}, ["wja"] = {"Waja"}, ["wji"] = {"Warji"}, ["wka"] = {"Kw'adza"}, ["wkb"] = {"Kumbaran"}, ["wkd"] = {"Wakde", "Mo"}, ["wkl"] = {"Kalanadi"}, ["wkr"] = {"Keerray-Woorroong"}, ["wku"] = {"Kunduvadi"}, ["wkw"] = {"Wakawaka"}, ["wky"] = {"Wangkayutyuru"}, ["wla"] = {"Walio"}, ["wlc"] = {"Comoroish Mwali"}, ["wle"] = {"Wolane"}, ["wlg"] = {"Kunbarlang"}, ["wlh"] = {"Welaun"}, ["wli"] = {"Waioli"}, ["wlk"] = {"Wailaki"}, ["wll"] = {"Wali (y Toodaan)"}, ["wlm"] = {"Bretnish Veanagh"}, ["wlo"] = {"Wolio"}, ["wlr"] = {"Wailapa"}, ["wls"] = {"Wallisish"}, ["wlu"] = {"Wuliwuli"}, ["wlv"] = {"Wichí Lhamtés Vejoz"}, ["wlw"] = {"Walak"}, ["wlx"] = {"Wali (y Ghaney)"}, ["wly"] = {"Waling"}, ["wma"] = {"Mawa (y Naigeer)"}, ["wmb"] = {"Wambaya"}, ["wmc"] = {"Wamas"}, ["wmd"] = {"Mamaindé"}, ["wme"] = {"Wambule"}, ["wmg"] = {"Minyag Heear"}, ["wmh"] = {"Waima'a"}, ["wmi"] = {"Wamin"}, ["wmm"] = {"Maiwa (yn Indoneesh)"}, ["wmn"] = {"Waamwang"}, ["wmo"] = {"Wom (Papooey Guinea Noa)"}, ["wms"] = {"Wambon"}, ["wmt"] = {"Walmajarri"}, ["wmw"] = {"Mwani"}, ["wmx"] = {"Womo"}, ["wnb"] = {"Mokati"}, ["wnc"] = {"Wantoat"}, ["wnd"] = {"Wandarang"}, ["wne"] = {"Waneci"}, ["wng"] = {"Wanggom"}, ["wni"] = {"Comoroish Ndzwani"}, ["wnk"] = {"Wanukaka"}, ["wnm"] = {"Wanggamala"}, ["wnn"] = {"Wunumara"}, ["wno"] = {"Wano"}, ["wnp"] = {"Wanap"}, ["wnu"] = {"Usan"}, ["wnw"] = {"Wintu"}, ["wny"] = {"Wanyi", "Waanyi"}, ["woa"] = {"Kuwema", "Tyaraity"}, ["wob"] = {"Wè Hwoaie"}, ["woc"] = {"Wogeo"}, ["wod"] = {"Wolani"}, ["woe"] = {"Woleaish"}, ["wof"] = {"Wolofish Ghambiagh"}, ["wog"] = {"Wogamusin"}, ["woi"] = {"Kamang"}, ["wok"] = {"Longto"}, ["wom"] = {"Wom (y Naigeer)"}, ["won"] = {"Wongo"}, ["woo"] = {"Manombai"}, ["wor"] = {"Woria"}, ["wos"] = {"Hundish Hanga"}, ["wow"] = {"Wawonii"}, ["woy"] = {"Weyto"}, ["wpc"] = {"Maco"}, ["wrb"] = {"Waluwarra", "Warluwara"}, ["wrg"] = {"Warungu", "Gudjal"}, ["wrh"] = {"Wiradjuri"}, ["wri"] = {"Wariyangga"}, ["wrk"] = {"Garrwa"}, ["wrl"] = {"Warlmanpa"}, ["wrm"] = {"Warumungu"}, ["wrn"] = {"Warnang"}, ["wro"] = {"Worrorra"}, ["wrp"] = {"Waropen"}, ["wrr"] = {"Wardaman"}, ["wrs"] = {"Waris"}, ["wru"] = {"Waru"}, ["wrv"] = {"Waruna"}, ["wrw"] = {"Gugu Warra"}, ["wrx"] = {"Wae Rana"}, ["wry"] = {"Merwari"}, ["wrz"] = {"Waray (yn Austrail)"}, ["wsa"] = {"Warembori"}, ["wsg"] = {"Adilabad Gondi"}, ["wsi"] = {"Wusi"}, ["wsk"] = {"Waskia"}, ["wsr"] = {"Owenia"}, ["wss"] = {"Wasa"}, ["wsu"] = {"Wasu"}, ["wsv"] = {"Wotapuri-Katarqalai"}, ["wtb"] = {"Matambwe"}, ["wtf"] = {"Watiwa"}, ["wth"] = {"Wathawurrung"}, ["wti"] = {"Berta"}, ["wtk"] = {"Watakataui"}, ["wtm"] = {"Mewati"}, ["wtw"] = {"Wotu"}, ["wua"] = {"Wikngenchera"}, ["wub"] = {"Wunambal"}, ["wud"] = {"Wudu"}, ["wuh"] = {"Wutunhua"}, ["wul"] = {"Silimo"}, ["wum"] = {"Wumbvu"}, ["wun"] = {"Bungu"}, ["wur"] = {"Wurrugu"}, ["wut"] = {"Wutung"}, ["wuu"] = {"Sheenish Wu"}, ["wuv"] = {"Wuvulu-Aua"}, ["wux"] = {"Wulna"}, ["wuy"] = {"Wauyai"}, ["wwa"] = {"Waama"}, ["wwb"] = {"Wakabunga"}, ["wwo"] = {"Wetamut", "Dorig"}, ["wwr"] = {"Warrwa"}, ["www"] = {"Wawa"}, ["wxa"] = {"Waxianghua"}, ["wxw"] = {"Wardandi"}, ["wyb"] = {"Wangaaybuwan-Ngiyambaa"}, ["wyi"] = {"Woiwurrung"}, ["wym"] = {"Wymysorys"}, ["wyn"] = {"Wyandot"}, ["wyr"] = {"Wayoró"}, ["wyy"] = {"Fijish Heear"}, ["xaa"] = {"Arabish Andaloosagh"}, ["xab"] = {"Sambe"}, ["xac"] = {"Kachari"}, ["xad"] = {"Adai"}, ["xae"] = {"Aequish"}, ["xag"] = {"Aghwan"}, ["xai"] = {"Kaimbé"}, ["xaj"] = {"Ararandewára"}, ["xak"] = {"Máku"}, ["xal"] = {"Kalmykish", "Oiratish"}, ["xam"] = {"ǀXam"}, ["xan"] = {"Xamtanga"}, ["xao"] = {"Khao"}, ["xap"] = {"Apalaçheeish"}, ["xaq"] = {"Ackitaanish"}, ["xar"] = {"Karami"}, ["xas"] = {"Kamas"}, ["xat"] = {"Katawixi"}, ["xau"] = {"Kauwera"}, ["xav"] = {"Xavánte"}, ["xaw"] = {"Kawaiisu"}, ["xay"] = {"Kayan Mahakam"}, ["xbb"] = {"Burdekin Injil"}, ["xbc"] = {"Bactrish"}, ["xbd"] = {"Bindal"}, ["xbe"] = {"Bigambal"}, ["xbg"] = {"Bunganditj"}, ["xbi"] = {"Kombio"}, ["xbj"] = {"Birrpayi"}, ["xbm"] = {"Britaanish Veanagh"}, ["xbn"] = {"Kenaboi"}, ["xbo"] = {"Bolgarish"}, ["xbp"] = {"Bibbulman"}, ["xbr"] = {"Kambera"}, ["xbw"] = {"Kambiwá"}, ["xby"] = {"Batjala", "Batyala"}, ["xcb"] = {"Cumbrish"}, ["xcc"] = {"Camunish"}, ["xce"] = {"Celtibeirish"}, ["xcg"] = {"Goalish Chisalpagh"}, ["xch"] = {"Chemakum", "Chimakum"}, ["xcl"] = {"Armeanish Chlassicagh"}, ["xcm"] = {"Comecrudo"}, ["xcn"] = {"Cotoname"}, ["xco"] = {"Chorasmish"}, ["xcr"] = {"Carian"}, ["xct"] = {"Tibetish Chlassicagh"}, ["xcu"] = {"Curonish"}, ["xcv"] = {"Chuvantsy"}, ["xcw"] = {"Coahuilteco"}, ["xcy"] = {"Cayuse"}, ["xda"] = {"Darkinyung"}, ["xdc"] = {"Dackish"}, ["xdk"] = {"Dharuk"}, ["xdm"] = {"Edomish"}, ["xdo"] = {"Kwandu"}, ["xdq"] = {"Kaitag"}, ["xdy"] = {"Dayak Valayagh"}, ["xeb"] = {"Eblan"}, ["xed"] = {"Hdi"}, ["xeg"] = {"ǁXegwi"}, ["xel"] = {"Kelo"}, ["xem"] = {"Kembayan"}, ["xep"] = {"Epi-Olmec"}, ["xer"] = {"Xerénte"}, ["xes"] = {"Kesawai"}, ["xet"] = {"Xetá"}, ["xeu"] = {"Keoru-Ahia"}, ["xfa"] = {"Faliscish"}, ["xga"] = {"Galaatish"}, ["xgb"] = {"Gbin"}, ["xgd"] = {"Gudang"}, ["xgf"] = {"Gabrielino-Fernandeño"}, ["xgg"] = {"Goreng"}, ["xgi"] = {"Garingbal"}, ["xgl"] = {"Galindan"}, ["xgm"] = {"Dharumbal", "Guwinmal"}, ["xgn"] = {"çhengaghyn Mongoilagh"}, ["xgr"] = {"Garza"}, ["xgu"] = {"Unggumi"}, ["xgw"] = {"Guwa"}, ["xha"] = {"Haramish"}, ["xhc"] = {"Hunnish"}, ["xhd"] = {"Hadrami"}, ["xhe"] = {"Khetrani"}, ["xhm"] = {"Khmerish Veanagh (1400 derrey 1850 BNJ)"}, ["xhr"] = {"Hernicish"}, ["xht"] = {"Hattish"}, ["xhu"] = {"Hurrish"}, ["xhv"] = {"Khua"}, ["xib"] = {"Ibeirish"}, ["xii"] = {"Xiri"}, ["xil"] = {"Illyrish"}, ["xin"] = {"Xinca"}, ["xir"] = {"Xiriâna"}, ["xis"] = {"Kisan"}, ["xiv"] = {"Çhengey Ghlion yn Indus"}, ["xiy"] = {"Xipaya"}, ["xjb"] = {"Minjungbal"}, ["xjt"] = {"Jaitmatang"}, ["xka"] = {"Kalkoti"}, ["xkb"] = {"Nago Hwoaie"}, ["xkc"] = {"Kho'ini"}, ["xkd"] = {"Kayan Mendalam"}, ["xke"] = {"Kereho"}, ["xkf"] = {"Khengkha"}, ["xkg"] = {"Kagoro"}, ["xki"] = {"Çhengey Chowree Cheinnagh"}, ["xkj"] = {"Kajali"}, ["xkk"] = {"Kachok", "Kaco'"}, ["xkl"] = {"Kenyah Chadjin"}, ["xkn"] = {"Kayan yn Awin Kayan"}, ["xko"] = {"Kiorr"}, ["xkp"] = {"Kabatei"}, ["xkq"] = {"Koroni"}, ["xkr"] = {"Xakriabá"}, ["xks"] = {"Kumbewaha"}, ["xkt"] = {"Kantosi"}, ["xku"] = {"Kaamba"}, ["xkv"] = {"Kgalagadi"}, ["xkw"] = {"Kembra"}, ["xkx"] = {"Karore"}, ["xky"] = {"Uma' Lasan"}, ["xkz"] = {"Kurtokha"}, ["xla"] = {"Kamula"}, ["xlb"] = {"Loup B"}, ["xlc"] = {"Lyckish"}, ["xld"] = {"Lydish"}, ["xle"] = {"Lemnish"}, ["xlg"] = {"Ligoorish (Henndeeagh)"}, ["xli"] = {"Liburnish"}, ["xln"] = {"Alanish"}, ["xlo"] = {"Loup A"}, ["xlp"] = {"Lepontish"}, ["xls"] = {"Lusitaanish"}, ["xlu"] = {"Luwish Yeenysagh"}, ["xly"] = {"Elymish"}, ["xma"] = {"Mushungulu"}, ["xmb"] = {"Mbonga"}, ["xmc"] = {"Makhuwa-Marrevone"}, ["xmd"] = {"Mbudum"}, ["xme"] = {"Medish"}, ["xmf"] = {"Mingrelish"}, ["xmg"] = {"Mengaka"}, ["xmh"] = {"Kugu-Muminh"}, ["xmj"] = {"Majera"}, ["xmk"] = {"Massadoanish Henndeeagh"}, ["xml"] = {"Çhengey Chowree Valaysiagh"}, ["xmm"] = {"Malayish Manado"}, ["xmn"] = {"Pershish Veanagh Vanichaeagh"}, ["xmo"] = {"Morerebi"}, ["xmp"] = {"Kuku-Mu'inh"}, ["xmq"] = {"Kuku-Mangk"}, ["xmr"] = {"Meroitish"}, ["xms"] = {"Çhengey Chowree Varocagh"}, ["xmt"] = {"Matbat"}, ["xmu"] = {"Kamu"}, ["xmv"] = {"Malagasish Antankarana", "Malagasish Tankarana"}, ["xmw"] = {"Malagasish Tsimihety"}, ["xmx"] = {"Salawati", "Maden"}, ["xmy"] = {"Mayaguduna"}, ["xmz"] = {"Mori Bawah"}, ["xna"] = {"Arabish Hwoaie Henndeeagh"}, ["xnb"] = {"Kanakanabu"}, ["xnd"] = {"çhengaghyn Na-Dene"}, ["xng"] = {"Mongoilish Veanagh"}, ["xnh"] = {"Kuanhua"}, ["xni"] = {"Ngarigu"}, ["xnj"] = {"Ngoni (Tanzania)"}, ["xnk"] = {"Nganakarti"}, ["xnm"] = {"Ngumbarl"}, ["xnn"] = {"Kankanay Hwoaie"}, ["xno"] = {"Anglo-Normanish"}, ["xnq"] = {"Ngoni (y Vosambeeck)"}, ["xnr"] = {"Kangri"}, ["xns"] = {"Kanashi"}, ["xnt"] = {"Narragansett"}, ["xnu"] = {"Nukunul"}, ["xny"] = {"Nyiyaparli"}, ["xnz"] = {"Kenzi", "Mattoki"}, ["xoc"] = {"O'chi'chi'"}, ["xod"] = {"Kokoda"}, ["xog"] = {"Soga"}, ["xoi"] = {"Kominimung"}, ["xok"] = {"Xokleng"}, ["xom"] = {"Komo (y Toodaan)"}, ["xon"] = {"Konkomba"}, ["xoo"] = {"Xukurú"}, ["xop"] = {"Kopar"}, ["xor"] = {"Korubo"}, ["xow"] = {"Kowaki"}, ["xpa"] = {"Pirriya"}, ["xpb"] = {"Tasmanian Hiar Hwoaie", "Pyemmairrener"}, ["xpc"] = {"Pecheneg"}, ["xpd"] = {"Tasmaanish Oyster Bay"}, ["xpe"] = {"Kpelle yn Laibeer"}, ["xpf"] = {"Tasmaanish Hiar Yiass", "Nuenonne"}, ["xpg"] = {"Phrygish"}, ["xph"] = {"Tasmaanish Vean-çheerey Hwoaie", "Tyerrenoterpanner"}, ["xpi"] = {"Pictish"}, ["xpj"] = {"Mpalitjanh"}, ["xpk"] = {"Kulina Pano"}, ["xpl"] = {"Tasmaanish Port Sorell"}, ["xpm"] = {"Pumpokol"}, ["xpn"] = {"Kapinawá"}, ["xpo"] = {"Pochutec"}, ["xpp"] = {"Puyo-Paekche"}, ["xpq"] = {"Moheganish-Pequot"}, ["xpr"] = {"Parthish"}, ["xps"] = {"Pisidish"}, ["xpt"] = {"Punthamara"}, ["xpu"] = {"Punish"}, ["xpv"] = {"Tasmaanish Hwoaie", "Tommeginne"}, ["xpw"] = {"Tasmaanish Heear Hwoaie", "Peerapper"}, ["xpx"] = {"Tasmaanish Heear Yiass", "Toogee"}, ["xpy"] = {"Puyo"}, ["xpz"] = {"Tasmaanish Ellan Bruny"}, ["xqa"] = {"Karakhanid"}, ["xqt"] = {"Qatabanian"}, ["xra"] = {"Krahô"}, ["xrb"] = {"Karaboro Hiar"}, ["xrd"] = {"Gundungurra"}, ["xre"] = {"Kreye"}, ["xrg"] = {"Minang"}, ["xri"] = {"Krikati-Timbira"}, ["xrm"] = {"Armazish"}, ["xrn"] = {"Arin"}, ["xrr"] = {"Raetish"}, ["xrt"] = {"Aranama-Tamique"}, ["xru"] = {"Marriammu"}, ["xrw"] = {"Karawa"}, ["xsa"] = {"Sabaean"}, ["xsb"] = {"Sambal"}, ["xsc"] = {"Scythish"}, ["xsd"] = {"Sidetish"}, ["xse"] = {"Sempan"}, ["xsh"] = {"Shamang"}, ["xsi"] = {"Sio"}, ["xsj"] = {"Subi"}, ["xsl"] = {"Slavish Yiass"}, ["xsm"] = {"Kasem"}, ["xsn"] = {"Sanga (y Naigeer)"}, ["xso"] = {"Solano"}, ["xsp"] = {"Silopi"}, ["xsq"] = {"Makhuwa-Saka"}, ["xsr"] = {"Sherpa"}, ["xsu"] = {"Sanumá"}, ["xsv"] = {"Sudovish"}, ["xsy"] = {"Saisiyat"}, ["xta"] = {"Mixtecish Alcozauca"}, ["xtb"] = {"Mixtecish Chazumba"}, ["xtc"] = {"Katcha-Kadugli-Miri"}, ["xtd"] = {"Mixtecish Diuxi-Tilantongo"}, ["xte"] = {"Ketengban"}, ["xtg"] = {"Goalish Hessenalpagh"}, ["xth"] = {"Yitha Yitha"}, ["xti"] = {"Mixtecish Sinicahua"}, ["xtj"] = {"Mixtecish San Juan Teita"}, ["xtl"] = {"Mixtecish Tijaltepec"}, ["xtm"] = {"Mixtecish Magdalena Peñasco"}, ["xtn"] = {"Mixtecish Tlaxiaco Hwoaie"}, ["xto"] = {"Tokharish A"}, ["xtp"] = {"Mixtecish San Miguel Piedras"}, ["xtq"] = {"Tumshuqese"}, ["xtr"] = {"Tripoorish Leah"}, ["xts"] = {"Mixtecish Sindihui"}, ["xtt"] = {"Mixtecish Tacahua"}, ["xtu"] = {"Mixtecish Cuyamecalco"}, ["xtv"] = {"Thawa"}, ["xtw"] = {"Tawandê"}, ["xty"] = {"Mixtecish Yoloxochitl"}, ["xua"] = {"Alu Kurumba"}, ["xub"] = {"Betta Kurumba"}, ["xud"] = {"Umiida"}, ["xug"] = {"Kunigami"}, ["xuj"] = {"Jennu Kurumba"}, ["xul"] = {"Ngunawal", "Nunukul"}, ["xum"] = {"Umbrish"}, ["xun"] = {"Unggaranggu"}, ["xuo"] = {"Kuo"}, ["xup"] = {"Umpqua Heose"}, ["xur"] = {"Urartish"}, ["xut"] = {"Kuthant"}, ["xuu"] = {"Kxoe", "Khwedam"}, ["xve"] = {"Venetish"}, ["xvi"] = {"Kamviri"}, ["xvn"] = {"Vandalish"}, ["xvo"] = {"Volscish"}, ["xvs"] = {"Vestinish"}, ["xwa"] = {"Kwaza"}, ["xwc"] = {"Woccon"}, ["xwd"] = {"Wadi Wadi"}, ["xwe"] = {"Xwela Gbe"}, ["xwg"] = {"Kwegu"}, ["xwj"] = {"Wajuk"}, ["xwk"] = {"Wangkumara"}, ["xwl"] = {"Xwla Gbe Heear"}, ["xwo"] = {"Oiratish Screeuit"}, ["xwr"] = {"Kwerba Mamberamo"}, ["xwt"] = {"Wotjobaluk"}, ["xww"] = {"Wemba Wemba"}, ["xxb"] = {"Boro (y Ghaney)"}, ["xxk"] = {"Ke'o"}, ["xxm"] = {"Minkin"}, ["xxr"] = {"Koropó"}, ["xxt"] = {"Tambora"}, ["xya"] = {"Yaygir"}, ["xyb"] = {"Yandjibara"}, ["xyj"] = {"Mayi-Yapi"}, ["xyk"] = {"Mayi-Kulan"}, ["xyl"] = {"Yalakalore"}, ["xyt"] = {"Mayi-Thakurti"}, ["xyy"] = {"Yorta Yorta"}, ["xzh"] = {"Zhang-Zhung"}, ["xzm"] = {"Zemgalish"}, ["xzp"] = {"Zapotecish Henndeeagh"}, ["yaa"] = {"Yaminahua"}, ["yab"] = {"Yuhup"}, ["yac"] = {"Yali Pass Valley"}, ["yad"] = {"Yagua"}, ["yae"] = {"Pumé"}, ["yaf"] = {"Yaka (Pobblaght Gheynlagh y Chongo)"}, ["yag"] = {"Yámana"}, ["yah"] = {"Yazgulyam"}, ["yai"] = {"Yagnobi"}, ["yaj"] = {"Banda-Yangere"}, ["yak"] = {"Yakama"}, ["yal"] = {"Yalunka"}, ["yam"] = {"Yamba"}, ["yan"] = {"Mayangna"}, ["yao"] = {"Yao"}, ["yap"] = {"Yapish"}, ["yaq"] = {"Yaqui"}, ["yar"] = {"Yabarana"}, ["yas"] = {"Nugunu (Cameroon)"}, ["yat"] = {"Yambeta"}, ["yau"] = {"Yuwana"}, ["yav"] = {"Yangben"}, ["yaw"] = {"Yawalapití"}, ["yax"] = {"Yauma"}, ["yay"] = {"Agwagwune"}, ["yaz"] = {"Lokaa"}, ["yba"] = {"Yala"}, ["ybb"] = {"Yemba"}, ["ybe"] = {"Yugur Heear"}, ["ybh"] = {"Yakha"}, ["ybi"] = {"Yamphu"}, ["ybj"] = {"Hasha"}, ["ybk"] = {"Bokha"}, ["ybl"] = {"Yukuben"}, ["ybm"] = {"Yaben"}, ["ybn"] = {"Yabaâna"}, ["ybo"] = {"Yabong"}, ["ybx"] = {"Yawiyo"}, ["yby"] = {"Yaweyuha"}, ["ych"] = {"Chesu"}, ["ycl"] = {"Lolopo"}, ["ycn"] = {"Yucuna"}, ["ycp"] = {"Chepya"}, ["ycr"] = {"Creeole Yilan"}, ["yda"] = {"Yanda"}, ["ydd"] = {"Ewdish Hiar"}, ["yde"] = {"Yangum Dey"}, ["ydg"] = {"Yidgha"}, ["ydk"] = {"Yoidik"}, ["yea"] = {"Ravula"}, ["yec"] = {"Yeniche"}, ["yee"] = {"Yimas"}, ["yei"] = {"Yeni"}, ["yej"] = {"Yevanish"}, ["yel"] = {"Yela"}, ["yer"] = {"Tarok"}, ["yes"] = {"Nyankpa"}, ["yet"] = {"Yetfa"}, ["yeu"] = {"Yerukula"}, ["yev"] = {"Yapunda"}, ["yey"] = {"Yeyi"}, ["yga"] = {"Malyangapa"}, ["ygi"] = {"Yiningayi"}, ["ygl"] = {"Yangum Gel"}, ["ygm"] = {"Yagomi"}, ["ygp"] = {"Gepo"}, ["ygr"] = {"Yagaria"}, ["ygs"] = {"Çhengey Chowree Yolŋu"}, ["ygu"] = {"Yugul"}, ["ygw"] = {"Yagwoia"}, ["yha"] = {"Baha Buyang"}, ["yhd"] = {"Arabish Earackagh Ewagh"}, ["yhl"] = {"Hlepho Phowa"}, ["yhs"] = {"Çhengey Chowree Yan-nhaŋu"}, ["yia"] = {"Yinggarda"}, ["yif"] = {"Ache"}, ["yig"] = {"Wusa Nasu"}, ["yih"] = {"Ewdish Heear"}, ["yii"] = {"Yidiny"}, ["yij"] = {"Yindjibarndi"}, ["yik"] = {"Dongshanba Lalo"}, ["yil"] = {"Yindjilandji"}, ["yim"] = {"Naga Yimchungru"}, ["yin"] = {"Riang Lai", "Yinchia"}, ["yip"] = {"Pholo"}, ["yiq"] = {"Miqie"}, ["yir"] = {"Awyu Hwoaie"}, ["yis"] = {"Yis"}, ["yit"] = {"Lalu Hiar"}, ["yiu"] = {"Awu"}, ["yiv"] = {"Nisu Hwoaie"}, ["yix"] = {"Axi Yi"}, ["yiz"] = {"Azhe"}, ["yka"] = {"Yakan"}, ["ykg"] = {"Yukaghirish Hwoaie"}, ["ykh"] = {"Mongoilish Khamnigan"}, ["yki"] = {"Yoke"}, ["ykk"] = {"Yakaikeke"}, ["ykl"] = {"Khlula"}, ["ykm"] = {"Kap"}, ["ykn"] = {"Kua-nsi"}, ["yko"] = {"Yasa"}, ["ykr"] = {"Yekora"}, ["ykt"] = {"Kathu"}, ["yku"] = {"Kuamasi"}, ["yky"] = {"Yakoma"}, ["yla"] = {"Yaul"}, ["ylb"] = {"Yaleba"}, ["yle"] = {"Yele"}, ["ylg"] = {"Yelogu"}, ["yli"] = {"Yali Angguruk"}, ["yll"] = {"Yil"}, ["ylm"] = {"Limi"}, ["yln"] = {"Langnian Buyang"}, ["ylo"] = {"Naluo Yi"}, ["ylr"] = {"Yalarnnga"}, ["ylu"] = {"Aribwaung"}, ["yly"] = {"Nyâlayu", "Nyelâyu"}, ["ymb"] = {"Yambes"}, ["ymc"] = {"Muji Yiass"}, ["ymd"] = {"Muda"}, ["yme"] = {"Yameo"}, ["ymg"] = {"Yamongeri"}, ["ymh"] = {"Mili"}, ["ymi"] = {"Moji"}, ["ymk"] = {"Makwe"}, ["yml"] = {"Iamalele"}, ["ymm"] = {"Maay"}, ["ymn"] = {"Yamna", "Sunum"}, ["ymo"] = {"Yangum Mon"}, ["ymp"] = {"Yamap"}, ["ymq"] = {"Qila Muji"}, ["ymr"] = {"Malasar"}, ["yms"] = {"Mysish"}, ["ymx"] = {"Muji Hwoaie"}, ["ymz"] = {"Muzi"}, ["yna"] = {"Aluo"}, ["ynd"] = {"Yandruwandha"}, ["yne"] = {"Lang'e"}, ["yng"] = {"Yango"}, ["ynk"] = {"Yupikish Naukan"}, ["ynl"] = {"Yangulam"}, ["ynn"] = {"Yana"}, ["yno"] = {"Yong"}, ["ynq"] = {"Yendang"}, ["yns"] = {"Yansi"}, ["ynu"] = {"Yahuna"}, ["yob"] = {"Yoba"}, ["yog"] = {"Yogad"}, ["yoi"] = {"Yonaguni"}, ["yok"] = {"Yokuts"}, ["yol"] = {"Yola"}, ["yom"] = {"Yombe"}, ["yon"] = {"Yongkom"}, ["yot"] = {"Yotti"}, ["yox"] = {"Yoron"}, ["yoy"] = {"Yoy"}, ["ypa"] = {"Phala"}, ["ypb"] = {"Labo Phowa"}, ["ypg"] = {"Phola"}, ["yph"] = {"Phupha"}, ["ypk"] = {"çhengaghyn Yupikagh"}, ["ypm"] = {"Phuma"}, ["ypn"] = {"Ani Phowa"}, ["ypo"] = {"Alo Phola"}, ["ypp"] = {"Phupa"}, ["ypz"] = {"Phuza"}, ["yra"] = {"Yerakai"}, ["yrb"] = {"Yareba"}, ["yre"] = {"Yaouré"}, ["yrk"] = {"Nenetsish"}, ["yrl"] = {"Nhengatu"}, ["yrm"] = {"Yirrk-Mel"}, ["yrn"] = {"Yerong"}, ["yro"] = {"Yaroamë"}, ["yrs"] = {"Yarsun"}, ["yrw"] = {"Yarawata"}, ["yry"] = {"Yarluyandi"}, ["ysc"] = {"Yassish"}, ["ysd"] = {"Samatao"}, ["ysg"] = {"Sonaga"}, ["ysl"] = {"Çhengey Chowree Yugoslaavagh"}, ["ysm"] = {"Çhengey Chowree Myanmar"}, ["ysn"] = {"Sani"}, ["yso"] = {"Nisi (y Çheen)"}, ["ysp"] = {"Lolopo Yiass"}, ["ysr"] = {"Yupikish Sirenik"}, ["yss"] = {"Yessan-Mayo"}, ["ysy"] = {"Sanie"}, ["yta"] = {"Talu"}, ["ytl"] = {"Tanglang"}, ["ytp"] = {"Thopho"}, ["ytw"] = {"Yout Wam"}, ["yty"] = {"Yatay"}, ["yua"] = {"Yucateco", "Mayish Yucatec"}, ["yub"] = {"Yugambal"}, ["yuc"] = {"Yuchi"}, ["yud"] = {"Arabish Hripolitaanagh Ewagh"}, ["yue"] = {"Sheenish Yue", "Cantoanish", "Yueish"}, ["yuf"] = {"Havasupai-Walapai-Yavapai"}, ["yug"] = {"Yug"}, ["yui"] = {"Yurutí"}, ["yuj"] = {"Karkar-Yuri"}, ["yuk"] = {"Yuki"}, ["yul"] = {"Yulu"}, ["yum"] = {"Quechan"}, ["yun"] = {"Bena (y Naigeer)"}, ["yup"] = {"Yukpa"}, ["yuq"] = {"Yuqui"}, ["yur"] = {"Yurok"}, ["yut"] = {"Yopno"}, ["yuw"] = {"Yau (Queiggey Morobe)"}, ["yux"] = {"Yukaghirish Yiass"}, ["yuy"] = {"Yugur Hiar"}, ["yuz"] = {"Yuracare"}, ["yva"] = {"Yawa"}, ["yvt"] = {"Yavitero"}, ["ywa"] = {"Kalou"}, ["ywg"] = {"Yinhawangka"}, ["ywl"] = {"Lalu Heear"}, ["ywn"] = {"Yawanawa"}, ["ywq"] = {"Wuding-Luquan Yi"}, ["ywr"] = {"Yawuru"}, ["ywt"] = {"Xishanba Lalo", "Lalo Veanagh"}, ["ywu"] = {"Wumeng Nasu"}, ["yww"] = {"Yawarawarga"}, ["yxa"] = {"Mayawali"}, ["yxg"] = {"Yagara"}, ["yxl"] = {"Yardliyawarra"}, ["yxm"] = {"Yinwum"}, ["yxu"] = {"Yuyu"}, ["yxy"] = {"Yabula Yabula"}, ["yyr"] = {"Yir Yoront"}, ["yyu"] = {"Yau (Queiggey Sandaun)"}, ["yyz"] = {"Ayizi"}, ["yzg"] = {"E'ma Buyang"}, ["yzk"] = {"Zokhuo"}, ["zaa"] = {"Zapotecish Sierra de Juárez"}, ["zab"] = {"Zapotecish Ghlion Tlacolula Heear", "Zapotecish San Juan Guelavía"}, ["zac"] = {"Zapotecish Ocotlán"}, ["zad"] = {"Zapotecish Cajonos"}, ["zae"] = {"Zapotecish Yareni"}, ["zaf"] = {"Zapotecish Ayoquesco"}, ["zag"] = {"Zaghawa"}, ["zah"] = {"Zangwal"}, ["zai"] = {"Zapotecish Whing Hallooin"}, ["zaj"] = {"Zaramo"}, ["zak"] = {"Zanaki"}, ["zal"] = {"Zauzou"}, ["zam"] = {"Zapotecish Miahuatlán"}, ["zao"] = {"Zapotecish Ozolotepec"}, ["zap"] = {"Zapotecish"}, ["zaq"] = {"Zapotecish Aloápam"}, ["zar"] = {"Zapotecish Rincón"}, ["zas"] = {"Zapotecish Santo Domingo Albarradas"}, ["zat"] = {"Zapotecish Tabaa"}, ["zau"] = {"Zangskari"}, ["zav"] = {"Zapotecish Yatzachi"}, ["zaw"] = {"Zapotecish Mitla"}, ["zax"] = {"Zapotecish Xadani"}, ["zay"] = {"Zayse-Zergulla", "Zaysete"}, ["zaz"] = {"Zari"}, ["zba"] = {"Balaibalan"}, ["zbc"] = {"Berawan Veanagh"}, ["zbe"] = {"Berawan Hiar"}, ["zbl"] = {"Blissymbols", "Bliss", "Blissymbolics"}, ["zbt"] = {"Batui"}, ["zbu"] = {"Bu (Steat Bauchi)"}, ["zbw"] = {"Berawan Heear"}, ["zca"] = {"Zapotecish Coatecas Altas"}, ["zcd"] = {"Zapotecish Las Delicias"}, ["zch"] = {"Zhang Hongshuihe Veanagh"}, ["zdj"] = {"Comoroish Ngazidja"}, ["zea"] = {"Zeeuws"}, ["zeg"] = {"Zenag"}, ["zeh"] = {"Zhuang Hongshuihe Hiar"}, ["zem"] = {"Zeem"}, ["zen"] = {"Zenaga"}, ["zga"] = {"Kinga"}, ["zgb"] = {"Zhuang Guibei"}, ["zgh"] = {"Tamazightish Varocagh Stundayrtit"}, ["zgm"] = {"Zhuang Minz"}, ["zgn"] = {"Zhuang Guibian"}, ["zgr"] = {"Magori"}, ["zhb"] = {"Zhaba"}, ["zhd"] = {"Zhuang Dai"}, ["zhi"] = {"Zhire"}, ["zhn"] = {"Zhuang Nong"}, ["zhw"] = {"Zhoa"}, ["zhx"] = {"Sheenagh (kynney)"}, ["zia"] = {"Zia"}, ["zib"] = {"Çhengey Chowree Himbabweagh"}, ["zik"] = {"Zimakani"}, ["zil"] = {"Zialo"}, ["zim"] = {"Mesme"}, ["zin"] = {"Zinza"}, ["ziw"] = {"Zigula"}, ["ziz"] = {"Zizilivakan"}, ["zka"] = {"Kaimbulawa"}, ["zkd"] = {"Kadu"}, ["zkg"] = {"Koguryo"}, ["zkh"] = {"Khorezmish"}, ["zkk"] = {"Karankawa"}, ["zkn"] = {"Kanan"}, ["zko"] = {"Kott"}, ["zkp"] = {"Kaingáng São Paulo"}, ["zkr"] = {"Zakhring"}, ["zkt"] = {"Kitan"}, ["zku"] = {"Kaurna"}, ["zkv"] = {"Krevinish"}, ["zkz"] = {"Khazarish"}, ["zla"] = {"Zula"}, ["zle"] = {"çhengaghyn Slavagh Hiar"}, ["zlj"] = {"Zhuang Liujiang"}, ["zlm"] = {"Malayish (çhengey er lheh)"}, ["zln"] = {"Zhuang Lianshan"}, ["zlq"] = {"Zhuang Liuqian"}, ["zls"] = {"çhengaghyn Slavagh Yiass"}, ["zlu"] = {"Zul"}, ["zlw"] = {"çhengaghyn Slavagh Heear"}, ["zma"] = {"Manda (yn Austrail)"}, ["zmb"] = {"Zimba"}, ["zmc"] = {"Margany"}, ["zmd"] = {"Maridan"}, ["zme"] = {"Mangerr"}, ["zmf"] = {"Mfinu"}, ["zmg"] = {"Marti Ke"}, ["zmh"] = {"Makolkol"}, ["zmi"] = {"Malayish Negeri Sembilan"}, ["zmj"] = {"Maridjabin"}, ["zmk"] = {"Mandandanyi"}, ["zml"] = {"Matngala"}, ["zmm"] = {"Marimanindji", "Marramaninyshi"}, ["zmn"] = {"Mbangwe"}, ["zmo"] = {"Molo"}, ["zmp"] = {"Mpuono"}, ["zmq"] = {"Mituku"}, ["zmr"] = {"Maranunggu"}, ["zms"] = {"Mbesa"}, ["zmt"] = {"Maringarr"}, ["zmu"] = {"Muruwari"}, ["zmv"] = {"Mbariman-Gudhinma"}, ["zmw"] = {"Mbo (Pobblaght Gheynlagh y Chongo)"}, ["zmx"] = {"Bomitaba"}, ["zmy"] = {"Mariyedi"}, ["zmz"] = {"Mbandja"}, ["zna"] = {"Zan Gula"}, ["znd"] = {"çhengaghyn Zande"}, ["zne"] = {"Zande (çhengey er lheh)"}, ["zng"] = {"Mang"}, ["znk"] = {"Manangkari"}, ["zns"] = {"Mangas"}, ["zoc"] = {"Zoque Copainalá"}, ["zoh"] = {"Zoque Chimalapa"}, ["zom"] = {"Zou"}, ["zoo"] = {"Zapotecish Mixtepec Asunción"}, ["zoq"] = {"Zoque Tabasco"}, ["zor"] = {"Zoque Rayón"}, ["zos"] = {"Zoque Francisco León"}, ["zpa"] = {"Zapotecish Lachiguiri"}, ["zpb"] = {"Zapotecish Yautepec"}, ["zpc"] = {"Zapotecish Choapan"}, ["zpd"] = {"Zapotecish Ixtlán Hiar Yiass"}, ["zpe"] = {"Zapotecish Petapa"}, ["zpf"] = {"Zapotecish San Pedro Quiatoni"}, ["zpg"] = {"Zapotecish Guevea De Humboldt"}, ["zph"] = {"Zapotecish Totomachapan"}, ["zpi"] = {"Zapotecish Santa María Quiegolani"}, ["zpj"] = {"Zapotecish Quiavicuzas"}, ["zpk"] = {"Zapotecish Tlacolulita"}, ["zpl"] = {"Zapotecish Lachixío"}, ["zpm"] = {"Zapotecish Mixtepec"}, ["zpn"] = {"Zapotecish Santa Inés Yatzechi"}, ["zpo"] = {"Zapotecish Amatlán"}, ["zpp"] = {"Zapotecish El Alto"}, ["zpq"] = {"Zapotecish Zoogocho"}, ["zpr"] = {"Zapotecish Santiago Xanica"}, ["zps"] = {"Zapotecish Coatlán"}, ["zpt"] = {"Zapotecish San Vicente Coatlán"}, ["zpu"] = {"Zapotecish Yalálag"}, ["zpv"] = {"Zapotecish Chichicapan"}, ["zpw"] = {"Zapotecish Zaniza"}, ["zpx"] = {"Zapotecish San Baltazar Loxicha"}, ["zpy"] = {"Zapotecish Mazaltepec"}, ["zpz"] = {"Zapotecish Texmelucan"}, ["zqe"] = {"Zhuang Qiubei"}, ["zra"] = {"Kara (y Chorea)"}, ["zrg"] = {"Mirgan"}, ["zrn"] = {"Zerenkel"}, ["zro"] = {"Záparo"}, ["zrp"] = {"Zarphatish"}, ["zrs"] = {"Mairasi"}, ["zsa"] = {"Sarasira"}, ["zsk"] = {"Kaskeish"}, ["zsl"] = {"Çhengey Chowree Hambagh"}, ["zsm"] = {"Malayish Stundayrtit"}, ["zsr"] = {"Zapotecish Rincon Yiass"}, ["zsu"] = {"Sukurum"}, ["zte"] = {"Zapotecish Elotepec"}, ["ztg"] = {"Zapotecish Xanaguía"}, ["ztl"] = {"Zapotecish Lapaguía-Guivini"}, ["ztm"] = {"Zapotecish Mixtepec San Agustín"}, ["ztn"] = {"Zapotecish Santa Catarina Albarradas"}, ["ztp"] = {"Zapotecish Loxicha"}, ["ztq"] = {"Zapotecish Quioquitani-Quierí"}, ["zts"] = {"Zapotecish Tilquiapan"}, ["ztt"] = {"Zapotecish Tejalapan"}, ["ztu"] = {"Zapotecish Güilá"}, ["ztx"] = {"Zapotecish Zaachila"}, ["zty"] = {"Zapotecish Yatee"}, ["zuh"] = {"Tokano"}, ["zum"] = {"Kumzarish"}, ["zun"] = {"Zuni"}, ["zuy"] = {"Zumaya"}, ["zwa"] = {"Zay"}, ["zxx"] = {"Gyn stoo çhengoaylleeagh", "Neuchooie"}, ["zyb"] = {"Zhuang Yongbei"}, ["zyg"] = {"Zhuang Yang"}, ["zyj"] = {"Zhuang Youjiang"}, ["zyn"] = {"Zhuang Yongnan"}, ["zyp"] = {"Chinish Zyphe"}, ["zza"] = {"Zaza", "Dimili", "Dimli (mooar-hengey)", "Kirdki", "Kirmanjki (mooar-hengey)", "Zazakish"}, ["zzj"] = {"Zhuang Zuojiang"} } local deprecated = { ["in"] = {"Indoneeshish"}, ["iw"] = {"Ewnish"}, ["ji"] = {"Ewdish"}, ["jw"] = {"Javish", "Basa Jawa"}, ["mo"] = {"Moldaavish", "Moldovish"}, ["aam"] = {"Aramanik"}, ["adp"] = {"Adap"}, ["agp"] = {"Paranan"}, ["ais"] = {"Nataoran Amis"}, ["ajp"] = {"Arabish Levaantagh Yiass"}, ["ajt"] = {"Arabish Hooneeshagh Ewagh"}, ["aoh"] = {"Arma"}, ["asd"] = {"Asas"}, ["aue"] = {"ǂKxʼauǁʼein"}, ["ayx"] = {"Ayi (y Çheen)"}, ["ayy"] = {"Tayabas Ayta"}, ["baz"] = {"Tunen"}, ["bbz"] = {"Creeole Arabish Babalia"}, ["bgm"] = {"Baga Mboteni"}, ["bhk"] = {"Albay Bicolano"}, ["bic"] = {"Bikaru"}, ["bij"] = {"Vaghat-Ya-Bijim-Legeri"}, ["bjd"] = {"Bandjigali"}, ["bjq"] = {"Malagasish Betsimisaraka Yiass"}, ["bkb"] = {"Finallig"}, ["blg"] = {"Balau"}, ["bmy"] = {"Bemba (Pobblaght Gheynlagh y Chongo)"}, ["bpb"] = {"Barbacoas"}, ["btb"] = {"Beti (Cameroon)"}, ["btl"] = {"Bhatola"}, ["bxx"] = {"Borna (Pobblaght Gheynlagh y Chongo)"}, ["byy"] = {"Buya"}, ["cbe"] = {"Chipiajes"}, ["cbh"] = {"Cagua"}, ["cca"] = {"Cauca"}, ["ccq"] = {"Chaungtha"}, ["cdg"] = {"Chamari"}, ["cjr"] = {"Chorotega"}, ["cka"] = {"Khumi Awa Chin"}, ["cmk"] = {"Chimakum"}, ["coy"] = {"Coyaima"}, ["cqu"] = {"Quechua yn Çhillee"}, ["cug"] = {"Chungmboko", "Cung"}, ["cum"] = {"Cumeral"}, ["daf"] = {"Dan"}, ["dap"] = {"Nisi (yn Injey)"}, ["dgu"] = {"Degaru"}, ["dha"] = {"Dhanwar (yn Injey)"}, ["dit"] = {"Dirari"}, ["djl"] = {"Djiwarli"}, ["dkl"] = {"Kolum So Dogon"}, ["drh"] = {"Darkhat"}, ["drr"] = {"Dororo"}, ["drw"] = {"Darwazi"}, ["dud"] = {"Hun-Saare"}, ["duj"] = {"Dhuwal"}, ["dwl"] = {"Walo Kumbe Dogon"}, ["ekc"] = {"Karnish Hiar"}, ["elp"] = {"Elpaputih"}, ["emo"] = {"Emok"}, ["gav"] = {"Gabutamon"}, ["gbc"] = {"Garawa"}, ["gfx"] = {"Mangetti Dune ǃXung"}, ["ggn"] = {"Gurung Hiar"}, ["ggo"] = {"Gondi Yiass"}, ["ggr"] = {"Aghu Tharnggalu"}, ["gio"] = {"Gelao"}, ["gji"] = {"Geji"}, ["gli"] = {"Guliguli"}, ["gti"] = {"Gbati-ri"}, ["guv"] = {"Gey"}, ["hrr"] = {"Horuru"}, ["iap"] = {"Iapama"}, ["ibi"] = {"Ibilo"}, ["ill"] = {"Iranun"}, ["ilw"] = {"Talur"}, ["ime"] = {"Imeraguen"}, ["izi"] = {"Izi-Ezaa-Ikwo-Mgbo"}, ["jar"] = {"Jarawa (y Naigeer)"}, ["jeg"] = {"Jeng"}, ["kbf"] = {"Kakauhua"}, ["kdv"] = {"Kado"}, ["kgc"] = {"Kasseng"}, ["kgd"] = {"Kataang"}, ["kgh"] = {"Tanudan Kalinga Heose"}, ["kgm"] = {"Karipúna"}, ["kjf"] = {"Khalaj [Ind-Eeraanagh]"}, ["koj"] = {"Sara Dunjo"}, ["kox"] = {"Coxima"}, ["kpp"] = {"Karenish Paku"}, ["krm"] = {"Krim"}, ["ksa"] = {"Shuwa-Zamani"}, ["ktr"] = {"Kota Marudu Tinagas"}, ["kvs"] = {"Kunggara"}, ["kwq"] = {"Kwak"}, ["kxe"] = {"Kakihum"}, ["kxl"] = {"Kurux Nepaalagh"}, ["kxu"] = {"Kui (yn Injey)"}, ["kzh"] = {"Kenuzi-Dongola"}, ["kzj"] = {"Coastal Kadazan"}, ["kzt"] = {"Tambunan Dusun"}, ["lak"] = {"Laka (y Naigeer)"}, ["lba"] = {"Lui"}, ["leg"] = {"Lengua"}, ["lii"] = {"Lingkhim"}, ["llo"] = {"Khlor"}, ["lmm"] = {"Lamam"}, ["lmz"] = {"Lumbee"}, ["lno"] = {"Lango (y Toodaan Yiass)"}, ["lsg"] = {"Çhengey Chowree Lyons"}, ["meg"] = {"Mea"}, ["mgx"] = {"Omati"}, ["mhh"] = {"Maskoy Vrisht"}, ["mja"] = {"Mahei"}, ["mld"] = {"Malakhel"}, ["mnt"] = {"Maykulan"}, ["mof"] = {"Mohegan-Montauk-Narragansett"}, ["mst"] = {"Cataelano Mandaya"}, ["mvm"] = {"Muya"}, ["mwd"] = {"Mudbura"}, ["mwj"] = {"Maligo"}, ["mwx"] = {"Mediak"}, ["mwy"] = {"Mosiro"}, ["myd"] = {"Maramba"}, ["myi"] = {"Mina (yn Injey)"}, ["myq"] = {"Maninkish Cheylley"}, ["myt"] = {"Sangab Mandaya"}, ["nad"] = {"Nijadali"}, ["nbf"] = {"Naxi"}, ["nbx"] = {"Ngura"}, ["ncp"] = {"Ndaktup"}, ["ngo"] = {"Ngoni"}, ["nln"] = {"Nahuatl Durango"}, ["nlr"] = {"Ngarla"}, ["nns"] = {"Ningye"}, ["nnx"] = {"Ngong"}, ["nom"] = {"Nocamán"}, ["noo"] = {"Nootka"}, ["nts"] = {"Natagaimas"}, ["nxu"] = {"Narau"}, ["ome"] = {"Omejes"}, ["oun"] = {"ǃOǃung"}, ["pat"] = {"Papitalai"}, ["pbz"] = {"Palu"}, ["pcr"] = {"Panang"}, ["pgy"] = {"Pongyong"}, ["pii"] = {"Pini"}, ["plj"] = {"Polci"}, ["plp"] = {"Palpa"}, ["pmc"] = {"Palumata"}, ["pmk"] = {"Pamlico"}, ["pmu"] = {"Panjabish Mirpur"}, ["pod"] = {"Ponares"}, ["ppa"] = {"Pao"}, ["ppr"] = {"Piru"}, ["prb"] = {"Lua'"}, ["prp"] = {"Parsi"}, ["pry"] = {"Pray 3"}, ["puk"] = {"Pu Ko"}, ["puz"] = {"Purum Naga"}, ["rie"] = {"Rien"}, ["rmr"] = {"Caló"}, ["rna"] = {"Runa"}, ["rsi"] = {"Çhengey Chowree Rennellagh"}, ["sap"] = {"Sanapaná"}, ["sca"] = {"Sansu"}, ["sdm"] = {"Semandang"}, ["sgl"] = {"Sanglechi-Ishkashimi"}, ["sgo"] = {"Songa"}, ["skk"] = {"Sok"}, ["slq"] = {"Salchuq"}, ["smd"] = {"Sama"}, ["snb"] = {"Sebuyau"}, ["snh"] = {"Shinabo"}, ["sul"] = {"Surigaonon"}, ["sum"] = {"Sumo-Mayangna"}, ["svr"] = {"Savara"}, ["szd"] = {"Seru"}, ["tbb"] = {"Tapeba"}, ["tdu"] = {"Tempasuk Dusun"}, ["tgg"] = {"Tangga"}, ["thc"] = {"Tai Hang Tong"}, ["thw"] = {"Thudam"}, ["thx"] = {"The"}, ["tid"] = {"Tidong"}, ["tie"] = {"Tingal"}, ["tkk"] = {"Takpa"}, ["tlw"] = {"Wemale Yiass"}, ["tmk"] = {"Tamang Heear Hwoaie"}, ["tmp"] = {"Tai Mène"}, ["tne"] = {"Tinoc Kallahan"}, ["tnf"] = {"Tangshewi"}, ["toe"] = {"Tomedes"}, ["tpw"] = {"Tupí"}, ["tsf"] = {"Tamang Heear Yiass"}, ["unp"] = {"Worora"}, ["uok"] = {"Uokha"}, ["uun"] = {"Kulon-Pazeh"}, ["vki"] = {"Ija-Zuba"}, ["wgw"] = {"Wagawaga"}, ["wit"] = {"Wintu"}, ["wiw"] = {"Wirangu"}, ["wra"] = {"Warapu"}, ["wrd"] = {"Warduji"}, ["wya"] = {"Wyandot"}, ["xba"] = {"Kamba (y Vrasseel)"}, ["xbx"] = {"Kabixí"}, ["xia"] = {"Xiandao"}, ["xip"] = {"Xipináwa"}, ["xkh"] = {"Karahawyana"}, ["xrq"] = {"Karranga"}, ["xss"] = {"Assan"}, ["xtz"] = {"Tasmaanish"}, ["ybd"] = {"Yangbye"}, ["yds"] = {"Çhengey Chowree Ewdagh"}, ["yen"] = {"Yendang"}, ["yiy"] = {"Yir Yoront"}, ["yma"] = {"Yamphe"}, ["ymt"] = {"Mator-Taygi-Karagas"}, ["ynh"] = {"Yangho"}, ["yos"] = {"Yos"}, ["yri"] = {"Yarí"}, ["yuu"] = {"Yugh"}, ["zir"] = {"Ziriya"}, ["zkb"] = {"Koibal"}, ["zua"] = {"Zeem"} } return { active = active, deprecated = deprecated, } 1w8i415nkqnkmgmu1xd2n8wlays8p9g 394613 394546 2026-10-17T03:46:11Z MacTire02 219 creeole mwirrishagh 394613 Scribunto text/plain -- File-Date: 2023-10-16 local active = { ["aa"] = {"Afarish"}, ["ab"] = {"Abcaashish"}, ["ae"] = {"Avestan"}, ["af"] = {"Affrickaanish"}, ["ak"] = {"Akanish"}, ["am"] = {"Amharish"}, ["an"] = {"Aragonish"}, ["ar"] = {"Arabish"}, ["as"] = {"Assamish"}, ["av"] = {"Avarish"}, ["ay"] = {"Aymarish"}, ["az"] = {"Asserbajaanish"}, ["ba"] = {"Bashkeerish"}, ["be"] = {"Belarooshish"}, ["bg"] = {"Bulgeyrish"}, ["bh"] = {"çhengaghyn Bihari"}, ["bi"] = {"Bislama"}, ["bm"] = {"Bambarish"}, ["bn"] = {"Bengaalish", "Bangla"}, ["bo"] = {"Tibetish"}, ["br"] = {"Britaanish"}, ["bs"] = {"Bosnish"}, ["ca"] = {"Catalaanish", "Cataloanish", "Valensianish", "Valenciano"}, ["ce"] = {"Sheshnish"}, ["ch"] = {"Chamorro"}, ["co"] = {"Corsickish"}, ["cr"] = {"Creeish"}, ["cs"] = {"Sheckish"}, ["cu"] = {"Slavish Agglish", "Slavonish Agglish", "Slavish yn Agglish", "Slavonish yn Agglish", "Shenn Vulgeyrish", "Shenn Slavonish Agglish", "Shenn Slavish Agglish"}, ["cv"] = {"Shuvashish"}, ["cy"] = {"Bretnish"}, ["da"] = {"Danvargish"}, ["de"] = {"Germaanish"}, ["dv"] = {"Dhivehi", "Divehi", "Maldeevish"}, ["dz"] = {"Dzongkha"}, ["ee"] = {"Ewe"}, ["el"] = {"Greagish Noa-emshyragh (1453-)"}, ["en"] = {"Baarle"}, ["eo"] = {"Esperanto"}, ["es"] = {"Spaainish", "Cashteelish"}, ["et"] = {"Estaanish", "Estoinish", "Esthoinish"}, ["eu"] = {"Bascish"}, ["fa"] = {"Pershish"}, ["ff"] = {"Fulah"}, ["fi"] = {"Finnlynnish"}, ["fj"] = {"Fijian"}, ["fo"] = {"Faaroish"}, ["fr"] = {"Frangish"}, ["fy"] = {"Freeshlannish Heear"}, ["ga"] = {"Yernish", "Gaelg Nerin", "Gaelg ny h-Erin", "Gaelg Yernagh"}, ["gd"] = {"Gaelg ny h-Albey", "Gaelg Albinagh"}, ["gl"] = {"Galeeshish"}, ["gn"] = {"Guaranish"}, ["gu"] = {"Gujaratish"}, ["gv"] = {"Gaelg", "Gailck"}, ["ha"] = {"Hausish"}, ["he"] = {"Ewnish"}, ["hi"] = {"Hindish"}, ["ho"] = {"Hiri Motu"}, ["hr"] = {"Croitish"}, ["ht"] = {"Haitish", "Creeole Haiti"}, ["hu"] = {"Ungaarish"}, ["hy"] = {"Armeanish"}, ["hz"] = {"Hereroish"}, ["ia"] = {"Interlingua (International Auxiliary Language Association)"}, ["id"] = {"Indoneeshish"}, ["ie"] = {"Interlingue", "Occidental"}, ["ig"] = {"Igbo"}, ["ii"] = {"Sichuan Yi", "Nuosu"}, ["ik"] = {"Inupiaq"}, ["io"] = {"Idoish"}, ["is"] = {"Eeslynnish"}, ["it"] = {"Iddaalish"}, ["iu"] = {"Inuktitut"}, ["ja"] = {"Shapaanish"}, ["jv"] = {"Javish", "basa Jawa"}, ["ka"] = {"Shorshish"}, ["kg"] = {"Kongoish"}, ["ki"] = {"Kikuyuish", "Gikuyu"}, ["kj"] = {"Kuanyamish", "Kwanyama"}, ["kk"] = {"Kassaghish"}, ["kl"] = {"Kalaallisut", "Greenlynnish"}, ["km"] = {"Khmerish", "Khmerish Veanagh"}, ["kn"] = {"Kannada"}, ["ko"] = {"Koreeish"}, ["kr"] = {"Kanurish"}, ["ks"] = {"Kashmirish"}, ["ku"] = {"Kurdish"}, ["kv"] = {"Komish"}, ["kw"] = {"Cornish"}, ["ky"] = {"Kyrgish"}, ["la"] = {"Ladjyn"}, ["lb"] = {"Lucsemburgish", "Letzeburgesch"}, ["lg"] = {"Ganda", "Luganda"}, ["li"] = {"Limburgish"}, ["ln"] = {"Lingalish"}, ["lo"] = {"Laoish"}, ["lt"] = {"Litaanish"}, ["lu"] = {"Luba-Katanga"}, ["lv"] = {"Latvish"}, ["mg"] = {"Malagasish"}, ["mh"] = {"Marshylish"}, ["mi"] = {"Maorish"}, ["mk"] = {"Massadoanish"}, ["ml"] = {"Malayalamish"}, ["mn"] = {"Mongoilish"}, ["mr"] = {"Marathish"}, ["ms"] = {"Malayish (mooar-hengey)"}, ["mt"] = {"Maltish"}, ["my"] = {"Burmish"}, ["na"] = {"Nauru"}, ["nb"] = {"Bokmål Norlynnagh"}, ["nd"] = {"Ndebele Hwoaie"}, ["ne"] = {"Nepaalish"}, ["ng"] = {"Ndonga"}, ["nl"] = {"Ollanish", "Flandrynish"}, ["nn"] = {"Nynorsk Norlynnagh"}, ["no"] = {"Norlynnish"}, ["nr"] = {"Ndebele Yiass"}, ["nv"] = {"Navahoish", "Navajo", "Navaho"}, ["ny"] = {"Chewish", "Nyanja", "Chewa", "Chichewa"}, ["oc"] = {"Ocsitaanish (lurg 1500)"}, ["oj"] = {"Ojibwa"}, ["om"] = {"Oromoish"}, ["or"] = {"Oriyish (mooar-hengey)", "Odish (mooar-hengey)"}, ["os"] = {"Ossetish"}, ["pa"] = {"Panjabish", "Punjabish"}, ["pi"] = {"Palish"}, ["pl"] = {"Polynnish"}, ["ps"] = {"Pushtish", "Pashtish"}, ["pt"] = {"Portiugish"}, ["qu"] = {"Quechua"}, ["rm"] = {"Romansh", "Romanshish"}, ["rn"] = {"Rundish"}, ["ro"] = {"Romaanish", "Romaainish", "Moldaavish", "Moldovish"}, ["ru"] = {"Rooshish"}, ["rw"] = {"Kinyarooandish"}, ["sa"] = {"Sanskrit"}, ["sc"] = {"Sardeenish"}, ["sd"] = {"Sindhish"}, ["se"] = {"Saamish Hwoaie"}, ["sg"] = {"Sangoish"}, ["sh"] = {"Serbo-Chroitish"}, ["si"] = {"Sinhalish"}, ["sk"] = {"Slovackish"}, ["sl"] = {"Sloveanish"}, ["sm"] = {"Samoish"}, ["sn"] = {"Shonish"}, ["so"] = {"Somaalish"}, ["sq"] = {"Albaanish"}, ["sr"] = {"Serbish"}, ["ss"] = {"Swassish"}, ["st"] = {"Sotoish Yiass"}, ["su"] = {"Sundanish"}, ["sv"] = {"Soolynnish"}, ["sw"] = {"Swahilish (mooar-hengey)"}, ["ta"] = {"Tamilish"}, ["te"] = {"Teloogooish"}, ["tg"] = {"Tajikish"}, ["th"] = {"Thai"}, ["ti"] = {"Tigrinyish"}, ["tk"] = {"Turkmenish"}, ["tl"] = {"Tagalogish"}, ["tn"] = {"Tswaanish"}, ["to"] = {"Tonga (Ellanyn y Tongey)"}, ["tr"] = {"Turkish"}, ["ts"] = {"Tsongish"}, ["tt"] = {"Tatarish"}, ["tw"] = {"Twi"}, ["ty"] = {"Tahitish"}, ["ug"] = {"Uighurish", "Uyghurish"}, ["uk"] = {"Ookraanish"}, ["ur"] = {"Oordooish"}, ["uz"] = {"Oosbeckish"}, ["ve"] = {"Vendish"}, ["vi"] = {"Vietnamish"}, ["vo"] = {"Volapük"}, ["wa"] = {"Walloonish"}, ["wo"] = {"Wolofish"}, ["xh"] = {"Xhosa"}, ["yi"] = {"Ewdish"}, ["yo"] = {"Yorubish"}, ["za"] = {"Zhuang", "Chuang"}, ["zh"] = {"Sheenish"}, ["zu"] = {"Soolooish"}, ["aaa"] = {"Ghotuo"}, ["aab"] = {"Alumu-Tesu"}, ["aac"] = {"Ari"}, ["aad"] = {"Amal"}, ["aae"] = {"Albaanish Arbëreshë"}, ["aaf"] = {"Aranadanish"}, ["aag"] = {"Ambrakish"}, ["aah"] = {"Abu' Arapesh"}, ["aai"] = {"Arifama-Miniafia"}, ["aak"] = {"Ankave"}, ["aal"] = {"Afade"}, ["aan"] = {"Anambé"}, ["aao"] = {"Arabish Algearagh y Tahara"}, ["aap"] = {"Pará Arára"}, ["aaq"] = {"Abnakish Hiar"}, ["aas"] = {"Aasáx"}, ["aat"] = {"Albaanish Arvanitika"}, ["aau"] = {"Abau"}, ["aav"] = {"çhengaghyn Austro-Aishanagh"}, ["aaw"] = {"Solong"}, ["aax"] = {"Mandobo Atas"}, ["aaz"] = {"Amarasish"}, ["aba"] = {"Abé"}, ["abb"] = {"Bankonish"}, ["abc"] = {"Ambala Ayta"}, ["abd"] = {"Manide"}, ["abe"] = {"Abnakish Heear"}, ["abf"] = {"Abai Sungai"}, ["abg"] = {"Abaga"}, ["abh"] = {"Arabish Hajikagh"}, ["abi"] = {"Abidji"}, ["abj"] = {"Aka-Bea"}, ["abl"] = {"Lampung Nyo"}, ["abm"] = {"Abanyom"}, ["abn"] = {"Abua"}, ["abo"] = {"Abon"}, ["abp"] = {"Abellen Ayta"}, ["abq"] = {"Abaza"}, ["abr"] = {"Abron"}, ["abs"] = {"Ambonese Malay"}, ["abt"] = {"Ambulas"}, ["abu"] = {"Abure"}, ["abv"] = {"Baharna Arabic"}, ["abw"] = {"Pal"}, ["abx"] = {"Inabaknon"}, ["aby"] = {"Aneme Wake"}, ["abz"] = {"Abui"}, ["aca"] = {"Achagua"}, ["acb"] = {"Áncá"}, ["acd"] = {"Gikyode"}, ["ace"] = {"Achinish"}, ["acf"] = {"Creeole Frangish Noo Lucia"}, ["ach"] = {"Acoli"}, ["aci"] = {"Aka-Cari"}, ["ack"] = {"Aka-Kora"}, ["acl"] = {"Akar-Bale"}, ["acm"] = {"Arabish Vesopotaamagh"}, ["acn"] = {"Achang"}, ["acp"] = {"Acipa Hiar"}, ["acq"] = {"Ta'izzi-Adeni Arabic"}, ["acr"] = {"Achi"}, ["acs"] = {"Acroá"}, ["act"] = {"Achterhoeks"}, ["acu"] = {"Achuar-Shiwiar"}, ["acv"] = {"Achumawi"}, ["acw"] = {"Arabish Hijaz"}, ["acx"] = {"Arabish Omaanagh"}, ["acy"] = {"Arabish Cheepragh"}, ["acz"] = {"Acheron"}, ["ada"] = {"Adangme"}, ["adb"] = {"Atauran"}, ["add"] = {"Lidzonka", "Dzodinka"}, ["ade"] = {"Adele"}, ["adf"] = {"Arabish Dhofari"}, ["adg"] = {"Andegerebinha"}, ["adh"] = {"Adhola"}, ["adi"] = {"Adi"}, ["adj"] = {"Adioukrou"}, ["adl"] = {"Galo"}, ["adn"] = {"Adang"}, ["ado"] = {"Abu"}, ["adq"] = {"Adangbe"}, ["adr"] = {"Adonara"}, ["ads"] = {"Çhengey Chowree Adamorobe"}, ["adt"] = {"Adnyamathanha"}, ["adu"] = {"Aduge"}, ["adw"] = {"Amundava"}, ["adx"] = {"Tibetish Amdo"}, ["ady"] = {"Adyghe", "Adygei"}, ["adz"] = {"Adzera"}, ["aea"] = {"Areba"}, ["aeb"] = {"arabish Hooneeshagh"}, ["aec"] = {"Arabish Saidi"}, ["aed"] = {"Çhengey Chowree Argenteenagh"}, ["aee"] = {"Pashai Hiar Hwoaie", "Pashayi Hiar Hwoaie"}, ["aek"] = {"Haeke"}, ["ael"] = {"Ambele"}, ["aem"] = {"Arem"}, ["aen"] = {"Çhengey Chowree Armeanagh"}, ["aeq"] = {"Aer"}, ["aer"] = {"Arrernte Hiar"}, ["aes"] = {"Alsea"}, ["aeu"] = {"Akeu"}, ["aew"] = {"Ambakich"}, ["aey"] = {"Amele"}, ["aez"] = {"Aeka"}, ["afa"] = {"çhengaghyn Affro-Aishanagh"}, ["afb"] = {"Arabish Cheayn yn Arabaght"}, ["afd"] = {"Andai"}, ["afe"] = {"Putukwam"}, ["afg"] = {"Çhengey Chowree Afghaanagh"}, ["afh"] = {"Afrihili"}, ["afi"] = {"Akrukay", "Chini"}, ["afk"] = {"Nanubae"}, ["afn"] = {"Defaka"}, ["afo"] = {"Eloyi"}, ["afp"] = {"Tapei"}, ["afs"] = {"Creeole Affro-Seminolagh"}, ["aft"] = {"Afitti"}, ["afu"] = {"Awutu"}, ["afz"] = {"Obokuitai"}, ["aga"] = {"Aguano"}, ["agb"] = {"Legbo"}, ["agc"] = {"Agatu"}, ["agd"] = {"Agarabi"}, ["age"] = {"Angal"}, ["agf"] = {"Arguni"}, ["agg"] = {"Angor"}, ["agh"] = {"Ngelima"}, ["agi"] = {"Agariya"}, ["agj"] = {"Argobba"}, ["agk"] = {"Isarog Agta"}, ["agl"] = {"Fembe"}, ["agm"] = {"Angaataha"}, ["agn"] = {"Agutaynen"}, ["ago"] = {"Tainae"}, ["agq"] = {"Aghem"}, ["agr"] = {"Aguaruna"}, ["ags"] = {"Esimbi"}, ["agt"] = {"Cagayan Agta Meanagh"}, ["agu"] = {"Aguacateco"}, ["agv"] = {"Remontado Dumagat"}, ["agw"] = {"Kahua"}, ["agx"] = {"Aghul"}, ["agy"] = {"Alta Yiass"}, ["agz"] = {"Mt. Iriga Agta"}, ["aha"] = {"Ahanta"}, ["ahb"] = {"Axamb"}, ["ahg"] = {"Qimant"}, ["ahh"] = {"Aghu"}, ["ahi"] = {"Tiagbamrin Aizi"}, ["ahk"] = {"Akha"}, ["ahl"] = {"Igo"}, ["ahm"] = {"Mobumrin Aizi"}, ["ahn"] = {"Àhàn"}, ["aho"] = {"Ahom"}, ["ahp"] = {"Aproumu Aizi"}, ["ahr"] = {"Ahirani"}, ["ahs"] = {"Ashe"}, ["aht"] = {"Ahtena"}, ["aia"] = {"Arosi"}, ["aib"] = {"Ainu (y Çheen)"}, ["aic"] = {"Ainbai"}, ["aid"] = {"Alngith"}, ["aie"] = {"Amara"}, ["aif"] = {"Agi"}, ["aig"] = {"Creeole Baarle Antigua as Barbuda"}, ["aih"] = {"Ai-Cham"}, ["aii"] = {"Noa-Aramaaish Assyriagh"}, ["aij"] = {"Lishanid Noshan"}, ["aik"] = {"Ake"}, ["ail"] = {"Aimele"}, ["aim"] = {"Aimol"}, ["ain"] = {"Ainu (y Çhapaan)"}, ["aio"] = {"Aiton"}, ["aip"] = {"Burumakok"}, ["aiq"] = {"Aimaq"}, ["air"] = {"Airoran"}, ["ait"] = {"Arikem"}, ["aiw"] = {"Aari"}, ["aix"] = {"Aighon"}, ["aiy"] = {"Ali"}, ["aja"] = {"Aja (y Toodaan Yiass)"}, ["ajg"] = {"Aja (Benin)"}, ["aji"] = {"Ajië"}, ["ajn"] = {"Andajin"}, ["ajs"] = {"Algerian Jewish Sign Language"}, ["aju"] = {"Judeo-Moroccan Arabic"}, ["ajw"] = {"Ajawa"}, ["ajz"] = {"Amri Karbi"}, ["akb"] = {"Batak Angkola"}, ["akc"] = {"Mpur"}, ["akd"] = {"Ukpet-Ehom"}, ["ake"] = {"Akawaio"}, ["akf"] = {"Akpa"}, ["akg"] = {"Anakalangu"}, ["akh"] = {"Angal Heneng"}, ["aki"] = {"Aiome"}, ["akj"] = {"Aka-Jeru"}, ["akk"] = {"Akkadian"}, ["akl"] = {"Aklanon"}, ["akm"] = {"Aka-Bo"}, ["ako"] = {"Akurio"}, ["akp"] = {"Siwu"}, ["akq"] = {"Ak"}, ["akr"] = {"Araki"}, ["aks"] = {"Akaselem"}, ["akt"] = {"Akolet"}, ["aku"] = {"Akum"}, ["akv"] = {"Akhvakh"}, ["akw"] = {"Akwa"}, ["akx"] = {"Aka-Kede"}, ["aky"] = {"Aka-Kol"}, ["akz"] = {"Alabama"}, ["ala"] = {"Alago"}, ["alc"] = {"Qawasqar"}, ["ald"] = {"Alladian"}, ["ale"] = {"Aleutagh"}, ["alf"] = {"Alege"}, ["alg"] = {"çhengaghyn Algonquiagh"}, ["alh"] = {"Alawa"}, ["ali"] = {"Amaimon"}, ["alj"] = {"Alangan"}, ["alk"] = {"Alak"}, ["all"] = {"Allar"}, ["alm"] = {"Amblong"}, ["aln"] = {"Albaanish Gheg"}, ["alo"] = {"Larike-Wakasihu"}, ["alp"] = {"Alune"}, ["alq"] = {"Algonquin"}, ["alr"] = {"Alutorish"}, ["als"] = {"Albaanish Tosk"}, ["alt"] = {"Altayish Yiass"}, ["alu"] = {"'Are'are"}, ["alv"] = {"çhengaghyn Atlantagh-Congo"}, ["alw"] = {"Alaba-K’abeena", "Wanbasana"}, ["alx"] = {"Amol"}, ["aly"] = {"Alyawarr"}, ["alz"] = {"Alur"}, ["ama"] = {"Amanayé"}, ["amb"] = {"Ambo"}, ["amc"] = {"Amahuaca"}, ["ame"] = {"Yanesha'"}, ["amf"] = {"Hamer-Banna"}, ["amg"] = {"Amurdak"}, ["ami"] = {"Amis"}, ["amj"] = {"Amdang"}, ["amk"] = {"Ambai"}, ["aml"] = {"War-Jaintia"}, ["amm"] = {"Ama (Papooey Guinea Noa)"}, ["amn"] = {"Amanab"}, ["amo"] = {"Amo"}, ["amp"] = {"Alamblak"}, ["amq"] = {"Amahai"}, ["amr"] = {"Amarakaeri"}, ["ams"] = {"Amami-Oshima Yiass"}, ["amt"] = {"Amto"}, ["amu"] = {"Guerrero Amuzgo"}, ["amv"] = {"Ambelau"}, ["amw"] = {"Noa-Aramaaish Heear"}, ["amx"] = {"Anmatyerre"}, ["amy"] = {"Ami"}, ["amz"] = {"Atampaya"}, ["ana"] = {"Andaqui"}, ["anb"] = {"Andoa"}, ["anc"] = {"Ngas"}, ["and"] = {"Ansus"}, ["ane"] = {"Xârâcùù"}, ["anf"] = {"Animere"}, ["ang"] = {"Shenn Vaarle (ca. 450-1100)"}, ["anh"] = {"Nend"}, ["ani"] = {"Andi"}, ["anj"] = {"Anor"}, ["ank"] = {"Goemai"}, ["anl"] = {"Anu-Hkongso Chin"}, ["anm"] = {"Anal"}, ["ann"] = {"Obolo"}, ["ano"] = {"Andoque"}, ["anp"] = {"Angika"}, ["anq"] = {"Jarawa (yn Injey)"}, ["anr"] = {"Andh"}, ["ans"] = {"Anserma"}, ["ant"] = {"Antakarinya", "Antikarinya"}, ["anu"] = {"Anuak"}, ["anv"] = {"Denya"}, ["anw"] = {"Anaang"}, ["anx"] = {"Andra-Hus"}, ["any"] = {"Anyin"}, ["anz"] = {"Anem"}, ["aoa"] = {"Angolar"}, ["aob"] = {"Abom"}, ["aoc"] = {"Pemon"}, ["aod"] = {"Andarum"}, ["aoe"] = {"Angal Enen"}, ["aof"] = {"Bragat"}, ["aog"] = {"Angoram"}, ["aoi"] = {"Anindilyakwa"}, ["aoj"] = {"Mufian"}, ["aok"] = {"Arhö"}, ["aol"] = {"Alor"}, ["aom"] = {"Ömie"}, ["aon"] = {"Bumbita Arapesh"}, ["aor"] = {"Aore"}, ["aos"] = {"Taikat"}, ["aot"] = {"Atong (yn Injey)", "A'tong"}, ["aou"] = {"A'ou"}, ["aox"] = {"Atorada"}, ["aoz"] = {"Uab Meto"}, ["apa"] = {"çhengaghyn Apaçheeagh"}, ["apb"] = {"Sa'a"}, ["apc"] = {"Arabish Levaantagh"}, ["apd"] = {"Arabish Hoodaanagh"}, ["ape"] = {"Bukiyip"}, ["apf"] = {"Pahanan Agta"}, ["apg"] = {"Ampanang"}, ["aph"] = {"Athpariya"}, ["api"] = {"Apiaká"}, ["apj"] = {"Apaçheeish Jicarilla"}, ["apk"] = {"Apaçheeish Kiowa"}, ["apl"] = {"Apaçheeish Lipan"}, ["apm"] = {"Apaçheeish Mescalero-Chiricahua"}, ["apn"] = {"Apinayé"}, ["apo"] = {"Ambul"}, ["app"] = {"Apma"}, ["apq"] = {"A-Pucikwar"}, ["apr"] = {"Arop-Lokep"}, ["aps"] = {"Arop-Sissano"}, ["apt"] = {"Apatanish"}, ["apu"] = {"Apurinã"}, ["apv"] = {"Alapmunte"}, ["apw"] = {"Apaçheeish Heear"}, ["apx"] = {"Aputai"}, ["apy"] = {"Apalaí"}, ["apz"] = {"Safeyoka"}, ["aqa"] = {"çhengaghyn Alacalufan"}, ["aqc"] = {"Archi"}, ["aqd"] = {"Ampari Dogon"}, ["aqg"] = {"Arigidi"}, ["aqk"] = {"Aninka"}, ["aql"] = {"çhengaghyn Algagh"}, ["aqm"] = {"Atohwaim"}, ["aqn"] = {"Alta Hwoaie"}, ["aqp"] = {"Atakapa"}, ["aqr"] = {"Arhâ"}, ["aqt"] = {"Angaité"}, ["aqz"] = {"Akuntsu"}, ["arb"] = {"Arabish Stundayrtit"}, ["arc"] = {"Aramaaish Oikoil (700-300 RC)", "Aramaaish Impiroil (700-300 RC)"}, ["ard"] = {"Arabana"}, ["are"] = {"Arrarnta Heear"}, ["arh"] = {"Arhuaco"}, ["ari"] = {"Arikara"}, ["arj"] = {"Arapaso"}, ["ark"] = {"Arikapú"}, ["arl"] = {"Arabela"}, ["arn"] = {"Mapudungunish", "Mapuçhish"}, ["aro"] = {"Araona"}, ["arp"] = {"Arapahoish"}, ["arq"] = {"Arabish Algearagh"}, ["arr"] = {"Karo (y Vrasseel)"}, ["ars"] = {"Arabish Najdi"}, ["art"] = {"Çhengaghyn ellynagh"}, ["aru"] = {"Aruá (Steat Amazonas)", "Arawá"}, ["arv"] = {"Arbore"}, ["arw"] = {"Arawak"}, ["arx"] = {"Aruá (Steat Rodonia)"}, ["ary"] = {"Arabish Varocagh"}, ["arz"] = {"Arabish Egyptagh"}, ["asa"] = {"Asu (Tanzania)"}, ["asb"] = {"Assiniboine"}, ["asc"] = {"Casuarina Coast Asmat"}, ["ase"] = {"Çhengey Chowree Americaanagh"}, ["asf"] = {"Auslan", "Çhengey Chowree Austrailagh"}, ["asg"] = {"Cishingini"}, ["ash"] = {"Abishira"}, ["asi"] = {"Buruwai"}, ["asj"] = {"Sari"}, ["ask"] = {"Ashkun"}, ["asl"] = {"Asilulu"}, ["asn"] = {"Xingú Asuriní"}, ["aso"] = {"Dano"}, ["asp"] = {"Çhengey Chowree Algearagh"}, ["asq"] = {"Çhengey Chowree Austrailagh"}, ["asr"] = {"Asuri"}, ["ass"] = {"Ipulo"}, ["ast"] = {"Astoorish", "Astoorleonish", "Bable", "Leonish"}, ["asu"] = {"Tocantins Asurini"}, ["asv"] = {"Asoa"}, ["asw"] = {"Çhengey Chowree Vun-dooghyssee yn Austrail"}, ["asx"] = {"Muratayak"}, ["asy"] = {"Yaosakor Asmat"}, ["asz"] = {"As"}, ["ata"] = {"Pele-Ata"}, ["atb"] = {"Zaiwa"}, ["atc"] = {"Atsahuaca"}, ["atd"] = {"Ata Manobo"}, ["ate"] = {"Atemble"}, ["atg"] = {"Ivbie North-Okpela-Arhe"}, ["ath"] = {"çhengaghyn Athapascagh"}, ["ati"] = {"Attié"}, ["atj"] = {"Atikamekw"}, ["atk"] = {"Ati"}, ["atl"] = {"Mt. Iraya Agta"}, ["atm"] = {"Ata"}, ["atn"] = {"Ashtiani"}, ["ato"] = {"Atong (Cameroon)"}, ["atp"] = {"Pudtol Atta"}, ["atq"] = {"Aralle-Tabulahan"}, ["atr"] = {"Waimiri-Atroari"}, ["ats"] = {"Gros Ventre"}, ["att"] = {"Pamplona Atta"}, ["atu"] = {"Reel"}, ["atv"] = {"Altayish Hwoaie"}, ["atw"] = {"Atsugewi"}, ["atx"] = {"Arutani"}, ["aty"] = {"Aneityum"}, ["atz"] = {"Arta"}, ["aua"] = {"Asumboa"}, ["aub"] = {"Alugu"}, ["auc"] = {"Waorani"}, ["aud"] = {"Anuta"}, ["auf"] = {"çhengaghyn Arauagh"}, ["aug"] = {"Aguna"}, ["auh"] = {"Aushi"}, ["aui"] = {"Anuki"}, ["auj"] = {"Awjilah"}, ["auk"] = {"Heyo"}, ["aul"] = {"Aulua"}, ["aum"] = {"Asu (y Naigeer)"}, ["aun"] = {"Molmo One"}, ["auo"] = {"Auyokawa"}, ["aup"] = {"Makayam"}, ["auq"] = {"Anus", "Korur"}, ["aur"] = {"Aruek"}, ["aus"] = {"çhengaghyn Austrailagh"}, ["aut"] = {"Austral"}, ["auu"] = {"Auye"}, ["auw"] = {"Awyi"}, ["aux"] = {"Aurá"}, ["auy"] = {"Awiyaana"}, ["auz"] = {"Arabish Oosbeckagh"}, ["avb"] = {"Avau"}, ["avd"] = {"Alviri-Vidari"}, ["avi"] = {"Avikam"}, ["avk"] = {"Kotava"}, ["avl"] = {"Arabish Bedawi Egyptagh Hiar"}, ["avm"] = {"Angkamuthi"}, ["avn"] = {"Avatime"}, ["avo"] = {"Agavotaguerra"}, ["avs"] = {"Aushiri"}, ["avt"] = {"Au"}, ["avu"] = {"Avokaya"}, ["avv"] = {"Avá-Canoeiro"}, ["awa"] = {"Awadhi"}, ["awb"] = {"Awa (Papooey Guinea Noa)"}, ["awc"] = {"Cicipu"}, ["awd"] = {"çhengaghyn Arawakagh"}, ["awe"] = {"Awetí"}, ["awg"] = {"Anguthimri"}, ["awh"] = {"Awbono"}, ["awi"] = {"Aekyom"}, ["awk"] = {"Awabakal"}, ["awm"] = {"Arawum"}, ["awn"] = {"Awngi"}, ["awo"] = {"Awak"}, ["awr"] = {"Awera"}, ["aws"] = {"Awyu Yiass"}, ["awt"] = {"Araweté"}, ["awu"] = {"Awyu Meanagh"}, ["awv"] = {"Jair Awyu"}, ["aww"] = {"Awun"}, ["awx"] = {"Awara"}, ["awy"] = {"Edera Awyu"}, ["axb"] = {"Abipon"}, ["axe"] = {"Ayerrerenge"}, ["axg"] = {"Mato Grosso Arára"}, ["axk"] = {"Yaka (Pobblaght yn Affrick Veanagh)"}, ["axl"] = {"Arandish Yiass Injil"}, ["axm"] = {"Armeanish Veanagh"}, ["axx"] = {"Xârâgurè"}, ["aya"] = {"Awar"}, ["ayb"] = {"Ayizo Gbe"}, ["ayc"] = {"Aymarish Yiass"}, ["ayd"] = {"Ayabadhu"}, ["aye"] = {"Ayere"}, ["ayg"] = {"Ginyanga"}, ["ayh"] = {"Arabish Hadram"}, ["ayi"] = {"Leyigha"}, ["ayk"] = {"Akuku"}, ["ayl"] = {"Arabish Leebagh"}, ["ayn"] = {"Arabish Sanaanagh"}, ["ayo"] = {"Ayoreo"}, ["ayp"] = {"Arabish Vesopotaamagh Hwoaie"}, ["ayq"] = {"Ayi (Papooey Guinea Noa)"}, ["ayr"] = {"Aymarish Veanagh"}, ["ays"] = {"Sorsogon Ayta"}, ["ayt"] = {"Magbukun Ayta"}, ["ayu"] = {"Ayu"}, ["ayz"] = {"Mai Brat"}, ["aza"] = {"Azha"}, ["azb"] = {"Asserbajaanish Yiass"}, ["azc"] = {"çhengaghyn Uto-Asteckagh"}, ["azd"] = {"Nahuatl Durango Hiar"}, ["azg"] = {"San Pedro Amuzgos Amuzgo"}, ["azj"] = {"Asserbajaanish Hwoaie"}, ["azm"] = {"Ipalapa Amuzgo"}, ["azn"] = {"Nahuatl Durango Heear"}, ["azo"] = {"Awing"}, ["azt"] = {"Faire Atta"}, ["azz"] = {"Nahuatl Puebla Sleitoil"}, ["baa"] = {"Babatana"}, ["bab"] = {"Bainouk-Gunyuño"}, ["bac"] = {"Badui"}, ["bad"] = {"çhengaghyn Banda"}, ["bae"] = {"Baré"}, ["baf"] = {"Nubaca"}, ["bag"] = {"Tuki"}, ["bah"] = {"Creeole Baarle ny Bahamaghyn"}, ["bai"] = {"çhengaghyn Bamileke"}, ["baj"] = {"Barakai"}, ["bal"] = {"Balooçhish"}, ["ban"] = {"Balinish"}, ["bao"] = {"Waimaha"}, ["bap"] = {"Bantawa"}, ["bar"] = {"Baveyrish"}, ["bas"] = {"Basa (Cameroon)"}, ["bat"] = {"çhengaghyn Baltagh"}, ["bau"] = {"Bada (y Naigeer)"}, ["bav"] = {"Vengo"}, ["baw"] = {"Bambili-Bambui"}, ["bax"] = {"Bamun"}, ["bay"] = {"Batuley"}, ["bba"] = {"Baatonum"}, ["bbb"] = {"Barai"}, ["bbc"] = {"Batak Toba"}, ["bbd"] = {"Bau"}, ["bbe"] = {"Bangba"}, ["bbf"] = {"Baibai"}, ["bbg"] = {"Barama"}, ["bbh"] = {"Bugan"}, ["bbi"] = {"Barombi"}, ["bbj"] = {"Ghomálá'"}, ["bbk"] = {"Babanki"}, ["bbl"] = {"Bats"}, ["bbm"] = {"Babango"}, ["bbn"] = {"Uneapa"}, ["bbo"] = {"Bobo Madaré Hwoaie", "Konabéré"}, ["bbp"] = {"Banda Veanagh Heear"}, ["bbq"] = {"Bamali"}, ["bbr"] = {"Girawa"}, ["bbs"] = {"Bakpinka"}, ["bbt"] = {"Mburku"}, ["bbu"] = {"Kulung (y Naigeer)"}, ["bbv"] = {"Karnai"}, ["bbw"] = {"Baba"}, ["bbx"] = {"Bubia"}, ["bby"] = {"Befang"}, ["bca"] = {"Bai Meanagh"}, ["bcb"] = {"Bainouk-Samik"}, ["bcc"] = {"Balooçhish Yiass"}, ["bcd"] = {"Babar Hwoaie"}, ["bce"] = {"Bamenyam"}, ["bcf"] = {"Bamu"}, ["bcg"] = {"Baga Pokur"}, ["bch"] = {"Bariai"}, ["bci"] = {"Baoulé"}, ["bcj"] = {"Bardi"}, ["bck"] = {"Bunuba"}, ["bcl"] = {"Bikolish Veanagh"}, ["bcm"] = {"Bannoni"}, ["bcn"] = {"Bali (y Naigeer)"}, ["bco"] = {"Kaluli"}, ["bcp"] = {"Bali (Pobblaght Gheynlagh y Chongo)"}, ["bcq"] = {"Bench"}, ["bcr"] = {"Babine"}, ["bcs"] = {"Kohumono"}, ["bct"] = {"Bendi"}, ["bcu"] = {"Awad Bing"}, ["bcv"] = {"Shoo-Minda-Nye"}, ["bcw"] = {"Bana"}, ["bcy"] = {"Bacama"}, ["bcz"] = {"Bainouk-Gunyaamolo"}, ["bda"] = {"Bayot"}, ["bdb"] = {"Basap"}, ["bdc"] = {"Emberá-Baudó"}, ["bdd"] = {"Bunama"}, ["bde"] = {"Bade"}, ["bdf"] = {"Biage"}, ["bdg"] = {"Bonggi"}, ["bdh"] = {"Baka (y Toodaan Yiass)"}, ["bdi"] = {"Burun"}, ["bdj"] = {"Bai (y Toodaan Yiass)", "Bai"}, ["bdk"] = {"Budukh"}, ["bdl"] = {"Bajau Indoneeshagh"}, ["bdm"] = {"Buduma"}, ["bdn"] = {"Baldemu"}, ["bdo"] = {"Morom"}, ["bdp"] = {"Bende"}, ["bdq"] = {"Bahnar"}, ["bdr"] = {"Bajau y Choose Heear"}, ["bds"] = {"Burunge"}, ["bdt"] = {"Bokoto"}, ["bdu"] = {"Oroko"}, ["bdv"] = {"Bodo Parja"}, ["bdw"] = {"Baham"}, ["bdx"] = {"Budong-Budong"}, ["bdy"] = {"Bandjalang"}, ["bdz"] = {"Badeshi"}, ["bea"] = {"Beaver"}, ["beb"] = {"Bebele"}, ["bec"] = {"Iceve-Maci"}, ["bed"] = {"Bedoanas"}, ["bee"] = {"Byangsi"}, ["bef"] = {"Benabena"}, ["beg"] = {"Belait"}, ["beh"] = {"Biali"}, ["bei"] = {"Bekati'"}, ["bej"] = {"Beja", "Bedawiyet"}, ["bek"] = {"Bebeli"}, ["bem"] = {"Bemba (y Tambia)"}, ["beo"] = {"Beami"}, ["bep"] = {"Besoa"}, ["beq"] = {"Beembe"}, ["ber"] = {"çhengaghyn Berberagh"}, ["bes"] = {"Besme"}, ["bet"] = {"Guiberoua Béte"}, ["beu"] = {"Blagar"}, ["bev"] = {"Daloa Bété"}, ["bew"] = {"Betawi"}, ["bex"] = {"Jur Modo"}, ["bey"] = {"Beli (Papooey Guinea Noa)"}, ["bez"] = {"Bena (Tanzania)"}, ["bfa"] = {"Bari"}, ["bfb"] = {"Pauri Bareli"}, ["bfc"] = {"Panyi Bai", "Bai Hwoaie"}, ["bfd"] = {"Bafut"}, ["bfe"] = {"Betaf", "Tena"}, ["bff"] = {"Bofi"}, ["bfg"] = {"Busang Kayan"}, ["bfh"] = {"Blafe"}, ["bfi"] = {"Çhengey Chowree Ghoaldagh"}, ["bfj"] = {"Bafanji"}, ["bfk"] = {"Çhengey Chowree Ban Khor"}, ["bfl"] = {"Banda-Ndélé"}, ["bfm"] = {"Mmen"}, ["bfn"] = {"Bunak"}, ["bfo"] = {"Malba Birifor"}, ["bfp"] = {"Beba"}, ["bfq"] = {"Badaga"}, ["bfr"] = {"Bazigar"}, ["bfs"] = {"Bai Yiass"}, ["bft"] = {"Balti"}, ["bfu"] = {"Gahri"}, ["bfw"] = {"Bondo"}, ["bfx"] = {"Bantayanon"}, ["bfy"] = {"Bagheli"}, ["bfz"] = {"Mahasu Pahari"}, ["bga"] = {"Gwamhi-Wuri"}, ["bgb"] = {"Bobongko"}, ["bgc"] = {"Haryanvi"}, ["bgd"] = {"Rathwi Bareli"}, ["bge"] = {"Bauria"}, ["bgf"] = {"Bangandu"}, ["bgg"] = {"Bugun"}, ["bgi"] = {"Giangan"}, ["bgj"] = {"Bangolan"}, ["bgk"] = {"Bit", "Buxinhua"}, ["bgl"] = {"Bo (y Laos)"}, ["bgn"] = {"Balooçhish"}, ["bgo"] = {"Baga Koga"}, ["bgp"] = {"Balooçhish Hiar"}, ["bgq"] = {"Bagri"}, ["bgr"] = {"Bawm Chin"}, ["bgs"] = {"Tagabawa"}, ["bgt"] = {"Bughotu"}, ["bgu"] = {"Mbongno"}, ["bgv"] = {"Warkay-Bipim"}, ["bgw"] = {"Bhatri"}, ["bgx"] = {"Turkish Ghaugaussagh Balkanagh"}, ["bgy"] = {"Benggoi"}, ["bgz"] = {"Banggai"}, ["bha"] = {"Bharia"}, ["bhb"] = {"Bhili"}, ["bhc"] = {"Biga"}, ["bhd"] = {"Bhadrawahi"}, ["bhe"] = {"Bhaya"}, ["bhf"] = {"Odiai"}, ["bhg"] = {"Binandere"}, ["bhh"] = {"Bukharic"}, ["bhi"] = {"Bhilali"}, ["bhj"] = {"Bahing"}, ["bhl"] = {"Bimin"}, ["bhm"] = {"Bathari"}, ["bhn"] = {"Noa-Aramaaish Bohtan"}, ["bho"] = {"Bhojpuri"}, ["bhp"] = {"Bima"}, ["bhq"] = {"Tukang Besi South"}, ["bhr"] = {"Bara Malagasy"}, ["bhs"] = {"Buwal"}, ["bht"] = {"Bhattiyali"}, ["bhu"] = {"Bhunjia"}, ["bhv"] = {"Bahau"}, ["bhw"] = {"Biak"}, ["bhx"] = {"Bhalay"}, ["bhy"] = {"Bhele"}, ["bhz"] = {"Bada (yn Indoneesh)"}, ["bia"] = {"Badimaya"}, ["bib"] = {"Bissa", "Bisa"}, ["bid"] = {"Bidiyo"}, ["bie"] = {"Bepour"}, ["bif"] = {"Biafada"}, ["big"] = {"Biangai"}, ["bik"] = {"Bikol"}, ["bil"] = {"Bile"}, ["bim"] = {"Bimoba"}, ["bin"] = {"Bini", "Edo"}, ["bio"] = {"Nai"}, ["bip"] = {"Bila"}, ["biq"] = {"Bipi"}, ["bir"] = {"Bisorio"}, ["bit"] = {"Berinomo"}, ["biu"] = {"Biete"}, ["biv"] = {"Birifor Yiass"}, ["biw"] = {"Kol (Cameroon)"}, ["bix"] = {"Bijori"}, ["biy"] = {"Birhor"}, ["biz"] = {"Baloi"}, ["bja"] = {"Budza"}, ["bjb"] = {"Banggarla"}, ["bjc"] = {"Bariji"}, ["bje"] = {"Biao-Jiao Mien"}, ["bjf"] = {"Barzani Jewish Neo-Aramaic"}, ["bjg"] = {"Bidyogo"}, ["bjh"] = {"Bahinemo"}, ["bji"] = {"Burji"}, ["bjj"] = {"Kanauji"}, ["bjk"] = {"Barok"}, ["bjl"] = {"Bulu (Papooey Guinea Noa)"}, ["bjm"] = {"Bajelani"}, ["bjn"] = {"Banjar"}, ["bjo"] = {"Banda Jiass Veanagh"}, ["bjp"] = {"Fanamaket"}, ["bjr"] = {"Binumarien"}, ["bjs"] = {"Bajan"}, ["bjt"] = {"Balanta-Ganja"}, ["bju"] = {"Busuu"}, ["bjv"] = {"Bedjond"}, ["bjw"] = {"Bakwé"}, ["bjx"] = {"Banao Itneg"}, ["bjy"] = {"Bayali"}, ["bjz"] = {"Baruga"}, ["bka"] = {"Kyak"}, ["bkc"] = {"Baka (Cameroon)"}, ["bkd"] = {"Binukid", "Talaandig"}, ["bkf"] = {"Beeke"}, ["bkg"] = {"Buraka"}, ["bkh"] = {"Bakoko"}, ["bki"] = {"Baki"}, ["bkj"] = {"Pande"}, ["bkk"] = {"Brokskat"}, ["bkl"] = {"Berik"}, ["bkm"] = {"Kom (Cameroon)"}, ["bkn"] = {"Bukitan"}, ["bko"] = {"Kwa'"}, ["bkp"] = {"Boko (Pobblaght Gheynlagh y Chongo)"}, ["bkq"] = {"Bakairí"}, ["bkr"] = {"Bakumpai"}, ["bks"] = {"Sorsoganon Hwoaie"}, ["bkt"] = {"Boloki"}, ["bku"] = {"Buhid"}, ["bkv"] = {"Bekwarra"}, ["bkw"] = {"Bekwel"}, ["bkx"] = {"Baikeno"}, ["bky"] = {"Bokyi"}, ["bkz"] = {"Bungku"}, ["bla"] = {"Siksika"}, ["blb"] = {"Bilua"}, ["blc"] = {"Bella Coola"}, ["bld"] = {"Bolango"}, ["ble"] = {"Balanta-Kentohe"}, ["blf"] = {"Buol"}, ["blh"] = {"Kuwaa"}, ["bli"] = {"Bolia"}, ["blj"] = {"Bolongan"}, ["blk"] = {"Pa'o Karen", "Pa'O"}, ["bll"] = {"Biloxi"}, ["blm"] = {"Beli (y Toodaan Yiass)"}, ["bln"] = {"Bikol Catanduanes Yiass"}, ["blo"] = {"Anii"}, ["blp"] = {"Blablanga"}, ["blq"] = {"Baluan-Pam"}, ["blr"] = {"Blang"}, ["bls"] = {"Balaesang"}, ["blt"] = {"Tai Dam"}, ["blv"] = {"Kibala", "Bolo"}, ["blw"] = {"Balangao"}, ["blx"] = {"Mag-Indi Ayta"}, ["bly"] = {"Notre"}, ["blz"] = {"Balantak"}, ["bma"] = {"Lame"}, ["bmb"] = {"Bembe"}, ["bmc"] = {"Biem"}, ["bmd"] = {"Baga Manduri"}, ["bme"] = {"Limassa"}, ["bmf"] = {"Bom-Kim"}, ["bmg"] = {"Bamwe"}, ["bmh"] = {"Kein"}, ["bmi"] = {"Bagirmi"}, ["bmj"] = {"Bote-Majhi"}, ["bmk"] = {"Ghayavi"}, ["bml"] = {"Bomboli"}, ["bmm"] = {"Malagasish Betsimisaraka Hwoaie"}, ["bmn"] = {"Bina (Papooey Guinea Noa)"}, ["bmo"] = {"Bambalang"}, ["bmp"] = {"Bulgebi"}, ["bmq"] = {"Bomu"}, ["bmr"] = {"Muinane"}, ["bms"] = {"Bilma Kanuri"}, ["bmt"] = {"Biao Mon"}, ["bmu"] = {"Somba-Siawari"}, ["bmv"] = {"Bum"}, ["bmw"] = {"Bomwali"}, ["bmx"] = {"Baimak"}, ["bmz"] = {"Baramu"}, ["bna"] = {"Bonerate"}, ["bnb"] = {"Bookan"}, ["bnc"] = {"Bontok"}, ["bnd"] = {"Banda (yn Indoneesh)"}, ["bne"] = {"Bintauna"}, ["bnf"] = {"Masiwang"}, ["bng"] = {"Benga"}, ["bni"] = {"Bangi"}, ["bnj"] = {"Tawbuid Hiar"}, ["bnk"] = {"Bierebo"}, ["bnl"] = {"Boon"}, ["bnm"] = {"Batanga"}, ["bnn"] = {"Bunun"}, ["bno"] = {"Bantoanon"}, ["bnp"] = {"Bola"}, ["bnq"] = {"Bantik"}, ["bnr"] = {"Butmas-Tur"}, ["bns"] = {"Bundeli"}, ["bnt"] = {"çhengaghyn Bantu"}, ["bnu"] = {"Bentong"}, ["bnv"] = {"Bonerif", "Beneraf", "Edwas"}, ["bnw"] = {"Bisis"}, ["bnx"] = {"Bangubangu"}, ["bny"] = {"Bintulu"}, ["bnz"] = {"Beezen"}, ["boa"] = {"Bora"}, ["bob"] = {"Aweer"}, ["boe"] = {"Mundabli"}, ["bof"] = {"Bolon"}, ["bog"] = {"Çhengey Chowree Bamako"}, ["boh"] = {"Boma"}, ["boi"] = {"Barbareño"}, ["boj"] = {"Anjam"}, ["bok"] = {"Bonjo"}, ["bol"] = {"Bole"}, ["bom"] = {"Berom"}, ["bon"] = {"Bine"}, ["boo"] = {"Tiemacèwè Bozo"}, ["bop"] = {"Bonkiman"}, ["boq"] = {"Bogaya"}, ["bor"] = {"Borôro"}, ["bot"] = {"Bongo"}, ["bou"] = {"Bondei"}, ["bov"] = {"Tuwuli"}, ["bow"] = {"Rema"}, ["box"] = {"Buamu"}, ["boy"] = {"Bodo (Pobblaght yn Affrick Veanagh)"}, ["boz"] = {"Tiéyaxo Bozo"}, ["bpa"] = {"Daakaka"}, ["bpc"] = {"Mbuk"}, ["bpd"] = {"Banda-Banda"}, ["bpe"] = {"Bauni"}, ["bpg"] = {"Bonggo"}, ["bph"] = {"Botlikh"}, ["bpi"] = {"Bagupi"}, ["bpj"] = {"Binji"}, ["bpk"] = {"Orowe", "'Ôrôê"}, ["bpl"] = {"Broome Pearling Lugger Pidgin"}, ["bpm"] = {"Biyom"}, ["bpn"] = {"Dzao Min"}, ["bpo"] = {"Anasi"}, ["bpp"] = {"Kaure"}, ["bpq"] = {"Malayish Banda"}, ["bpr"] = {"Koronadal Blaan"}, ["bps"] = {"Sarangani Blaan"}, ["bpt"] = {"Barrow Point"}, ["bpu"] = {"Bongu"}, ["bpv"] = {"Bian Marind"}, ["bpw"] = {"Bo (Papooey Guinea Noa)"}, ["bpx"] = {"Palya Bareli"}, ["bpy"] = {"Bishnupriya"}, ["bpz"] = {"Bilba"}, ["bqa"] = {"Tchumbuli"}, ["bqb"] = {"Bagusa"}, ["bqc"] = {"Boko (Benin)", "Boo"}, ["bqd"] = {"Bung"}, ["bqf"] = {"Baga Kaloum"}, ["bqg"] = {"Bago-Kusuntu"}, ["bqh"] = {"Baima"}, ["bqi"] = {"Bakhtiari"}, ["bqj"] = {"Bandial"}, ["bqk"] = {"Banda-Mbrès"}, ["bql"] = {"Bilakura"}, ["bqm"] = {"Wumboko"}, ["bqn"] = {"Çhengey Chowree Vulgeyragh"}, ["bqo"] = {"Balo"}, ["bqp"] = {"Busa"}, ["bqq"] = {"Biritai"}, ["bqr"] = {"Burusu"}, ["bqs"] = {"Bosngun"}, ["bqt"] = {"Bamukumbit"}, ["bqu"] = {"Boguru"}, ["bqv"] = {"Koro Wachi", "Begbere-Ejar"}, ["bqw"] = {"Buru (y Naigeer)"}, ["bqx"] = {"Baangi"}, ["bqy"] = {"Çhengey Chowree Bengkala"}, ["bqz"] = {"Bakaka"}, ["bra"] = {"Braj"}, ["brb"] = {"Brao", "Lave"}, ["brc"] = {"Creeole Ollanish Berbice"}, ["brd"] = {"Baraamu"}, ["brf"] = {"Bira"}, ["brg"] = {"Baure"}, ["brh"] = {"Brahui"}, ["bri"] = {"Mokpwe"}, ["brj"] = {"Bieria"}, ["brk"] = {"Birked"}, ["brl"] = {"Birwa"}, ["brm"] = {"Barambu"}, ["brn"] = {"Boruca"}, ["bro"] = {"Brokkat"}, ["brp"] = {"Barapasi"}, ["brq"] = {"Breri"}, ["brr"] = {"Birao"}, ["brs"] = {"Baras"}, ["brt"] = {"Bitare"}, ["bru"] = {"Bru Hiar"}, ["brv"] = {"Bru Heear"}, ["brw"] = {"Bellari"}, ["brx"] = {"Bodo (yn Injey)"}, ["bry"] = {"Burui"}, ["brz"] = {"Bilbil"}, ["bsa"] = {"Abinomn"}, ["bsb"] = {"Brunei Bisaya"}, ["bsc"] = {"Bassari", "Oniyan"}, ["bse"] = {"Wushi"}, ["bsf"] = {"Bauchi"}, ["bsg"] = {"Bashkardish"}, ["bsh"] = {"Kati"}, ["bsi"] = {"Bassossi"}, ["bsj"] = {"Bangwinji"}, ["bsk"] = {"Burushaski"}, ["bsl"] = {"Basa-Gumna"}, ["bsm"] = {"Busami"}, ["bsn"] = {"Barasana-Eduria"}, ["bso"] = {"Buso"}, ["bsp"] = {"Baga Sitemu"}, ["bsq"] = {"Bassa"}, ["bsr"] = {"Bassa-Kontagora"}, ["bss"] = {"Akoose"}, ["bst"] = {"Basketo"}, ["bsu"] = {"Bahonsuai"}, ["bsv"] = {"Baga Sobané"}, ["bsw"] = {"Baiso"}, ["bsx"] = {"Yangkam"}, ["bsy"] = {"Sabah Bisaya"}, ["bta"] = {"Bata"}, ["btc"] = {"Bati (Cameroon)"}, ["btd"] = {"Batak Dairi"}, ["bte"] = {"Gamo-Ningi"}, ["btf"] = {"Birgit"}, ["btg"] = {"Gagnoa Bété"}, ["bth"] = {"Biatah Bidayuh"}, ["bti"] = {"Burate"}, ["btj"] = {"Malayish Vacanagh"}, ["btk"] = {"çhengaghyn Batak"}, ["btm"] = {"Batak Mandailing"}, ["btn"] = {"Ratagnon"}, ["bto"] = {"Rinconada Bikol"}, ["btp"] = {"Budibud"}, ["btq"] = {"Batek"}, ["btr"] = {"Baetora"}, ["bts"] = {"Batak Simalungun"}, ["btt"] = {"Bete-Bendi"}, ["btu"] = {"Batu"}, ["btv"] = {"Bateri"}, ["btw"] = {"Butuanon"}, ["btx"] = {"Batak Karo"}, ["bty"] = {"Bobot"}, ["btz"] = {"Batak Alas-Kluet"}, ["bua"] = {"Buryatish"}, ["bub"] = {"Bua"}, ["buc"] = {"Bushi"}, ["bud"] = {"Ntcham"}, ["bue"] = {"Beothuk"}, ["buf"] = {"Bushoong"}, ["bug"] = {"Buginish"}, ["buh"] = {"Younuo Bunu"}, ["bui"] = {"Bongili"}, ["buj"] = {"Basa-Gurmana"}, ["buk"] = {"Bugawac"}, ["bum"] = {"Bulu (Cameroon)"}, ["bun"] = {"Sherbro"}, ["buo"] = {"Terei"}, ["bup"] = {"Busoa"}, ["buq"] = {"Brem"}, ["bus"] = {"Bokobaru"}, ["but"] = {"Bungain"}, ["buu"] = {"Budu"}, ["buv"] = {"Bun"}, ["buw"] = {"Bubi"}, ["bux"] = {"Boghom"}, ["buy"] = {"Bullom So"}, ["buz"] = {"Bukwen"}, ["bva"] = {"Barein"}, ["bvb"] = {"Bube"}, ["bvc"] = {"Baelelea"}, ["bvd"] = {"Baeggu"}, ["bve"] = {"Malayish Berau"}, ["bvf"] = {"Boor"}, ["bvg"] = {"Bonkeng"}, ["bvh"] = {"Bure"}, ["bvi"] = {"Belanda Viri"}, ["bvj"] = {"Baan"}, ["bvk"] = {"Bukat"}, ["bvl"] = {"Çh Chowree Voliviagh"}, ["bvm"] = {"Bamunka"}, ["bvn"] = {"Buna"}, ["bvo"] = {"Bolgo"}, ["bvp"] = {"Bumang"}, ["bvq"] = {"Birri"}, ["bvr"] = {"Burarra"}, ["bvt"] = {"Bati (yn Indoneesh)"}, ["bvu"] = {"Malayish Bukit"}, ["bvv"] = {"Baniva"}, ["bvw"] = {"Boga"}, ["bvx"] = {"Dibole"}, ["bvy"] = {"Baybayanon"}, ["bvz"] = {"Bauzi"}, ["bwa"] = {"Bwatoo"}, ["bwb"] = {"Namosi-Naitasiri-Serua"}, ["bwc"] = {"Bwile"}, ["bwd"] = {"Bwaidoka"}, ["bwe"] = {"Bwe Karen"}, ["bwf"] = {"Boselewa"}, ["bwg"] = {"Barwe"}, ["bwh"] = {"Bishuo"}, ["bwi"] = {"Baniwa"}, ["bwj"] = {"Láá Láá Bwamu"}, ["bwk"] = {"Bauwaki"}, ["bwl"] = {"Bwela"}, ["bwm"] = {"Biwat"}, ["bwn"] = {"Wunai Bunu"}, ["bwo"] = {"Boro (yn Eetoip)", "Borna (yn Eetoip)"}, ["bwp"] = {"Mandobo Bawah"}, ["bwq"] = {"Bobo Madaré Yiass"}, ["bwr"] = {"Bura-Pabir"}, ["bws"] = {"Bomboma"}, ["bwt"] = {"Bafaw-Balong"}, ["bwu"] = {"Buli (y Ghaney)"}, ["bww"] = {"Bwa"}, ["bwx"] = {"Bu-Nao Bunu"}, ["bwy"] = {"Cwi Bwamu"}, ["bwz"] = {"Bwisi"}, ["bxa"] = {"Tairaha"}, ["bxb"] = {"Belanda Bor"}, ["bxc"] = {"Molengue"}, ["bxd"] = {"Pela"}, ["bxe"] = {"Birale"}, ["bxf"] = {"Bilur", "Minigir"}, ["bxg"] = {"Bangala"}, ["bxh"] = {"Buhutu"}, ["bxi"] = {"Pirlatapa"}, ["bxj"] = {"Bayungu"}, ["bxk"] = {"Bukusu", "Lubukusu"}, ["bxl"] = {"Jalkunan"}, ["bxm"] = {"Buryatish Vongoilagh"}, ["bxn"] = {"Burduna"}, ["bxo"] = {"Barikanchi"}, ["bxp"] = {"Bebil"}, ["bxq"] = {"Beele"}, ["bxr"] = {"Buryatish Rooshagh"}, ["bxs"] = {"Busam"}, ["bxu"] = {"Buryatish Heenagh"}, ["bxv"] = {"Berakou"}, ["bxw"] = {"Bankagooma"}, ["bxz"] = {"Binahari"}, ["bya"] = {"Batak"}, ["byb"] = {"Bikya"}, ["byc"] = {"Ubaghara"}, ["byd"] = {"Benyadu'"}, ["bye"] = {"Pouye"}, ["byf"] = {"Bete"}, ["byg"] = {"Baygo"}, ["byh"] = {"Bhujel"}, ["byi"] = {"Buyu"}, ["byj"] = {"Bina (y Naigeer)"}, ["byk"] = {"Biao"}, ["byl"] = {"Bayono"}, ["bym"] = {"Bidjara"}, ["byn"] = {"Bilin", "Blin"}, ["byo"] = {"Biyo"}, ["byp"] = {"Bumaji"}, ["byq"] = {"Basay"}, ["byr"] = {"Baruya", "Yipma"}, ["bys"] = {"Burak"}, ["byt"] = {"Berti"}, ["byv"] = {"Medumba"}, ["byw"] = {"Belhariya"}, ["byx"] = {"Qaqet"}, ["byz"] = {"Banaro"}, ["bza"] = {"Bandi"}, ["bzb"] = {"Andio"}, ["bzc"] = {"Malagasish Betsimisaraka Yiass"}, ["bzd"] = {"Bribri"}, ["bze"] = {"Jenaama Bozo"}, ["bzf"] = {"Boikin"}, ["bzg"] = {"Babuza"}, ["bzh"] = {"Mapos Buang"}, ["bzi"] = {"Bisu"}, ["bzj"] = {"Creeole Baarle Beleeshagh"}, ["bzk"] = {"Creeole Baarle Nickeraagagh"}, ["bzl"] = {"Boano (Sulawesi)"}, ["bzm"] = {"Bolondo"}, ["bzn"] = {"Boano (Maluku)"}, ["bzo"] = {"Bozaba"}, ["bzp"] = {"Kemberano"}, ["bzq"] = {"Buli (yn Indoneesh)"}, ["bzr"] = {"Biri"}, ["bzs"] = {"Çhengey Chowree Vrasseelagh"}, ["bzt"] = {"Brithenig"}, ["bzu"] = {"Burmeso"}, ["bzv"] = {"Naami"}, ["bzw"] = {"Basa (y Naigeer)"}, ["bzx"] = {"Kɛlɛngaxo Bozo"}, ["bzy"] = {"Obanliku"}, ["bzz"] = {"Evant"}, ["caa"] = {"Chortí"}, ["cab"] = {"Garifunish"}, ["cac"] = {"Chuj"}, ["cad"] = {"Caddo"}, ["cae"] = {"Lehar", "Laalaa"}, ["caf"] = {"Carrier Yiass"}, ["cag"] = {"Nivaclé"}, ["cah"] = {"Cahuarano"}, ["cai"] = {"çhengaghyn Injinagh Americaanagh Meanagh"}, ["caj"] = {"Chané"}, ["cak"] = {"Kaqchikel", "Cakchiquel"}, ["cal"] = {"Carolinish"}, ["cam"] = {"Cemuhî"}, ["can"] = {"Chambri"}, ["cao"] = {"Chácobo"}, ["cap"] = {"Chipaya"}, ["caq"] = {"Car Nicobarese"}, ["car"] = {"Caribish Galibi"}, ["cas"] = {"Tsimané"}, ["cau"] = {"çhengaghyn Coagaashagh"}, ["cav"] = {"Cavineña"}, ["caw"] = {"Callawalla"}, ["cax"] = {"Chiquitano"}, ["cay"] = {"Cayuga"}, ["caz"] = {"Canichana"}, ["cba"] = {"çhengaghyn Çhibçhagh"}, ["cbb"] = {"Cabiyarí"}, ["cbc"] = {"Carapana"}, ["cbd"] = {"Carijona"}, ["cbg"] = {"Chimila"}, ["cbi"] = {"Chachi"}, ["cbj"] = {"Ede Cabe"}, ["cbk"] = {"Chavacano"}, ["cbl"] = {"Bualkhaw Chin"}, ["cbn"] = {"Nyahkur"}, ["cbo"] = {"Izora"}, ["cbq"] = {"Tsucuba", "Cuba"}, ["cbr"] = {"Cashibo-Cacataibo"}, ["cbs"] = {"Cashinahua"}, ["cbt"] = {"Chayahuita"}, ["cbu"] = {"Candoshi-Shapra"}, ["cbv"] = {"Cacua"}, ["cbw"] = {"Kinabalish"}, ["cby"] = {"Carabayo"}, ["ccc"] = {"Chamicuro"}, ["ccd"] = {"Creeole Cafundo"}, ["cce"] = {"Chopi"}, ["ccg"] = {"Samba Daka"}, ["cch"] = {"Atsam"}, ["ccj"] = {"Kasanga"}, ["ccl"] = {"Cutchi-Swahili"}, ["ccm"] = {"Creeole Malayish Malacca"}, ["ccn"] = {"çhengaghyn Coagaashagh Hwoaie"}, ["cco"] = {"Comaltepec Chinantec"}, ["ccp"] = {"Chakma"}, ["ccr"] = {"Cacaopera"}, ["ccs"] = {"çhengaghyn Coagaashagh Yiass"}, ["cda"] = {"Choni"}, ["cdc"] = {"çhengaghyn Shadagh"}, ["cdd"] = {"çhengaghyn Caddoagh"}, ["cde"] = {"Chenchu"}, ["cdf"] = {"Chiru"}, ["cdh"] = {"Chambeali"}, ["cdi"] = {"Chodri"}, ["cdj"] = {"Churahi"}, ["cdm"] = {"Chepang"}, ["cdn"] = {"Chaudangsi"}, ["cdo"] = {"Sheenish Min Dong"}, ["cdr"] = {"Cinda-Regi-Tiyal"}, ["cds"] = {"Çhengey Chowree Hadagh"}, ["cdy"] = {"Chadong"}, ["cdz"] = {"Koda"}, ["cea"] = {"Chehalis Injil"}, ["ceb"] = {"Cebuano"}, ["ceg"] = {"Chamacoco"}, ["cek"] = {"Khumi Chin Hiar"}, ["cel"] = {"çhengaghyn Celtiagh"}, ["cen"] = {"Cen"}, ["cet"] = {"Centúúm"}, ["cey"] = {"Ekai Chin"}, ["cfa"] = {"Dijim-Bwilim"}, ["cfd"] = {"Cara"}, ["cfg"] = {"Como Karim"}, ["cfm"] = {"Falam Chin"}, ["cga"] = {"Changriwa"}, ["cgc"] = {"Kagayanen"}, ["cgg"] = {"Chiga"}, ["cgk"] = {"Chocangacakha"}, ["chb"] = {"Chibcha"}, ["chc"] = {"Catawba"}, ["chd"] = {"Chontal Oaxaca Sleitoil"}, ["chf"] = {"Chontal Tabasco"}, ["chg"] = {"Chagatai"}, ["chh"] = {"Chinook"}, ["chj"] = {"Ojitlán Chinantec"}, ["chk"] = {"Chuukese"}, ["chl"] = {"Cahuilla"}, ["chm"] = {"Marish (y Roosh)"}, ["chn"] = {"Chinookish"}, ["cho"] = {"Shoctawish"}, ["chp"] = {"Chipewyish", "Dene Suline"}, ["chq"] = {"Chinantec Quiotepec"}, ["chr"] = {"Sherokeeish"}, ["cht"] = {"Cholón"}, ["chw"] = {"Chuwabu"}, ["chx"] = {"Chantyal"}, ["chy"] = {"Cheyenne"}, ["chz"] = {"Chinantec Ozumacín"}, ["cia"] = {"Cia-Cia"}, ["cib"] = {"Ci Gbe"}, ["cic"] = {"Chickasawish"}, ["cid"] = {"Chimariko"}, ["cie"] = {"Cineni"}, ["cih"] = {"Chinali"}, ["cik"] = {"Chitkuli Kinnauri"}, ["cim"] = {"Cimbrish"}, ["cin"] = {"Cinta Larga"}, ["cip"] = {"Chiapanec"}, ["cir"] = {"Tiri", "Haméa", "Méa"}, ["ciw"] = {"Chippewa"}, ["ciy"] = {"Chaima"}, ["cja"] = {"Chamish Heear"}, ["cje"] = {"Chru"}, ["cjh"] = {"Chehalis Heose"}, ["cji"] = {"Chamalal"}, ["cjk"] = {"Chokwe"}, ["cjm"] = {"Chamish Hiar"}, ["cjn"] = {"Chenapish"}, ["cjo"] = {"Ashéninka Pajonal"}, ["cjp"] = {"Cabécar"}, ["cjs"] = {"Shor"}, ["cjv"] = {"Chuave"}, ["cjy"] = {"Sheenish Jinyu"}, ["ckb"] = {"Kurdish Veanagh"}, ["ckh"] = {"Chak"}, ["ckl"] = {"Cibak"}, ["ckm"] = {"Chakavish"}, ["ckn"] = {"Kaang Chin"}, ["cko"] = {"Anufo"}, ["ckq"] = {"Kajakse"}, ["ckr"] = {"Kairak"}, ["cks"] = {"Tayo"}, ["ckt"] = {"Shukçheeish"}, ["cku"] = {"Koasati"}, ["ckv"] = {"Kavalan"}, ["ckx"] = {"Caka"}, ["cky"] = {"Cakfem-Mushere"}, ["ckz"] = {"Çhengey Vestit Cakchiquel-Quiché"}, ["cla"] = {"Ron"}, ["clc"] = {"Chilcotin"}, ["cld"] = {"Noa-Aramaaish Haldeanagh"}, ["cle"] = {"Chinantec Lealao"}, ["clh"] = {"Chilisso"}, ["cli"] = {"Chakali"}, ["clj"] = {"Laitu Chin"}, ["clk"] = {"Idu-Mishmi"}, ["cll"] = {"Chala"}, ["clm"] = {"Clallam"}, ["clo"] = {"Chontal Oaxaca Injil"}, ["clt"] = {"Lautu Chin"}, ["clu"] = {"Caluyanun"}, ["clw"] = {"Chulym"}, ["cly"] = {"Chatino Sleitoil Hiar"}, ["cma"] = {"Maa"}, ["cmc"] = {"çhengaghyn Shamagh"}, ["cme"] = {"Cerma"}, ["cmg"] = {"Mongoilish Chlassicagh"}, ["cmi"] = {"Emberá-Chamí"}, ["cml"] = {"Campalagian"}, ["cmm"] = {"Michigamea"}, ["cmn"] = {"Sheenish Mandarin"}, ["cmo"] = {"Mnong Meanagh"}, ["cmr"] = {"Mro-Khimi Chin"}, ["cms"] = {"Messapic"}, ["cmt"] = {"Camtho"}, ["cna"] = {"Changthang"}, ["cnb"] = {"Chinbon Chin"}, ["cnc"] = {"Côông"}, ["cng"] = {"Qiang Hwoaie"}, ["cnh"] = {"Hakha Chin", "Haka Chin"}, ["cni"] = {"Asháninka"}, ["cnk"] = {"Khumi Chin"}, ["cnl"] = {"Lalana Chinantec"}, ["cno"] = {"Con"}, ["cnp"] = {"Sheenish Ping Hwoaie", "Pinghua Hwoaie"}, ["cnq"] = {"Chung"}, ["cnr"] = {"Montenegrish"}, ["cns"] = {"Asmatish Veanagh"}, ["cnt"] = {"Chinantec Tepetotutla"}, ["cnu"] = {"Chenoua"}, ["cnw"] = {"Ngawn Chin"}, ["cnx"] = {"Cornish Veanagh"}, ["coa"] = {"Malayish Ellanyn Cocos"}, ["cob"] = {"Chicomuceltec"}, ["coc"] = {"Cocopa"}, ["cod"] = {"Cocama-Cocamilla"}, ["coe"] = {"Koreguaje"}, ["cof"] = {"Colorado"}, ["cog"] = {"Chong"}, ["coh"] = {"Chonyi-Dzihana-Kauma", "Chichonyi-Chidzihana-Chikauma"}, ["coj"] = {"Cochimi"}, ["cok"] = {"Santa Teresa Cora"}, ["col"] = {"Columbia-Wenatchi"}, ["com"] = {"Comançheeish"}, ["con"] = {"Cofán"}, ["coo"] = {"Comox"}, ["cop"] = {"Coptish"}, ["coq"] = {"Coquille"}, ["cot"] = {"Caquinte"}, ["cou"] = {"Wamey"}, ["cov"] = {"Cao Miao"}, ["cow"] = {"Cowlitz"}, ["cox"] = {"Nanti"}, ["coz"] = {"Chochotec"}, ["cpa"] = {"Palantla Chinantec"}, ["cpb"] = {"Ucayali-Yurúa Ashéninka"}, ["cpc"] = {"Ajyíninka Apurucayali"}, ["cpe"] = {"creeoleyn as baarlaghyn brisht bunnit er y Vaarle"}, ["cpf"] = {"creeoleyn as baarlaghyn brisht bunnit er y Rangish"}, ["cpg"] = {"Greagish Cappadocia"}, ["cpi"] = {"Baarle Vrisht Heenagh"}, ["cpn"] = {"Cherepon"}, ["cpo"] = {"Kpeego"}, ["cpp"] = {"creeoleyn as baarlaghyn brisht bunnit er y Phortiugish"}, ["cps"] = {"Capiznon"}, ["cpu"] = {"Pichis Ashéninka"}, ["cpx"] = {"Sheenish Pu-Xian"}, ["cpy"] = {"Ashéninka Ucayali Yiass"}, ["cqd"] = {"Chuanqiandian Cluster Miao"}, ["cra"] = {"Chara"}, ["crb"] = {"Caribish Ellanagh"}, ["crc"] = {"Lonwolwol"}, ["crd"] = {"Coeur d'Alene"}, ["crf"] = {"Caramanta"}, ["crg"] = {"Michif"}, ["crh"] = {"Tatarish Chrimeeagh", "Turkish Chrimeeagh"}, ["cri"] = {"Sãotomense"}, ["crj"] = {"Creeish Hiar Yiass"}, ["crk"] = {"Creeish ny Strahyn"}, ["crl"] = {"Creeish Hiar Hwoaie"}, ["crm"] = {"Creeish Moose"}, ["crn"] = {"El Nayar Cora"}, ["cro"] = {"Crowish"}, ["crp"] = {"Creeoleyn as baarlaghyn brisht"}, ["crq"] = {"Iyo'wujwa Chorote"}, ["crr"] = {"Algonquiagh Carolina"}, ["crs"] = {"Creeole Frangish Seselwa"}, ["crt"] = {"Iyojwa'ja Chorote"}, ["crv"] = {"Chaura"}, ["crw"] = {"Chrau"}, ["crx"] = {"Carrier"}, ["cry"] = {"Cori"}, ["crz"] = {"Cruzeño"}, ["csa"] = {"Chinantec Chiltepec"}, ["csb"] = {"Kashoobish"}, ["csc"] = {"Çhengey Chowree Chataloanagh", "Lengua de señas catalana", "Llengua de Signes Catalana"}, ["csd"] = {"Çhengey Chowree Chiangmai"}, ["cse"] = {"Çhengey Chowree Heckagh"}, ["csf"] = {"Çhengey Chowree Choobagh"}, ["csg"] = {"Çhengey Chowree Hilleeagh"}, ["csh"] = {"Chin Asho"}, ["csi"] = {"Miwok Coose"}, ["csj"] = {"Chin Songlai"}, ["csk"] = {"Jola-Kasa"}, ["csl"] = {"Çhengey Chowree Heenagh"}, ["csm"] = {"Miwokish Sierra Veanagh"}, ["csn"] = {"Çhengey Chowree Cholombagh"}, ["cso"] = {"Chinantec Sochiapam", "Chinantec Sochiapan"}, ["csp"] = {"Sheenish Pink Yiass", "Pinghua Yiass"}, ["csq"] = {"Çhengey Chowree Chroitagh"}, ["csr"] = {"Çhengey Chowree Choose-verçhagh"}, ["css"] = {"Ohlone Yiass"}, ["cst"] = {"Ohlone Hwoaie"}, ["csu"] = {"çhengaghyn Soodaanagh Meanagh"}, ["csv"] = {"Chin Sumtu"}, ["csw"] = {"Creeish Ushlagh"}, ["csx"] = {"Çhengey Chowree Chamboydagh"}, ["csy"] = {"Siyin Chin"}, ["csz"] = {"Coos"}, ["cta"] = {"Tataltepec Chatino"}, ["ctc"] = {"Chetco"}, ["ctd"] = {"Chin Tedim"}, ["cte"] = {"Chinantec Tepinapa"}, ["ctg"] = {"Chittagonish"}, ["cth"] = {"Chin Thaiphum"}, ["ctl"] = {"Chinantec Tlacoatzintepec"}, ["ctm"] = {"Chitimacha"}, ["ctn"] = {"Chhintange"}, ["cto"] = {"Emberá-Catío"}, ["ctp"] = {"Chatino Sleitoil Heear"}, ["cts"] = {"Bikol Catanduanes Heear"}, ["ctt"] = {"Wayanad Chetti"}, ["ctu"] = {"Chol"}, ["cty"] = {"Moundadan Chetty"}, ["ctz"] = {"Chatino Zacatepec"}, ["cua"] = {"Cua"}, ["cub"] = {"Cubeo"}, ["cuc"] = {"Usila Chinantec"}, ["cuh"] = {"Chuka", "Gichuka"}, ["cui"] = {"Cuiba"}, ["cuj"] = {"Mashco Piro"}, ["cuk"] = {"San Blas Kuna"}, ["cul"] = {"Culina", "Kulina"}, ["cuo"] = {"Cumanagoto"}, ["cup"] = {"Cupeño"}, ["cuq"] = {"Cun"}, ["cur"] = {"Chhulung"}, ["cus"] = {"çhengaghyn Cushitagh"}, ["cut"] = {"Teutila Cuicatec"}, ["cuu"] = {"Tai Ya"}, ["cuv"] = {"Cuvok"}, ["cuw"] = {"Chukwa"}, ["cux"] = {"Tepeuxila Cuicatec"}, ["cuy"] = {"Cuitlatec"}, ["cvg"] = {"Chug"}, ["cvn"] = {"Valle Nacional Chinantec"}, ["cwa"] = {"Kabwa"}, ["cwb"] = {"Maindo"}, ["cwd"] = {"Creeish ny Keylljyn"}, ["cwe"] = {"Kwere"}, ["cwg"] = {"Chewong", "Cheq Wong"}, ["cwt"] = {"Kuwaataay"}, ["cxh"] = {"Cha'ari"}, ["cya"] = {"Nopala Chatino"}, ["cyb"] = {"Cayubaba"}, ["cyo"] = {"Cuyonon"}, ["czh"] = {"Sheenish Huizhou"}, ["czk"] = {"Knaanic"}, ["czn"] = {"Zenzontepec Chatino"}, ["czo"] = {"Sheenish Min Zhong"}, ["czt"] = {"Zotung Chin"}, ["daa"] = {"Dangaléat"}, ["dac"] = {"Dambi"}, ["dad"] = {"Marik"}, ["dae"] = {"Duupa"}, ["dag"] = {"Dagbani"}, ["dah"] = {"Gwahatike"}, ["dai"] = {"Day"}, ["daj"] = {"Dar Fur Daju"}, ["dak"] = {"Dakota"}, ["dal"] = {"Dahalo"}, ["dam"] = {"Damakawa"}, ["dao"] = {"Daai Chin"}, ["daq"] = {"Dandami Maria"}, ["dar"] = {"Dargwa"}, ["das"] = {"Daho-Doo"}, ["dau"] = {"Dar Sila Daju"}, ["dav"] = {"Taita", "Dawida"}, ["daw"] = {"Davawenyo"}, ["dax"] = {"Dayi"}, ["day"] = {"çhengaghyn Land Dayak"}, ["daz"] = {"Dao"}, ["dba"] = {"Bangime"}, ["dbb"] = {"Deno"}, ["dbd"] = {"Dadiya"}, ["dbe"] = {"Dabe"}, ["dbf"] = {"Edopi"}, ["dbg"] = {"Dogul Dom Dogon"}, ["dbi"] = {"Doka"}, ["dbj"] = {"Ida'an"}, ["dbl"] = {"Dyirbal"}, ["dbm"] = {"Duguri"}, ["dbn"] = {"Duriankere"}, ["dbo"] = {"Dulbu"}, ["dbp"] = {"Duwai"}, ["dbq"] = {"Daba"}, ["dbr"] = {"Dabarre"}, ["dbt"] = {"Ben Tey Dogon"}, ["dbu"] = {"Bondum Dom Dogon"}, ["dbv"] = {"Dungu"}, ["dbw"] = {"Bankan Tey Dogon"}, ["dby"] = {"Dibiyaso"}, ["dcc"] = {"Deccan"}, ["dcr"] = {"Negerhollands"}, ["dda"] = {"Dadi Dadi"}, ["ddd"] = {"Dongotono"}, ["dde"] = {"Doondo"}, ["ddg"] = {"Fataluku"}, ["ddi"] = {"West Goodenough"}, ["ddj"] = {"Jaru"}, ["ddn"] = {"Dendi (Benin)"}, ["ddo"] = {"Dido"}, ["ddr"] = {"Dhudhuroa"}, ["dds"] = {"Donno So Dogon"}, ["ddw"] = {"Dawera-Daweloor"}, ["dec"] = {"Dagik"}, ["ded"] = {"Dedua"}, ["dee"] = {"Dewoin"}, ["def"] = {"Dezfuli"}, ["deg"] = {"Degema"}, ["deh"] = {"Dehwari"}, ["dei"] = {"Demisa"}, ["dek"] = {"Dek"}, ["del"] = {"Delaware"}, ["dem"] = {"Dem"}, ["den"] = {"Slavish (Athapascagh)"}, ["dep"] = {"Pidgin Delaware"}, ["deq"] = {"Dendi (Pobblaght yn Affrick Veanagh)"}, ["der"] = {"Deori"}, ["des"] = {"Desano"}, ["dev"] = {"Domung"}, ["dez"] = {"Dengese"}, ["dga"] = {"Dagaare Yiass"}, ["dgb"] = {"Bunoge Dogon"}, ["dgc"] = {"Casiguran Dumagat Agta"}, ["dgd"] = {"Dagaari Dioula"}, ["dge"] = {"Degenan"}, ["dgg"] = {"Doga"}, ["dgh"] = {"Dghwede"}, ["dgi"] = {"Dagara Hwoaie"}, ["dgk"] = {"Dagba"}, ["dgl"] = {"Andaandi", "Dongolawi"}, ["dgn"] = {"Dagoman"}, ["dgo"] = {"Dogri (çhengey er lheh)"}, ["dgr"] = {"Dogrib", "Tłı̨chǫ"}, ["dgs"] = {"Dogoso"}, ["dgt"] = {"Ndra'ngith"}, ["dgw"] = {"Daungwurrung"}, ["dgx"] = {"Doghoro"}, ["dgz"] = {"Daga"}, ["dhd"] = {"Dhundari"}, ["dhg"] = {"Dhangu-Djangu", "Dhangu", "Djangu"}, ["dhi"] = {"Dhimal"}, ["dhl"] = {"Dhalandji"}, ["dhm"] = {"Zemba"}, ["dhn"] = {"Dhanki"}, ["dho"] = {"Dhodia"}, ["dhr"] = {"Dhargari"}, ["dhs"] = {"Dhaiso"}, ["dhu"] = {"Dhurga"}, ["dhv"] = {"Dehu", "Drehu"}, ["dhw"] = {"Dhanwar (Nepaal)"}, ["dhx"] = {"Dhungaloo"}, ["dia"] = {"Dia"}, ["dib"] = {"Dinka Yiass Veanagh"}, ["dic"] = {"Lakota Dida"}, ["did"] = {"Didinga"}, ["dif"] = {"Dieri", "Diyari"}, ["dig"] = {"Digo", "Chidigo"}, ["dih"] = {"Kumiai"}, ["dii"] = {"Dimbong"}, ["dij"] = {"Dai"}, ["dik"] = {"Dinka Heear Yiass"}, ["dil"] = {"Dilling"}, ["dim"] = {"Dime"}, ["din"] = {"Dinka"}, ["dio"] = {"Dibo"}, ["dip"] = {"Dinka Hiar Yiass"}, ["diq"] = {"Dimli (çhengey er lheh)"}, ["dir"] = {"Dirim"}, ["dis"] = {"Dimasa"}, ["diu"] = {"Diriku"}, ["diw"] = {"Dinka Heear Hwoaie"}, ["dix"] = {"Dixon Reef"}, ["diy"] = {"Diuwe"}, ["diz"] = {"Ding"}, ["dja"] = {"Djadjawurrung"}, ["djb"] = {"Djinba"}, ["djc"] = {"Dar Daju Daju"}, ["djd"] = {"Djamindjung", "Ngaliwurru"}, ["dje"] = {"Zarma"}, ["djf"] = {"Djangun"}, ["dji"] = {"Djinang"}, ["djj"] = {"Djeebbana"}, ["djk"] = {"Creeole Maroon Hiar", "Businenge Tongo", "Nenge"}, ["djm"] = {"Jamsay Dogon"}, ["djn"] = {"Jawoyn", "Djauan"}, ["djo"] = {"Jangkang"}, ["djr"] = {"Djambarrpuyngu"}, ["dju"] = {"Kapriman"}, ["djw"] = {"Djawi"}, ["dka"] = {"Dakpakha"}, ["dkg"] = {"Kadung"}, ["dkk"] = {"Dakka"}, ["dkr"] = {"Kuijau"}, ["dks"] = {"Dinka Hiar Yiass"}, ["dkx"] = {"Mazagway"}, ["dlg"] = {"Dolgan"}, ["dlk"] = {"Dahalik"}, ["dlm"] = {"Dalmaatish"}, ["dln"] = {"Darlong"}, ["dma"] = {"Duma"}, ["dmb"] = {"Mombo Dogon"}, ["dmc"] = {"Gavak"}, ["dmd"] = {"Madhi Madhi"}, ["dme"] = {"Dugwor"}, ["dmf"] = {"Medefaidrin"}, ["dmg"] = {"Kinabatangan Heose"}, ["dmk"] = {"Domaaki"}, ["dml"] = {"Dameli"}, ["dmm"] = {"Dama"}, ["dmn"] = {"çhengaghyn Mande"}, ["dmo"] = {"Kemedzung"}, ["dmr"] = {"Damar Hiar"}, ["dms"] = {"Dampelas"}, ["dmu"] = {"Dubu", "Tebi"}, ["dmv"] = {"Dumpas"}, ["dmw"] = {"Mudburra"}, ["dmx"] = {"Dema"}, ["dmy"] = {"Demta", "Sowari"}, ["dna"] = {"Dani yn Upper Grand Valley"}, ["dnd"] = {"Daonda"}, ["dne"] = {"Ndendeule"}, ["dng"] = {"Dungan"}, ["dni"] = {"Dani yn Lower Grand Valley"}, ["dnj"] = {"Dan"}, ["dnk"] = {"Dengka"}, ["dnn"] = {"Dzùùngoo"}, ["dno"] = {"Ndrulo", "Lendu Hwoaie"}, ["dnr"] = {"Danaru"}, ["dnt"] = {"Dani yn Mid Grand Valley"}, ["dnu"] = {"Danau"}, ["dnv"] = {"Danu"}, ["dnw"] = {"Dani Heear"}, ["dny"] = {"Dení"}, ["doa"] = {"Dom"}, ["dob"] = {"Dobu"}, ["doc"] = {"Dong Hwoaie"}, ["doe"] = {"Doe"}, ["dof"] = {"Domu"}, ["doh"] = {"Dong"}, ["doi"] = {"Dogri (mooar-hengey)"}, ["dok"] = {"Dondo"}, ["dol"] = {"Doso"}, ["don"] = {"Toura (Papooey Guinea Noa)"}, ["doo"] = {"Dongo"}, ["dop"] = {"Lukpa"}, ["doq"] = {"Çhengey Chowree Ghominicagh"}, ["dor"] = {"Dori'o"}, ["dos"] = {"Dogosé"}, ["dot"] = {"Dass"}, ["dov"] = {"Dombe"}, ["dow"] = {"Doyayo"}, ["dox"] = {"Bussa"}, ["doy"] = {"Dompo"}, ["doz"] = {"Dorze"}, ["dpp"] = {"Papar"}, ["dra"] = {"çhengaghyn Dravidagh"}, ["drb"] = {"Dair"}, ["drc"] = {"Minderico"}, ["drd"] = {"Darmiya"}, ["dre"] = {"Dolpo"}, ["drg"] = {"Rungus"}, ["dri"] = {"C'Lela"}, ["drl"] = {"Paakantyi"}, ["drn"] = {"Damar Heear"}, ["dro"] = {"Daro-Matu Melanau"}, ["drq"] = {"Dura"}, ["drs"] = {"Gedeo"}, ["drt"] = {"Drents"}, ["dru"] = {"Rukai"}, ["dry"] = {"Darai"}, ["dsb"] = {"Sorbish Eeghtyragh"}, ["dse"] = {"Çhengey Chowree Ollanagh"}, ["dsh"] = {"Daasanach"}, ["dsi"] = {"Disa"}, ["dsk"] = {"Dokshi"}, ["dsl"] = {"Çhengey Chowree Ghanvargagh"}, ["dsn"] = {"Dusner"}, ["dso"] = {"Desiya"}, ["dsq"] = {"Tadaksahak"}, ["dsz"] = {"Çh Chowree Mardin"}, ["dta"] = {"Daur"}, ["dtb"] = {"Labuk-Kinabatangan Kadazan"}, ["dtd"] = {"Ditidaht"}, ["dth"] = {"Adithinngithigh"}, ["dti"] = {"Ana Tinga Dogon"}, ["dtk"] = {"Tene Kan Dogon"}, ["dtm"] = {"Tomo Kan Dogon"}, ["dtn"] = {"Daatsʼíin"}, ["dto"] = {"Tommo So Dogon"}, ["dtp"] = {"Kadazan Dusun", "Dusun Veanagh"}, ["dtr"] = {"Lotud"}, ["dts"] = {"Toro So Dogon"}, ["dtt"] = {"Toro Tegu Dogon"}, ["dtu"] = {"Tebul Ure Dogon"}, ["dty"] = {"Dotyali"}, ["dua"] = {"Duala"}, ["dub"] = {"Dubli"}, ["duc"] = {"Duna"}, ["due"] = {"Umiray Dumaget Agta"}, ["duf"] = {"Dumbea", "Drubea"}, ["dug"] = {"Duruma", "Chiduruma"}, ["duh"] = {"Dungra Bhil"}, ["dui"] = {"Dumun"}, ["duk"] = {"Uyajitaya"}, ["dul"] = {"Alabat Island Agta"}, ["dum"] = {"Ollanish Veanagh (ca. 1050-1350)"}, ["dun"] = {"Dusun Deyah"}, ["duo"] = {"Dupaninan Agta"}, ["dup"] = {"Duano"}, ["duq"] = {"Dusun Malang"}, ["dur"] = {"Dii"}, ["dus"] = {"Dumi"}, ["duu"] = {"Drung"}, ["duv"] = {"Duvle"}, ["duw"] = {"Dusun Witu"}, ["dux"] = {"Duungooma"}, ["duy"] = {"Dicamay Agta"}, ["duz"] = {"Duli-Gey"}, ["dva"] = {"Duau"}, ["dwa"] = {"Diri"}, ["dwk"] = {"Dawik Kui"}, ["dwr"] = {"Dawro"}, ["dws"] = {"Dutton World Speedwords"}, ["dwu"] = {"Dhuwal"}, ["dww"] = {"Dawawa"}, ["dwy"] = {"Dhuwaya"}, ["dwz"] = {"Dewas Rai"}, ["dya"] = {"Dyan"}, ["dyb"] = {"Dyaberdyaber"}, ["dyd"] = {"Dyugun"}, ["dyg"] = {"Villa Viciosa Agta"}, ["dyi"] = {"Djimini Senoufo"}, ["dym"] = {"Yanda Dom Dogon"}, ["dyn"] = {"Dyangadi", "Dhanggatti"}, ["dyo"] = {"Jola-Fonyi"}, ["dyr"] = {"Dyarim"}, ["dyu"] = {"Dyulish"}, ["dyy"] = {"Djabugay", "Dyaabugay"}, ["dza"] = {"Tunzu"}, ["dzd"] = {"Daza"}, ["dze"] = {"Djiwarli"}, ["dzg"] = {"Dazaga"}, ["dzl"] = {"Dzalakha"}, ["dzn"] = {"Dzando"}, ["eaa"] = {"Karenggapa"}, ["ebc"] = {"Beginci"}, ["ebg"] = {"Ebughu"}, ["ebk"] = {"Bontok Hiar"}, ["ebo"] = {"Teke-Ebo"}, ["ebr"] = {"Ebrié"}, ["ebu"] = {"Embu", "Kiembu"}, ["ecr"] = {"Eteocretan"}, ["ecs"] = {"Çhengey Chowree Ecuadoragh"}, ["ecy"] = {"Eteocheeprish"}, ["eee"] = {"E"}, ["efa"] = {"Efai"}, ["efe"] = {"Efe"}, ["efi"] = {"Efik"}, ["ega"] = {"Ega"}, ["egl"] = {"Emilianish"}, ["egm"] = {"Benamanga"}, ["ego"] = {"Eggon"}, ["egx"] = {"çhengaghyn Egyptagh"}, ["egy"] = {"Egyptish (Shenn)"}, ["ehs"] = {"Çhengey Chowree Miyakubo"}, ["ehu"] = {"Ehueun"}, ["eip"] = {"Eipomek"}, ["eit"] = {"Eitiep"}, ["eiv"] = {"Askopan"}, ["eja"] = {"Ejamat"}, ["eka"] = {"Ekajuk"}, ["eke"] = {"Ekit"}, ["ekg"] = {"Ekari"}, ["eki"] = {"Eki"}, ["ekk"] = {"Estoinish"}, ["ekl"] = {"Kol (y Vangladesh)", "Kol"}, ["ekm"] = {"Elip"}, ["eko"] = {"Koti"}, ["ekp"] = {"Ekpeye"}, ["ekr"] = {"Yace"}, ["eky"] = {"Kayah Hiar"}, ["ele"] = {"Elepi"}, ["elh"] = {"El Hugeirat"}, ["eli"] = {"Nding"}, ["elk"] = {"Elkei"}, ["elm"] = {"Eleme"}, ["elo"] = {"El Molo"}, ["elu"] = {"Elu"}, ["elx"] = {"Elamish"}, ["ema"] = {"Emai-Iuleha-Ora"}, ["emb"] = {"Embaloh"}, ["eme"] = {"Emerillon"}, ["emg"] = {"Meohang Hiar"}, ["emi"] = {"Mussau-Emira"}, ["emk"] = {"Maninkish Hiar"}, ["emm"] = {"Mamulique"}, ["emn"] = {"Emanish"}, ["emp"] = {"Emberá Hwoaie"}, ["emq"] = {"Minyagish Hiar"}, ["ems"] = {"Yupik Lhoob y Cheayn Sheealtagh"}, ["emu"] = {"Muria Hiar"}, ["emw"] = {"Emplawas"}, ["emx"] = {"Erromintxela"}, ["emy"] = {"Mayish Epigrafagh"}, ["emz"] = {"Mbessa"}, ["ena"] = {"Apali"}, ["enb"] = {"Markweeta"}, ["enc"] = {"En"}, ["end"] = {"Ende"}, ["enf"] = {"Enetsish ny Keylljyn"}, ["enh"] = {"Enetsish y Tundrey"}, ["enl"] = {"Enlhet"}, ["enm"] = {"Baarle Veanagh (1100-1500)"}, ["enn"] = {"Engenni"}, ["eno"] = {"Enggano"}, ["enq"] = {"Enga"}, ["enr"] = {"Emumu", "Emem"}, ["enu"] = {"Enu"}, ["env"] = {"Enwan (Steat Edo)"}, ["enw"] = {"Enwan (Steat Akwa Ibom)"}, ["enx"] = {"Enxet"}, ["eot"] = {"Beti (y Clyst Iuaagagh)"}, ["epi"] = {"Epie"}, ["era"] = {"Eravallan"}, ["erg"] = {"Sie"}, ["erh"] = {"Eruwa"}, ["eri"] = {"Ogea"}, ["erk"] = {"Efate Yiass"}, ["ero"] = {"Horpa"}, ["err"] = {"Erre"}, ["ers"] = {"Ersu"}, ["ert"] = {"Eritai"}, ["erw"] = {"Erokwanas"}, ["ese"] = {"Ese Ejja"}, ["esg"] = {"Aheri Gondi"}, ["esh"] = {"Eshtehardi"}, ["esi"] = {"Inupiatun Alaska Hwoaie"}, ["esk"] = {"Inupiatun Alaska Heear Hwoaie"}, ["esl"] = {"Çhengey Chowree yn Egypt"}, ["esm"] = {"Esuma"}, ["esn"] = {"Çhengey Chowree Halvadoragh"}, ["eso"] = {"Çhengey Chowree Estaanagh"}, ["esq"] = {"Esselen"}, ["ess"] = {"Yupik y Çhibbeyr Veanagh"}, ["esu"] = {"Yupik Veanagh"}, ["esx"] = {"çhengaghyn Eskimogh-Aleutagh"}, ["esy"] = {"Eskayan"}, ["etb"] = {"Etebi"}, ["etc"] = {"Etchemin"}, ["eth"] = {"Çhengey Chowree Eetoipagh"}, ["etn"] = {"Eton (Vanuatu)"}, ["eto"] = {"Eton (Cameroon)"}, ["etr"] = {"Edolo"}, ["ets"] = {"Yekhee"}, ["ett"] = {"Etruscish"}, ["etu"] = {"Ejagham"}, ["etx"] = {"Eten"}, ["etz"] = {"Semimi"}, ["eud"] = {"Eudeve"}, ["euq"] = {"Bascagh (kynney)"}, ["eve"] = {"Evenish"}, ["evh"] = {"Uvbie"}, ["evn"] = {"Evenkish"}, ["ewo"] = {"Ewondo"}, ["ext"] = {"Estremadurish"}, ["eya"] = {"Eyak"}, ["eyo"] = {"Keiyo"}, ["eza"] = {"Ezaa"}, ["eze"] = {"Uzekwe"}, ["faa"] = {"Fasu"}, ["fab"] = {"Fa d'Ambu"}, ["fad"] = {"Wagi"}, ["faf"] = {"Fagani"}, ["fag"] = {"Finongan"}, ["fah"] = {"Baissa Fali"}, ["fai"] = {"Faiwol"}, ["faj"] = {"Faita"}, ["fak"] = {"Fang (Cameroon)"}, ["fal"] = {"Fali Yiass"}, ["fam"] = {"Fam"}, ["fan"] = {"Fang (Guinea Chryss ny Cruinney)"}, ["fap"] = {"Paloor"}, ["far"] = {"Fataleka"}, ["fat"] = {"Fanti"}, ["fau"] = {"Fayu"}, ["fax"] = {"Fala"}, ["fay"] = {"Fars Heear Yiass"}, ["faz"] = {"Fars Heear Hwoaie"}, ["fbl"] = {"Bikol Albay Heear"}, ["fcs"] = {"Çhengey Chowree Québec"}, ["fer"] = {"Feroge"}, ["ffi"] = {"Foia Foia"}, ["ffm"] = {"Maasina Fulfulde"}, ["fgr"] = {"Fongoro"}, ["fia"] = {"Nobiin"}, ["fie"] = {"Fyer"}, ["fif"] = {"Faifi"}, ["fil"] = {"Philippeenish"}, ["fip"] = {"Fipa"}, ["fir"] = {"Firan"}, ["fit"] = {"Finnlynnish Tornedal", "Meänkieli"}, ["fiu"] = {"çhengaghyn Finn-Oogragh"}, ["fiw"] = {"Fiwaga"}, ["fkk"] = {"Kirya-Konzəl"}, ["fkv"] = {"Finnlynnish Kven"}, ["fla"] = {"Kalispel-Pend d'Oreille"}, ["flh"] = {"Foau"}, ["fli"] = {"Fali"}, ["fll"] = {"Fali Hwoaie"}, ["fln"] = {"Flinders Island"}, ["flr"] = {"Fuliiru"}, ["fly"] = {"Flaaitaal", "Tsotsitaal"}, ["fmp"] = {"Fe'fe'"}, ["fmu"] = {"Muria Heear Foddey"}, ["fnb"] = {"Fanbak"}, ["fng"] = {"Fanagalo"}, ["fni"] = {"Fania"}, ["fod"] = {"Foodo"}, ["foi"] = {"Foi"}, ["fom"] = {"Foma"}, ["fon"] = {"Fon"}, ["for"] = {"Fore"}, ["fos"] = {"Siraya"}, ["fox"] = {"çhengaghyn Formosagh"}, ["fpe"] = {"Creeole Baarle Fernando Po"}, ["fqs"] = {"Fas"}, ["frc"] = {"Frangish Cajun"}, ["frd"] = {"Fordata"}, ["frk"] = {"Frankish"}, ["frm"] = {"Frangish Veanagh (ca. 1400-1600)"}, ["fro"] = {"Shenn Rangish (842-ca. 1400)"}, ["frp"] = {"Arpitanish", "Francoprovençal"}, ["frq"] = {"Forak"}, ["frr"] = {"Freeshlannish Hwoaie"}, ["frs"] = {"Freeshlannish Hiar"}, ["frt"] = {"Fortsenal"}, ["fse"] = {"Çhengey Cowree Innlynnagh"}, ["fsl"] = {"Çhengey Chowree Rangagh"}, ["fss"] = {"Çhengey Chowree Finnlynn-y Toolynn", "finlandssvenskt teckenspråk", "suomenruotsalainen viittomakieli"}, ["fub"] = {"Adamawa Fulfulde"}, ["fuc"] = {"Pulaarish"}, ["fud"] = {"Futuna Hiar"}, ["fue"] = {"Borgu Fulfulde"}, ["fuf"] = {"Pularish"}, ["fuh"] = {"Fulfulde y Neegeyr Heear"}, ["fui"] = {"Fulfulde Bagirmi"}, ["fuj"] = {"Ko"}, ["fum"] = {"Fum"}, ["fun"] = {"Fulniô"}, ["fuq"] = {"Fulfulde y Neegeyr Hiar Veanagh"}, ["fur"] = {"Friulish"}, ["fut"] = {"Futuna-Aniwa"}, ["fuu"] = {"Furu"}, ["fuv"] = {"Fulfulde y Naigeer"}, ["fuy"] = {"Fuyug"}, ["fvr"] = {"Fur"}, ["fwa"] = {"Fwâi"}, ["fwe"] = {"Fwe"}, ["gaa"] = {"Ga"}, ["gab"] = {"Gabri"}, ["gac"] = {"Andamanish Vooar Vestit"}, ["gad"] = {"Gaddang"}, ["gae"] = {"Guarequena"}, ["gaf"] = {"Gende"}, ["gag"] = {"Gagauzish"}, ["gah"] = {"Alekano"}, ["gai"] = {"Borei"}, ["gaj"] = {"Gadsup"}, ["gak"] = {"Gamkonora"}, ["gal"] = {"Galolen"}, ["gam"] = {"Kandawo"}, ["gan"] = {"Sheenish Gan"}, ["gao"] = {"Gants"}, ["gap"] = {"Gal"}, ["gaq"] = {"Gata'"}, ["gar"] = {"Galeya"}, ["gas"] = {"Adiwasi Garasia"}, ["gat"] = {"Kenati"}, ["gau"] = {"Mudhili Gadaba"}, ["gaw"] = {"Nobonob"}, ["gax"] = {"Borana-Arsi-Guji Oromo"}, ["gay"] = {"Gayo"}, ["gaz"] = {"Oromoish Veanagh Heear"}, ["gba"] = {"Gbaya (Pobblaght yn Affrick Veanagh)"}, ["gbb"] = {"Kaytetye"}, ["gbd"] = {"Karajarri"}, ["gbe"] = {"Niksek"}, ["gbf"] = {"Gaikundi"}, ["gbg"] = {"Gbanziri"}, ["gbh"] = {"Defi Gbe"}, ["gbi"] = {"Galela"}, ["gbj"] = {"Bodo Gadaba"}, ["gbk"] = {"Gaddi"}, ["gbl"] = {"Gamit"}, ["gbm"] = {"Garhwali"}, ["gbn"] = {"Mo'da"}, ["gbo"] = {"Grebo Hwoaie"}, ["gbp"] = {"Gbaya-Bossangoa"}, ["gbq"] = {"Gbaya-Bozoum"}, ["gbr"] = {"Gbagyi"}, ["gbs"] = {"Gbesi Gbe"}, ["gbu"] = {"Gagadu"}, ["gbv"] = {"Gbanu"}, ["gbw"] = {"Gabi-Gabi"}, ["gbx"] = {"Xwla Gbe Hiar"}, ["gby"] = {"Gbari"}, ["gbz"] = {"Darish Horoastrianagh"}, ["gcc"] = {"Mali"}, ["gcd"] = {"Ganggalida"}, ["gce"] = {"Galice"}, ["gcf"] = {"Creeole Frangish Guadeloupe"}, ["gcl"] = {"Creeole Baarle Grenadagh"}, ["gcn"] = {"Gaina"}, ["gcr"] = {"Creeole Frangish Geeaanagh"}, ["gct"] = {"Germaanish Colonia Tovar"}, ["gda"] = {"Gade Lohar"}, ["gdb"] = {"Pottangi Ollar Gadaba"}, ["gdc"] = {"Gugu Badhun"}, ["gdd"] = {"Gedaged"}, ["gde"] = {"Gude"}, ["gdf"] = {"Guduf-Gava"}, ["gdg"] = {"Ga'dang"}, ["gdh"] = {"Gadjerawang", "Gajirrabeng"}, ["gdi"] = {"Gundi"}, ["gdj"] = {"Gurdjar"}, ["gdk"] = {"Gadang"}, ["gdl"] = {"Dirasha"}, ["gdm"] = {"Laal"}, ["gdn"] = {"Umanakaina"}, ["gdo"] = {"Ghodoberi"}, ["gdq"] = {"Mehri"}, ["gdr"] = {"Wipi"}, ["gds"] = {"Çhengey CHowree Ghandruk"}, ["gdt"] = {"Kungardutyi"}, ["gdu"] = {"Gudu"}, ["gdx"] = {"Godwari"}, ["gea"] = {"Geruma"}, ["geb"] = {"Kire"}, ["gec"] = {"Gboloo Grebo"}, ["ged"] = {"Gade"}, ["gef"] = {"Gerai"}, ["geg"] = {"Gengle"}, ["geh"] = {"Germaanish utteragh", "Hutterisch"}, ["gei"] = {"Gebe"}, ["gej"] = {"Gen"}, ["gek"] = {"Ywom"}, ["gel"] = {"ut-Ma'in"}, ["gem"] = {"çhengaghyn Germaanic"}, ["geq"] = {"Geme"}, ["ges"] = {"Geser-Gorom"}, ["gev"] = {"Eviya"}, ["gew"] = {"Gera"}, ["gex"] = {"Garre"}, ["gey"] = {"Enya"}, ["gez"] = {"Geez"}, ["gfk"] = {"Patpatar"}, ["gft"] = {"Gafat"}, ["gga"] = {"Gao"}, ["ggb"] = {"Gbii"}, ["ggd"] = {"Gugadj"}, ["gge"] = {"Gurr-goni"}, ["ggg"] = {"Gurgula"}, ["ggk"] = {"Kungarakany"}, ["ggl"] = {"Ganglau"}, ["ggt"] = {"Gitua"}, ["ggu"] = {"Gagu", "Gban"}, ["ggw"] = {"Gogodala"}, ["gha"] = {"Ghadamès"}, ["ghc"] = {"Gaelg Yerno-Albinagh"}, ["ghe"] = {"Ghale Yiass"}, ["ghh"] = {"Ghale Hwoaie"}, ["ghk"] = {"Karenish Geko"}, ["ghl"] = {"Ghulfan"}, ["ghn"] = {"Ghanongga"}, ["gho"] = {"Ghomara"}, ["ghr"] = {"Ghera"}, ["ghs"] = {"Guhu-Samane"}, ["ght"] = {"Kuke", "Kutang Ghale"}, ["gia"] = {"Kija"}, ["gib"] = {"Gibanawa"}, ["gic"] = {"Gail"}, ["gid"] = {"Gidar"}, ["gie"] = {"Gaɓogbo", "Guébie"}, ["gig"] = {"Goaria"}, ["gih"] = {"Githabul"}, ["gii"] = {"Girirra"}, ["gil"] = {"Gilbertish"}, ["gim"] = {"Gimi (yn Ard-Heer Hiar)"}, ["gin"] = {"Hinukh"}, ["gip"] = {"Gimi (y Vretyn Noa Heear)"}, ["giq"] = {"Gelao Eayney"}, ["gir"] = {"Gelao Jiarg"}, ["gis"] = {"Giziga Hwoaie"}, ["git"] = {"Gitxsan"}, ["giu"] = {"Mulao"}, ["giw"] = {"Gelao Bane"}, ["gix"] = {"Gilima"}, ["giy"] = {"Giyug"}, ["giz"] = {"Giziga Yiass"}, ["gjk"] = {"Kachi Koli"}, ["gjm"] = {"Gunditjmara"}, ["gjn"] = {"Gonja"}, ["gjr"] = {"Kriol Gurindji"}, ["gju"] = {"Gujari"}, ["gka"] = {"Guya"}, ["gkd"] = {"Magɨ (Queiggey Madang)"}, ["gke"] = {"Ndai"}, ["gkn"] = {"Gokana"}, ["gko"] = {"Kok-Nar"}, ["gkp"] = {"Kpelle yn Ghuinea"}, ["gku"] = {"ǂUngkue"}, ["glb"] = {"Belning"}, ["glc"] = {"Bon Gula"}, ["gld"] = {"Nanai"}, ["glh"] = {"Pashai Heear Hwoaie", "Pashayi Heear Hwoaie"}, ["glj"] = {"Gula Iro"}, ["glk"] = {"Gilaki"}, ["gll"] = {"Garlali"}, ["glo"] = {"Galambu"}, ["glr"] = {"Glaro-Twabo"}, ["glu"] = {"Gula (Shad)"}, ["glw"] = {"Glavda"}, ["gly"] = {"Gule"}, ["gma"] = {"Gambera"}, ["gmb"] = {"Gula'alaa"}, ["gmd"] = {"Mághdì"}, ["gme"] = {"çhengaghyn Germaanic Hiar"}, ["gmg"] = {"Magɨyi"}, ["gmh"] = {"Ard-Ghermaanish Veanagh (ca. 1050-1500)"}, ["gml"] = {"Germaanish Injil Veanagh"}, ["gmm"] = {"Gbaya-Mbodomo"}, ["gmn"] = {"Gimnime"}, ["gmq"] = {"çhengaghyn Germaanic Hwoaie"}, ["gmr"] = {"Mirning", "Mirniny"}, ["gmu"] = {"Gumalu"}, ["gmv"] = {"Gamo"}, ["gmw"] = {"çhengaghyn Germaanagh Heear"}, ["gmx"] = {"Magoma"}, ["gmy"] = {"Greagish Vycenaeagh"}, ["gmz"] = {"Mgbolizhia"}, ["gna"] = {"Kaansa"}, ["gnb"] = {"Gangte"}, ["gnc"] = {"Guançhish"}, ["gnd"] = {"Zulgo-Gemzek"}, ["gne"] = {"Ganang"}, ["gng"] = {"Ngangam"}, ["gnh"] = {"Lere"}, ["gni"] = {"Gooniyandi"}, ["gnj"] = {"Ngen"}, ["gnk"] = {"ǁGana"}, ["gnl"] = {"Gangulu"}, ["gnm"] = {"Ginuman"}, ["gnn"] = {"Gumatj"}, ["gno"] = {"Gondi Hwoaie"}, ["gnq"] = {"Gana"}, ["gnr"] = {"Gureng Gureng"}, ["gnt"] = {"Guntai"}, ["gnu"] = {"Gnau"}, ["gnw"] = {"Guaranish Voliviagh Heear"}, ["gnz"] = {"Ganzi"}, ["goa"] = {"Guro"}, ["gob"] = {"Playero"}, ["goc"] = {"Gorakor"}, ["god"] = {"Godié"}, ["goe"] = {"Gongduk"}, ["gof"] = {"Gofa"}, ["gog"] = {"Gogo"}, ["goh"] = {"Shenn Ard-Ghermaanish (ca. 750-1050)"}, ["goi"] = {"Gobasi"}, ["goj"] = {"Gowlan"}, ["gok"] = {"Gowli"}, ["gol"] = {"Gola"}, ["gom"] = {"Goan Konkani"}, ["gon"] = {"Gondi"}, ["goo"] = {"Gone Dau"}, ["gop"] = {"Yeretuar"}, ["goq"] = {"Gorap"}, ["gor"] = {"Gorontalo"}, ["gos"] = {"Gronings"}, ["got"] = {"Gothish"}, ["gou"] = {"Gavar"}, ["gov"] = {"Goo"}, ["gow"] = {"Gorowa"}, ["gox"] = {"Gobu"}, ["goy"] = {"Goundo"}, ["goz"] = {"Gozarkhani"}, ["gpa"] = {"Gupa-Abawa"}, ["gpe"] = {"Baarle Vrisht Ghanaiagh"}, ["gpn"] = {"Taiap"}, ["gqa"] = {"Ga'anda"}, ["gqi"] = {"Guiqiong"}, ["gqn"] = {"Guana (y Vrasseel)"}, ["gqr"] = {"Gor"}, ["gqu"] = {"Qau"}, ["gra"] = {"Garasia Rajput"}, ["grb"] = {"Grebo"}, ["grc"] = {"Shenn Ghreagish (derrey 1453)"}, ["grd"] = {"Guruntum-Mbaaru"}, ["grg"] = {"Madi"}, ["grh"] = {"Gbiri-Niragu"}, ["gri"] = {"Ghari"}, ["grj"] = {"Grebo Yiass"}, ["grk"] = {"çhengaghyn Greagagh"}, ["grm"] = {"Kota Marudu Talantang"}, ["gro"] = {"Groma"}, ["grq"] = {"Gorovu"}, ["grr"] = {"Taznatit"}, ["grs"] = {"Gresi"}, ["grt"] = {"Garo"}, ["gru"] = {"Kistane"}, ["grv"] = {"Grebo Veanagh"}, ["grw"] = {"Gweda"}, ["grx"] = {"Guriaso"}, ["gry"] = {"Grebo Barclayville"}, ["grz"] = {"Guramalum"}, ["gse"] = {"Çhengey Chowree Ghanaiagh"}, ["gsg"] = {"Çhengey Chowree Ghermaanagh"}, ["gsl"] = {"Gusilay"}, ["gsm"] = {"Çhengey Chowree Ghuatemalagh"}, ["gsn"] = {"Nema", "Gusan"}, ["gso"] = {"Gbaya Heear Yiass"}, ["gsp"] = {"Wasembo"}, ["gss"] = {"Çhengey Chowree Ghreagagh"}, ["gsw"] = {"Germaanish Elveeishagh", "Alemannish", "Alsaasish"}, ["gta"] = {"Guató"}, ["gtu"] = {"Aghu-Tharnggala"}, ["gua"] = {"Shiki"}, ["gub"] = {"Guajajára"}, ["guc"] = {"Wayuu"}, ["gud"] = {"Yocoboué Dida"}, ["gue"] = {"Gurindji"}, ["guf"] = {"Gupapuyngu"}, ["gug"] = {"Guaranish Pharaguayagh"}, ["guh"] = {"Guahibo"}, ["gui"] = {"Guaranish Voliviagh Hiar"}, ["guk"] = {"Gumuz"}, ["gul"] = {"Creeole Baarle Gullah"}, ["gum"] = {"Guambiano"}, ["gun"] = {"Mbyá Guaraní"}, ["guo"] = {"Guayabero"}, ["gup"] = {"Gunwinggu"}, ["guq"] = {"Aché"}, ["gur"] = {"Farefare"}, ["gus"] = {"Çhengey Chowree Guineagh"}, ["gut"] = {"Maléku Jaíka"}, ["guu"] = {"Yanomamö"}, ["guw"] = {"Gun"}, ["gux"] = {"Gourmanchéma"}, ["guz"] = {"Gusii", "Ekegusii"}, ["gva"] = {"Guana (y Pharaguay)"}, ["gvc"] = {"Guanano"}, ["gve"] = {"Duwet"}, ["gvf"] = {"Golin"}, ["gvj"] = {"Guajá"}, ["gvl"] = {"Gulay"}, ["gvm"] = {"Gurmana"}, ["gvn"] = {"Kuku-Yalanji"}, ["gvo"] = {"Gavião Do Jiparaná"}, ["gvp"] = {"Pará Gavião"}, ["gvr"] = {"Gurung"}, ["gvs"] = {"Gumawana"}, ["gvy"] = {"Guyani"}, ["gwa"] = {"Mbato"}, ["gwb"] = {"Gwa"}, ["gwc"] = {"Gawri", "Kalami"}, ["gwd"] = {"Gawwada"}, ["gwe"] = {"Gweno"}, ["gwf"] = {"Gowro"}, ["gwg"] = {"Moo"}, ["gwi"] = {"Gwichʼin"}, ["gwj"] = {"ǀGwi"}, ["gwm"] = {"Awngthim"}, ["gwn"] = {"Gwandara"}, ["gwr"] = {"Gwere"}, ["gwt"] = {"Gawar-Bati"}, ["gwu"] = {"Guwamu"}, ["gww"] = {"Kwini"}, ["gwx"] = {"Gua"}, ["gxx"] = {"Wè Yiass"}, ["gya"] = {"Gbaya Heear Hwoaie"}, ["gyb"] = {"Garus"}, ["gyd"] = {"Kayardild"}, ["gye"] = {"Gyem"}, ["gyf"] = {"Gungabula"}, ["gyg"] = {"Gbayi"}, ["gyi"] = {"Gyele"}, ["gyl"] = {"Gayil"}, ["gym"] = {"Ngäbere"}, ["gyn"] = {"Creeole Baarle Geeaanagh"}, ["gyo"] = {"Gyalsumdo"}, ["gyr"] = {"Guarayu"}, ["gyy"] = {"Gunya"}, ["gyz"] = {"Geji", "Gyaazi"}, ["gza"] = {"Ganza"}, ["gzi"] = {"Gazi"}, ["gzn"] = {"Gane"}, ["haa"] = {"Han"}, ["hab"] = {"Çhengey Chowree Hanoi"}, ["hac"] = {"Guranish"}, ["had"] = {"Hatam"}, ["hae"] = {"Oromoish Hiar"}, ["haf"] = {"Çhengey Chowree Haiphong"}, ["hag"] = {"Hanga"}, ["hah"] = {"Hahon"}, ["hai"] = {"Haida"}, ["haj"] = {"Hajong"}, ["hak"] = {"Sheenish Hakka"}, ["hal"] = {"Halang"}, ["ham"] = {"Hewa"}, ["han"] = {"Hangaza"}, ["hao"] = {"Hakö"}, ["hap"] = {"Hupla"}, ["haq"] = {"Ha"}, ["har"] = {"Harari"}, ["has"] = {"Haisla"}, ["hav"] = {"Havu"}, ["haw"] = {"Hawaiish"}, ["hax"] = {"Haida Yiass"}, ["hay"] = {"Haya"}, ["haz"] = {"Hazaragi"}, ["hba"] = {"Hamba"}, ["hbb"] = {"Huba"}, ["hbn"] = {"Heiban"}, ["hbo"] = {"Shenn Ewnish"}, ["hbu"] = {"Habu"}, ["hca"] = {"Creeole Hindish Andamanagh"}, ["hch"] = {"Huichol"}, ["hdn"] = {"Haida Hwoaie"}, ["hds"] = {"Çhengey Chowree Hondooragh"}, ["hdy"] = {"Hadiyya"}, ["hea"] = {"Miao Qiandong Hwoaie"}, ["hed"] = {"Herdé"}, ["heg"] = {"Helong"}, ["heh"] = {"Hehe"}, ["hei"] = {"Heiltsuk"}, ["hem"] = {"Hemba"}, ["hgm"] = {"Haiǁom"}, ["hgw"] = {"Haigwai"}, ["hhi"] = {"Hoia Hoia"}, ["hhr"] = {"Kerak"}, ["hhy"] = {"Hoyahoya"}, ["hia"] = {"Lamang"}, ["hib"] = {"Hibito"}, ["hid"] = {"Hidatsa"}, ["hif"] = {"Hindish Fiji"}, ["hig"] = {"Kamwe"}, ["hih"] = {"Pamosu"}, ["hii"] = {"Hindurish"}, ["hij"] = {"Hijuk"}, ["hik"] = {"Seit-Kaitetu"}, ["hil"] = {"Hiligaynonish"}, ["him"] = {"çhengaghyn Himachalagh", "çhengaghyn Paharagh Heear"}, ["hio"] = {"Tsoa"}, ["hir"] = {"Himarimã"}, ["hit"] = {"Hittish"}, ["hiw"] = {"Hiw"}, ["hix"] = {"Hixkaryána"}, ["hji"] = {"Haji"}, ["hka"] = {"Kahe"}, ["hke"] = {"Hunde"}, ["hkh"] = {"Khah", "Poguli"}, ["hkk"] = {"Hunjara-Kaina Ke"}, ["hkn"] = {"Mel-Khaonh"}, ["hks"] = {"Çhengey Chowree Hong Kong", "Heung Kong Sau Yue"}, ["hla"] = {"Halia"}, ["hlb"] = {"Halbi"}, ["hld"] = {"Halang Doan"}, ["hle"] = {"Hlersu"}, ["hlt"] = {"Matu Chin"}, ["hlu"] = {"Luwish Yalloo-ocklagh"}, ["hma"] = {"Hmongish Mashan Yiass", "Miaoish Mashan Yiass"}, ["hmb"] = {"Humburi Senni Songhay"}, ["hmc"] = {"Hmongish Huishui Veanagh", "Miaoish Huishui Veanagh"}, ["hmd"] = {"Miaoish Vooar-Ornaidagh", "A-hmaos", "Miaoish Da-Hua"}, ["hme"] = {"Hmongish Huishui Hiar", "Miaoish Huishui Hiar"}, ["hmf"] = {"Hmongish Don"}, ["hmg"] = {"Hmongish Guiyang Heear Yiass"}, ["hmh"] = {"Hmongish Huishui Heear Yiass", "Miaoish Huishui Heear Yiass"}, ["hmi"] = {"Hmongish Huishui Hwoaie", "Miaoish Huishui Hwoaie"}, ["hmj"] = {"Ge", "Gejia"}, ["hmk"] = {"Maek"}, ["hml"] = {"Hmongish Luopohe", "Miaoish Luopohe"}, ["hmm"] = {"Hmongish Mashan Veanagh", "Miaoish Mashan Veanagh"}, ["hmn"] = {"Hmongish", "Mongish"}, ["hmp"] = {"Hmongish Mashan Hwoaie", "Miaoish Mashan Hwoaie"}, ["hmq"] = {"Miaoish Qiandong Hiar"}, ["hmr"] = {"Hmar"}, ["hms"] = {"Miaoish Qiandong Yiass"}, ["hmt"] = {"Hamtai"}, ["hmu"] = {"Hamap"}, ["hmv"] = {"Hmong Dô"}, ["hmw"] = {"Hmongish Mashan Heear", "Miaoish Mashan Heear"}, ["hmx"] = {"çhengaghyn Hmong-Mien"}, ["hmy"] = {"Hmongish Guiyang Yiass", "Miaoish Guiyang Yiass"}, ["hmz"] = {"Hmongish Shua", "Miaoish Heenit"}, ["hna"] = {"Mina (Cameroon)"}, ["hnd"] = {"Hindko Yiass"}, ["hne"] = {"Chhattisgarhi"}, ["hng"] = {"Hungu"}, ["hnh"] = {"ǁAni"}, ["hni"] = {"Hani"}, ["hnj"] = {"Hmongish Njua", "Mong Leng", "Mong Njua"}, ["hnn"] = {"Hanunoo"}, ["hno"] = {"Hindko Hwoaie"}, ["hns"] = {"Hindustaanish Charibagh"}, ["hnu"] = {"Hung"}, ["hoa"] = {"Hoava"}, ["hob"] = {"Marish (Queiggey Madang)"}, ["hoc"] = {"Ho"}, ["hod"] = {"Holma"}, ["hoe"] = {"Horom"}, ["hoh"] = {"Hobyót"}, ["hoi"] = {"Holikachuk"}, ["hoj"] = {"Hadothish", "Harotish"}, ["hok"] = {"çhengaghyn Hokagh"}, ["hol"] = {"Holu"}, ["hom"] = {"Homa"}, ["hoo"] = {"Holoholo"}, ["hop"] = {"Hopi"}, ["hor"] = {"Horo"}, ["hos"] = {"Çhengey Chowree Chaayr Ho Chi Minh"}, ["hot"] = {"Hote", "Malê"}, ["hov"] = {"Hovongan"}, ["how"] = {"Honi"}, ["hoy"] = {"Holiya"}, ["hoz"] = {"Hozo"}, ["hpo"] = {"Hpon"}, ["hps"] = {"Glare Chowree Hawai'i (HSL)", "Çhengey Chowree Hawaiish Vrisht"}, ["hra"] = {"Hrangkhol"}, ["hrc"] = {"Niwer Mil"}, ["hre"] = {"Hre"}, ["hrk"] = {"Haruku"}, ["hrm"] = {"Miaoish Eairkagh"}, ["hro"] = {"Haroi"}, ["hrp"] = {"Nhirrpi"}, ["hrt"] = {"Hértevin"}, ["hru"] = {"Hruso"}, ["hrw"] = {"Warwar Feni"}, ["hrx"] = {"Hunsrikish"}, ["hrz"] = {"Harzanish"}, ["hsb"] = {"Sorbish Eaghtyragh"}, ["hsh"] = {"Glare Chowree Ungaaragh"}, ["hsl"] = {"Glare Chowree Hausagh"}, ["hsn"] = {"Sheenish Xiang"}, ["hss"] = {"Harsusi"}, ["hti"] = {"Hoti"}, ["hto"] = {"Minica Huitoto"}, ["hts"] = {"Hadza"}, ["htu"] = {"Hitu"}, ["htx"] = {"Hittish Veanagh"}, ["hub"] = {"Huambisa"}, ["huc"] = {"ǂHua", "ǂʼAmkhoe"}, ["hud"] = {"Huaulu"}, ["hue"] = {"San Francisco Del Mar Huave"}, ["huf"] = {"Humene"}, ["hug"] = {"Huachipaeri"}, ["huh"] = {"Huilliche"}, ["hui"] = {"Huli"}, ["huj"] = {"Hmongish Guiyang Hwoaie", "Miaoish Guiyang Hwoaie"}, ["huk"] = {"Hulung"}, ["hul"] = {"Hula"}, ["hum"] = {"Hungana"}, ["huo"] = {"Hu"}, ["hup"] = {"Hupa"}, ["huq"] = {"Tsat"}, ["hur"] = {"Halkomelem"}, ["hus"] = {"Huastecish"}, ["hut"] = {"Humla"}, ["huu"] = {"Murui Huitoto"}, ["huv"] = {"San Mateo Del Mar Huave"}, ["huw"] = {"Hukumina"}, ["hux"] = {"Nüpode Huitoto"}, ["huy"] = {"Hulaulá"}, ["huz"] = {"Hunzibish"}, ["hvc"] = {"Çhengey Chultoor Vodoun Haitagh"}, ["hve"] = {"San Dionisio Del Mar Huave"}, ["hvk"] = {"Haveke"}, ["hvn"] = {"Sabu"}, ["hvv"] = {"Santa María Del Mar Huave"}, ["hwa"] = {"Wané"}, ["hwc"] = {"Creeole Baarle Hawaiianagh", "Hawaiish Vrisht"}, ["hwo"] = {"Hwana"}, ["hya"] = {"Hya"}, ["hyw"] = {"Armeanish Heear"}, ["hyx"] = {"Armeanagh (kynney)"}, ["iai"] = {"Iaai"}, ["ian"] = {"Iatmul"}, ["iar"] = {"Purari"}, ["iba"] = {"Iban"}, ["ibb"] = {"Ibibio"}, ["ibd"] = {"Iwaidja"}, ["ibe"] = {"Akpes"}, ["ibg"] = {"Ibanag"}, ["ibh"] = {"Bih"}, ["ibl"] = {"Ibaloi"}, ["ibm"] = {"Agoi"}, ["ibn"] = {"Ibino"}, ["ibr"] = {"Ibuoro"}, ["ibu"] = {"Ibu"}, ["iby"] = {"Ibani"}, ["ica"] = {"Ede Ica"}, ["ich"] = {"Etkywan"}, ["icl"] = {"Çhengey Chowree Eeslynnagh"}, ["icr"] = {"Creeole San Andrés–Providencia"}, ["ida"] = {"Idakho-Isukha-Tiriki", "Luidakho-Luisukha-Lutirichi"}, ["idb"] = {"Portiugish Injinagh"}, ["idc"] = {"Idon", "Ajiya"}, ["idd"] = {"Ede Idaca"}, ["ide"] = {"Idere"}, ["idi"] = {"Idi"}, ["idr"] = {"Indri"}, ["ids"] = {"Idesa"}, ["idt"] = {"Idaté"}, ["idu"] = {"Idoma"}, ["ifa"] = {"Amganad Ifugao"}, ["ifb"] = {"Batad Ifugao", "Ayangan Ifugao"}, ["ife"] = {"Ifè"}, ["iff"] = {"Ifo"}, ["ifk"] = {"Tuwali Ifugao"}, ["ifm"] = {"Teke-Fuumu"}, ["ifu"] = {"Mayoyao Ifugao"}, ["ify"] = {"Keley-I Kallahan"}, ["igb"] = {"Ebira"}, ["ige"] = {"Igede"}, ["igg"] = {"Igana"}, ["igl"] = {"Igala"}, ["igm"] = {"Kanggape"}, ["ign"] = {"Ignaciano"}, ["igo"] = {"Isebe"}, ["igs"] = {"Interglossa"}, ["igw"] = {"Igwe"}, ["ihb"] = {"Iha Vrisht"}, ["ihi"] = {"Ihievbe"}, ["ihp"] = {"Iha"}, ["ihw"] = {"Bidhawal"}, ["iin"] = {"Thiin"}, ["iir"] = {"çhengaghyn Ind-Eeraanagh"}, ["ijc"] = {"Izon"}, ["ije"] = {"Biseni"}, ["ijj"] = {"Ede Ije"}, ["ijn"] = {"Kalabari"}, ["ijo"] = {"çhengaghyn Ijo"}, ["ijs"] = {"Ijo Hiar Yiass"}, ["ike"] = {"Inuktitut Hiar y Chanadey"}, ["ikh"] = {"Ikhin-Arokho"}, ["iki"] = {"Iko"}, ["ikk"] = {"Ika"}, ["ikl"] = {"Ikulu"}, ["iko"] = {"Olulumo-Ikom"}, ["ikp"] = {"Ikpeshi"}, ["ikr"] = {"Ikaranggal"}, ["iks"] = {"Çhengey Chowree Inuitagh"}, ["ikt"] = {"Inuinnaqtun", "Inuktitut Heear y Chanadey"}, ["ikv"] = {"Iku-Gora-Ankwa"}, ["ikw"] = {"Ikwere"}, ["ikx"] = {"Ik"}, ["ikz"] = {"Ikizu"}, ["ila"] = {"Ile Ape"}, ["ilb"] = {"Ila"}, ["ilg"] = {"Garig-Ilgar"}, ["ili"] = {"Ili Turki"}, ["ilk"] = {"Ilongot"}, ["ilm"] = {"Iranun (y Valaysia)"}, ["ilo"] = {"Iloko"}, ["ilp"] = {"Iranun (ny h-Ellanyn Philippeenagh)"}, ["ils"] = {"Çhengey Chowree Eddyr-ashoonagh"}, ["ilu"] = {"Ili'uun"}, ["ilv"] = {"Ilue"}, ["ima"] = {"Mala Malasar"}, ["imi"] = {"Anamgura"}, ["iml"] = {"Miluk"}, ["imn"] = {"Imonda"}, ["imo"] = {"Imbongu"}, ["imr"] = {"Imroing"}, ["ims"] = {"Marsish"}, ["imt"] = {"Imotong"}, ["imy"] = {"Milyan"}, ["inb"] = {"Inga"}, ["inc"] = {"çhengaghyn Indagh"}, ["ine"] = {"çhengaghyn Ind-Oarpagh"}, ["ing"] = {"Degexit'an"}, ["inh"] = {"Ingushish"}, ["inj"] = {"Inga yn Jungyl"}, ["inl"] = {"Çhengey Chowree Indoneeshagh"}, ["inm"] = {"Minaeish"}, ["inn"] = {"Isinai"}, ["ino"] = {"Inoke-Yate"}, ["inp"] = {"Iñapari"}, ["ins"] = {"Çhengey Chowree Injinagh"}, ["int"] = {"Intha"}, ["inz"] = {"Ineseño"}, ["ior"] = {"Inor"}, ["iou"] = {"Tuma-Irumu"}, ["iow"] = {"Iowa-Oto"}, ["ipi"] = {"Ipili"}, ["ipo"] = {"Ipiko"}, ["iqu"] = {"Iquito"}, ["iqw"] = {"Ikwo"}, ["ira"] = {"çhengaghyn Eeraanagh"}, ["ire"] = {"Iresim"}, ["irh"] = {"Irarutu"}, ["iri"] = {"Rigwe", "Irigwe"}, ["irk"] = {"Iraqw"}, ["irn"] = {"Irántxe"}, ["iro"] = {"çhengaghyn Iroquoiagh"}, ["irr"] = {"Ir"}, ["iru"] = {"Irula"}, ["irx"] = {"Kamberau"}, ["iry"] = {"Iraya"}, ["isa"] = {"Isabi"}, ["isc"] = {"Isconahua"}, ["isd"] = {"Isnag"}, ["ise"] = {"Çhengey Chowree Iddaalagh"}, ["isg"] = {"Çhengey Chowree Yernagh"}, ["ish"] = {"Esan"}, ["isi"] = {"Nkem-Nkum"}, ["isk"] = {"Ishkashimi"}, ["ism"] = {"Masimasi"}, ["isn"] = {"Isanzu"}, ["iso"] = {"Isoko"}, ["isr"] = {"Çhengey Chowree Israelagh"}, ["ist"] = {"Istriotish"}, ["isu"] = {"Isu (Rheynn Menchum)"}, ["itb"] = {"Binongan Itneg"}, ["itc"] = {"çhengaghyn Iddaalagh"}, ["itd"] = {"Tidung Yiass"}, ["ite"] = {"Itene"}, ["iti"] = {"Inlaod Itneg"}, ["itk"] = {"Iddaalish Ewagh"}, ["itl"] = {"Itelmenish"}, ["itm"] = {"Itu Mbon Uzo"}, ["ito"] = {"Itonama"}, ["itr"] = {"Iteri"}, ["its"] = {"Isekiri"}, ["itt"] = {"Maeng Itneg"}, ["itv"] = {"Itawit"}, ["itw"] = {"Ito"}, ["itx"] = {"Itik"}, ["ity"] = {"Moyadan Itneg"}, ["itz"] = {"Itzá"}, ["ium"] = {"Iu Mien"}, ["ivb"] = {"Ibatan"}, ["ivv"] = {"Ivatan"}, ["iwk"] = {"I-Wak"}, ["iwm"] = {"Iwam"}, ["iwo"] = {"Iwur"}, ["iws"] = {"Sepik Iwam"}, ["ixc"] = {"Ixcatecish"}, ["ixl"] = {"Ixil"}, ["iya"] = {"Iyayu"}, ["iyo"] = {"Mesaka"}, ["iyx"] = {"Yaka (y Congo)"}, ["izh"] = {"Ingrish"}, ["izm"] = {"Kizamani"}, ["izr"] = {"Izere"}, ["izz"] = {"Izii"}, ["jaa"] = {"Jamamadí"}, ["jab"] = {"Hyam"}, ["jac"] = {"Popti'", "Jakalteko"}, ["jad"] = {"Jahanka"}, ["jae"] = {"Yabem"}, ["jaf"] = {"Jara"}, ["jah"] = {"Jah Hut"}, ["jaj"] = {"Zazao"}, ["jak"] = {"Jakun"}, ["jal"] = {"Yalahatan"}, ["jam"] = {"Creeole Baarle Jamaicagh"}, ["jan"] = {"Jandai"}, ["jao"] = {"Yanyuwa"}, ["jaq"] = {"Yaqay"}, ["jas"] = {"Javish y Chaladoan Noa"}, ["jat"] = {"Jakati"}, ["jau"] = {"Yaur"}, ["jax"] = {"Malaish Jambi"}, ["jay"] = {"Yan-nhangu", "Nhangu"}, ["jaz"] = {"Jawe"}, ["jbe"] = {"Berberish Ewagh"}, ["jbi"] = {"Badjiri"}, ["jbj"] = {"Arandai"}, ["jbk"] = {"Barikewa"}, ["jbm"] = {"Bijim"}, ["jbn"] = {"Nafusi"}, ["jbo"] = {"Lojban"}, ["jbr"] = {"Jofotek-Bromnya"}, ["jbt"] = {"Jabutí"}, ["jbu"] = {"Jukun Takum"}, ["jbw"] = {"Yawijibaya"}, ["jcs"] = {"Çhengey Chowree Heeragh Yamaicagh"}, ["jct"] = {"Krymchak"}, ["jda"] = {"Jad"}, ["jdg"] = {"Jadgali"}, ["jdt"] = {"Tatish Ewagh"}, ["jeb"] = {"Jebero"}, ["jee"] = {"Jerung"}, ["jeh"] = {"Jeh"}, ["jei"] = {"Yei"}, ["jek"] = {"Jeri Kuo"}, ["jel"] = {"Yelmek"}, ["jen"] = {"Dza"}, ["jer"] = {"Jere"}, ["jet"] = {"Manem"}, ["jeu"] = {"Jonkor Bourmataguil"}, ["jgb"] = {"Ngbee"}, ["jge"] = {"Shorshish Ewagh"}, ["jgk"] = {"Gwak"}, ["jgo"] = {"Ngomba"}, ["jhi"] = {"Jehai"}, ["jhs"] = {"Çhengey Chowree Jhankot"}, ["jia"] = {"Jina"}, ["jib"] = {"Jibu"}, ["jic"] = {"Tol"}, ["jid"] = {"Bu (Steat Kaduna)"}, ["jie"] = {"Jilbe"}, ["jig"] = {"Jingulu", "Djingili"}, ["jih"] = {"sTodsde", "Shangzhai"}, ["jii"] = {"Jiiddu"}, ["jil"] = {"Jilim"}, ["jim"] = {"Jimi (Cameroon)"}, ["jio"] = {"Jiamao"}, ["jiq"] = {"Guanyinqiao", "Lavrung"}, ["jit"] = {"Jita"}, ["jiu"] = {"Jinuo Youle"}, ["jiv"] = {"Shuar"}, ["jiy"] = {"Jinuo Buyuan"}, ["jje"] = {"Jejueo"}, ["jjr"] = {"Bankal"}, ["jka"] = {"Kaera"}, ["jkm"] = {"Karenish Mobwa"}, ["jko"] = {"Kubo"}, ["jkp"] = {"Karenish Paku"}, ["jkr"] = {"Koro (yn Injey)"}, ["jks"] = {"Çhengey Chowree Amami Koniya"}, ["jku"] = {"Labir"}, ["jle"] = {"Ngile"}, ["jls"] = {"Çhengey Chowree Yamaicagh"}, ["jma"] = {"Dima"}, ["jmb"] = {"Zumbun"}, ["jmc"] = {"Machame"}, ["jmd"] = {"Yamdena"}, ["jmi"] = {"Jimi (y Naigeer)"}, ["jml"] = {"Jumli"}, ["jmn"] = {"Makuri Naga"}, ["jmr"] = {"Kamara"}, ["jms"] = {"Mashi (y Naigeer)"}, ["jmw"] = {"Mouwase"}, ["jmx"] = {"Mixtecish Juxtlahuaca Heear"}, ["jna"] = {"Jangshung"}, ["jnd"] = {"Jandavra"}, ["jng"] = {"Yangman"}, ["jni"] = {"Janji"}, ["jnj"] = {"Yemsa"}, ["jnl"] = {"Rawat"}, ["jns"] = {"Jaunsari"}, ["job"] = {"Joba"}, ["jod"] = {"Wojenaka"}, ["jog"] = {"Jogi"}, ["jor"] = {"Jorá"}, ["jos"] = {"Çhengey Chowree Yordaanagh"}, ["jow"] = {"Jowulu"}, ["jpa"] = {"Aramaaish Phalasteenagh Ewagh"}, ["jpr"] = {"Pershish Ewagh"}, ["jpx"] = {"Shapaanagh (kynney)"}, ["jqr"] = {"Jaqaru"}, ["jra"] = {"Jarai"}, ["jrb"] = {"Arabish Ewagh"}, ["jrr"] = {"Jiru"}, ["jrt"] = {"Jakattoe"}, ["jru"] = {"Japrería"}, ["jsl"] = {"Çhengey Chowree Hapaanagh"}, ["jua"] = {"Júma"}, ["jub"] = {"Wannu"}, ["juc"] = {"Jurchen"}, ["jud"] = {"Worodougou"}, ["juh"] = {"Hõne"}, ["jui"] = {"Ngadjuri"}, ["juk"] = {"Wapan"}, ["jul"] = {"Jirel"}, ["jum"] = {"Jumjum"}, ["jun"] = {"Juang"}, ["juo"] = {"Jiba"}, ["jup"] = {"Hupdë"}, ["jur"] = {"Jurúna"}, ["jus"] = {"Çhengey Chowree Jumla"}, ["jut"] = {"Jutish"}, ["juu"] = {"Ju"}, ["juw"] = {"Wãpha"}, ["juy"] = {"Juray"}, ["jvd"] = {"Javindo"}, ["jvn"] = {"Javish Charibagh"}, ["jwi"] = {"Jwira-Pepesa"}, ["jya"] = {"Jiarong"}, ["jye"] = {"Arabish Yemenagh Ewagh"}, ["jyy"] = {"Jaya"}, ["kaa"] = {"Kara-Kalpakish", "Karakalpakish"}, ["kab"] = {"Kabylish"}, ["kac"] = {"Kachin", "Jingpho"}, ["kad"] = {"Adara"}, ["kae"] = {"Ketangalan"}, ["kaf"] = {"Katso"}, ["kag"] = {"Kajaman"}, ["kah"] = {"Kara (Pobblaght yn Affrick Veanagh)"}, ["kai"] = {"Karekare"}, ["kaj"] = {"Jju"}, ["kak"] = {"Kalanguya", "Kayapa Kallahan"}, ["kam"] = {"Kamba (y Cheinney)"}, ["kao"] = {"Xaasongaxango"}, ["kap"] = {"Bezhta"}, ["kaq"] = {"Capanahua"}, ["kar"] = {"çhengaghyn Karenagh"}, ["kav"] = {"Katukína"}, ["kaw"] = {"Kawi"}, ["kax"] = {"Kao"}, ["kay"] = {"Kamayurá"}, ["kba"] = {"Kalarko"}, ["kbb"] = {"Kaxuiâna"}, ["kbc"] = {"Kadiwéu"}, ["kbd"] = {"Kabardish"}, ["kbe"] = {"Kanju"}, ["kbg"] = {"Khamba"}, ["kbh"] = {"Camsá"}, ["kbi"] = {"Kaptiau"}, ["kbj"] = {"Kari"}, ["kbk"] = {"Grass Koiari"}, ["kbl"] = {"Kanembu"}, ["kbm"] = {"Iwal"}, ["kbn"] = {"Kare (Pobblaght yn Affrick Veanagh)"}, ["kbo"] = {"Keliko"}, ["kbp"] = {"Kabiyè"}, ["kbq"] = {"Kamano"}, ["kbr"] = {"Kafa"}, ["kbs"] = {"Kande"}, ["kbt"] = {"Abadi"}, ["kbu"] = {"Kabutra"}, ["kbv"] = {"Dera (yn Indoneesh)"}, ["kbw"] = {"Kaiep"}, ["kbx"] = {"Ap Ma"}, ["kby"] = {"Manga Kanuri"}, ["kbz"] = {"Duhwa"}, ["kca"] = {"Khanty"}, ["kcb"] = {"Kawacha"}, ["kcc"] = {"Lubila"}, ["kcd"] = {"Ngkâlmpw Kanum"}, ["kce"] = {"Kaivi"}, ["kcf"] = {"Ukaan"}, ["kcg"] = {"Tyap"}, ["kch"] = {"Vono"}, ["kci"] = {"Kamantanish"}, ["kcj"] = {"Kobiana"}, ["kck"] = {"Kalanga"}, ["kcl"] = {"Kela (Papeey Guinea Noa)", "Kala"}, ["kcm"] = {"Gula (Pobblaght yn Affrick Veanagh)"}, ["kcn"] = {"Nubi"}, ["kco"] = {"Kinalakna"}, ["kcp"] = {"Kanga"}, ["kcq"] = {"Kamo"}, ["kcr"] = {"Katla"}, ["kcs"] = {"Koenoem"}, ["kct"] = {"Kaian"}, ["kcu"] = {"Kami (Tanzania)"}, ["kcv"] = {"Kete"}, ["kcw"] = {"Kabwari"}, ["kcx"] = {"Kachama-Ganjule"}, ["kcy"] = {"Korandje"}, ["kcz"] = {"Konongo"}, ["kda"] = {"Worimi"}, ["kdc"] = {"Kutu"}, ["kdd"] = {"Yankunytjatjara"}, ["kde"] = {"Makonde"}, ["kdf"] = {"Mamusi"}, ["kdg"] = {"Seba"}, ["kdh"] = {"Tem"}, ["kdi"] = {"Kumam"}, ["kdj"] = {"Karamojong"}, ["kdk"] = {"Numèè", "Kwényi"}, ["kdl"] = {"Tsikimba"}, ["kdm"] = {"Kagoma"}, ["kdn"] = {"Kunda"}, ["kdo"] = {"çhengaghyn Kordofaniagh"}, ["kdp"] = {"Kaningdon-Nindem"}, ["kdq"] = {"Koch"}, ["kdr"] = {"Karaimish"}, ["kdt"] = {"Kuy"}, ["kdu"] = {"Kadaru"}, ["kdw"] = {"Koneraw"}, ["kdx"] = {"Kam"}, ["kdy"] = {"Keder", "Keijar"}, ["kdz"] = {"Kwaja"}, ["kea"] = {"Kabuverdianu"}, ["keb"] = {"Kélé"}, ["kec"] = {"Keiga"}, ["ked"] = {"Kerewe"}, ["kee"] = {"Keres Hiar"}, ["kef"] = {"Kpessi"}, ["keg"] = {"Tese"}, ["keh"] = {"Keak"}, ["kei"] = {"Kei"}, ["kej"] = {"Kadar"}, ["kek"] = {"Kekchí"}, ["kel"] = {"Kela (Pobblaght Gheynlagh y Chongo)"}, ["kem"] = {"Kemak"}, ["ken"] = {"Kenyang"}, ["keo"] = {"Kakwa"}, ["kep"] = {"Kaikadi"}, ["keq"] = {"Kamar"}, ["ker"] = {"Kera"}, ["kes"] = {"Kugbo"}, ["ket"] = {"Ket"}, ["keu"] = {"Akebu"}, ["kev"] = {"Kanikkaran"}, ["kew"] = {"Kewa Heear"}, ["kex"] = {"Kukna"}, ["key"] = {"Kupia"}, ["kez"] = {"Kukele"}, ["kfa"] = {"Kodava"}, ["kfb"] = {"Kolamish Heear Hwoaie"}, ["kfc"] = {"Konda-Dora"}, ["kfd"] = {"Korra Koraga"}, ["kfe"] = {"Kota (yn Injey)"}, ["kff"] = {"Koya"}, ["kfg"] = {"Kudiya"}, ["kfh"] = {"Kurichiya"}, ["kfi"] = {"Kurumba Kannada"}, ["kfj"] = {"Kemiehua"}, ["kfk"] = {"Kinnaurish"}, ["kfl"] = {"Kung"}, ["kfm"] = {"Khunsarish"}, ["kfn"] = {"Kuk"}, ["kfo"] = {"Koro (y Clyst Iuaagagh)"}, ["kfp"] = {"Korwa"}, ["kfq"] = {"Korku"}, ["kfr"] = {"Kachhish", "Kutchish"}, ["kfs"] = {"Bilaspurish"}, ["kft"] = {"Kanjarish"}, ["kfu"] = {"Katkarish"}, ["kfv"] = {"Kurmukarish"}, ["kfw"] = {"Kharam Naga"}, ["kfx"] = {"Kullu Pahari"}, ["kfy"] = {"Kumaoni"}, ["kfz"] = {"Koromfé"}, ["kga"] = {"Koyaga"}, ["kgb"] = {"Kawe"}, ["kge"] = {"Komering"}, ["kgf"] = {"Kube"}, ["kgg"] = {"Kusunda"}, ["kgi"] = {"Çhengey Chowree Selangor"}, ["kgj"] = {"Gamale Kham"}, ["kgk"] = {"Kaiwá"}, ["kgl"] = {"Kunggari"}, ["kgn"] = {"Karingani"}, ["kgo"] = {"Krongo"}, ["kgp"] = {"Kaingang"}, ["kgq"] = {"Kamoro"}, ["kgr"] = {"Abun"}, ["kgs"] = {"Kumbainggar"}, ["kgt"] = {"Somyev"}, ["kgu"] = {"Kobol"}, ["kgv"] = {"Karas"}, ["kgw"] = {"Karon Dori"}, ["kgx"] = {"Kamaru"}, ["kgy"] = {"Kyerung"}, ["kha"] = {"Khasi"}, ["khb"] = {"Lü"}, ["khc"] = {"Tukang Besi North"}, ["khd"] = {"Bädi Kanum"}, ["khe"] = {"Korowai"}, ["khf"] = {"Khuen"}, ["khg"] = {"Khams Tibetan"}, ["khh"] = {"Kehu"}, ["khi"] = {"çhengaghyn Khoisan"}, ["khj"] = {"Kuturmi"}, ["khk"] = {"Mongoilish Halh"}, ["khl"] = {"Lusi"}, ["khn"] = {"Khandesi"}, ["kho"] = {"Khotanish", "Sakan"}, ["khp"] = {"Kapori", "Kapauri"}, ["khq"] = {"Koyra Chiini Songhay"}, ["khr"] = {"Kharia"}, ["khs"] = {"Kasua"}, ["kht"] = {"Khamti"}, ["khu"] = {"Nkhumbi"}, ["khv"] = {"Khvarshi"}, ["khw"] = {"Khowar"}, ["khx"] = {"Kanu"}, ["khy"] = {"Kele (Pobblaght Gheynlagh y Chongo)"}, ["khz"] = {"Keapara"}, ["kia"] = {"Kim"}, ["kib"] = {"Koalib"}, ["kic"] = {"Kickapoo"}, ["kid"] = {"Koshin"}, ["kie"] = {"Kibet"}, ["kif"] = {"Magar Kham Hiar"}, ["kig"] = {"Kimaama", "Kimaghima"}, ["kih"] = {"Kilmeri"}, ["kii"] = {"Kitsai"}, ["kij"] = {"Kilivila"}, ["kil"] = {"Kariya"}, ["kim"] = {"Karagas"}, ["kio"] = {"Kiowa"}, ["kip"] = {"Sheshi Kham"}, ["kiq"] = {"Kosadle", "Kosare"}, ["kis"] = {"Kis"}, ["kit"] = {"Agob"}, ["kiu"] = {"Kirmanjki (çhengey er lheh)"}, ["kiv"] = {"Kimbu"}, ["kiw"] = {"Kiwai Hiar Hwoaie"}, ["kix"] = {"Khiamniungan Naga"}, ["kiy"] = {"Kirikiri"}, ["kiz"] = {"Kisi"}, ["kja"] = {"Mlap"}, ["kjb"] = {"Q'anjob'al", "Kanjobal"}, ["kjc"] = {"Konjo Slystagh"}, ["kjd"] = {"Kiwai Yiass"}, ["kje"] = {"Kisar"}, ["kjg"] = {"Khmu"}, ["kjh"] = {"Khakas"}, ["kji"] = {"Zabana"}, ["kjj"] = {"Khinalugh"}, ["kjk"] = {"Konjo Sleitoil"}, ["kjl"] = {"Magar Kham Heear"}, ["kjm"] = {"Kháng"}, ["kjn"] = {"Kunjen"}, ["kjo"] = {"Kinnaurish Harijan"}, ["kjp"] = {"Karenish Hiar Pwo"}, ["kjq"] = {"Keres Heear"}, ["kjr"] = {"Kurudu"}, ["kjs"] = {"Kewa Hiar"}, ["kjt"] = {"Karenish Phrae Pwo"}, ["kju"] = {"Kashaya"}, ["kjv"] = {"Çhengey Lettyragh Kaikavagh"}, ["kjx"] = {"Ramopa"}, ["kjy"] = {"Erave"}, ["kjz"] = {"Bumthangkha"}, ["kka"] = {"Kakanda"}, ["kkb"] = {"Kwerisa"}, ["kkc"] = {"Odoodee"}, ["kkd"] = {"Kinuku"}, ["kke"] = {"Kakabe"}, ["kkf"] = {"Kalaktang Monpa"}, ["kkg"] = {"Kalinga Ghlion Mabaka"}, ["kkh"] = {"Khün"}, ["kki"] = {"Kagulu"}, ["kkj"] = {"Kako"}, ["kkk"] = {"Kokota"}, ["kkl"] = {"Kosarek Yale"}, ["kkm"] = {"Kiong"}, ["kkn"] = {"Kon Keu"}, ["kko"] = {"Karko"}, ["kkp"] = {"Gugubera", "Koko-Bera"}, ["kkq"] = {"Kaeku"}, ["kkr"] = {"Kir-Balar"}, ["kks"] = {"Giiwo"}, ["kkt"] = {"Koi"}, ["kku"] = {"Tumi"}, ["kkv"] = {"Kangean"}, ["kkw"] = {"Teke-Kukuya"}, ["kkx"] = {"Kohin"}, ["kky"] = {"Guugu Yimidhirr", "Guguyimidjir"}, ["kkz"] = {"Kaska"}, ["kla"] = {"Klamath-Modoc"}, ["klb"] = {"Kiliwa"}, ["klc"] = {"Kolbila"}, ["kld"] = {"Gamilaraay"}, ["kle"] = {"Kulung (Nepaal)"}, ["klf"] = {"Kendeje"}, ["klg"] = {"Tagakaulo"}, ["klh"] = {"Weliki"}, ["kli"] = {"Kalumpang"}, ["klj"] = {"Khalaj"}, ["klk"] = {"Kono (y Naigeer)"}, ["kll"] = {"Kagan Kalagan"}, ["klm"] = {"Migum"}, ["kln"] = {"Kalenjin"}, ["klo"] = {"Kapya"}, ["klp"] = {"Kamasa"}, ["klq"] = {"Rumu"}, ["klr"] = {"Khaling"}, ["kls"] = {"Kalasha"}, ["klt"] = {"Nukna"}, ["klu"] = {"Klao"}, ["klv"] = {"Maskelynes"}, ["klw"] = {"Tado", "Lindu"}, ["klx"] = {"Koluwawa"}, ["kly"] = {"Kalao"}, ["klz"] = {"Kabola"}, ["kma"] = {"Konni"}, ["kmb"] = {"Kimbundu"}, ["kmc"] = {"Dong Yiass"}, ["kmd"] = {"Majukayang Kalinga"}, ["kme"] = {"Bakole"}, ["kmf"] = {"Kare (Papooe Guinea Noa)"}, ["kmg"] = {"Kâte"}, ["kmh"] = {"Kalam"}, ["kmi"] = {"Kami (y Naigeer)"}, ["kmj"] = {"Kumarbhag Paharia"}, ["kmk"] = {"Limos Kalinga"}, ["kml"] = {"Tanudan Kalinga"}, ["kmm"] = {"Kom (yn Injey)"}, ["kmn"] = {"Awtuw"}, ["kmo"] = {"Kwoma"}, ["kmp"] = {"Gimme"}, ["kmq"] = {"Kwama"}, ["kmr"] = {"Kurdish Hwoaie"}, ["kms"] = {"Kamasau"}, ["kmt"] = {"Kemtuik"}, ["kmu"] = {"Kanite"}, ["kmv"] = {"Creeole Frangish Karipúna"}, ["kmw"] = {"Komo (Pobblaght Gheynlagh y Chongo)"}, ["kmx"] = {"Waboda"}, ["kmy"] = {"Koma"}, ["kmz"] = {"Turkish Khorasan"}, ["kna"] = {"Dera (y Naigeer)"}, ["knb"] = {"Lubuagan Kalinga"}, ["knc"] = {"Kanurish Veanagh"}, ["knd"] = {"Konda"}, ["kne"] = {"Kankanaey"}, ["knf"] = {"Mankanya"}, ["kng"] = {"Koongo"}, ["kni"] = {"Kanufi"}, ["knj"] = {"Kanjobal Heear"}, ["knk"] = {"Kuranko"}, ["knl"] = {"Keninjal"}, ["knm"] = {"Kanamarí"}, ["knn"] = {"Konkani (çhengey er lheh)"}, ["kno"] = {"Kono (Sierra Leone)"}, ["knp"] = {"Kwanja"}, ["knq"] = {"Kintaq"}, ["knr"] = {"Kaningra"}, ["kns"] = {"Kensiu"}, ["knt"] = {"Panoan Katukína"}, ["knu"] = {"Kono (y Ghuinea)"}, ["knv"] = {"Tabo"}, ["knw"] = {"Kung-Ekoka"}, ["knx"] = {"Kendayan", "Salako"}, ["kny"] = {"Kanyok"}, ["knz"] = {"Kalamsé"}, ["koa"] = {"Konomala"}, ["koc"] = {"Kpati"}, ["kod"] = {"Kodi"}, ["koe"] = {"Kacipo-Bale Suri"}, ["kof"] = {"Kubi"}, ["kog"] = {"Cogui", "Kogi"}, ["koh"] = {"Koyo"}, ["koi"] = {"Komish Phermagh"}, ["kok"] = {"Konkanish (mooar-hengey)"}, ["kol"] = {"Kol (Papooey Guinea Noa)"}, ["koo"] = {"Konzo"}, ["kop"] = {"Waube"}, ["koq"] = {"Kota (Gabon)"}, ["kos"] = {"Kosraeish"}, ["kot"] = {"Lagwan"}, ["kou"] = {"Koke"}, ["kov"] = {"Kudu-Camo"}, ["kow"] = {"Kugama"}, ["koy"] = {"Koyukon"}, ["koz"] = {"Korak"}, ["kpa"] = {"Kutto"}, ["kpb"] = {"Mullu Kurumba"}, ["kpc"] = {"Curripaco"}, ["kpd"] = {"Koba"}, ["kpe"] = {"Kpelle"}, ["kpf"] = {"Komba"}, ["kpg"] = {"Kapingamarangi"}, ["kph"] = {"Kplang"}, ["kpi"] = {"Kofei"}, ["kpj"] = {"Karajá"}, ["kpk"] = {"Kpan"}, ["kpl"] = {"Kpala"}, ["kpm"] = {"Koho"}, ["kpn"] = {"Kepkiriwát"}, ["kpo"] = {"Ikposo"}, ["kpq"] = {"Korupun-Sela"}, ["kpr"] = {"Korafe-Yegha"}, ["kps"] = {"Tehit"}, ["kpt"] = {"Karata"}, ["kpu"] = {"Kafoa"}, ["kpv"] = {"Komish Hyriagh"}, ["kpw"] = {"Kobon"}, ["kpx"] = {"Koialish Sleitoil"}, ["kpy"] = {"Koryakish"}, ["kpz"] = {"Kupsabiny"}, ["kqa"] = {"Mum"}, ["kqb"] = {"Kovai"}, ["kqc"] = {"Doromu-Koki"}, ["kqd"] = {"Koy Sanjaq Surat"}, ["kqe"] = {"Kalagan"}, ["kqf"] = {"Kakabai"}, ["kqg"] = {"Khe"}, ["kqh"] = {"Kisankasa"}, ["kqi"] = {"Koitabu"}, ["kqj"] = {"Koromira"}, ["kqk"] = {"Kotafon Gbe"}, ["kql"] = {"Kyenele"}, ["kqm"] = {"Khisa"}, ["kqn"] = {"Kaonde"}, ["kqo"] = {"Krahn Hiar"}, ["kqp"] = {"Kimré"}, ["kqq"] = {"Krenak"}, ["kqr"] = {"Kimaragang"}, ["kqs"] = {"Kissi Hwoaie"}, ["kqt"] = {"Kadazan yn Awin Klias"}, ["kqu"] = {"Seroa"}, ["kqv"] = {"Okolod"}, ["kqw"] = {"Kandas"}, ["kqx"] = {"Mser"}, ["kqy"] = {"Koorete"}, ["kqz"] = {"Korana"}, ["kra"] = {"Kumhali"}, ["krb"] = {"Karkin"}, ["krc"] = {"Karaçhayish-Balkarish"}, ["krd"] = {"Kairui-Midiki"}, ["kre"] = {"Panará"}, ["krf"] = {"Koro (Vanuatu)"}, ["krh"] = {"Kurama"}, ["kri"] = {"Krio"}, ["krj"] = {"Kinaray-A"}, ["krk"] = {"Kerek"}, ["krl"] = {"Karelish"}, ["krn"] = {"Sapo"}, ["kro"] = {"çhengaghyn Kru"}, ["krp"] = {"Durop"}, ["krr"] = {"Krung"}, ["krs"] = {"Gbaya (y Toodaan)"}, ["krt"] = {"Tumari Kanuri"}, ["kru"] = {"Kurukh"}, ["krv"] = {"Kavet"}, ["krw"] = {"Krahn Heear"}, ["krx"] = {"Karon"}, ["kry"] = {"Kryts"}, ["krz"] = {"Sota Kanum"}, ["ksb"] = {"Shambala"}, ["ksc"] = {"Kalinga Yiass"}, ["ksd"] = {"Kuanua"}, ["kse"] = {"Kuni"}, ["ksf"] = {"Bafia"}, ["ksg"] = {"Kusaghe"}, ["ksh"] = {"Kölsch"}, ["ksi"] = {"Krisa", "I'saka"}, ["ksj"] = {"Uare"}, ["ksk"] = {"Kansa"}, ["ksl"] = {"Kumalu"}, ["ksm"] = {"Kumba"}, ["ksn"] = {"Kasiguranin"}, ["kso"] = {"Kofa"}, ["ksp"] = {"Kaba"}, ["ksq"] = {"Kwaami"}, ["ksr"] = {"Borong"}, ["kss"] = {"Kisi Yiass"}, ["kst"] = {"Winyé"}, ["ksu"] = {"Khamyang"}, ["ksv"] = {"Kusu"}, ["ksw"] = {"Karenish S'gaw"}, ["ksx"] = {"Kedang"}, ["ksy"] = {"Kharia Thar"}, ["ksz"] = {"Kodaku"}, ["kta"] = {"Katua"}, ["ktb"] = {"Kambaata"}, ["ktc"] = {"Kholok"}, ["ktd"] = {"Kokata", "Kukatha"}, ["kte"] = {"Nubri"}, ["ktf"] = {"Kwami"}, ["ktg"] = {"Kalkutung"}, ["kth"] = {"Karanga"}, ["kti"] = {"Muyu Hwoaie"}, ["ktj"] = {"Plapo Krumen"}, ["ktk"] = {"Kaniet"}, ["ktl"] = {"Koroshi"}, ["ktm"] = {"Kurti"}, ["ktn"] = {"Karitiâna"}, ["kto"] = {"Kuot"}, ["ktp"] = {"Kaduo"}, ["ktq"] = {"Katabaga"}, ["kts"] = {"Muyu Yiass"}, ["ktt"] = {"Ketum"}, ["ktu"] = {"Kitubish (Pobblaght Gheynlagh y Chongo)"}, ["ktv"] = {"Katu Hiar"}, ["ktw"] = {"Kato"}, ["ktx"] = {"Kaxararí"}, ["kty"] = {"Kango (Slyst Bas-Uélé)"}, ["ktz"] = {"Juǀʼhoan", "Juǀʼhoansi"}, ["kub"] = {"Kutep"}, ["kuc"] = {"Kwinsu"}, ["kud"] = {"'Auhelawa"}, ["kue"] = {"Kuman (Papooey Guinea Noa)"}, ["kuf"] = {"Katu Heear"}, ["kug"] = {"Kupa"}, ["kuh"] = {"Kushi"}, ["kui"] = {"Kuikúro-Kalapálo", "Kalapalo"}, ["kuj"] = {"Kuria"}, ["kuk"] = {"Kepo'"}, ["kul"] = {"Kulere"}, ["kum"] = {"Kumykish"}, ["kun"] = {"Kunama"}, ["kuo"] = {"Kumukio"}, ["kup"] = {"Kunimaipa"}, ["kuq"] = {"Karipuna"}, ["kus"] = {"Kusaal"}, ["kut"] = {"Kutenai"}, ["kuu"] = {"Kuskokwim Eaghtyragh"}, ["kuv"] = {"Kur"}, ["kuw"] = {"Kpagua"}, ["kux"] = {"Kukatja"}, ["kuy"] = {"Kuuku-Ya'u"}, ["kuz"] = {"Kunza"}, ["kva"] = {"Bagvalal"}, ["kvb"] = {"Kubu"}, ["kvc"] = {"Kove"}, ["kvd"] = {"Kui (yn Indoneesh)"}, ["kve"] = {"Kalabakanish"}, ["kvf"] = {"Kabalai"}, ["kvg"] = {"Kuni-Boazi"}, ["kvh"] = {"Komodo"}, ["kvi"] = {"Kwang"}, ["kvj"] = {"Psikye"}, ["kvk"] = {"Çhengey Chowree Choreeagh"}, ["kvl"] = {"Kayaw"}, ["kvm"] = {"Kendem"}, ["kvn"] = {"Border Kuna"}, ["kvo"] = {"Dobel"}, ["kvp"] = {"Kompane"}, ["kvq"] = {"Karenish Geba"}, ["kvr"] = {"Kerinci"}, ["kvt"] = {"Karenish Lahta", "Lahta"}, ["kvu"] = {"Karenish Yinbaw"}, ["kvv"] = {"Kola"}, ["kvw"] = {"Wersing"}, ["kvx"] = {"Parkari Koli"}, ["kvy"] = {"Karenish Yintale", "Yintale"}, ["kvz"] = {"Tsakwambo", "Tsaukambo"}, ["kwa"] = {"Dâw"}, ["kwb"] = {"Kwa"}, ["kwc"] = {"Likwala"}, ["kwd"] = {"Kwaio"}, ["kwe"] = {"Kwerba"}, ["kwf"] = {"Kwara'ae"}, ["kwg"] = {"Sara Kaba Deme"}, ["kwh"] = {"Kowiai"}, ["kwi"] = {"Awa-Cuaiquer"}, ["kwj"] = {"Kwanga"}, ["kwk"] = {"Kwakiutl"}, ["kwl"] = {"Kofyar"}, ["kwm"] = {"Kwambish"}, ["kwn"] = {"Kwangalish"}, ["kwo"] = {"Kwomtarish"}, ["kwp"] = {"Kodia"}, ["kwr"] = {"Kwer"}, ["kws"] = {"Kwese"}, ["kwt"] = {"Kwesten"}, ["kwu"] = {"Kwakum"}, ["kwv"] = {"Sara Kaba Náà"}, ["kww"] = {"Kwintish"}, ["kwx"] = {"Khirwar"}, ["kwy"] = {"Kongo San Salvador"}, ["kwz"] = {"Kwadi"}, ["kxa"] = {"Kairiru"}, ["kxb"] = {"Krobu"}, ["kxc"] = {"Konso", "Khonso"}, ["kxd"] = {"Brunei"}, ["kxf"] = {"Manumanaw Karen", "Manumanaw"}, ["kxh"] = {"Karo (yn Eetoip)"}, ["kxi"] = {"Keningau Murut"}, ["kxj"] = {"Kulfa"}, ["kxk"] = {"Karenish Zayein"}, ["kxm"] = {"Khmerish Hwoaie"}, ["kxn"] = {"Kanowit-Tanjong Melanau"}, ["kxo"] = {"Kanoé"}, ["kxp"] = {"Wadiyara Koli"}, ["kxq"] = {"Smärky Kanum"}, ["kxr"] = {"Koro (Papooey Guinea Noa)"}, ["kxs"] = {"Kangjia"}, ["kxt"] = {"Koiwat"}, ["kxv"] = {"Kuvi"}, ["kxw"] = {"Konai"}, ["kxx"] = {"Likuba"}, ["kxy"] = {"Kayong"}, ["kxz"] = {"Kerewo"}, ["kya"] = {"Kwaya"}, ["kyb"] = {"Butbut Kalinga"}, ["kyc"] = {"Kyaka"}, ["kyd"] = {"Karey"}, ["kye"] = {"Krache"}, ["kyf"] = {"Kouya"}, ["kyg"] = {"Keyagana"}, ["kyh"] = {"Karok"}, ["kyi"] = {"Kiput"}, ["kyj"] = {"Karao"}, ["kyk"] = {"Kamayo"}, ["kyl"] = {"Kalapuya"}, ["kym"] = {"Kpatili"}, ["kyn"] = {"Binukidnon Hwoaie"}, ["kyo"] = {"Kelon"}, ["kyp"] = {"Kang"}, ["kyq"] = {"Kenga"}, ["kyr"] = {"Kuruáya"}, ["kys"] = {"Baram Kayan"}, ["kyt"] = {"Kayagar"}, ["kyu"] = {"Kayah Heear"}, ["kyv"] = {"Kayort"}, ["kyw"] = {"Kudmali"}, ["kyx"] = {"Rapoisi"}, ["kyy"] = {"Kambaira"}, ["kyz"] = {"Kayabí"}, ["kza"] = {"Karaboro Heear"}, ["kzb"] = {"Kaibobo"}, ["kzc"] = {"Bondoukou Kulango"}, ["kzd"] = {"Kadai"}, ["kze"] = {"Kosena"}, ["kzf"] = {"Da'a Kaili"}, ["kzg"] = {"Kikai"}, ["kzi"] = {"Kelabit"}, ["kzk"] = {"Kazukuru"}, ["kzl"] = {"Kayeli"}, ["kzm"] = {"Kais"}, ["kzn"] = {"Kokola"}, ["kzo"] = {"Kaningi"}, ["kzp"] = {"Kaidipang"}, ["kzq"] = {"Kaike"}, ["kzr"] = {"Karang"}, ["kzs"] = {"Sugut Dusun"}, ["kzu"] = {"Kayupulau"}, ["kzv"] = {"Komyandaret"}, ["kzw"] = {"Karirí-Xocó"}, ["kzx"] = {"Kamarian"}, ["kzy"] = {"Kango (Slyst Tshopo)"}, ["kzz"] = {"Kalabra"}, ["laa"] = {"Subanen Yiass"}, ["lab"] = {"Linnagh A"}, ["lac"] = {"Lacandon"}, ["lad"] = {"Ladinoish"}, ["lae"] = {"Pattani"}, ["laf"] = {"Lafofa"}, ["lag"] = {"Rangi"}, ["lah"] = {"Lahnda"}, ["lai"] = {"Lambya"}, ["laj"] = {"Lango (Ooganda)"}, ["lal"] = {"Lalia"}, ["lam"] = {"Lamba"}, ["lan"] = {"Laru"}, ["lap"] = {"Laka (Shad)"}, ["laq"] = {"Qabiao"}, ["lar"] = {"Larteh"}, ["las"] = {"Lama (y Togo)"}, ["lau"] = {"Laba"}, ["law"] = {"Lauje"}, ["lax"] = {"Tiwa"}, ["lay"] = {"Lama Bai"}, ["laz"] = {"Aribwatsa"}, ["lbb"] = {"Label"}, ["lbc"] = {"Lakkia"}, ["lbe"] = {"Lakish"}, ["lbf"] = {"Tinani"}, ["lbg"] = {"Laopang"}, ["lbi"] = {"La'bi"}, ["lbj"] = {"Ladakhi"}, ["lbk"] = {"Bontok Veanagh"}, ["lbl"] = {"Bikol Libon"}, ["lbm"] = {"Lodhi"}, ["lbn"] = {"Rmeet"}, ["lbo"] = {"Laven"}, ["lbq"] = {"Wampar"}, ["lbr"] = {"Lohorung"}, ["lbs"] = {"Çhengey Chowree Leebagh"}, ["lbt"] = {"Lachi"}, ["lbu"] = {"Labu"}, ["lbv"] = {"Lavatbura-Lamusong"}, ["lbw"] = {"Tolaki"}, ["lbx"] = {"Lawangan"}, ["lby"] = {"Lamalama", "Lamu-Lamu"}, ["lbz"] = {"Lardil"}, ["lcc"] = {"Legenyem"}, ["lcd"] = {"Lola"}, ["lce"] = {"Loncong", "Sekak"}, ["lcf"] = {"Lubu"}, ["lch"] = {"Luchazi"}, ["lcl"] = {"Lisela"}, ["lcm"] = {"Tungag"}, ["lcp"] = {"Lawa Heear"}, ["lcq"] = {"Luhu"}, ["lcs"] = {"Lisabata-Nuniali"}, ["lda"] = {"Kla-Dan"}, ["ldb"] = {"Dũya"}, ["ldd"] = {"Lurish"}, ["ldg"] = {"Lenyima"}, ["ldh"] = {"Lamja-Dengsa-Tola"}, ["ldi"] = {"Laari"}, ["ldj"] = {"Lemoro"}, ["ldk"] = {"Leelau"}, ["ldl"] = {"Kaan"}, ["ldm"] = {"Landoma"}, ["ldn"] = {"Láadan"}, ["ldo"] = {"Loo"}, ["ldp"] = {"Tso"}, ["ldq"] = {"Lufu"}, ["lea"] = {"Lega-Shabunda"}, ["leb"] = {"Lala-Bisa"}, ["lec"] = {"Leco"}, ["led"] = {"Lendu"}, ["lee"] = {"Lyélé"}, ["lef"] = {"Lelemi"}, ["leh"] = {"Lenje"}, ["lei"] = {"Lemio"}, ["lej"] = {"Lengola"}, ["lek"] = {"Leipon"}, ["lel"] = {"Lele (Pobblaght Gheynlagh y Chongo)"}, ["lem"] = {"Nomaande"}, ["len"] = {"Lenca"}, ["leo"] = {"Leti (Cameroon)"}, ["lep"] = {"Lepcha"}, ["leq"] = {"Lembena"}, ["ler"] = {"Lenkau"}, ["les"] = {"Lese"}, ["let"] = {"Lesing-Gelimi", "Amio-Gelimi"}, ["leu"] = {"Kara (Papooey Guinea Noa)"}, ["lev"] = {"Lamma"}, ["lew"] = {"Ledo Kaili"}, ["lex"] = {"Luang"}, ["ley"] = {"Lemolang"}, ["lez"] = {"Lesgish"}, ["lfa"] = {"Lefa"}, ["lfn"] = {"Lingua Franca Nova"}, ["lga"] = {"Lungga"}, ["lgb"] = {"Laghu"}, ["lgg"] = {"Lugbara"}, ["lgh"] = {"Laghuu"}, ["lgi"] = {"Lengilu"}, ["lgk"] = {"Lingarak", "Neverver"}, ["lgl"] = {"Wala"}, ["lgm"] = {"Lega-Mwenga"}, ["lgn"] = {"T'apo", "Opuuo"}, ["lgo"] = {"Lango (y Toodaan Yiass)"}, ["lgq"] = {"Logba"}, ["lgr"] = {"Lengo"}, ["lgs"] = {"Çhengey Chowree Ghuinea-Bissau", "Língua Gestual Guineense"}, ["lgt"] = {"Pahi"}, ["lgu"] = {"Longgu"}, ["lgz"] = {"Ligenza"}, ["lha"] = {"Laha (Viet Nam)"}, ["lhh"] = {"Laha (yn Indoneesh)"}, ["lhi"] = {"Lahu Shi"}, ["lhl"] = {"Lahul Lohar"}, ["lhm"] = {"Lhomi"}, ["lhn"] = {"Lahanan"}, ["lhp"] = {"Lhokpu"}, ["lhs"] = {"Mlahsö"}, ["lht"] = {"Lo-Toga"}, ["lhu"] = {"Lahu"}, ["lia"] = {"Limba Veanagh Heear"}, ["lib"] = {"Likum"}, ["lic"] = {"Hlai"}, ["lid"] = {"Nyindrou"}, ["lie"] = {"Likila"}, ["lif"] = {"Limbu"}, ["lig"] = {"Ligbi"}, ["lih"] = {"Lihir"}, ["lij"] = {"Ligoorish"}, ["lik"] = {"Lika"}, ["lil"] = {"Lillooet"}, ["lio"] = {"Liki"}, ["lip"] = {"Sekpele"}, ["liq"] = {"Libido"}, ["lir"] = {"Baarle Laibeeragh"}, ["lis"] = {"Lisu"}, ["liu"] = {"Logorik"}, ["liv"] = {"Liv"}, ["liw"] = {"Col"}, ["lix"] = {"Liabuku"}, ["liy"] = {"Banda-Bambari"}, ["liz"] = {"Libinza"}, ["lja"] = {"Golpa"}, ["lje"] = {"Rampi"}, ["lji"] = {"Laiyolo"}, ["ljl"] = {"Li'o"}, ["ljp"] = {"Lampung Api"}, ["ljw"] = {"Yirandali"}, ["ljx"] = {"Yuru"}, ["lka"] = {"Lakalei"}, ["lkb"] = {"Kabras", "Lukabaras"}, ["lkc"] = {"Kucong"}, ["lkd"] = {"Lakondê"}, ["lke"] = {"Kenyi"}, ["lkh"] = {"Lakha"}, ["lki"] = {"Laki"}, ["lkj"] = {"Remun"}, ["lkl"] = {"Laeko-Libuat"}, ["lkm"] = {"Kalaamaya"}, ["lkn"] = {"Lakon", "Vure"}, ["lko"] = {"Khayo", "Olukhayo"}, ["lkr"] = {"Päri"}, ["lks"] = {"Kisa", "Olushisa"}, ["lkt"] = {"Lakota"}, ["lku"] = {"Kungkari"}, ["lky"] = {"Lokoya"}, ["lla"] = {"Lala-Roba"}, ["llb"] = {"Lolo"}, ["llc"] = {"Lele (y Ghuinea)"}, ["lld"] = {"Ladin"}, ["lle"] = {"Lele (Papooey Guinea Noa)"}, ["llf"] = {"Hermit"}, ["llg"] = {"Lole"}, ["llh"] = {"Lamu"}, ["lli"] = {"Teke-Laali"}, ["llj"] = {"Ladji Ladji"}, ["llk"] = {"Lelak"}, ["lll"] = {"Lilau"}, ["llm"] = {"Lasalimu"}, ["lln"] = {"Lele (Shad)"}, ["llp"] = {"Efate Hwoaie"}, ["llq"] = {"Lolak"}, ["lls"] = {"Çhengey Chowree Litaanagh"}, ["llu"] = {"Lau"}, ["llx"] = {"Lauan"}, ["lma"] = {"Limba Hiar"}, ["lmb"] = {"Merei"}, ["lmc"] = {"Limilngan"}, ["lmd"] = {"Lumun"}, ["lme"] = {"Pévé"}, ["lmf"] = {"Lembata Yiass"}, ["lmg"] = {"Lamogai"}, ["lmh"] = {"Lambichhong"}, ["lmi"] = {"Lombi"}, ["lmj"] = {"Lembata Heear"}, ["lmk"] = {"Lamkang"}, ["lml"] = {"Hano"}, ["lmn"] = {"Lambadi"}, ["lmo"] = {"Lombardish"}, ["lmp"] = {"Limbum"}, ["lmq"] = {"Lamatuka"}, ["lmr"] = {"Lamalera"}, ["lmu"] = {"Lamenu"}, ["lmv"] = {"Lomaiviti"}, ["lmw"] = {"Lake Miwok"}, ["lmx"] = {"Laimbue"}, ["lmy"] = {"Lamboya"}, ["lna"] = {"Langbashe"}, ["lnb"] = {"Mbalanhu"}, ["lnd"] = {"Lundayeh", "Lun Bawang"}, ["lng"] = {"Langobardish"}, ["lnh"] = {"Lanoh"}, ["lni"] = {"Daantanai'"}, ["lnj"] = {"Leningitij"}, ["lnl"] = {"Banda Veanagh Yiass"}, ["lnm"] = {"Langam"}, ["lnn"] = {"Lorediakarkar"}, ["lns"] = {"Lamnso'"}, ["lnu"] = {"Longuda"}, ["lnw"] = {"Lanima"}, ["lnz"] = {"Lonzo"}, ["loa"] = {"Loloda"}, ["lob"] = {"Lobi"}, ["loc"] = {"Inonhan"}, ["loe"] = {"Saluan"}, ["lof"] = {"Logol"}, ["log"] = {"Logo"}, ["loh"] = {"Laarim", "Narim"}, ["loi"] = {"Loma (y Clyst Iuaagagh)"}, ["loj"] = {"Lou"}, ["lok"] = {"Loko"}, ["lol"] = {"Mongo"}, ["lom"] = {"Loma (y Laibeer)"}, ["lon"] = {"Lombwe Malawi"}, ["loo"] = {"Lombo"}, ["lop"] = {"Lopa"}, ["loq"] = {"Lobala"}, ["lor"] = {"Téén"}, ["los"] = {"Loniu"}, ["lot"] = {"Otuho"}, ["lou"] = {"Creeole Louisiana"}, ["lov"] = {"Lopi"}, ["low"] = {"Tampias Lobu"}, ["lox"] = {"Loun"}, ["loy"] = {"Loke"}, ["loz"] = {"Lozish"}, ["lpa"] = {"Lelepa"}, ["lpe"] = {"Lepki"}, ["lpn"] = {"Long Phuri Naga"}, ["lpo"] = {"Lipo"}, ["lpx"] = {"Lopit"}, ["lqr"] = {"Logir"}, ["lra"] = {"Rara Bakati'"}, ["lrc"] = {"Lurish Hwoaie"}, ["lre"] = {"Lauryssish"}, ["lrg"] = {"Laragia"}, ["lri"] = {"Marachi", "Olumarachi"}, ["lrk"] = {"Loarki"}, ["lrl"] = {"Lari"}, ["lrm"] = {"Marama", "Olumarama"}, ["lrn"] = {"Lorang"}, ["lro"] = {"Laro"}, ["lrr"] = {"Yamphu Yiass"}, ["lrt"] = {"Malayish Larantuka"}, ["lrv"] = {"Larevat"}, ["lrz"] = {"Lemerig"}, ["lsa"] = {"Lasgerdi"}, ["lsb"] = {"Çhengey Chowree Vurundeeagh", "Langue des Signes Burundaise"}, ["lsc"] = {"Çhengey Chowree Albarradas", "Lengua de señas Albarradas"}, ["lsd"] = {"Lishana Deni"}, ["lse"] = {"Lusengo"}, ["lsh"] = {"Lish"}, ["lsi"] = {"Lashi"}, ["lsl"] = {"Çhengey Chowree Latvagh"}, ["lsm"] = {"Saamia", "Olusamia"}, ["lsn"] = {"Çhengey Chowree Hibetagh"}, ["lso"] = {"Çhengey Chowree Laosaghe"}, ["lsp"] = {"Çhengey Chowree Phanamaagh", "Lengua de Señas Panameñas"}, ["lsr"] = {"Aruop"}, ["lss"] = {"Lasi"}, ["lst"] = {"Çhengey Chowree yn Trinaid as Tobago"}, ["lsv"] = {"Çhengey Chowree Sivia"}, ["lsw"] = {"Çhengey Chowree Heshellagh", "Lalang Siny Seselwa", "Langue des Signes Seychelloise"}, ["lsy"] = {"Çhengey Chowree Wirrishagh"}, ["ltc"] = {"Sheenish Veanagh Yeianagh"}, ["ltg"] = {"Latgalish"}, ["lth"] = {"Thur"}, ["lti"] = {"Leti (yn Indoneesh)"}, ["ltn"] = {"Latundê"}, ["lto"] = {"Tsotso", "Olutsotso"}, ["lts"] = {"Tachoni", "Lutachoni"}, ["ltu"] = {"Latu"}, ["lua"] = {"Luba-Lulua"}, ["luc"] = {"Aringa"}, ["lud"] = {"Ludish"}, ["lue"] = {"Luvale"}, ["luf"] = {"Laua"}, ["lui"] = {"Luiseno"}, ["luj"] = {"Luna"}, ["luk"] = {"Lunanakha"}, ["lul"] = {"Olu'bo"}, ["lum"] = {"Luimbi"}, ["lun"] = {"Lunda"}, ["luo"] = {"Luo (y Cheinney as Tanzania)", "Dholuo"}, ["lup"] = {"Lumbu"}, ["luq"] = {"Lucumi"}, ["lur"] = {"Laura"}, ["lus"] = {"Lushai"}, ["lut"] = {"Lushootseed"}, ["luu"] = {"Lumba-Yakkha"}, ["luv"] = {"Luwati"}, ["luw"] = {"Luo (Cameroon)"}, ["luy"] = {"Luyia", "Oluluyia"}, ["luz"] = {"Lurish Yiass"}, ["lva"] = {"Maku'a"}, ["lvi"] = {"Lavi"}, ["lvk"] = {"Lavukaleve"}, ["lvl"] = {"Lwel"}, ["lvs"] = {"Latvish Stundayrtit"}, ["lvu"] = {"Levuka"}, ["lwa"] = {"Lwalu"}, ["lwe"] = {"Lewo Eleng"}, ["lwg"] = {"Wanga", "Oluwanga"}, ["lwh"] = {"Lachi Bane"}, ["lwl"] = {"Lawa Hiar"}, ["lwm"] = {"Laomish"}, ["lwo"] = {"Luwo"}, ["lws"] = {"Çhengey Chowree Malawi"}, ["lwt"] = {"Lewotobi"}, ["lwu"] = {"Lawu"}, ["lww"] = {"Lewo"}, ["lxm"] = {"Lakurumau"}, ["lya"] = {"Layakha"}, ["lyg"] = {"Lyngngam"}, ["lyn"] = {"Luyana"}, ["lzh"] = {"Sheenish Lettyragh"}, ["lzl"] = {"Litzlitz"}, ["lzn"] = {"Leinong Naga"}, ["lzz"] = {"Laz"}, ["maa"] = {"Mazatecish Tecóatl San Jerónimo"}, ["mab"] = {"Mixtecish Yutanduchi"}, ["mad"] = {"Madurish"}, ["mae"] = {"Bo-Rukul"}, ["maf"] = {"Mafa"}, ["mag"] = {"Magahi"}, ["mai"] = {"Maithilish"}, ["maj"] = {"Mazatecish Jalapa De Díaz"}, ["mak"] = {"Makasar"}, ["mam"] = {"Mam"}, ["man"] = {"Mandingo", "Manding"}, ["map"] = {"çhengaghyn Austroneeshagh"}, ["maq"] = {"Mazatecish Chiquihuitlán"}, ["mas"] = {"Masai"}, ["mat"] = {"Matlatzinca San Francisco"}, ["mau"] = {"Mazatecish Huautla"}, ["mav"] = {"Sateré-Mawé"}, ["maw"] = {"Mampruli"}, ["max"] = {"Malayish Maluku Hwoaie"}, ["maz"] = {"Mazahua Veanagh"}, ["mba"] = {"Higaonon"}, ["mbb"] = {"Manobo Bukidnon Heear"}, ["mbc"] = {"Macushi"}, ["mbd"] = {"Manobo Dibabawon"}, ["mbe"] = {"Molale"}, ["mbf"] = {"Malayish Baba"}, ["mbh"] = {"Mangseng"}, ["mbi"] = {"Manobo Ilianen"}, ["mbj"] = {"Nadëb"}, ["mbk"] = {"Malol"}, ["mbl"] = {"Maxakalí"}, ["mbm"] = {"Ombamba"}, ["mbn"] = {"Macaguán"}, ["mbo"] = {"Mbo (Cameroon)"}, ["mbp"] = {"Malayo"}, ["mbq"] = {"Maisin"}, ["mbr"] = {"Nukak Makú"}, ["mbs"] = {"Manobo Sarangani"}, ["mbt"] = {"Manobo Matigsalug"}, ["mbu"] = {"Mbula-Bwazza"}, ["mbv"] = {"Mbulungish"}, ["mbw"] = {"Maring"}, ["mbx"] = {"Mari (Queiggey East Sepik)"}, ["mby"] = {"Memoni"}, ["mbz"] = {"Mixtecish Amoltepec"}, ["mca"] = {"Maca"}, ["mcb"] = {"Machiguenga"}, ["mcc"] = {"Bitur"}, ["mcd"] = {"Sharanahua"}, ["mce"] = {"Mixtecish Itundujia"}, ["mcf"] = {"Matsés"}, ["mcg"] = {"Mapoyo"}, ["mch"] = {"Maquiritari"}, ["mci"] = {"Mese"}, ["mcj"] = {"Mvanip"}, ["mck"] = {"Mbunda"}, ["mcl"] = {"Macaguaje"}, ["mcm"] = {"Creeole Portiugish Malaccagh"}, ["mcn"] = {"Masana"}, ["mco"] = {"Coatlán Mixe"}, ["mcp"] = {"Makaa"}, ["mcq"] = {"Ese"}, ["mcr"] = {"Menya"}, ["mcs"] = {"Mambai"}, ["mct"] = {"Mengisa"}, ["mcu"] = {"Mambila Chameroon"}, ["mcv"] = {"Minanibai"}, ["mcw"] = {"Mawa (Shad)"}, ["mcx"] = {"Mpiemo"}, ["mcy"] = {"Watut Yiass"}, ["mcz"] = {"Mawan"}, ["mda"] = {"Mada (y Naigeer)"}, ["mdb"] = {"Morigi"}, ["mdc"] = {"Male (Papooey Guinea Noa)"}, ["mdd"] = {"Mbum"}, ["mde"] = {"Maba (Shad)"}, ["mdf"] = {"Moksha"}, ["mdg"] = {"Massalat"}, ["mdh"] = {"Maguindanaon"}, ["mdi"] = {"Mamvu"}, ["mdj"] = {"Mangbetu"}, ["mdk"] = {"Mangbutu"}, ["mdl"] = {"Çhengey Chowree Valtagh"}, ["mdm"] = {"Mayogo"}, ["mdn"] = {"Mbati"}, ["mdp"] = {"Mbala"}, ["mdq"] = {"Mbole"}, ["mdr"] = {"Mandar"}, ["mds"] = {"Maria (Papooey Guinea Noa)"}, ["mdt"] = {"Mbere"}, ["mdu"] = {"Mboko"}, ["mdv"] = {"Mixtecish Monteverde Santa Lucía"}, ["mdw"] = {"Mbosi"}, ["mdx"] = {"Dizin"}, ["mdy"] = {"Male (yn Eetoipt)"}, ["mdz"] = {"Suruí Do Pará"}, ["mea"] = {"Menka"}, ["meb"] = {"Ikobi"}, ["mec"] = {"Marra"}, ["med"] = {"Melpa"}, ["mee"] = {"Mengen"}, ["mef"] = {"Megam"}, ["meh"] = {"Mixtecish Tlaxiaco Heear Yiass"}, ["mei"] = {"Midob"}, ["mej"] = {"Meyah"}, ["mek"] = {"Mekeo"}, ["mel"] = {"Melanau Veanagh"}, ["mem"] = {"Mangala"}, ["men"] = {"Mende (Sierra Leone)"}, ["meo"] = {"Malayish Kedah"}, ["mep"] = {"Miriwoong"}, ["meq"] = {"Merey"}, ["mer"] = {"Meru"}, ["mes"] = {"Masmaje"}, ["met"] = {"Mato"}, ["meu"] = {"Motu"}, ["mev"] = {"Mano"}, ["mew"] = {"Maaka"}, ["mey"] = {"Hassaniyya"}, ["mez"] = {"Menominee"}, ["mfa"] = {"Malayish Pattani Malay"}, ["mfb"] = {"Bangka"}, ["mfc"] = {"Mba"}, ["mfd"] = {"Mendankwe-Nkwen"}, ["mfe"] = {"Creeole Mwirrishagh"}, ["mff"] = {"Naki"}, ["mfg"] = {"Mogofin"}, ["mfh"] = {"Matal"}, ["mfi"] = {"Wandala"}, ["mfj"] = {"Mefele"}, ["mfk"] = {"Mofu Hwoaie"}, ["mfl"] = {"Putai"}, ["mfm"] = {"Marghi Yiass"}, ["mfn"] = {"Mbembe Cross River"}, ["mfo"] = {"Mbe"}, ["mfp"] = {"Malayish Makassar"}, ["mfq"] = {"Moba"}, ["mfr"] = {"Marrithiyel"}, ["mfs"] = {"Çhengey Chowree Veksicagh"}, ["mft"] = {"Mokerang"}, ["mfu"] = {"Mbwela"}, ["mfv"] = {"Mandjak"}, ["mfw"] = {"Mulaha"}, ["mfx"] = {"Melo"}, ["mfy"] = {"Mayo"}, ["mfz"] = {"Mabaan"}, ["mga"] = {"Yernish Veanagh (900-1200)"}, ["mgb"] = {"Mararit"}, ["mgc"] = {"Morokodo"}, ["mgd"] = {"Moru"}, ["mge"] = {"Mango"}, ["mgf"] = {"Maklew"}, ["mgg"] = {"Mpumpong"}, ["mgh"] = {"Makhuwa-Meetto"}, ["mgi"] = {"Lijili"}, ["mgj"] = {"Abureni"}, ["mgk"] = {"Mawes"}, ["mgl"] = {"Maleu-Kilenge"}, ["mgm"] = {"Mambae"}, ["mgn"] = {"Mbangi"}, ["mgo"] = {"Meta'"}, ["mgp"] = {"Magar Hiar"}, ["mgq"] = {"Malila"}, ["mgr"] = {"Mambwe-Lungu"}, ["mgs"] = {"Manda (Tanzania)"}, ["mgt"] = {"Mongol"}, ["mgu"] = {"Mailu"}, ["mgv"] = {"Matengo"}, ["mgw"] = {"Matumbi"}, ["mgy"] = {"Mbunga"}, ["mgz"] = {"Mbugwe"}, ["mha"] = {"Manda (yn Injey)"}, ["mhb"] = {"Mahongwe"}, ["mhc"] = {"Mocho"}, ["mhd"] = {"Mbugu"}, ["mhe"] = {"Besisi", "Mah Meri"}, ["mhf"] = {"Mamaa"}, ["mhg"] = {"Margu"}, ["mhi"] = {"Ma'di"}, ["mhj"] = {"Mogholi"}, ["mhk"] = {"Mungaka"}, ["mhl"] = {"Mauwake"}, ["mhm"] = {"Makhuwa-Moniga"}, ["mhn"] = {"Mócheno"}, ["mho"] = {"Mashi (y Tambia)"}, ["mhp"] = {"Malayish Bali"}, ["mhq"] = {"Mandan"}, ["mhr"] = {"Mari Hiar"}, ["mhs"] = {"Buru (yn Indoneesh)"}, ["mht"] = {"Mandahuaca"}, ["mhu"] = {"Digaro-Mishmi", "Darang Deng"}, ["mhw"] = {"Mbukushu"}, ["mhx"] = {"Maru", "Lhaovo"}, ["mhy"] = {"Ma'anyan"}, ["mhz"] = {"Mor (Elanyn Mor)"}, ["mia"] = {"Miami"}, ["mib"] = {"Mixtecish Atatláhuca"}, ["mic"] = {"Mi'kmaq", "Micmacish"}, ["mid"] = {"Mandaish"}, ["mie"] = {"Mixtecish Ocotepec"}, ["mif"] = {"Mofu-Gudur"}, ["mig"] = {"Mixtecish San Miguel El Grande"}, ["mih"] = {"Mixtecish Chayuco"}, ["mii"] = {"Mixtecish Chigmecatitlán"}, ["mij"] = {"Abar", "Mungbam"}, ["mik"] = {"Mikasuki"}, ["mil"] = {"Mixtecish Peñoles"}, ["mim"] = {"Mixtecish Alacatlatzala"}, ["min"] = {"Minangkabau"}, ["mio"] = {"Mixtecish Pinotepa Nacional"}, ["mip"] = {"Mixtecish Apasco-Apoala"}, ["miq"] = {"Mískito"}, ["mir"] = {"Isthmus Mixe"}, ["mis"] = {"çhengaghyn gyn coad"}, ["mit"] = {"Mixtecish Puebla Yiassc"}, ["miu"] = {"Mixtecish Cacaloxtepec"}, ["miw"] = {"Akoye"}, ["mix"] = {"Mixtecish Mixtepec"}, ["miy"] = {"Mixtecish Ayutla"}, ["miz"] = {"Mixtecish Coatzospan"}, ["mjb"] = {"Makalero"}, ["mjc"] = {"Mixtecish San Juan Colorado"}, ["mjd"] = {"Maidu Heear Hwoaie"}, ["mje"] = {"Muskum"}, ["mjg"] = {"Tu"}, ["mjh"] = {"Mwera (Nyasa)"}, ["mji"] = {"Kim Mun"}, ["mjj"] = {"Mawak"}, ["mjk"] = {"Matukar"}, ["mjl"] = {"Mandeali"}, ["mjm"] = {"Medebur"}, ["mjn"] = {"Ma (Papooey Guinea Noa)"}, ["mjo"] = {"Malankuravan"}, ["mjp"] = {"Malapandaram"}, ["mjq"] = {"Malaryan"}, ["mjr"] = {"Malavedan"}, ["mjs"] = {"Miship"}, ["mjt"] = {"Sauria Paharia"}, ["mju"] = {"Manna-Dora"}, ["mjv"] = {"Mannan"}, ["mjw"] = {"Karbi"}, ["mjx"] = {"Mahali"}, ["mjy"] = {"Mohicanish"}, ["mjz"] = {"Majhi"}, ["mka"] = {"Mbre"}, ["mkb"] = {"Mal Paharia"}, ["mkc"] = {"Siliput"}, ["mke"] = {"Mawchi"}, ["mkf"] = {"Miya"}, ["mkg"] = {"Mak (y Çheen)"}, ["mkh"] = {"çhengaghyn Mon-Khmeragh"}, ["mki"] = {"Dhatki"}, ["mkj"] = {"Mokilish"}, ["mkk"] = {"Byep"}, ["mkl"] = {"Mokole"}, ["mkm"] = {"Moklen"}, ["mkn"] = {"Malayish Kupang"}, ["mko"] = {"Mingang Doso"}, ["mkp"] = {"Moikodi"}, ["mkq"] = {"Bay Miwok"}, ["mkr"] = {"Malas"}, ["mks"] = {"Mixtecish Silacayoapan"}, ["mkt"] = {"Vamale"}, ["mku"] = {"Konyanka Maninka"}, ["mkv"] = {"Mafea"}, ["mkw"] = {"Kitubish (y Congo)"}, ["mkx"] = {"Minobo Kinamiging"}, ["mky"] = {"Makish Hiar"}, ["mkz"] = {"Makasae"}, ["mla"] = {"Malo"}, ["mlb"] = {"Mbule"}, ["mlc"] = {"Cao Lan"}, ["mle"] = {"Manambu"}, ["mlf"] = {"Mal"}, ["mlh"] = {"Mape"}, ["mli"] = {"Malimpung"}, ["mlj"] = {"Miltu"}, ["mlk"] = {"Ilwana", "Kiwilwana"}, ["mll"] = {"Malua Bay"}, ["mlm"] = {"Mulam"}, ["mln"] = {"Malango"}, ["mlo"] = {"Mlomp"}, ["mlp"] = {"Bargam"}, ["mlq"] = {"Maninkish Heear"}, ["mlr"] = {"Vame"}, ["mls"] = {"Masalit"}, ["mlu"] = {"To'abaita"}, ["mlv"] = {"Motlav", "Mwotlap"}, ["mlw"] = {"Moloko"}, ["mlx"] = {"Malfaxal", "Naha'ai"}, ["mlz"] = {"Malaynon"}, ["mma"] = {"Mama"}, ["mmb"] = {"Momina"}, ["mmc"] = {"Mazahua Michoacán"}, ["mmd"] = {"Maonan"}, ["mme"] = {"Mae"}, ["mmf"] = {"Mundat"}, ["mmg"] = {"Ambrym Hwoaie"}, ["mmh"] = {"Mehináku"}, ["mmi"] = {"Musar"}, ["mmj"] = {"Majhwar"}, ["mmk"] = {"Mukha-Dora"}, ["mml"] = {"Man Met"}, ["mmm"] = {"Maii"}, ["mmn"] = {"Mamanwa"}, ["mmo"] = {"Mangga Buang"}, ["mmp"] = {"Siawi"}, ["mmq"] = {"Musak"}, ["mmr"] = {"Miaoish Xiangxi Heear"}, ["mmt"] = {"Malalamai"}, ["mmu"] = {"Mmaala"}, ["mmv"] = {"Miriti"}, ["mmw"] = {"Emae"}, ["mmx"] = {"Madak"}, ["mmy"] = {"Migaama"}, ["mmz"] = {"Mabaale"}, ["mna"] = {"Mbula"}, ["mnb"] = {"Muna"}, ["mnc"] = {"Mançhooish"}, ["mnd"] = {"Mondé"}, ["mne"] = {"Naba"}, ["mnf"] = {"Mundanish"}, ["mng"] = {"Mnong Hiar"}, ["mnh"] = {"Mono (Pobblaght Gheynlagh y Chongo)"}, ["mni"] = {"Manipurish"}, ["mnj"] = {"Munji"}, ["mnk"] = {"Mandinkish"}, ["mnl"] = {"Tiale"}, ["mnm"] = {"Mapena"}, ["mnn"] = {"Mnong Yiass"}, ["mno"] = {"çhengaghyn Manobo"}, ["mnp"] = {"Sheenish Min Bei"}, ["mnq"] = {"Minriq"}, ["mnr"] = {"Mono (SUA)"}, ["mns"] = {"Mansi"}, ["mnu"] = {"Mer"}, ["mnv"] = {"Rennell-Bellona"}, ["mnw"] = {"Mon"}, ["mnx"] = {"Manikion"}, ["mny"] = {"Manyawa"}, ["mnz"] = {"Moni"}, ["moa"] = {"Mwan"}, ["moc"] = {"Mocoví"}, ["mod"] = {"Mobilish"}, ["moe"] = {"Innu", "Montagnais"}, ["mog"] = {"Mongondow"}, ["moh"] = {"Mohawkish"}, ["moi"] = {"Mboi"}, ["moj"] = {"Monzombo"}, ["mok"] = {"Morori"}, ["mom"] = {"Mangue"}, ["moo"] = {"Monom"}, ["mop"] = {"Mayish Mopán"}, ["moq"] = {"Mor (Lieh-innys Bomberai)"}, ["mor"] = {"Moroish"}, ["mos"] = {"Mossish"}, ["mot"] = {"Barí"}, ["mou"] = {"Mogum"}, ["mov"] = {"Mohave"}, ["mow"] = {"Moi (y Congo)"}, ["mox"] = {"Molima"}, ["moy"] = {"Shekkacho"}, ["moz"] = {"Mukulu", "Gergiko"}, ["mpa"] = {"Mpoto"}, ["mpb"] = {"Malak Malak", "Mullukmulluk"}, ["mpc"] = {"Mangarrayi"}, ["mpd"] = {"Machinere"}, ["mpe"] = {"Majang"}, ["mpg"] = {"Marba"}, ["mph"] = {"Maung"}, ["mpi"] = {"Mpade"}, ["mpj"] = {"Martu Wangka", "Wangkajunga"}, ["mpk"] = {"Mbara (Shad)"}, ["mpl"] = {"Watut Veanagh"}, ["mpm"] = {"Mixtecish Yosondúa"}, ["mpn"] = {"Mindiri"}, ["mpo"] = {"Miu"}, ["mpp"] = {"Migabac"}, ["mpq"] = {"Matís"}, ["mpr"] = {"Vangunu"}, ["mps"] = {"Dadibi"}, ["mpt"] = {"Mian"}, ["mpu"] = {"Makuráp"}, ["mpv"] = {"Mungkip"}, ["mpw"] = {"Mapidish"}, ["mpx"] = {"Misima-Panaeati"}, ["mpy"] = {"Mapia"}, ["mpz"] = {"Mpi"}, ["mqa"] = {"Maba (yn Indoneesh)"}, ["mqb"] = {"Mbuko"}, ["mqc"] = {"Mangole"}, ["mqe"] = {"Matepi"}, ["mqf"] = {"Momuna"}, ["mqg"] = {"Mlayish Kota Bangun Kutai"}, ["mqh"] = {"Mixtecish Tlazoyaltepec"}, ["mqi"] = {"Mariri"}, ["mqj"] = {"Mamasa"}, ["mqk"] = {"Rajah Kabunsuwan Manobo"}, ["mql"] = {"Mbelime"}, ["mqm"] = {"Marquesish Yiass"}, ["mqn"] = {"Moronene"}, ["mqo"] = {"Modole"}, ["mqp"] = {"Manipa"}, ["mqq"] = {"Minokok"}, ["mqr"] = {"Mander"}, ["mqs"] = {"Makish Heear"}, ["mqt"] = {"Mok"}, ["mqu"] = {"Mandari"}, ["mqv"] = {"Mosimo"}, ["mqw"] = {"Murupi"}, ["mqx"] = {"Mamuju"}, ["mqy"] = {"Manggarai"}, ["mqz"] = {"Pano"}, ["mra"] = {"Mlabri"}, ["mrb"] = {"Marino"}, ["mrc"] = {"Maricopa"}, ["mrd"] = {"Magar Heear"}, ["mre"] = {"Çhengey Chowree Martha's Vineyard"}, ["mrf"] = {"Elseng"}, ["mrg"] = {"Mising"}, ["mrh"] = {"Mara Chin"}, ["mrj"] = {"Marish Heear"}, ["mrk"] = {"Hmwaveke"}, ["mrl"] = {"Mortlockish"}, ["mrm"] = {"Merlav", "Mwerlap"}, ["mrn"] = {"Cheke Holo"}, ["mro"] = {"Mru"}, ["mrp"] = {"Morouas"}, ["mrq"] = {"Marquesish Hwoaie"}, ["mrr"] = {"Maria (yn Injey)"}, ["mrs"] = {"Maragus"}, ["mrt"] = {"Marghi Veanagh"}, ["mru"] = {"Mono (Cameroon)"}, ["mrv"] = {"Mangareva"}, ["mrw"] = {"Maranao"}, ["mrx"] = {"Maremgi", "Dineor"}, ["mry"] = {"Mandaya"}, ["mrz"] = {"Marind"}, ["msb"] = {"Masbatenyo"}, ["msc"] = {"Sankaran Maninka"}, ["msd"] = {"Çhengey Chowree Mayagh Yucatec"}, ["mse"] = {"Musey"}, ["msf"] = {"Mekwei"}, ["msg"] = {"Moraid"}, ["msh"] = {"Malagasish Masikoro"}, ["msi"] = {"Malayish Sabah"}, ["msj"] = {"Ma (Pobblaght Gheynlagh y Chongo)"}, ["msk"] = {"Mansaka"}, ["msl"] = {"Molof", "Poule"}, ["msm"] = {"Agusan Manobo"}, ["msn"] = {"Vurës"}, ["mso"] = {"Mombum"}, ["msp"] = {"Maritsauá"}, ["msq"] = {"Caac"}, ["msr"] = {"Çhengey Chowree Vongoilagh"}, ["mss"] = {"Masela Heear"}, ["msu"] = {"Musom"}, ["msv"] = {"Maslam"}, ["msw"] = {"Mansoanka"}, ["msx"] = {"Moresada"}, ["msy"] = {"Aruamu"}, ["msz"] = {"Momare"}, ["mta"] = {"Manobo Cotabato"}, ["mtb"] = {"Anyin Morofo"}, ["mtc"] = {"Munit"}, ["mtd"] = {"Mualang"}, ["mte"] = {"Mono (Ellanyn Solomon)"}, ["mtf"] = {"Murik (Papooey Guinea Noa)"}, ["mtg"] = {"Una"}, ["mth"] = {"Munggui"}, ["mti"] = {"Maiwa (Papooey Guinea Noa)"}, ["mtj"] = {"Moskona"}, ["mtk"] = {"Mbe'"}, ["mtl"] = {"Montol"}, ["mtm"] = {"Mator"}, ["mtn"] = {"Matagalpa"}, ["mto"] = {"Totontepec Mixe"}, ["mtp"] = {"Wichí Lhamtés Nocten"}, ["mtq"] = {"Muong"}, ["mtr"] = {"Mewari"}, ["mts"] = {"Yora"}, ["mtt"] = {"Mota"}, ["mtu"] = {"Mixtecish Tututepec"}, ["mtv"] = {"Asaro'o"}, ["mtw"] = {"Binukidnon Yiass"}, ["mtx"] = {"Mixtecish Tidaá"}, ["mty"] = {"Nabi"}, ["mua"] = {"Mundang"}, ["mub"] = {"Mubi"}, ["muc"] = {"Ajumbu"}, ["mud"] = {"Aleutish Mednyj"}, ["mue"] = {"Media Lengua"}, ["mug"] = {"Musgu"}, ["muh"] = {"Mündü"}, ["mui"] = {"Musi"}, ["muj"] = {"Mabire"}, ["muk"] = {"Mugom"}, ["mul"] = {"Ymmodee çhengaghyn"}, ["mum"] = {"Maiwala"}, ["mun"] = {"çhengaghyn Munda"}, ["muo"] = {"Nyong"}, ["mup"] = {"Malvi"}, ["muq"] = {"Miaoish Xiangxi Hiar"}, ["mur"] = {"Murle"}, ["mus"] = {"Creekish"}, ["mut"] = {"Murish Heear"}, ["muu"] = {"Yaaku"}, ["muv"] = {"Muthuvan"}, ["mux"] = {"Bo-Ung"}, ["muy"] = {"Muyang"}, ["muz"] = {"Mursi"}, ["mva"] = {"Manam"}, ["mvb"] = {"Mattole"}, ["mvd"] = {"Mamboru"}, ["mve"] = {"Marwari (y Phakistaan)"}, ["mvf"] = {"Mongoilish Ymmyllagh"}, ["mvg"] = {"Mixtecish Yucuañe"}, ["mvh"] = {"Mulgi"}, ["mvi"] = {"Miyako"}, ["mvk"] = {"Mekmek"}, ["mvl"] = {"Mbara (yn Austrail)"}, ["mvn"] = {"Minaveha"}, ["mvo"] = {"Marovo"}, ["mvp"] = {"Duri"}, ["mvq"] = {"Moere"}, ["mvr"] = {"Marau"}, ["mvs"] = {"Massep"}, ["mvt"] = {"Mpotovoro"}, ["mvu"] = {"Marfa"}, ["mvv"] = {"Tagal Murut"}, ["mvw"] = {"Machinga"}, ["mvx"] = {"Meoswar"}, ["mvy"] = {"Kohistaanish Indus"}, ["mvz"] = {"Mesqan"}, ["mwa"] = {"Mwatebu"}, ["mwb"] = {"Juwal"}, ["mwc"] = {"Are"}, ["mwe"] = {"Mwera (Chimwera)"}, ["mwf"] = {"Murrinh-Patha"}, ["mwg"] = {"Aiklep"}, ["mwh"] = {"Mouk-Aria"}, ["mwi"] = {"Labo", "Ninde"}, ["mwk"] = {"Maninkish Kita"}, ["mwl"] = {"Mirandish"}, ["mwm"] = {"Sar"}, ["mwn"] = {"Nyamwanga"}, ["mwo"] = {"Maewo Veanagh"}, ["mwp"] = {"Kala Lagaw Ya"}, ["mwq"] = {"Mün Chin"}, ["mwr"] = {"Marwari"}, ["mws"] = {"Mwimbi-Muthambi"}, ["mwt"] = {"Moken"}, ["mwu"] = {"Mittu"}, ["mwv"] = {"Mentawai"}, ["mww"] = {"Hmong Daw"}, ["mwz"] = {"Moingi"}, ["mxa"] = {"Mixtecish Oaxaca Heear Hwoaie"}, ["mxb"] = {"Mixtecish Tezoatlán"}, ["mxc"] = {"Manyika"}, ["mxd"] = {"Modang"}, ["mxe"] = {"Mele-Fila"}, ["mxf"] = {"Malgbe"}, ["mxg"] = {"Mbangala"}, ["mxh"] = {"Mvuba"}, ["mxi"] = {"Mozarabish"}, ["mxj"] = {"Miju-Mishmi", "Geman Deng"}, ["mxk"] = {"Monumbo"}, ["mxl"] = {"Maxi Gbe"}, ["mxm"] = {"Meramera"}, ["mxn"] = {"Moi (yn Indoneesh)"}, ["mxo"] = {"Mbowe"}, ["mxp"] = {"Tlahuitoltepec Mixe"}, ["mxq"] = {"Juquila Mixe"}, ["mxr"] = {"Murik (y Valaysia)"}, ["mxs"] = {"Mixtecish Huitepec"}, ["mxt"] = {"Mixtecish Jamiltepec"}, ["mxu"] = {"Mada (Cameroon)"}, ["mxv"] = {"Mixtecish Metlatónoc"}, ["mxw"] = {"Namo"}, ["mxx"] = {"Mahou", "Mawukakan"}, ["mxy"] = {"Mixtecish Nochixtlán Hiar Yiass"}, ["mxz"] = {"Masela Veanagh"}, ["myb"] = {"Mbay"}, ["myc"] = {"Mayeka"}, ["mye"] = {"Myene"}, ["myf"] = {"Bambassi"}, ["myg"] = {"Manta"}, ["myh"] = {"Makah"}, ["myj"] = {"Mangayat"}, ["myk"] = {"Mamara Senoufo"}, ["myl"] = {"Moma"}, ["mym"] = {"Me'en"}, ["myn"] = {"çhengaghyn Mayagh"}, ["myo"] = {"Anfillo"}, ["myp"] = {"Pirahã"}, ["myr"] = {"Muniche"}, ["mys"] = {"Mesmes"}, ["myu"] = {"Mundurukú"}, ["myv"] = {"Erzya"}, ["myw"] = {"Muyuw"}, ["myx"] = {"Masaaba"}, ["myy"] = {"Macuna"}, ["myz"] = {"Mandaish Chlassicagh"}, ["mza"] = {"Mixtecish Zacatepec Santa María"}, ["mzb"] = {"Tumzabt"}, ["mzc"] = {"Çhengey Chowree Vadagascar"}, ["mzd"] = {"Malimba"}, ["mze"] = {"Morawa"}, ["mzg"] = {"Çhengey Chowree Vaynaghoil"}, ["mzh"] = {"Wichí Lhamtés Güisnay"}, ["mzi"] = {"Mazatec Ixcatlán"}, ["mzj"] = {"Manya"}, ["mzk"] = {"Mambila yn Naigeer"}, ["mzl"] = {"Mazatlán Mixe"}, ["mzm"] = {"Mumuye"}, ["mzn"] = {"Mazanderanish"}, ["mzo"] = {"Matipuhy"}, ["mzp"] = {"Movima"}, ["mzq"] = {"Mori Atas"}, ["mzr"] = {"Marúbo"}, ["mzs"] = {"Macanish"}, ["mzt"] = {"Mintil"}, ["mzu"] = {"Inapang"}, ["mzv"] = {"Manza"}, ["mzw"] = {"Deg"}, ["mzx"] = {"Mawayana"}, ["mzy"] = {"Çhengey Chowree Vosambeeckagh"}, ["mzz"] = {"Maiadomu"}, ["naa"] = {"Namla"}, ["nab"] = {"Nambikuára Yiass"}, ["nac"] = {"Narak"}, ["nae"] = {"Naka'ela"}, ["naf"] = {"Nabak"}, ["nag"] = {"Naga Vrisht"}, ["nah"] = {"çhengaghyn Nahuatl"}, ["nai"] = {"çhengaghyn Injinagh Americaanagh Hwoaie"}, ["naj"] = {"Nalu"}, ["nak"] = {"Nakanai"}, ["nal"] = {"Nalik"}, ["nam"] = {"Ngan'gityemerri"}, ["nan"] = {"Sheenish Min Nan"}, ["nao"] = {"Naaba"}, ["nap"] = {"Naaplish"}, ["naq"] = {"Khoekhoeish", "Nama (y Nameeb)"}, ["nar"] = {"Iguta"}, ["nas"] = {"Naasioi"}, ["nat"] = {"Ca̱hungwa̱rya̱", "Hungworo"}, ["naw"] = {"Nawuri"}, ["nax"] = {"Nakwi"}, ["nay"] = {"Ngarrindjeri"}, ["naz"] = {"Nahuatl Coatepec"}, ["nba"] = {"Nyemba"}, ["nbb"] = {"Ndoe"}, ["nbc"] = {"Chang Naga"}, ["nbd"] = {"Ngbinda"}, ["nbe"] = {"Konyak Naga"}, ["nbg"] = {"Nagarchal"}, ["nbh"] = {"Ngamo"}, ["nbi"] = {"Mao Naga"}, ["nbj"] = {"Ngarinyman"}, ["nbk"] = {"Nake"}, ["nbm"] = {"Ngbaka Ma'bo"}, ["nbn"] = {"Kuri"}, ["nbo"] = {"Nkukoli"}, ["nbp"] = {"Nnam"}, ["nbq"] = {"Nggem"}, ["nbr"] = {"Numana"}, ["nbs"] = {"Çhengey Chowree Nameebagh"}, ["nbt"] = {"Na"}, ["nbu"] = {"Rongmei Naga"}, ["nbv"] = {"Ngamambo"}, ["nbw"] = {"Ngbandi Yiass"}, ["nby"] = {"Ningera"}, ["nca"] = {"Iyo"}, ["ncb"] = {"Nicobarish Veanagh"}, ["ncc"] = {"Ponam"}, ["ncd"] = {"Nachering"}, ["nce"] = {"Yale"}, ["ncf"] = {"Notsi"}, ["ncg"] = {"Nisga'a"}, ["nch"] = {"Nahuatl Huasteca Veanagh"}, ["nci"] = {"Nahuatl Chlassicagh"}, ["ncj"] = {"Nahuatl Puebla Hwoaie"}, ["nck"] = {"Na-kara"}, ["ncl"] = {"Nahuatl Michoacán"}, ["ncm"] = {"Nambo"}, ["ncn"] = {"Nauna"}, ["nco"] = {"Sibe"}, ["ncq"] = {"Katang Hwoaie"}, ["ncr"] = {"Ncane"}, ["ncs"] = {"Çhengey Chowree Nickeraagagh"}, ["nct"] = {"Naga Chothe"}, ["ncu"] = {"Chumburung"}, ["ncx"] = {"Nahuatl Puebla Veanagh"}, ["ncz"] = {"Natchez"}, ["nda"] = {"Ndasa"}, ["ndb"] = {"Kenswei Nsei"}, ["ndc"] = {"Ndauish"}, ["ndd"] = {"Nde-Nsele-Nta"}, ["ndf"] = {"Nadruvish"}, ["ndg"] = {"Ndengereko"}, ["ndh"] = {"Ndali"}, ["ndi"] = {"Samba Leko"}, ["ndj"] = {"Ndamba"}, ["ndk"] = {"Ndaka"}, ["ndl"] = {"Ndolo"}, ["ndm"] = {"Ndam"}, ["ndn"] = {"Ngundi"}, ["ndp"] = {"Ndo"}, ["ndq"] = {"Ndombe"}, ["ndr"] = {"Ndoola"}, ["nds"] = {"Germaanish Injil", "Saxonish Injil"}, ["ndt"] = {"Ndunga"}, ["ndu"] = {"Dugun"}, ["ndv"] = {"Ndut"}, ["ndw"] = {"Ndobo"}, ["ndx"] = {"Nduga"}, ["ndy"] = {"Lutos"}, ["ndz"] = {"Ndogo"}, ["nea"] = {"Ngad'a Hiar"}, ["neb"] = {"Toura (y Clyst Iuaagagh)"}, ["nec"] = {"Nedebang"}, ["ned"] = {"Nde-Gbite"}, ["nee"] = {"Nêlêmwa-Nixumwak"}, ["nef"] = {"Nefamese"}, ["neg"] = {"Negidal"}, ["neh"] = {"Nyenkha"}, ["nei"] = {"Noa-Hittish"}, ["nej"] = {"Neko"}, ["nek"] = {"Neku"}, ["nem"] = {"Nemi"}, ["nen"] = {"Nengone"}, ["neo"] = {"Ná-Meo"}, ["neq"] = {"Mixe Veanagh Hwoaie"}, ["ner"] = {"Yahadish"}, ["nes"] = {"Kinnaurish Bhoti"}, ["net"] = {"Nete"}, ["neu"] = {"Neo"}, ["nev"] = {"Nyaheun"}, ["new"] = {"Newari", "Nepal Bhasa"}, ["nex"] = {"Neme"}, ["ney"] = {"Neyo"}, ["nez"] = {"Nez Perce"}, ["nfa"] = {"Dhao"}, ["nfd"] = {"Ahwai"}, ["nfl"] = {"Ayiwo", "Äiwoo"}, ["nfr"] = {"Nafaanra"}, ["nfu"] = {"Mfumte"}, ["nga"] = {"Ngbaka"}, ["ngb"] = {"Ngbandi Hwoaie"}, ["ngc"] = {"Ngombe (Pobblaght Gheynlagh y Chongo)"}, ["ngd"] = {"Ngando (Pobblaght yn Affrick Veanagh)"}, ["nge"] = {"Ngemba"}, ["ngf"] = {"çhengaghyn tessen-Noa-Ghuineagh"}, ["ngg"] = {"Ngbaka Manza"}, ["ngh"] = {"Nǁng"}, ["ngi"] = {"Ngizim"}, ["ngj"] = {"Ngie"}, ["ngk"] = {"Dalabon"}, ["ngl"] = {"Lomwe"}, ["ngm"] = {"Creeole Fir Ngatik"}, ["ngn"] = {"Ngwo"}, ["ngp"] = {"Ngulu"}, ["ngq"] = {"Ngurimi", "Ngoreme"}, ["ngr"] = {"Engdewu"}, ["ngs"] = {"Gvoko"}, ["ngt"] = {"Kriang", "Ngeq"}, ["ngu"] = {"Nahuatl Guerrero"}, ["ngv"] = {"Nagumi"}, ["ngw"] = {"Ngwaba"}, ["ngx"] = {"Nggwahyi"}, ["ngy"] = {"Tibea"}, ["ngz"] = {"Ngungwel"}, ["nha"] = {"Nhanda"}, ["nhb"] = {"Beng"}, ["nhc"] = {"Nahuatl Tabasco"}, ["nhd"] = {"Chiripá", "Guaranish Ava"}, ["nhe"] = {"Nahuatl Huasteca Hiar"}, ["nhf"] = {"Nhuwala"}, ["nhg"] = {"Nahuatl Tetelcingo"}, ["nhh"] = {"Nahari"}, ["nhi"] = {"Nahuatl Zacatlán-Ahuacatlán-Tepetzintla"}, ["nhk"] = {"Nahuatl Isthmus-Cosoleacaque"}, ["nhm"] = {"Nahuatl Morelos"}, ["nhn"] = {"Nahuatl Veanagh"}, ["nho"] = {"Takuu"}, ["nhp"] = {"Nahuatl Isthmus-Pajapan"}, ["nhq"] = {"Nahuatl Huaxcaleca"}, ["nhr"] = {"Naro"}, ["nht"] = {"Nahuatl Ometepec"}, ["nhu"] = {"Noone"}, ["nhv"] = {"Nahuatl Temascaltepec"}, ["nhw"] = {"Nahuatl Huasteca Heear"}, ["nhx"] = {"Nahuatl Isthmus-Mecayapan"}, ["nhy"] = {"Nahuatl Oaxaca Hwoaie"}, ["nhz"] = {"Nahuatl Santa María La Alta"}, ["nia"] = {"Nias"}, ["nib"] = {"Nakame"}, ["nic"] = {"çhengaghyn Neegeyr-Kordofanagh"}, ["nid"] = {"Ngandi"}, ["nie"] = {"Niellim"}, ["nif"] = {"Nek"}, ["nig"] = {"Ngalakgan"}, ["nih"] = {"Nyiha (Tanzania)"}, ["nii"] = {"Nii"}, ["nij"] = {"Ngaju"}, ["nik"] = {"Nicobarish Yiass"}, ["nil"] = {"Nila"}, ["nim"] = {"Nilamba"}, ["nin"] = {"Ninzo"}, ["nio"] = {"Nganasanish"}, ["niq"] = {"Nandi"}, ["nir"] = {"Nimborish"}, ["nis"] = {"Nimi"}, ["nit"] = {"Kolamish Hiar Yiass"}, ["niu"] = {"Niuean"}, ["niv"] = {"Gilyakish"}, ["niw"] = {"Nimo"}, ["nix"] = {"Hema"}, ["niy"] = {"Ngiti"}, ["niz"] = {"Ningil"}, ["nja"] = {"Nzanyi"}, ["njb"] = {"Naga Nocte"}, ["njd"] = {"Ndonde Hamba"}, ["njh"] = {"Naga Lotha"}, ["nji"] = {"Gudanji"}, ["njj"] = {"Njen"}, ["njl"] = {"Njalgulgule"}, ["njm"] = {"Angami Naga"}, ["njn"] = {"Naga Liangmai"}, ["njo"] = {"Naga Ao"}, ["njr"] = {"Njerep"}, ["njs"] = {"Nisa"}, ["njt"] = {"Ndyuka-Trio Vrisht"}, ["nju"] = {"Ngadjunmaya"}, ["njx"] = {"Kunyi"}, ["njy"] = {"Njyem"}, ["njz"] = {"Nyishi"}, ["nka"] = {"Nkoya"}, ["nkb"] = {"Naga Khoibu"}, ["nkc"] = {"Nkongho"}, ["nkd"] = {"Koireng"}, ["nke"] = {"Duke"}, ["nkf"] = {"Naga Inpui"}, ["nkg"] = {"Nekgini"}, ["nkh"] = {"Naga Khezha"}, ["nki"] = {"Naga Thangal"}, ["nkj"] = {"Nakai"}, ["nkk"] = {"Nokuku"}, ["nkm"] = {"Namat"}, ["nkn"] = {"Nkangala"}, ["nko"] = {"Nkonya"}, ["nkp"] = {"Niuatoputapu"}, ["nkq"] = {"Nkami"}, ["nkr"] = {"Nukuoro"}, ["nks"] = {"Asmat Hwoaie"}, ["nkt"] = {"Nyika (Tanzania)"}, ["nku"] = {"Bouna Kulango"}, ["nkv"] = {"Nyika (Malawi as y Tambia)"}, ["nkw"] = {"Nkutu"}, ["nkx"] = {"Nkoroo"}, ["nkz"] = {"Nkari"}, ["nla"] = {"Ngombale"}, ["nlc"] = {"Nalca"}, ["nle"] = {"Nyala Hiar"}, ["nlg"] = {"Gela"}, ["nli"] = {"Grangali"}, ["nlj"] = {"Nyali"}, ["nlk"] = {"Ninia Yali"}, ["nll"] = {"Nihali"}, ["nlm"] = {"Mankiyali"}, ["nlo"] = {"Ngul"}, ["nlq"] = {"Naga Lao"}, ["nlu"] = {"Nchumbulu"}, ["nlv"] = {"Orizaba Nahuatl"}, ["nlw"] = {"Walangama"}, ["nlx"] = {"Nahali"}, ["nly"] = {"Nyamal"}, ["nlz"] = {"Nalögo"}, ["nma"] = {"Naga Maram"}, ["nmb"] = {"Nambas Vooar", "V'ënen Taut"}, ["nmc"] = {"Ngam"}, ["nmd"] = {"Ndumu"}, ["nme"] = {"Naga Mzieme"}, ["nmf"] = {"Naga Tangkhul (yn Injey)"}, ["nmg"] = {"Kwasio"}, ["nmh"] = {"Naga Monsang"}, ["nmi"] = {"Nyam"}, ["nmj"] = {"Ngombe (Pobblaght yn Affrick Veanagh)"}, ["nmk"] = {"Namakura"}, ["nml"] = {"Ndemli"}, ["nmm"] = {"Manangba"}, ["nmn"] = {"ǃXóõ"}, ["nmo"] = {"Naga Moyon"}, ["nmp"] = {"Nimanbur"}, ["nmq"] = {"Nambya"}, ["nmr"] = {"Nimbari"}, ["nms"] = {"Letemboi"}, ["nmt"] = {"Namonuito"}, ["nmu"] = {"Maidu Hiar Hwoaie"}, ["nmv"] = {"Ngamini"}, ["nmw"] = {"Nimoa", "Rifao"}, ["nmx"] = {"Nama (Papooey Guinea Noa)"}, ["nmy"] = {"Namuyi"}, ["nmz"] = {"Nawdm"}, ["nna"] = {"Nyangumarta"}, ["nnb"] = {"Nande"}, ["nnc"] = {"Nancere"}, ["nnd"] = {"Ambae Heear"}, ["nne"] = {"Ngandyera"}, ["nnf"] = {"Ngaing"}, ["nng"] = {"Naga Maring"}, ["nnh"] = {"Ngiemboon"}, ["nni"] = {"Nuaulu Hwoaie"}, ["nnj"] = {"Nyangatom"}, ["nnk"] = {"Nankina"}, ["nnl"] = {"Naga Rengma Hwoaie "}, ["nnm"] = {"Namia"}, ["nnn"] = {"Ngete"}, ["nnp"] = {"Naga Wancho"}, ["nnq"] = {"Ngindo"}, ["nnr"] = {"Narungga"}, ["nnt"] = {"Nanticoke"}, ["nnu"] = {"Dwang"}, ["nnv"] = {"Nugunu (yn Austrail)"}, ["nnw"] = {"Nuni Yiass"}, ["nny"] = {"Nyangga"}, ["nnz"] = {"Nda'nda'"}, ["noa"] = {"Woun Meu"}, ["noc"] = {"Nuk"}, ["nod"] = {"Thai Hwoaie"}, ["noe"] = {"Nimadi"}, ["nof"] = {"Nomane"}, ["nog"] = {"Nogaish"}, ["noh"] = {"Nomu"}, ["noi"] = {"Noiri"}, ["noj"] = {"Nonuya"}, ["nok"] = {"Nooksack"}, ["nol"] = {"Nomlaki"}, ["non"] = {"Shenn Loghlynnish"}, ["nop"] = {"Numanggang"}, ["noq"] = {"Ngongo"}, ["nos"] = {"Nisu Hiar"}, ["not"] = {"Nomatsiguenga"}, ["nou"] = {"Ewage-Notu"}, ["nov"] = {"Novial"}, ["now"] = {"Nyambo"}, ["noy"] = {"Noy"}, ["noz"] = {"Nayi"}, ["npa"] = {"Nar Phu"}, ["npb"] = {"Nupbikha"}, ["npg"] = {"Naga Ponyo-Gongwang"}, ["nph"] = {"Naga Phom"}, ["npi"] = {"Nepaalish"}, ["npl"] = {"Nahuatl Puebla Hiar Yiass"}, ["npn"] = {"Mondropolon"}, ["npo"] = {"Naga Pochuri"}, ["nps"] = {"Nipsan"}, ["npu"] = {"Naga Puimei"}, ["npx"] = {"Noipx"}, ["npy"] = {"Napu"}, ["nqg"] = {"Nago Yiass"}, ["nqk"] = {"Kura Ede Nago"}, ["nql"] = {"Ngendelengo"}, ["nqm"] = {"Ndom"}, ["nqn"] = {"Nen"}, ["nqo"] = {"N'Ko", "N’Ko"}, ["nqq"] = {"Naga Kyan-Karyaw"}, ["nqt"] = {"Nteng"}, ["nqy"] = {"Naga Akyaung Ari"}, ["nra"] = {"Ngom"}, ["nrb"] = {"Nara"}, ["nrc"] = {"Norish"}, ["nre"] = {"Naga Rengma Yiass"}, ["nrf"] = {"Jèrriais", "Guernésiais", "Sercquiais"}, ["nrg"] = {"Narango"}, ["nri"] = {"Naga Chokri"}, ["nrk"] = {"Ngarla"}, ["nrl"] = {"Ngarluma"}, ["nrm"] = {"Narom"}, ["nrn"] = {"Nornish"}, ["nrp"] = {"Picenish Hwoaie"}, ["nrr"] = {"Norra", "Nora"}, ["nrt"] = {"Kalapuya Hwoaie"}, ["nru"] = {"Narua"}, ["nrx"] = {"Ngurmbur"}, ["nrz"] = {"Lala"}, ["nsa"] = {"Naga Sangtam"}, ["nsb"] = {"Nossob Injil"}, ["nsc"] = {"Nshi"}, ["nsd"] = {"Nisu Yiass"}, ["nse"] = {"Nsenga"}, ["nsf"] = {"Nisu Heear Hwoaie"}, ["nsg"] = {"Ngasa"}, ["nsh"] = {"Ngoshie"}, ["nsi"] = {"Çhengey Chowree Naigeeragh"}, ["nsk"] = {"Naskapi"}, ["nsl"] = {"Çhengey Chowree Norlynnagh"}, ["nsm"] = {"Naga Sumi"}, ["nsn"] = {"Nehan"}, ["nso"] = {"Pedish", "Sotoish Hwoaie", "Sepedi"}, ["nsp"] = {"Çhengey Chowree Nepaalagh"}, ["nsq"] = {"Miwokish Sierra Hwoaie"}, ["nsr"] = {"Çhengey Chowree Vooiragh"}, ["nss"] = {"Nali"}, ["nst"] = {"Naga Tase"}, ["nsu"] = {"Nahuatl Sierra Negra"}, ["nsv"] = {"Nisu Heear Yiass"}, ["nsw"] = {"Navut"}, ["nsx"] = {"Nsongo"}, ["nsy"] = {"Nasal"}, ["nsz"] = {"Nisenan"}, ["ntd"] = {"Tidung Hwoaie"}, ["nte"] = {"Nathembo"}, ["ntg"] = {"Ngantangarra"}, ["nti"] = {"Natioro"}, ["ntj"] = {"Ngaanyatjarra"}, ["ntk"] = {"Ikoma-Nata-Isenye"}, ["ntm"] = {"Nateni"}, ["nto"] = {"Ntomba"}, ["ntp"] = {"Tepehuan Hwoaie"}, ["ntr"] = {"Delo"}, ["ntu"] = {"Natügu"}, ["ntw"] = {"Nottoway"}, ["ntx"] = {"Naga Tangkhul (Myanmar)"}, ["nty"] = {"Mantsi"}, ["ntz"] = {"Natanzi"}, ["nua"] = {"Yuanga"}, ["nub"] = {"çhengaghyn Nubiagh"}, ["nuc"] = {"Nukuini"}, ["nud"] = {"Ngala"}, ["nue"] = {"Ngundu"}, ["nuf"] = {"Nusu"}, ["nug"] = {"Nungali"}, ["nuh"] = {"Ndunda"}, ["nui"] = {"Ngumbi"}, ["nuj"] = {"Nyole"}, ["nuk"] = {"Nuu-chah-nulth", "Nuuchahnulth"}, ["nul"] = {"Nusa Laut"}, ["num"] = {"Niuafo'ou"}, ["nun"] = {"Anong"}, ["nuo"] = {"Nguôn"}, ["nup"] = {"Nupe-Nupe-Tako"}, ["nuq"] = {"Nukumanu"}, ["nur"] = {"Nukuria"}, ["nus"] = {"Nuer"}, ["nut"] = {"Nung (Viet Nam)"}, ["nuu"] = {"Ngbundu"}, ["nuv"] = {"Nuni Hwoaie"}, ["nuw"] = {"Nguluwan"}, ["nux"] = {"Mehek"}, ["nuy"] = {"Nunggubuyu"}, ["nuz"] = {"Nahuatl Tlamacazapa"}, ["nvh"] = {"Nasarish"}, ["nvm"] = {"Namiae"}, ["nvo"] = {"Nyokon"}, ["nwa"] = {"Nawathinehena"}, ["nwb"] = {"Nyabwa"}, ["nwc"] = {"Newarish Chlassicagh", "Nepal Bhasa Chlassicagh", "Shenn Newarish"}, ["nwe"] = {"Ngwe"}, ["nwg"] = {"Ngayawung"}, ["nwi"] = {"Tanna Heear Yiass"}, ["nwm"] = {"Nyamusa-Molo"}, ["nwo"] = {"Nauo"}, ["nwr"] = {"Nawaru"}, ["nww"] = {"Ndwewe"}, ["nwx"] = {"Newarish Veanagh"}, ["nwy"] = {"Nottoway-Meherrin"}, ["nxa"] = {"Nauete"}, ["nxd"] = {"Ngando (Pobblaght Gheynlagh y Chongo)"}, ["nxe"] = {"Nage"}, ["nxg"] = {"Ngad'a"}, ["nxi"] = {"Nindi"}, ["nxk"] = {"Naga Koki"}, ["nxl"] = {"Nuaulu Yiass"}, ["nxm"] = {"Numidish"}, ["nxn"] = {"Ngawun"}, ["nxo"] = {"Ndambomo"}, ["nxq"] = {"Naxi"}, ["nxr"] = {"Ninggerum"}, ["nxx"] = {"Nafri"}, ["nyb"] = {"Nyangbo"}, ["nyc"] = {"Nyanga-li"}, ["nyd"] = {"Nyore", "Olunyole"}, ["nye"] = {"Nyengo"}, ["nyf"] = {"Giryama", "Kigiryama"}, ["nyg"] = {"Nyindu"}, ["nyh"] = {"Nyikina"}, ["nyi"] = {"Ama (y Toodaan)"}, ["nyj"] = {"Nyanga"}, ["nyk"] = {"Nyaneka"}, ["nyl"] = {"Nyeu"}, ["nym"] = {"Nyamwezi"}, ["nyn"] = {"Nyankole"}, ["nyo"] = {"Nyoro"}, ["nyp"] = {"Nyang'i"}, ["nyq"] = {"Nayini"}, ["nyr"] = {"Nyiha (Malawi)"}, ["nys"] = {"Nyungar"}, ["nyt"] = {"Nyawaygi"}, ["nyu"] = {"Nyungwe"}, ["nyv"] = {"Nyulnyul"}, ["nyw"] = {"Nyaw"}, ["nyx"] = {"Nganyaywana"}, ["nyy"] = {"Nyakyusa-Ngonde"}, ["nza"] = {"Tigon Mbembe"}, ["nzb"] = {"Njebi"}, ["nzd"] = {"Nzadi"}, ["nzi"] = {"Nzima"}, ["nzk"] = {"Nzakara"}, ["nzm"] = {"Zeme Naga"}, ["nzr"] = {"Dir-Nyamzak-Mbarimi"}, ["nzs"] = {"Çhengey Chowree Noa-Heelynnagh"}, ["nzu"] = {"Teke-Nzikou"}, ["nzy"] = {"Nzakambay"}, ["nzz"] = {"Nanga Dama Dogon"}, ["oaa"] = {"Orok"}, ["oac"] = {"Oroch"}, ["oar"] = {"Shenn Aramaaish (derrey 700 RC)", "Aramaaish Henndeeagh (derrey 700 RC)"}, ["oav"] = {"Shenn Avarish"}, ["obi"] = {"Obispeño"}, ["obk"] = {"Bontok Yiass"}, ["obl"] = {"Oblo"}, ["obm"] = {"Moabite"}, ["obo"] = {"Obo Manobo"}, ["obr"] = {"Shenn Vurmish"}, ["obt"] = {"Shenn Vritaanish"}, ["obu"] = {"Obulom"}, ["oca"] = {"Ocaina"}, ["och"] = {"Shenn Heenish"}, ["ocm"] = {"Shenn Cham"}, ["oco"] = {"Shenn Chornish"}, ["ocu"] = {"Atzingo Matlatzinca"}, ["oda"] = {"Odut"}, ["odk"] = {"Od"}, ["odt"] = {"Shenn Ollanish"}, ["odu"] = {"Odual"}, ["ofo"] = {"Ofo"}, ["ofs"] = {"Shenn Reeshlannish"}, ["ofu"] = {"Efutop"}, ["ogb"] = {"Ogbia"}, ["ogc"] = {"Ogbah"}, ["oge"] = {"Shenn Horshish"}, ["ogg"] = {"Ogbogolo"}, ["ogo"] = {"Khana"}, ["ogu"] = {"Ogbronuagum"}, ["oht"] = {"Shenn Hittish"}, ["ohu"] = {"Shenn Ungaarish"}, ["oia"] = {"Oirata"}, ["oie"] = {"Okolie"}, ["oin"] = {"Inebu One"}, ["ojb"] = {"OjibwaHeear Hwoaie"}, ["ojc"] = {"Ojibwa Veanagh"}, ["ojg"] = {"Ojibwa Hiar"}, ["ojp"] = {"Shenn Hapaanish"}, ["ojs"] = {"Ojibwa Severn"}, ["ojv"] = {"Javish Ontong"}, ["ojw"] = {"Ojibwa Heear"}, ["oka"] = {"Okanagan"}, ["okb"] = {"Okobo"}, ["okc"] = {"Kobo"}, ["okd"] = {"Okodia"}, ["oke"] = {"Okpe (Edo Heear Yiass)"}, ["okg"] = {"Koko Babangk"}, ["okh"] = {"Koresh-e Rostam"}, ["oki"] = {"Okiek"}, ["okj"] = {"Oko-Juwoi"}, ["okk"] = {"Kwamtim One"}, ["okl"] = {"Shenn Çhengey Chowree Kent"}, ["okm"] = {"Koreeish Veanagh (10oo-16oo eash)"}, ["okn"] = {"Oki-No-Erabu"}, ["oko"] = {"Shenn Choreeish (3oo-9oo eash)"}, ["okr"] = {"Kirike"}, ["oks"] = {"Oko-Eni-Osayen"}, ["oku"] = {"Oku"}, ["okv"] = {"Orokaiva"}, ["okx"] = {"Okpe (Edo Heear Hwoaie)"}, ["okz"] = {"Shenn Khmerish"}, ["ola"] = {"Walungge"}, ["old"] = {"Mochi"}, ["ole"] = {"Olekha"}, ["olk"] = {"Olkol"}, ["olm"] = {"Oloma"}, ["olo"] = {"Livvish"}, ["olr"] = {"Olrat"}, ["olt"] = {"Shenn Litaanish"}, ["olu"] = {"Kuvale"}, ["oma"] = {"Omaha-Ponca"}, ["omb"] = {"Ambae Hiar"}, ["omc"] = {"Mochica"}, ["omg"] = {"Omagua"}, ["omi"] = {"Omi"}, ["omk"] = {"Omok"}, ["oml"] = {"Ombo"}, ["omn"] = {"Minoan"}, ["omo"] = {"Utarmbung"}, ["omp"] = {"Shenn Vanipurish"}, ["omq"] = {"çhengaghyn Oto-Mangueagh"}, ["omr"] = {"Shenn Varathish"}, ["omt"] = {"Omotik"}, ["omu"] = {"Omurano"}, ["omv"] = {"çhengaghyn Omotagh"}, ["omw"] = {"Tairora Yiass"}, ["omx"] = {"Shenn Mon"}, ["omy"] = {"Shenn Valayish"}, ["ona"] = {"Ona"}, ["onb"] = {"Lingao"}, ["one"] = {"Oneida"}, ["ong"] = {"Olo"}, ["oni"] = {"Onin"}, ["onj"] = {"Onjob"}, ["onk"] = {"Kabore One"}, ["onn"] = {"Onobasulu"}, ["ono"] = {"Onondaga"}, ["onp"] = {"Sartang"}, ["onr"] = {"One Hwoaie"}, ["ons"] = {"Ono"}, ["ont"] = {"Ontenu"}, ["onu"] = {"Unua"}, ["onw"] = {"Shenn Nubish"}, ["onx"] = {"Onin Vrisht"}, ["ood"] = {"Tohono O'odham"}, ["oog"] = {"Ong"}, ["oon"] = {"Önge"}, ["oor"] = {"Oorlams"}, ["oos"] = {"Shenn Ossetish"}, ["opa"] = {"Okpamheri"}, ["opk"] = {"Kopkaka"}, ["opm"] = {"Oksapmin"}, ["opo"] = {"Opao"}, ["opt"] = {"Opata"}, ["opy"] = {"Ofayé"}, ["ora"] = {"Oroha"}, ["orc"] = {"Orma"}, ["ore"] = {"Orejón"}, ["org"] = {"Oring"}, ["orh"] = {"Oroqen"}, ["orn"] = {"Orang Kanaq"}, ["oro"] = {"Orokolo"}, ["orr"] = {"Oruma"}, ["ors"] = {"Orang Seletar"}, ["ort"] = {"Adivasi Oriya"}, ["oru"] = {"Ormuri"}, ["orv"] = {"Shenn Rooshish"}, ["orw"] = {"Oro Win"}, ["orx"] = {"Oro"}, ["ory"] = {"Odish (çhengey er lheh)", "Oriyish (çhengey er lheh)"}, ["orz"] = {"Ormu"}, ["osa"] = {"Osage"}, ["osc"] = {"Oscan"}, ["osi"] = {"Osing"}, ["osn"] = {"Shenn Hundanish"}, ["oso"] = {"Ososo"}, ["osp"] = {"Shenn Spaainish"}, ["ost"] = {"Osatu"}, ["osu"] = {"One Yiass"}, ["osx"] = {"Shenn Haxonish"}, ["ota"] = {"Turkish Ottomanagh (1500-1928)"}, ["otb"] = {"Shenn Tibetish"}, ["otd"] = {"Ot Danum"}, ["ote"] = {"Otomi Mezquital"}, ["oti"] = {"Oti"}, ["otk"] = {"Shenn Turkish"}, ["otl"] = {"Otomi Tilapa"}, ["otm"] = {"Otomi Sleitoil Hiar"}, ["otn"] = {"Otomi Tenango"}, ["oto"] = {"çhengaghyn Otomagh"}, ["otq"] = {"Otomi Querétaro"}, ["otr"] = {"Otoro"}, ["ots"] = {"Otomi Estado de México"}, ["ott"] = {"Otomi Temoaya"}, ["otu"] = {"Otuke"}, ["otw"] = {"Ottawa"}, ["otx"] = {"Otomi Texcatepec"}, ["oty"] = {"Shenn Tamilish"}, ["otz"] = {"Otomi Ixtenco"}, ["oua"] = {"Tagargrent"}, ["oub"] = {"Glio-Oubi"}, ["oue"] = {"Oune"}, ["oui"] = {"Shenn Uighurish"}, ["oum"] = {"Ouma"}, ["ovd"] = {"Elfdalish", "Övdalish"}, ["owi"] = {"Owiniga"}, ["owl"] = {"Shenn Vretnish"}, ["oyb"] = {"Oy"}, ["oyd"] = {"Oyda"}, ["oym"] = {"Wayampi"}, ["oyy"] = {"Oya'oya"}, ["ozm"] = {"Koonzime"}, ["paa"] = {"çhengaghyn Papooagh"}, ["pab"] = {"Parecís"}, ["pac"] = {"Pacoh"}, ["pad"] = {"Paumarí"}, ["pae"] = {"Pagibete"}, ["paf"] = {"Paranawát"}, ["pag"] = {"Pangasinan"}, ["pah"] = {"Tenharim"}, ["pai"] = {"Pe"}, ["pak"] = {"Parakanã"}, ["pal"] = {"Pahlavi"}, ["pam"] = {"Pampanga", "Kapampangan"}, ["pao"] = {"Paiute Hwoaie"}, ["pap"] = {"Papiamento"}, ["paq"] = {"Parya"}, ["par"] = {"Panamint", "Timbisha"}, ["pas"] = {"Papasena"}, ["pau"] = {"Palauish"}, ["pav"] = {"Pakaásnovos"}, ["paw"] = {"Pawneeish"}, ["pax"] = {"Pankararé"}, ["pay"] = {"Pech"}, ["paz"] = {"Pankararú"}, ["pbb"] = {"Páez"}, ["pbc"] = {"Patamona"}, ["pbe"] = {"Popoloca Mezontla"}, ["pbf"] = {"Popoloca Coyotepec"}, ["pbg"] = {"Paraujano"}, ["pbh"] = {"E'ñapa Woromaipu"}, ["pbi"] = {"Parkwa"}, ["pbl"] = {"Mak (y Naigeer)"}, ["pbm"] = {"Mazatec Puebla"}, ["pbn"] = {"Kpasam"}, ["pbo"] = {"Papel"}, ["pbp"] = {"Badyara"}, ["pbr"] = {"Pangwa"}, ["pbs"] = {"Pame Veanagh"}, ["pbt"] = {"Pashtish Yiass"}, ["pbu"] = {"Pashtish Hwoaie"}, ["pbv"] = {"Pnar"}, ["pby"] = {"Pyu (Papooey Guinea Noa)"}, ["pca"] = {"Popoloca Ahuatempan Santa Inés"}, ["pcb"] = {"Pear"}, ["pcc"] = {"Bouyei"}, ["pcd"] = {"Picardish"}, ["pce"] = {"Ruching Palaung"}, ["pcf"] = {"Paliyan"}, ["pcg"] = {"Paniya"}, ["pch"] = {"Pardhan"}, ["pci"] = {"Duruwa"}, ["pcj"] = {"Parenga"}, ["pck"] = {"Paite Chin"}, ["pcl"] = {"Pardhi"}, ["pcm"] = {"Naigeerish Vrisht"}, ["pcn"] = {"Piti"}, ["pcp"] = {"Pacahuara"}, ["pcw"] = {"Pyapun"}, ["pda"] = {"Anam"}, ["pdc"] = {"Germaanish Pennsylvania"}, ["pdi"] = {"Pa Di"}, ["pdn"] = {"Podena", "Fedan"}, ["pdo"] = {"Padoe"}, ["pdt"] = {"Plautdietsch"}, ["pdu"] = {"Kayan"}, ["pea"] = {"Indoneeshish Peranakan"}, ["peb"] = {"Pomo Hiar"}, ["ped"] = {"Mala (Papooey Guinea Noa)"}, ["pee"] = {"Taje"}, ["pef"] = {"Pomo Hiar Hwoaie"}, ["peg"] = {"Pengo"}, ["peh"] = {"Bonan"}, ["pei"] = {"Chichimeca-Jonaz"}, ["pej"] = {"Pomo Hwoaie"}, ["pek"] = {"Penchal"}, ["pel"] = {"Pekal"}, ["pem"] = {"Phende"}, ["peo"] = {"Shenn Phershish (ca. 600-400 RC)"}, ["pep"] = {"Kunja"}, ["peq"] = {"Pomo Yiass"}, ["pes"] = {"Pershish Eeraanagh"}, ["pev"] = {"Pémono"}, ["pex"] = {"Petats"}, ["pey"] = {"Petjo"}, ["pez"] = {"Penan Hiar"}, ["pfa"] = {"Pááfang"}, ["pfe"] = {"Pere"}, ["pfl"] = {"Pfaelzisch"}, ["pga"] = {"Creeole Arabish Soodaanagh"}, ["pgd"] = {"Gāndhārī"}, ["pgg"] = {"Pangwali"}, ["pgi"] = {"Pagi"}, ["pgk"] = {"Rerep"}, ["pgl"] = {"Yernish Vunneydagh"}, ["pgn"] = {"Paelignian"}, ["pgs"] = {"Pangseng"}, ["pgu"] = {"Pagu"}, ["pgz"] = {"Çhengey Phapooey Guinea Noa"}, ["pha"] = {"Pa-Hng"}, ["phd"] = {"Phudagi"}, ["phg"] = {"Phuong"}, ["phh"] = {"Phukha"}, ["phi"] = {"çhengaghyn Philippeenagh"}, ["phj"] = {"Pahari"}, ["phk"] = {"Phake"}, ["phl"] = {"Phalura", "Palula"}, ["phm"] = {"Phimbi"}, ["phn"] = {"çhengaghyn Feaneeckagh"}, ["pho"] = {"Phunoi"}, ["phq"] = {"Phana'"}, ["phr"] = {"Pahari-Potwari"}, ["pht"] = {"Thai Phu"}, ["phu"] = {"Phuan"}, ["phv"] = {"Pahlavanish"}, ["phw"] = {"Phangduwali"}, ["pia"] = {"Pima Bajo"}, ["pib"] = {"Yine"}, ["pic"] = {"Pinji"}, ["pid"] = {"Piaroa"}, ["pie"] = {"Piro"}, ["pif"] = {"Pingelapish"}, ["pig"] = {"Pisabo"}, ["pih"] = {"Pitcairn-Norfolk"}, ["pij"] = {"Pijao"}, ["pil"] = {"Yom"}, ["pim"] = {"Powhatanish"}, ["pin"] = {"Piame"}, ["pio"] = {"Piapoco"}, ["pip"] = {"Pero"}, ["pir"] = {"Piratapuyo"}, ["pis"] = {"Pijin"}, ["pit"] = {"Pitta Pitta"}, ["piu"] = {"Pintupi-Luritja"}, ["piv"] = {"Pileni", "Vaeakau-Taumako"}, ["piw"] = {"Pimbwe"}, ["pix"] = {"Piu"}, ["piy"] = {"Piya-Kwonci"}, ["piz"] = {"Pije"}, ["pjt"] = {"Pitjantjatjara"}, ["pka"] = {"Ardhamāgadhī Prākrit"}, ["pkb"] = {"Pokomo", "Kipfokomo"}, ["pkc"] = {"Paekche"}, ["pkg"] = {"Pak-Tong"}, ["pkh"] = {"Pankhu"}, ["pkn"] = {"Pakanha"}, ["pko"] = {"Pökoot"}, ["pkp"] = {"Pukapuka"}, ["pkr"] = {"Attapady Kurumba"}, ["pks"] = {"Çhengey Chowree Phakistaanagh"}, ["pkt"] = {"Maleng"}, ["pku"] = {"Paku"}, ["pla"] = {"Miani"}, ["plb"] = {"Polonombauk"}, ["plc"] = {"Palawano Veanagh"}, ["pld"] = {"Polari"}, ["ple"] = {"Palu'e"}, ["plf"] = {"çhengaghyn Malayo-Pholaneeshagh Meanagh"}, ["plg"] = {"Pilagá"}, ["plh"] = {"Paulohi"}, ["plk"] = {"Shina Kohistan"}, ["pll"] = {"Shwe Palaung"}, ["pln"] = {"Palenquero"}, ["plo"] = {"Popoluca Oluta"}, ["plq"] = {"Palaic"}, ["plr"] = {"Palaka Senoufo"}, ["pls"] = {"Popoloca Tlacoyalco San Marcos", "Popoloca Tlalcoyalco San Marcos"}, ["plt"] = {"Malagasish yn Ard-chlaare"}, ["plu"] = {"Palikúr"}, ["plv"] = {"Palawano Heear Yiass"}, ["plw"] = {"Palawano Brooke's Point"}, ["ply"] = {"Bolyu"}, ["plz"] = {"Paluan"}, ["pma"] = {"Paama"}, ["pmb"] = {"Pambia"}, ["pmd"] = {"Pallanganmiddang"}, ["pme"] = {"Pwaamei"}, ["pmf"] = {"Pamona"}, ["pmh"] = {"Māhārāṣṭri Prākrit"}, ["pmi"] = {"Pumi Hwoaie"}, ["pmj"] = {"Pumi Yiass"}, ["pml"] = {"Lingua Franca"}, ["pmm"] = {"Pomo"}, ["pmn"] = {"Pam"}, ["pmo"] = {"Pom"}, ["pmq"] = {"Pame Hwoaie"}, ["pmr"] = {"Paynamar"}, ["pms"] = {"Piedmontish"}, ["pmt"] = {"Tuamotuan"}, ["pmw"] = {"Miwokish ny Strahyn"}, ["pmx"] = {"Naga Poumei"}, ["pmy"] = {"Malayish Phapooagh"}, ["pmz"] = {"Pame Yiass"}, ["pna"] = {"Punan Bah-Biau"}, ["pnb"] = {"Panjabish Heear"}, ["pnc"] = {"Pannei"}, ["pnd"] = {"Mpinda"}, ["pne"] = {"Penan Heear"}, ["png"] = {"Pangu", "Pongu"}, ["pnh"] = {"Penrhyn"}, ["pni"] = {"Aoheng"}, ["pnj"] = {"Pinjarup"}, ["pnk"] = {"Paunaka"}, ["pnl"] = {"Paleni"}, ["pnm"] = {"Punan Batu 1"}, ["pnn"] = {"Pinai-Hagahai"}, ["pno"] = {"Panobo"}, ["pnp"] = {"Pancana"}, ["pnq"] = {"Pana (Burkina Faso)"}, ["pnr"] = {"Panim"}, ["pns"] = {"Ponosakan"}, ["pnt"] = {"Pontish"}, ["pnu"] = {"Jiongnai Bunu"}, ["pnv"] = {"Pinigura"}, ["pnw"] = {"Banyjima", "Panytyima"}, ["pnx"] = {"Phong-Kniang"}, ["pny"] = {"Pinyin"}, ["pnz"] = {"Pana (Pobblaght yn Affrick Veanagh)"}, ["poc"] = {"Poqomam"}, ["poe"] = {"Popoloca Atzingo San Juan"}, ["pof"] = {"Poke"}, ["pog"] = {"Potiguára"}, ["poh"] = {"Poqomchi'"}, ["poi"] = {"Popoluca Sleitoil"}, ["pok"] = {"Pokangá"}, ["pom"] = {"Pomo Hiar Yiass"}, ["pon"] = {"Pohnpeish"}, ["poo"] = {"Pomo Veanagh"}, ["pop"] = {"Pwapwâ"}, ["poq"] = {"Popoloca Texistepec"}, ["pos"] = {"Popoloca Sayula"}, ["pot"] = {"Potawatomi"}, ["pov"] = {"Crioulo Ghuinea Eaghtyragh"}, ["pow"] = {"Popoluca Otlaltepec San Felipe"}, ["pox"] = {"Polabish"}, ["poy"] = {"Pogolo"}, ["poz"] = {"çhengaghyn Malayo-Pholaneeshagh"}, ["ppe"] = {"Papi"}, ["ppi"] = {"Paipai"}, ["ppk"] = {"Uma"}, ["ppl"] = {"Pipil", "Nicarao"}, ["ppm"] = {"Papuma"}, ["ppn"] = {"Papapana"}, ["ppo"] = {"Folopa"}, ["ppp"] = {"Pelende"}, ["ppq"] = {"Pei"}, ["pps"] = {"Popoloca Temalacayuca San Luís"}, ["ppt"] = {"Pare"}, ["ppu"] = {"Papora"}, ["pqa"] = {"Pa'a"}, ["pqe"] = {"çhengaghyn Malayo-Pholaneeshagh Hiar"}, ["pqm"] = {"Malecite-Passamaquoddy"}, ["pqw"] = {"çhengaghyn Malayo-Pholaneeshagh Heear"}, ["pra"] = {"çhengaghyn Prakrit"}, ["prc"] = {"Parachi"}, ["prd"] = {"Parsish-Darish"}, ["pre"] = {"Principensish"}, ["prf"] = {"Paranan"}, ["prg"] = {"Prooshish"}, ["prh"] = {"Porohanon"}, ["pri"] = {"Paicî"}, ["prk"] = {"Parauk"}, ["prl"] = {"Çhengey Chowree Pherooagh"}, ["prm"] = {"Kibiri"}, ["prn"] = {"Prasuni"}, ["pro"] = {"Shenn Provençal (derrey 1500)", "Shenn Ocsitaanish (derrey 1500)"}, ["prq"] = {"Ashéninka Perené"}, ["prr"] = {"Puri"}, ["prs"] = {"Darish", "Pershish Afghaanagh"}, ["prt"] = {"Phai"}, ["pru"] = {"Puragi"}, ["prw"] = {"Parawen"}, ["prx"] = {"Purik"}, ["prz"] = {"Çhengey Chowree Providencia"}, ["psa"] = {"Asue Awyu"}, ["psc"] = {"Çhengey Chowree Eeraanagh", "Çhengey Chowree Phershagh"}, ["psd"] = {"Çhengey Chowree Injinee ny Strahyn"}, ["pse"] = {"Malayish Veanagh"}, ["psg"] = {"Çhengey Chowree Penang"}, ["psh"] = {"Pashai Heear Yiass", "Pashayi Heear Yiass"}, ["psi"] = {"Pashai Hiar Yiass", "Pashayi Hiar Yiass"}, ["psl"] = {"Çhengey Chowree Phurt-verçhagh"}, ["psm"] = {"Pauserna"}, ["psn"] = {"Panasuan"}, ["pso"] = {"Çhengey Chowree Pholynnagh"}, ["psp"] = {"Çhengey Chowree Philippeenagh"}, ["psq"] = {"Pasi"}, ["psr"] = {"Çhengey Chowree Phortiugagh"}, ["pss"] = {"Kaulong"}, ["pst"] = {"Pashtish Veanagh"}, ["psu"] = {"Sauraseni Prākrit"}, ["psw"] = {"Port Sandwich"}, ["psy"] = {"Piscataway"}, ["pta"] = {"Pai Tavytera"}, ["pth"] = {"Pataxó Hã-Ha-Hãe"}, ["pti"] = {"Pindiini", "Wangkatha"}, ["ptn"] = {"Patanish"}, ["pto"] = {"Zo'é"}, ["ptp"] = {"Patep"}, ["ptq"] = {"Pattapu"}, ["ptr"] = {"Piamatsina"}, ["ptt"] = {"Enrekang"}, ["ptu"] = {"Bambam"}, ["ptv"] = {"Port Vato"}, ["ptw"] = {"Pentlatch"}, ["pty"] = {"Pathiya"}, ["pua"] = {"Purepecha Sleitoil Heear"}, ["pub"] = {"Purum"}, ["puc"] = {"Punan Merap"}, ["pud"] = {"Punan Aput"}, ["pue"] = {"Puelche"}, ["puf"] = {"Punan Merah"}, ["pug"] = {"Phuie"}, ["pui"] = {"Puinave"}, ["puj"] = {"Punan Tubu"}, ["pum"] = {"Puma"}, ["puo"] = {"Puoc"}, ["pup"] = {"Pulabu"}, ["puq"] = {"Puquina"}, ["pur"] = {"Puruborá"}, ["put"] = {"Putoh"}, ["puu"] = {"Punu"}, ["puw"] = {"Puluwatish"}, ["pux"] = {"Puare"}, ["puy"] = {"Purisimeño"}, ["pwa"] = {"Pawaia"}, ["pwb"] = {"Panawa"}, ["pwg"] = {"Gapapaiwa"}, ["pwi"] = {"Patwin"}, ["pwm"] = {"Molbog"}, ["pwn"] = {"Paiwan"}, ["pwo"] = {"Karenish Heear Pwo"}, ["pwr"] = {"Powari"}, ["pww"] = {"Karenish Hwoaie Pwo"}, ["pxm"] = {"Quetzaltepec Mixe"}, ["pye"] = {"Pye Krumen"}, ["pym"] = {"Fyam"}, ["pyn"] = {"Poyanáwa"}, ["pys"] = {"Çhengey Chowree Pharaguayagh", "Lengua de Señas del Paraguay"}, ["pyu"] = {"Puyuma"}, ["pyx"] = {"Pyu (Myanmar)"}, ["pyy"] = {"Pyen"}, ["pze"] = {"Pesse"}, ["pzh"] = {"Pazeh"}, ["pzn"] = {"Jejara Naga", "Para Naga"}, ["qua"] = {"Quapaw"}, ["qub"] = {"Quechua Huallaga Huánuco"}, ["quc"] = {"K'iche'", "Quiché"}, ["qud"] = {"Quichua Sleitoil Calderón"}, ["quf"] = {"Quechua Lambayeque"}, ["qug"] = {"Quichua Sleitoil Chimborazo"}, ["quh"] = {"Quechua Voliviagh Yiass"}, ["qui"] = {"Quileute"}, ["quk"] = {"Quechua Chachapoyas"}, ["qul"] = {"Quechua Voliviagh Hwoaie"}, ["qum"] = {"Sipacapense"}, ["qun"] = {"Quinault"}, ["qup"] = {"Quechua Pastaza Yiass"}, ["quq"] = {"Quinqui"}, ["qur"] = {"Quechua Yanahuanca Pasco"}, ["qus"] = {"Quichua Santiago del Estero"}, ["quv"] = {"Sacapulteco"}, ["quw"] = {"Quichua Injil Tena"}, ["qux"] = {"Quechua Yauyos"}, ["quy"] = {"Quechua Ayacucho"}, ["quz"] = {"Quechua Cusco"}, ["qva"] = {"Quechua Ambo-Pasco"}, ["qvc"] = {"Quechua Cajamarca"}, ["qve"] = {"Quechua Apurímac Hiar"}, ["qvh"] = {"Quechua Huánaco Huamalíes-Dos de Mayo"}, ["qvi"] = {"Quichua Sleitoil Imbabura"}, ["qvj"] = {"Quichua Sleitoil Loja"}, ["qvl"] = {"Quechua Lima Hwoaie Cajatambo"}, ["qvm"] = {"Quechua Margos-Yarowilca-Lauricocha"}, ["qvn"] = {"Quechua Junín Hwoaie"}, ["qvo"] = {"Quechua Injil Napo"}, ["qvp"] = {"Quechua Pacaraos"}, ["qvs"] = {"Quechua San Martín"}, ["qvw"] = {"Quechua Huaylla Wanca"}, ["qvy"] = {"Queyu"}, ["qvz"] = {"Quechua Pastaza Hwoaie"}, ["qwa"] = {"Quechua Ancash Corongo"}, ["qwc"] = {"Quechua Chlassicagh"}, ["qwe"] = {"Quechuagh (kynney)"}, ["qwh"] = {"Quechua Ancash Huaylas"}, ["qwm"] = {"Kumanish (y Roosh)"}, ["qws"] = {"Quechua Ancash Sihuas"}, ["qwt"] = {"Kwalhioqua-Tlatskanai"}, ["qxa"] = {"Quechua Ancash Chiquián"}, ["qxc"] = {"Quechua Chincha"}, ["qxh"] = {"Quechua Huánuco Panao"}, ["qxl"] = {"Quechua Sleitoil Salasaca"}, ["qxn"] = {"Quechua Ancash Conchucos Hwoaie"}, ["qxo"] = {"Quechua Ancash Conchucos Yiass"}, ["qxp"] = {"Quechua Puno"}, ["qxq"] = {"Qashqa'i"}, ["qxr"] = {"Quichua Sleitoil Cañar"}, ["qxs"] = {"Qiang Yiass"}, ["qxt"] = {"Quechua Pasco Santa Ana de Tusi"}, ["qxu"] = {"Quechua Arequipa-La Unión"}, ["qxw"] = {"Quechua Jauja Wanca"}, ["qya"] = {"Quenya"}, ["qyp"] = {"Quiripi"}, ["raa"] = {"Dungmali"}, ["rab"] = {"Camling"}, ["rac"] = {"Rasawa"}, ["rad"] = {"Rade"}, ["raf"] = {"Meohang Heear"}, ["rag"] = {"Logooli", "Lulogooli"}, ["rah"] = {"Rabha"}, ["rai"] = {"Ramoaaina"}, ["raj"] = {"Rajasthanish"}, ["rak"] = {"Tulu-Bohuai"}, ["ral"] = {"Ralte"}, ["ram"] = {"Canela"}, ["ran"] = {"Riantana"}, ["rao"] = {"Rao"}, ["rap"] = {"Rapanui"}, ["raq"] = {"Saam"}, ["rar"] = {"Rarotongan", "Maorish Ellanyn Cook"}, ["ras"] = {"Tegali"}, ["rat"] = {"Razajerdi"}, ["rau"] = {"Raute"}, ["rav"] = {"Sampang"}, ["raw"] = {"Rawang"}, ["rax"] = {"Rang"}, ["ray"] = {"Rapa"}, ["raz"] = {"Rahambuu"}, ["rbb"] = {"Rumai Palaung"}, ["rbk"] = {"Bontok Hwoaie"}, ["rbl"] = {"Miraya Bikol"}, ["rbp"] = {"Barababaraba"}, ["rcf"] = {"Creeole Frangish Réunion"}, ["rdb"] = {"Rudbari"}, ["rea"] = {"Rerau"}, ["reb"] = {"Rembong"}, ["ree"] = {"Rejang Kayan"}, ["reg"] = {"Kara (Tanzania)"}, ["rei"] = {"Reli"}, ["rej"] = {"Rejang"}, ["rel"] = {"Rendille"}, ["rem"] = {"Remo"}, ["ren"] = {"Rengao"}, ["rer"] = {"Rer Bare"}, ["res"] = {"Reshe"}, ["ret"] = {"Retta"}, ["rey"] = {"Reyesano"}, ["rga"] = {"Roria"}, ["rge"] = {"Greagish Romanagh"}, ["rgk"] = {"Rangkas"}, ["rgn"] = {"Romagnolish"}, ["rgr"] = {"Resígaro"}, ["rgs"] = {"Roglai Yiass"}, ["rgu"] = {"Ringgou"}, ["rhg"] = {"Rohingya"}, ["rhp"] = {"Yahang"}, ["ria"] = {"Riang (yn Injey)"}, ["rib"] = {"Çhengey Chowree Bribri"}, ["rif"] = {"Tarifit"}, ["ril"] = {"Riang Lang", "Riang (Myanmar)"}, ["rim"] = {"Nyaturu"}, ["rin"] = {"Nungu"}, ["rir"] = {"Ribun"}, ["rit"] = {"Ritharrngu"}, ["riu"] = {"Riung"}, ["rjg"] = {"Rajong"}, ["rji"] = {"Raji"}, ["rjs"] = {"Rajbanshi"}, ["rka"] = {"Kraol"}, ["rkb"] = {"Rikbaktsa"}, ["rkh"] = {"Rakahanga-Manihiki"}, ["rki"] = {"Rakhine"}, ["rkm"] = {"Marka"}, ["rkt"] = {"Rangpuri", "Kamta"}, ["rkw"] = {"Arakwal"}, ["rma"] = {"Rama"}, ["rmb"] = {"Rembarrnga"}, ["rmc"] = {"Romanish Charpathagh"}, ["rmd"] = {"Danvargish Romanagh"}, ["rme"] = {"Baarle Romanagh"}, ["rmf"] = {"Kaloromanish Innlynnagh"}, ["rmg"] = {"Norlynnish Romanagh"}, ["rmh"] = {"Murkim"}, ["rmi"] = {"Lomavren"}, ["rmk"] = {"Romkun"}, ["rml"] = {"Romanish Valtagh"}, ["rmm"] = {"Romanish"}, ["rmn"] = {"Romanish Valkanagh"}, ["rmo"] = {"Romanish Sinte"}, ["rmp"] = {"Rempi"}, ["rmq"] = {"Caló"}, ["rms"] = {"Çhengey Chowree Romaanagh"}, ["rmt"] = {"Domari"}, ["rmu"] = {"Romanish Tavringagh"}, ["rmv"] = {"Romanova"}, ["rmw"] = {"Romanish Vretnagh"}, ["rmx"] = {"Romam"}, ["rmy"] = {"Romanish Vlax"}, ["rmz"] = {"Marma"}, ["rnb"] = {"Çhengey Chowree Brunca"}, ["rnd"] = {"Ruund"}, ["rng"] = {"Ronga"}, ["rnl"] = {"Ranglong"}, ["rnn"] = {"Roon"}, ["rnp"] = {"Rongpo"}, ["rnr"] = {"Nari Nari"}, ["rnw"] = {"Rungwa"}, ["roa"] = {"çhengaghyn Romansagh"}, ["rob"] = {"Tae'"}, ["roc"] = {"Cacgia Roglai"}, ["rod"] = {"Rogo"}, ["roe"] = {"Ronji"}, ["rof"] = {"Rombo"}, ["rog"] = {"Roglai Hwoaie"}, ["rol"] = {"Romblomanon"}, ["rom"] = {"Romanish"}, ["roo"] = {"Rotokas"}, ["rop"] = {"Kriol"}, ["ror"] = {"Rongga"}, ["rou"] = {"Runga"}, ["row"] = {"Dela-Oenale"}, ["rpn"] = {"Repanbitip"}, ["rpt"] = {"Rapting"}, ["rri"] = {"Ririo"}, ["rro"] = {"Waima"}, ["rrt"] = {"Arritinngithigh"}, ["rsb"] = {"Serbish Romanagh"}, ["rsk"] = {"Ruthenish", "Rusnak"}, ["rsl"] = {"Çhengey Chowree Rooshagh"}, ["rsm"] = {"Çhengey Chowree Miriwoong"}, ["rsn"] = {"Çhengey Chowree Rooandagh"}, ["rsw"] = {"Rishiwa"}, ["rtc"] = {"Rungtu Chin"}, ["rth"] = {"Ratahan"}, ["rtm"] = {"Rotuman"}, ["rts"] = {"Yuratsish"}, ["rtw"] = {"Rathawi"}, ["rub"] = {"Gungu"}, ["ruc"] = {"Ruuli"}, ["rue"] = {"Rusynish"}, ["ruf"] = {"Luguru"}, ["rug"] = {"Roviana"}, ["ruh"] = {"Ruga"}, ["rui"] = {"Rufiji"}, ["ruk"] = {"Che"}, ["ruo"] = {"Istro-Romaanish"}, ["rup"] = {"Massado-Romaanish", "Aromaanish", "Arumaanish"}, ["ruq"] = {"Megleno-Romaanish"}, ["rut"] = {"Rutulish"}, ["ruu"] = {"Lanas Lobu"}, ["ruy"] = {"Mala (y Naigeer)"}, ["ruz"] = {"Ruma"}, ["rwa"] = {"Rawo"}, ["rwk"] = {"Rwa"}, ["rwl"] = {"Ruwila"}, ["rwm"] = {"Amba (Oogandey)"}, ["rwo"] = {"Rawa"}, ["rwr"] = {"Marwari (yn Injey)"}, ["rxd"] = {"Ngardi"}, ["rxw"] = {"Karuwali", "Garuwali"}, ["ryn"] = {"Amami-Oshima Hwoaie"}, ["rys"] = {"Yaeyama"}, ["ryu"] = {"Okinawish Veanagh"}, ["rzh"] = {"Rāziḥī"}, ["saa"] = {"Saba"}, ["sab"] = {"Buglere"}, ["sac"] = {"Meskwaki"}, ["sad"] = {"Sandawe"}, ["sae"] = {"Sabanê"}, ["saf"] = {"Safaliba"}, ["sah"] = {"Yakutish"}, ["sai"] = {"çhengaghyn Injinagh Americaanagh Yiass"}, ["saj"] = {"Sahu"}, ["sak"] = {"Sake"}, ["sal"] = {"çhengaghyn Salishanagh"}, ["sam"] = {"Aramaaish Hamaaragh"}, ["sao"] = {"Sause"}, ["saq"] = {"Samburu"}, ["sar"] = {"Saraveca"}, ["sas"] = {"Sasak"}, ["sat"] = {"Santali"}, ["sau"] = {"Saleman"}, ["sav"] = {"Saafi-Saafi"}, ["saw"] = {"Sawi"}, ["sax"] = {"Sa"}, ["say"] = {"Saya"}, ["saz"] = {"Saurashtra"}, ["sba"] = {"Ngambay"}, ["sbb"] = {"Simbo"}, ["sbc"] = {"Kele (Papooey Guinea Noa)"}, ["sbd"] = {"Samo Yiass"}, ["sbe"] = {"Saliba"}, ["sbf"] = {"Chabu", "Shabo"}, ["sbg"] = {"Seget"}, ["sbh"] = {"Sori-Harengan"}, ["sbi"] = {"Seti"}, ["sbj"] = {"Surbakhal"}, ["sbk"] = {"Safwa"}, ["sbl"] = {"Botolan Sambal"}, ["sbm"] = {"Sagala"}, ["sbn"] = {"Sindhi Bhil"}, ["sbo"] = {"Sabüm"}, ["sbp"] = {"Sangu (Tanzania)"}, ["sbq"] = {"Sileibi"}, ["sbr"] = {"Sembakung Murut"}, ["sbs"] = {"Subiya"}, ["sbt"] = {"Kimki"}, ["sbu"] = {"Stod Bhoti"}, ["sbv"] = {"Sabine"}, ["sbw"] = {"Simba"}, ["sbx"] = {"Seberuang"}, ["sby"] = {"Soli"}, ["sbz"] = {"Sara Kaba"}, ["scb"] = {"Chut"}, ["sce"] = {"Dongxiang"}, ["scf"] = {"Creeole Frangish San Miguel"}, ["scg"] = {"Sanggau"}, ["sch"] = {"Sakachep"}, ["sci"] = {"Creeole Malayish Sri Lanka"}, ["sck"] = {"Sadri"}, ["scl"] = {"Shina"}, ["scn"] = {"Shisslish"}, ["sco"] = {"Baarle Albinagh"}, ["scp"] = {"Hyolmo", "Helambu Sherpa"}, ["scq"] = {"Sa'och"}, ["scs"] = {"Slavish Hwoaie"}, ["sct"] = {"Katang Yiass"}, ["scu"] = {"Shumcho"}, ["scv"] = {"Sheni"}, ["scw"] = {"Sha"}, ["scx"] = {"Sicel"}, ["sda"] = {"Toraja-Sa'dan"}, ["sdb"] = {"Shabak"}, ["sdc"] = {"Sardeenish Hassaragh"}, ["sde"] = {"Surubu"}, ["sdf"] = {"Sarli"}, ["sdg"] = {"Savi"}, ["sdh"] = {"Kurdish Yiass"}, ["sdj"] = {"Suundi"}, ["sdk"] = {"Sos Kundi"}, ["sdl"] = {"Çhengey Chowree Arabagh Saudi"}, ["sdn"] = {"Sardeenish Ghalluragh"}, ["sdo"] = {"Bukar-Sadung Bidayuh"}, ["sdp"] = {"Sherdukpen"}, ["sdq"] = {"Semandang"}, ["sdr"] = {"Oraon Sadri"}, ["sds"] = {"Sened"}, ["sdt"] = {"Shuadit"}, ["sdu"] = {"Sarudu"}, ["sdv"] = {"çhengaghyn Soodaanagh Hiar"}, ["sdx"] = {"Sibu Melanau"}, ["sdz"] = {"Sallands"}, ["sea"] = {"Semai"}, ["seb"] = {"Shempire Senoufo"}, ["sec"] = {"Sechelt"}, ["sed"] = {"Sedang"}, ["see"] = {"Seneca"}, ["sef"] = {"Cebaara Senoufo"}, ["seg"] = {"Segeju"}, ["seh"] = {"Sena"}, ["sei"] = {"Seri"}, ["sej"] = {"Sene"}, ["sek"] = {"Sekani"}, ["sel"] = {"Selkup"}, ["sem"] = {"çhengaghyn Shemmagh"}, ["sen"] = {"Nanerigé Sénoufo"}, ["seo"] = {"Suarmin"}, ["sep"] = {"Sìcìté Sénoufo"}, ["seq"] = {"Senara Sénoufo"}, ["ser"] = {"Serrano"}, ["ses"] = {"Koyraboro Senni Songhai"}, ["set"] = {"Sentani"}, ["seu"] = {"Serui-Laut"}, ["sev"] = {"Nyarafolo Senoufo"}, ["sew"] = {"Sewa Bay"}, ["sey"] = {"Secoya"}, ["sez"] = {"Senthang Chin"}, ["sfb"] = {"Langue des signes de Belgique Francophone", "Çhengey Chowree Rangee yn Velg"}, ["sfe"] = {"Subanen Hiar"}, ["sfm"] = {"Miaoish Veg-ornaidagh"}, ["sfs"] = {"Çhengey Chowree yn Affrick Yiass"}, ["sfw"] = {"Sehwi"}, ["sga"] = {"Shenn Yernish (derrey 900)"}, ["sgb"] = {"Mag-antsi Ayta"}, ["sgc"] = {"Kipsigis"}, ["sgd"] = {"Surigaonon"}, ["sge"] = {"Segai"}, ["sgg"] = {"Çhengey Chowree Ghermaanagh Elveeishagh"}, ["sgh"] = {"Shughni"}, ["sgi"] = {"Suga"}, ["sgj"] = {"Surgujia"}, ["sgk"] = {"Sangkong"}, ["sgm"] = {"Singa"}, ["sgn"] = {"Çhengaghyn cowree"}, ["sgp"] = {"Singpho"}, ["sgr"] = {"Sangisari"}, ["sgs"] = {"Samogitish"}, ["sgt"] = {"Brokpake"}, ["sgu"] = {"Salas"}, ["sgw"] = {"Sebat Bet Gurage"}, ["sgx"] = {"Çhengey Chowree Sierra Leone"}, ["sgy"] = {"Sanglechi"}, ["sgz"] = {"Sursurunga"}, ["sha"] = {"Shall-Zwall"}, ["shb"] = {"Ninam"}, ["shc"] = {"Sonde"}, ["shd"] = {"Kundal Shahi"}, ["she"] = {"Sheko"}, ["shg"] = {"Shua"}, ["shh"] = {"Shoshoni"}, ["shi"] = {"Tachelhit"}, ["shj"] = {"Shatt"}, ["shk"] = {"Shilluk"}, ["shl"] = {"Shendu"}, ["shm"] = {"Shahrudi"}, ["shn"] = {"Shan"}, ["sho"] = {"Shanga"}, ["shp"] = {"Shipibo-Conibo"}, ["shq"] = {"Sala"}, ["shr"] = {"Shi"}, ["shs"] = {"Shuswap"}, ["sht"] = {"Shasta"}, ["shu"] = {"Arabish Hadagh"}, ["shv"] = {"Shehri"}, ["shw"] = {"Shwai"}, ["shx"] = {"She"}, ["shy"] = {"Tachawit"}, ["shz"] = {"Syenara Senoufo"}, ["sia"] = {"Saamish Akkala"}, ["sib"] = {"Sebop"}, ["sid"] = {"Sidamo"}, ["sie"] = {"Simaa"}, ["sif"] = {"Siamou"}, ["sig"] = {"Paasaal"}, ["sih"] = {"Zire", "Sîshëë"}, ["sii"] = {"Shom Peng"}, ["sij"] = {"Numbami"}, ["sik"] = {"Sikiana"}, ["sil"] = {"Tumulung Sisaala"}, ["sim"] = {"Mende (Papooey Guinea Noa)"}, ["sio"] = {"çhengaghyn Siouagh"}, ["sip"] = {"Sikkimish"}, ["siq"] = {"Sonia"}, ["sir"] = {"Siri"}, ["sis"] = {"Siuslaw"}, ["sit"] = {"çhengaghyn Sheen-Tibetagh"}, ["siu"] = {"Sinagen"}, ["siv"] = {"Sumariup"}, ["siw"] = {"Siwai"}, ["six"] = {"Sumau"}, ["siy"] = {"Sivandi"}, ["siz"] = {"Siwi"}, ["sja"] = {"Epena"}, ["sjb"] = {"Sajau Basap"}, ["sjd"] = {"Saamish Kildin"}, ["sje"] = {"Saamish Pite"}, ["sjg"] = {"Assangori"}, ["sjk"] = {"Saamish Kemi"}, ["sjl"] = {"Sajalong", "Miji"}, ["sjm"] = {"Mapun"}, ["sjn"] = {"Sindarin"}, ["sjo"] = {"Xibe"}, ["sjp"] = {"Surjapuri"}, ["sjr"] = {"Siar-Lak"}, ["sjs"] = {"Senhaja De Srair"}, ["sjt"] = {"Saamish Ter"}, ["sju"] = {"Saamish Ume"}, ["sjw"] = {"Shawneeish"}, ["ska"] = {"Skagit"}, ["skb"] = {"Saek"}, ["skc"] = {"Ma Manda"}, ["skd"] = {"Miwokish Sierra Yiass"}, ["ske"] = {"Seke (Vanuatu)"}, ["skf"] = {"Sakirabiá"}, ["skg"] = {"Malagasish Sakalava"}, ["skh"] = {"Sikule"}, ["ski"] = {"Sika"}, ["skj"] = {"Seke (Nepaal)"}, ["skm"] = {"Kutong"}, ["skn"] = {"Kolibugan Subanon"}, ["sko"] = {"Seko Tengah"}, ["skp"] = {"Sekapan"}, ["skq"] = {"Sininkere"}, ["skr"] = {"Saraiki", "Seraiki"}, ["sks"] = {"Maia"}, ["skt"] = {"Sakata"}, ["sku"] = {"Sakao"}, ["skv"] = {"Skou"}, ["skw"] = {"Creeole Ollanish Skepi"}, ["skx"] = {"Seko Padang"}, ["sky"] = {"Sikaiana"}, ["skz"] = {"Sekar"}, ["sla"] = {"çhengaghyn Slavagh"}, ["slc"] = {"Sáliba"}, ["sld"] = {"Sissala"}, ["sle"] = {"Sholaga"}, ["slf"] = {"Çhengey Chowree Iddaalagh Elveeishagh"}, ["slg"] = {"Selungai Murut"}, ["slh"] = {"Salish Yiass Puget Sound"}, ["sli"] = {"Sileeshish Eeghtyragh"}, ["slj"] = {"Salumá"}, ["sll"] = {"Salt-Yui"}, ["slm"] = {"Pangutaran Sama"}, ["sln"] = {"Salinan"}, ["slp"] = {"Lamaholot"}, ["slr"] = {"Salar"}, ["sls"] = {"Çhengey Chowree Singapore"}, ["slt"] = {"Sila"}, ["slu"] = {"Selaru"}, ["slw"] = {"Sialum"}, ["slx"] = {"Salampasu"}, ["sly"] = {"Selayar"}, ["slz"] = {"Ma'ya"}, ["sma"] = {"Saamish Yiass"}, ["smb"] = {"Simbari"}, ["smc"] = {"Som"}, ["smf"] = {"Auwe"}, ["smg"] = {"Simbali"}, ["smh"] = {"Samei"}, ["smi"] = {"çhengaghyn Saamagh"}, ["smj"] = {"Saamish Lule"}, ["smk"] = {"Bolinao"}, ["sml"] = {"Sama Veanagh"}, ["smm"] = {"Musasa"}, ["smn"] = {"Saamish Inari"}, ["smp"] = {"Samaarish"}, ["smq"] = {"Samo"}, ["smr"] = {"Simeulue"}, ["sms"] = {"Saamish Skolt"}, ["smt"] = {"Simte"}, ["smu"] = {"Somray"}, ["smv"] = {"Samvedi"}, ["smw"] = {"Sumbawa"}, ["smx"] = {"Samba"}, ["smy"] = {"Semnani"}, ["smz"] = {"Simeku"}, ["snc"] = {"Sinaugoro"}, ["sne"] = {"Bau Bidayuh"}, ["snf"] = {"Noon"}, ["sng"] = {"Sanga (Pobblaght Gheynlagh y Chongo)"}, ["sni"] = {"Sensi"}, ["snj"] = {"Riverain Sango"}, ["snk"] = {"Soninke"}, ["snl"] = {"Sangil"}, ["snm"] = {"Ma'di Yiass"}, ["snn"] = {"Siona"}, ["sno"] = {"Snohomish"}, ["snp"] = {"Siane"}, ["snq"] = {"Sangu (Gabon)"}, ["snr"] = {"Sihan"}, ["sns"] = {"South West Bay", "Nahavaq"}, ["snu"] = {"Senggi", "Viid"}, ["snv"] = {"Sa'ban"}, ["snw"] = {"Selee"}, ["snx"] = {"Sam"}, ["sny"] = {"Saniyo-Hiyewe"}, ["snz"] = {"Kou"}, ["soa"] = {"Song Thai"}, ["sob"] = {"Sobei"}, ["soc"] = {"So (Pobblaght Gheynlagh y Chongo)"}, ["sod"] = {"Songoora"}, ["soe"] = {"Songomeno"}, ["sog"] = {"Sogdish"}, ["soh"] = {"Aka"}, ["soi"] = {"Sonha"}, ["soj"] = {"Soi"}, ["sok"] = {"Sokoro"}, ["sol"] = {"Solos"}, ["son"] = {"çhengaghyn Songhai"}, ["soo"] = {"Songo"}, ["sop"] = {"Songe"}, ["soq"] = {"Kanasi"}, ["sor"] = {"Somrai"}, ["sos"] = {"Seeku"}, ["sou"] = {"Thai Yiass"}, ["sov"] = {"Sonsorol"}, ["sow"] = {"Sowanda"}, ["sox"] = {"Swo"}, ["soy"] = {"Miyobe"}, ["soz"] = {"Temi"}, ["spb"] = {"Sepa (yn Indoneesh)"}, ["spc"] = {"Sapé"}, ["spd"] = {"Saep"}, ["spe"] = {"Sepa (Papooey Guinea Noa)"}, ["spg"] = {"Sian"}, ["spi"] = {"Saponi"}, ["spk"] = {"Sengo"}, ["spl"] = {"Selepet"}, ["spm"] = {"Akukem"}, ["spn"] = {"Sanapaná"}, ["spo"] = {"Spokane"}, ["spp"] = {"Supyire Senoufo"}, ["spq"] = {"Spaainish Loreto-Ucayali"}, ["spr"] = {"Saparua"}, ["sps"] = {"Saposa"}, ["spt"] = {"Spiti Bhoti"}, ["spu"] = {"Sapuan"}, ["spv"] = {"Sambalpuri", "Kosli"}, ["spx"] = {"Picenish Yiass"}, ["spy"] = {"Sabaot"}, ["sqa"] = {"Shama-Sambuga"}, ["sqh"] = {"Shau"}, ["sqj"] = {"çhengaghyn Albaanagh"}, ["sqk"] = {"Çhengey Chowree Albaanagh"}, ["sqm"] = {"Suma"}, ["sqn"] = {"Susquehannock"}, ["sqo"] = {"Sorkhei"}, ["sqq"] = {"Sou"}, ["sqr"] = {"Arabish Hisslagh"}, ["sqs"] = {"Çhengey Chowree Sri Lanka"}, ["sqt"] = {"Soqotri"}, ["squ"] = {"Squamish"}, ["sqx"] = {"Çhengey Chowree Kufr Qassem (KQSL)"}, ["sra"] = {"Saruga"}, ["srb"] = {"Sora"}, ["src"] = {"Sardeenish Logudoragh"}, ["sre"] = {"Sara"}, ["srf"] = {"Nafi"}, ["srg"] = {"Sulod"}, ["srh"] = {"Sarikoli"}, ["sri"] = {"Siriano"}, ["srk"] = {"Serudung Murut"}, ["srl"] = {"Isirawa"}, ["srm"] = {"Saramaccan"}, ["srn"] = {"Sranan Tongo"}, ["sro"] = {"Sardeenish Campidanagh"}, ["srq"] = {"Sirionó"}, ["srr"] = {"Serer"}, ["srs"] = {"Sarsi"}, ["srt"] = {"Sauri"}, ["sru"] = {"Suruí"}, ["srv"] = {"Sorsoganon Yiass"}, ["srw"] = {"Serua"}, ["srx"] = {"Sirmauri"}, ["sry"] = {"Sera"}, ["srz"] = {"Shahmirzadi"}, ["ssa"] = {"çhengaghyn Neelagh-Saharagh"}, ["ssb"] = {"Sama Yiass"}, ["ssc"] = {"Suba-Simbiti"}, ["ssd"] = {"Siroi"}, ["sse"] = {"Balangingi", "Bangingih Sama"}, ["ssf"] = {"Thao"}, ["ssg"] = {"Seimat"}, ["ssh"] = {"Arabish Shihhi"}, ["ssi"] = {"Sansi"}, ["ssj"] = {"Sausi"}, ["ssk"] = {"Sunam"}, ["ssl"] = {"Sisaala Heear"}, ["ssm"] = {"Semnam"}, ["ssn"] = {"Waata"}, ["sso"] = {"Sissano"}, ["ssp"] = {"Çhengey Chowree Spaainagh"}, ["ssq"] = {"So'a"}, ["ssr"] = {"Çhengey Chowree Rangagh Elveeishagh"}, ["sss"] = {"Sô"}, ["sst"] = {"Sinasina"}, ["ssu"] = {"Susuami"}, ["ssv"] = {"Shark Bay"}, ["ssx"] = {"Samberigi"}, ["ssy"] = {"Saho"}, ["ssz"] = {"Sengseng"}, ["sta"] = {"Settla"}, ["stb"] = {"Subanen Hwoaie"}, ["std"] = {"Sentinel"}, ["ste"] = {"Liana-Seti"}, ["stf"] = {"Seta"}, ["stg"] = {"Trieng"}, ["sth"] = {"Shelta"}, ["sti"] = {"Bulo Stieng"}, ["stj"] = {"Matya Samo"}, ["stk"] = {"Arammba"}, ["stl"] = {"Stellingwerfs"}, ["stm"] = {"Setaman"}, ["stn"] = {"Owa"}, ["sto"] = {"Stonish"}, ["stp"] = {"Tepehuan Hiar Yiass"}, ["stq"] = {"Saterfriesisch"}, ["str"] = {"Salish ny Keyllyssyn"}, ["sts"] = {"Shumashti"}, ["stt"] = {"Budeh Stieng"}, ["stu"] = {"Samtao"}, ["stv"] = {"Silt'e"}, ["stw"] = {"Satawalish"}, ["sty"] = {"Tatarish Hibbeyragh"}, ["sua"] = {"Sulka"}, ["sub"] = {"Suku"}, ["suc"] = {"Subanon Heear"}, ["sue"] = {"Suena"}, ["sug"] = {"Suganga"}, ["sui"] = {"Suki"}, ["suj"] = {"Shubi"}, ["suk"] = {"Sukuma"}, ["suo"] = {"Bouni"}, ["suq"] = {"Tirmaga-Chai Suri", "Suri"}, ["sur"] = {"Mwaghavul"}, ["sus"] = {"Susu"}, ["sut"] = {"Subtiaba"}, ["suv"] = {"Puroik"}, ["suw"] = {"Sumbwa"}, ["sux"] = {"Sumerish"}, ["suy"] = {"Suyá"}, ["suz"] = {"Sunwar"}, ["sva"] = {"Svan"}, ["svb"] = {"Ulau-Suain"}, ["svc"] = {"Creeole Baarle Winsenagh"}, ["sve"] = {"Serili"}, ["svk"] = {"Çhengey Chowree Slovackagh"}, ["svm"] = {"Slavomolisano"}, ["svs"] = {"Savosavo"}, ["svx"] = {"Skalvish"}, ["swb"] = {"Comoroish Maore"}, ["swc"] = {"Swahili yn Chongo"}, ["swf"] = {"Sere"}, ["swg"] = {"Swabish"}, ["swh"] = {"Swahili (çhengey er lheh)", "Kiswahili"}, ["swi"] = {"Sui"}, ["swj"] = {"Sira"}, ["swk"] = {"Malawi Sena"}, ["swl"] = {"Çhengey Chowree Hoolynnagh"}, ["swm"] = {"Samosa"}, ["swn"] = {"Sawknah"}, ["swo"] = {"Shanenawa"}, ["swp"] = {"Suau"}, ["swq"] = {"Sharwa"}, ["swr"] = {"Saweru"}, ["sws"] = {"Seluwasan"}, ["swt"] = {"Sawila"}, ["swu"] = {"Suwawa"}, ["swv"] = {"Shekhawati"}, ["sww"] = {"Sowa"}, ["swx"] = {"Suruahá"}, ["swy"] = {"Sarua"}, ["sxb"] = {"Suba"}, ["sxc"] = {"Sicanish"}, ["sxe"] = {"Sighu"}, ["sxg"] = {"Shuhi", "Shixing"}, ["sxk"] = {"Kalapuya Yiass"}, ["sxl"] = {"Selian"}, ["sxm"] = {"Samre"}, ["sxn"] = {"Sangir"}, ["sxo"] = {"Sorothaptish"}, ["sxr"] = {"Saaroa"}, ["sxs"] = {"Sasaru"}, ["sxu"] = {"Saxonish Eaghtyragh"}, ["sxw"] = {"Saxwe Gbe"}, ["sya"] = {"Siang"}, ["syb"] = {"Subanen Veanagh"}, ["syc"] = {"Seerish Chlassicagh"}, ["syd"] = {"çhengaghyn Samoyedagh"}, ["syi"] = {"Seki"}, ["syk"] = {"Sukur"}, ["syl"] = {"Sylheti"}, ["sym"] = {"Maya Samo"}, ["syn"] = {"Senaya"}, ["syo"] = {"Suoy"}, ["syr"] = {"Seerish"}, ["sys"] = {"Sinyar"}, ["syw"] = {"Kagate"}, ["syx"] = {"Samay"}, ["syy"] = {"Çhengey Chowree ny Bedouin Al-Sayyid"}, ["sza"] = {"Semelai"}, ["szb"] = {"Ngalum"}, ["szc"] = {"Semaq Beri"}, ["sze"] = {"Seze"}, ["szg"] = {"Sengele"}, ["szl"] = {"Sileeshish"}, ["szn"] = {"Sula"}, ["szp"] = {"Suabo"}, ["szs"] = {"Çhengey Chowree Ellanyn Solomon"}, ["szv"] = {"Isu (Rheynn Fako)"}, ["szw"] = {"Sawai"}, ["szy"] = {"Sakizaya"}, ["taa"] = {"Tanana Eeghtyragh"}, ["tab"] = {"Tabassaranish"}, ["tac"] = {"Tarahumara Injil"}, ["tad"] = {"Tause"}, ["tae"] = {"Tariana"}, ["taf"] = {"Tapirapé"}, ["tag"] = {"Tagoi"}, ["tai"] = {"çhengaghyn Tai"}, ["taj"] = {"Tamang Hiar"}, ["tak"] = {"Tala"}, ["tal"] = {"Tal"}, ["tan"] = {"Tangale"}, ["tao"] = {"Yami"}, ["tap"] = {"Taabwa"}, ["taq"] = {"Tamasheq"}, ["tar"] = {"Tarahumara Veanagh"}, ["tas"] = {"Tay Boi"}, ["tau"] = {"Tanana Eaghtyragh"}, ["tav"] = {"Tatuyo"}, ["taw"] = {"Tai"}, ["tax"] = {"Tamki"}, ["tay"] = {"Atayal"}, ["taz"] = {"Tocho"}, ["tba"] = {"Aikanã"}, ["tbc"] = {"Takia"}, ["tbd"] = {"Kaki Ae"}, ["tbe"] = {"Tanimbili"}, ["tbf"] = {"Mandara"}, ["tbg"] = {"Tairora Hwoaie"}, ["tbh"] = {"Dharawal", "Thurawal"}, ["tbi"] = {"Gaam"}, ["tbj"] = {"Tiang"}, ["tbk"] = {"Calamian Tagbanwa"}, ["tbl"] = {"Tboli"}, ["tbm"] = {"Tagbu"}, ["tbn"] = {"Barro Negro Tunebo"}, ["tbo"] = {"Tawala"}, ["tbp"] = {"Taworta", "Diebroud"}, ["tbq"] = {"çhengaghyn Tibetagh-Burmagh"}, ["tbr"] = {"Tumtum"}, ["tbs"] = {"Tanguat"}, ["tbt"] = {"Tembo (Kitembo)"}, ["tbu"] = {"Tubar"}, ["tbv"] = {"Tobo"}, ["tbw"] = {"Tagbanwa"}, ["tbx"] = {"Kapin"}, ["tby"] = {"Tabaru"}, ["tbz"] = {"Ditammari"}, ["tca"] = {"Ticuna"}, ["tcb"] = {"Tanacross"}, ["tcc"] = {"Datooga"}, ["tcd"] = {"Tafi"}, ["tce"] = {"Tutchone Yiass"}, ["tcf"] = {"Malinaltepec Me'phaa", "Malinaltepec Tlapanec"}, ["tcg"] = {"Tamagario"}, ["tch"] = {"Creeole Baarle ny Turkee as Caicos"}, ["tci"] = {"Wára"}, ["tck"] = {"Tchitchege"}, ["tcl"] = {"Taman (Myanmar)"}, ["tcm"] = {"Tanahmerah"}, ["tcn"] = {"Tichurong"}, ["tco"] = {"Taungyo"}, ["tcp"] = {"Tawr Chin"}, ["tcq"] = {"Kaiy"}, ["tcs"] = {"Creeole Keyllys Torres", "Yumplatok"}, ["tct"] = {"T'en"}, ["tcu"] = {"Tarahumara Hiar Yiass"}, ["tcw"] = {"Totonac Tecpatlán"}, ["tcx"] = {"Toda"}, ["tcy"] = {"Tulu"}, ["tcz"] = {"Chinish Thado"}, ["tda"] = {"Tagdal"}, ["tdb"] = {"Panchpargania"}, ["tdc"] = {"Emberá-Tadó"}, ["tdd"] = {"Tai Nüa"}, ["tde"] = {"Tiranige Diga Dogon"}, ["tdf"] = {"Talieng"}, ["tdg"] = {"Tamang Heear"}, ["tdh"] = {"Thulung"}, ["tdi"] = {"Tomadino"}, ["tdj"] = {"Tajio"}, ["tdk"] = {"Tambas"}, ["tdl"] = {"Sur"}, ["tdm"] = {"Taruma"}, ["tdn"] = {"Tondano"}, ["tdo"] = {"Teme"}, ["tdq"] = {"Tita"}, ["tdr"] = {"Todrah"}, ["tds"] = {"Doutai"}, ["tdt"] = {"Tetun Dili"}, ["tdv"] = {"Toro"}, ["tdx"] = {"Malagasish Tandroy-Mahafaly"}, ["tdy"] = {"Tadyawan"}, ["tea"] = {"Temiar"}, ["teb"] = {"Tetete"}, ["tec"] = {"Terik"}, ["ted"] = {"Tepo Krumen"}, ["tee"] = {"Huehuetla Tepehua"}, ["tef"] = {"Teressa"}, ["teg"] = {"Teke-Tege"}, ["teh"] = {"Tehuelçhish"}, ["tei"] = {"Torricelli"}, ["tek"] = {"Ibali Teke"}, ["tem"] = {"Timne"}, ["ten"] = {"Tama (y Cholombey)"}, ["teo"] = {"Teso"}, ["tep"] = {"Tepecano"}, ["teq"] = {"Temein"}, ["ter"] = {"Tereno"}, ["tes"] = {"Tengger"}, ["tet"] = {"Tetum"}, ["teu"] = {"Soo"}, ["tev"] = {"Teor"}, ["tew"] = {"Tewa (SUA)"}, ["tex"] = {"Tennet"}, ["tey"] = {"Tulishi"}, ["tez"] = {"Tetserret"}, ["tfi"] = {"Tofin Gbe"}, ["tfn"] = {"Tanaina"}, ["tfo"] = {"Tefaro"}, ["tfr"] = {"Teribe"}, ["tft"] = {"Ternate"}, ["tga"] = {"Sagalla"}, ["tgb"] = {"Tobilung"}, ["tgc"] = {"Tigak"}, ["tgd"] = {"Ciwogai"}, ["tge"] = {"Tamang Hiar Gorkha"}, ["tgf"] = {"Chalikha"}, ["tgh"] = {"Creeole Baarle Tobago"}, ["tgi"] = {"Lawunuia"}, ["tgj"] = {"Tagin"}, ["tgn"] = {"Tandaganon"}, ["tgo"] = {"Sudest"}, ["tgp"] = {"Tangoa"}, ["tgq"] = {"Tring"}, ["tgr"] = {"Tareng"}, ["tgs"] = {"Nume"}, ["tgt"] = {"Tagbanwa Veanagh"}, ["tgu"] = {"Tanggu"}, ["tgv"] = {"Tingui-Boto"}, ["tgw"] = {"Tagwana Senoufo"}, ["tgx"] = {"Tagish"}, ["tgy"] = {"Togoyo"}, ["tgz"] = {"Tagalaka"}, ["thd"] = {"Kuuk Thaayorre", "Thayore"}, ["the"] = {"Chitwania Tharu"}, ["thf"] = {"Thangmi"}, ["thh"] = {"Tarahumara Hwoaie"}, ["thi"] = {"Tai Long"}, ["thk"] = {"Tharaka", "Kitharaka"}, ["thl"] = {"Dangaura Tharu"}, ["thm"] = {"Aheu"}, ["thn"] = {"Thachanadan"}, ["thp"] = {"Thompson"}, ["thq"] = {"Kochila Tharu"}, ["thr"] = {"Rana Tharu"}, ["ths"] = {"Thakali"}, ["tht"] = {"Tahltan"}, ["thu"] = {"Thuri"}, ["thv"] = {"Tahaggart Tamahaq"}, ["thy"] = {"Tha"}, ["thz"] = {"Tayart Tamajeq"}, ["tia"] = {"Tamazight Tidikelt"}, ["tic"] = {"Tira"}, ["tif"] = {"Tifal"}, ["tig"] = {"Tigre"}, ["tih"] = {"Timugon Murut"}, ["tii"] = {"Tiene"}, ["tij"] = {"Tilung"}, ["tik"] = {"Tikar"}, ["til"] = {"Tillamook"}, ["tim"] = {"Timbe"}, ["tin"] = {"Tindi"}, ["tio"] = {"Teop"}, ["tip"] = {"Trimuris"}, ["tiq"] = {"Tiéfo"}, ["tis"] = {"Masadiit Itneg"}, ["tit"] = {"Tinigua"}, ["tiu"] = {"Adasen"}, ["tiv"] = {"Tiv"}, ["tiw"] = {"Tiwi"}, ["tix"] = {"Tiwa Yiass"}, ["tiy"] = {"Tiruray"}, ["tiz"] = {"Tai Hongjin"}, ["tja"] = {"Tajuasohn"}, ["tjg"] = {"Tunjung"}, ["tji"] = {"Tujia Hwoaie"}, ["tjj"] = {"Tjungundji"}, ["tjl"] = {"Tai Laing"}, ["tjm"] = {"Timucua"}, ["tjn"] = {"Tonjon"}, ["tjo"] = {"Tamazight Témacine"}, ["tjp"] = {"Tjupany"}, ["tjs"] = {"Tujia Yiass"}, ["tju"] = {"Tjurruru"}, ["tjw"] = {"Djabwurrung"}, ["tka"] = {"Truká"}, ["tkb"] = {"Buksa"}, ["tkd"] = {"Tukudede"}, ["tke"] = {"Takwane"}, ["tkf"] = {"Tukumanféd"}, ["tkg"] = {"Malagasish Tesaka"}, ["tkl"] = {"Tokelauish"}, ["tkm"] = {"Takelma"}, ["tkn"] = {"Toku-No-Shima"}, ["tkp"] = {"Tikopia"}, ["tkq"] = {"Tee"}, ["tkr"] = {"Tsakhurish"}, ["tks"] = {"Takestaanish"}, ["tkt"] = {"Kathoriya Tharu"}, ["tku"] = {"Totonac Necaxa Heose"}, ["tkv"] = {"Mur Pano"}, ["tkw"] = {"Teanu"}, ["tkx"] = {"Tangko"}, ["tkz"] = {"Takua"}, ["tla"] = {"Tepehuan Heear Yiass"}, ["tlb"] = {"Tobelo"}, ["tlc"] = {"Totonac Yecuatla"}, ["tld"] = {"Talaud"}, ["tlf"] = {"Telefol"}, ["tlg"] = {"Tofanma"}, ["tlh"] = {"Klingon", "tlhIngan Hol"}, ["tli"] = {"Tlingit"}, ["tlj"] = {"Talinga-Bwisi"}, ["tlk"] = {"Taloki"}, ["tll"] = {"Tetela"}, ["tlm"] = {"Tolomako"}, ["tln"] = {"Talondo'"}, ["tlo"] = {"Talodi"}, ["tlp"] = {"Totonac Filomena Mata-Coahuitlán"}, ["tlq"] = {"Tai Loi"}, ["tlr"] = {"Talise"}, ["tls"] = {"Tambotalo"}, ["tlt"] = {"Sou Nama", "Teluti"}, ["tlu"] = {"Tulehu"}, ["tlv"] = {"Taliabu"}, ["tlx"] = {"Khehek"}, ["tly"] = {"Talysh"}, ["tma"] = {"Tama (Shad)"}, ["tmb"] = {"Katbol", "Avava"}, ["tmc"] = {"Tumak"}, ["tmd"] = {"Haruai"}, ["tme"] = {"Tremembé"}, ["tmf"] = {"Toba-Maskoy"}, ["tmg"] = {"Ternateño"}, ["tmh"] = {"Tamashek"}, ["tmi"] = {"Tutuba"}, ["tmj"] = {"Samarokena"}, ["tml"] = {"Tamnim Citak"}, ["tmm"] = {"Tai Thanh"}, ["tmn"] = {"Taman (yn Indoneesh)"}, ["tmo"] = {"Temoq"}, ["tmq"] = {"Tumleo"}, ["tmr"] = {"Aramaaish Vabylonagh Ewagh (ca. 200-1200 BNJ)"}, ["tms"] = {"Tima"}, ["tmt"] = {"Tasmate"}, ["tmu"] = {"Iau"}, ["tmv"] = {"Tembo (Motembo)"}, ["tmw"] = {"Temuan"}, ["tmy"] = {"Tami"}, ["tmz"] = {"Tamanaku"}, ["tna"] = {"Tacana"}, ["tnb"] = {"Tunebo Heear"}, ["tnc"] = {"Tanimuca-Retuarã"}, ["tnd"] = {"Angosturas Tunebo"}, ["tng"] = {"Tobanga"}, ["tnh"] = {"Maiani"}, ["tni"] = {"Tandia"}, ["tnk"] = {"Kwamera"}, ["tnl"] = {"Lenakel"}, ["tnm"] = {"Tabla"}, ["tnn"] = {"Tanna Hwoaie"}, ["tno"] = {"Toromono"}, ["tnp"] = {"Whitesands"}, ["tnq"] = {"Taino"}, ["tnr"] = {"Ménik"}, ["tns"] = {"Tenis"}, ["tnt"] = {"Tontemboan"}, ["tnu"] = {"Tay Khang"}, ["tnv"] = {"Tangchangya"}, ["tnw"] = {"Tonsawang"}, ["tnx"] = {"Tanema"}, ["tny"] = {"Tongwe"}, ["tnz"] = {"Ten'edn"}, ["tob"] = {"Toba"}, ["toc"] = {"Totonac Coyutla"}, ["tod"] = {"Toma"}, ["tof"] = {"Gizrra"}, ["tog"] = {"Tonga (Nyasa)"}, ["toh"] = {"Gitonga"}, ["toi"] = {"Tonga (y Tambia)"}, ["toj"] = {"Tojolabal"}, ["tok"] = {"Toki Pona"}, ["tol"] = {"Tolowa"}, ["tom"] = {"Tombulu"}, ["too"] = {"Totonac Xicotepec De Juárez"}, ["top"] = {"Totonac Papantla"}, ["toq"] = {"Toposa"}, ["tor"] = {"Togbo-Vara Banda"}, ["tos"] = {"Totonac Sleitoil"}, ["tou"] = {"Tho"}, ["tov"] = {"Taromi Eaghtyragh"}, ["tow"] = {"Jemez"}, ["tox"] = {"Tobian"}, ["toy"] = {"Topoiyo"}, ["toz"] = {"To"}, ["tpa"] = {"Taupota"}, ["tpc"] = {"Me'phaa Azoyú", "Tlapanec Azoyú"}, ["tpe"] = {"Tippera"}, ["tpf"] = {"Tarpia"}, ["tpg"] = {"Kula"}, ["tpi"] = {"Tok Pisin"}, ["tpj"] = {"Tapieté"}, ["tpk"] = {"Tupinikin"}, ["tpl"] = {"Me'phaa Tlacoapa", "Tlapanec Tlacoapa"}, ["tpm"] = {"Tampulma"}, ["tpn"] = {"Tupinambá"}, ["tpo"] = {"Tai Pao"}, ["tpp"] = {"Tepehua Pisaflores"}, ["tpq"] = {"Tukpa"}, ["tpr"] = {"Tuparí"}, ["tpt"] = {"Tepehua Tlachichilco"}, ["tpu"] = {"Tampuan"}, ["tpv"] = {"Tanapag"}, ["tpx"] = {"Me'phaa Acatepec", "Tlapanec Acatepec"}, ["tpy"] = {"Trumai"}, ["tpz"] = {"Tinputz"}, ["tqb"] = {"Tembé"}, ["tql"] = {"Lehali"}, ["tqm"] = {"Turumsa"}, ["tqn"] = {"Tenino"}, ["tqo"] = {"Toaripi"}, ["tqp"] = {"Tomoip"}, ["tqq"] = {"Tunni"}, ["tqr"] = {"Torona"}, ["tqt"] = {"Totonac Heear"}, ["tqu"] = {"Touo"}, ["tqw"] = {"Tonkawa"}, ["tra"] = {"Tirahi"}, ["trb"] = {"Terebu"}, ["trc"] = {"Copala Triqui"}, ["trd"] = {"Turi"}, ["tre"] = {"Tarangan Hiar"}, ["trf"] = {"Creeole Baarle Trinaidagh"}, ["trg"] = {"Lishán Didán"}, ["trh"] = {"Turaka"}, ["tri"] = {"Trió"}, ["trj"] = {"Toram"}, ["trk"] = {"çhengaghyn Turkagh"}, ["trl"] = {"Albinish Romanagh"}, ["trm"] = {"Tregami"}, ["trn"] = {"Trinitario"}, ["tro"] = {"Tarao Naga"}, ["trp"] = {"Kok Borok"}, ["trq"] = {"Triqui San Martín Itunyoso"}, ["trr"] = {"Taushiro"}, ["trs"] = {"Triqui Chicahuaxtla"}, ["trt"] = {"Tunggare"}, ["tru"] = {"Turoyo", "Surayt"}, ["trv"] = {"Sediq", "Seediq", "Taroko"}, ["trw"] = {"Torwali"}, ["trx"] = {"Bidayuh Tringgus-Sembaan"}, ["try"] = {"Turung"}, ["trz"] = {"Torá"}, ["tsa"] = {"Tsaangi"}, ["tsb"] = {"Tsamai"}, ["tsc"] = {"Tswa"}, ["tsd"] = {"Tsakonish"}, ["tse"] = {"Çhengey Chowree Hooneeshagh"}, ["tsg"] = {"Tausug"}, ["tsh"] = {"Tsuvan"}, ["tsi"] = {"Tsimshian"}, ["tsj"] = {"Tshangla"}, ["tsk"] = {"Tseku"}, ["tsl"] = {"Ts'ün-Lao"}, ["tsm"] = {"Çhengey Chowree Hurkagh", "Türk İşaret Dili"}, ["tsp"] = {"Tusya Hwoaie"}, ["tsq"] = {"Çhengey Chowree Thai"}, ["tsr"] = {"Akei"}, ["tss"] = {"Çhengey Chowree Haiwaanagh"}, ["tst"] = {"Tondi Songway Kiini"}, ["tsu"] = {"Tsou"}, ["tsv"] = {"Tsogo"}, ["tsw"] = {"Tsishingini"}, ["tsx"] = {"Mubami"}, ["tsy"] = {"Çhengey Chowree Tebul"}, ["tsz"] = {"Purepecha"}, ["tta"] = {"Tutelo"}, ["ttb"] = {"Gaa"}, ["ttc"] = {"Tektiteko"}, ["ttd"] = {"Tauade"}, ["tte"] = {"Bwanabwana"}, ["ttf"] = {"Tuotomb"}, ["ttg"] = {"Tutong"}, ["tth"] = {"Ta'oih Heose"}, ["tti"] = {"Tobati"}, ["ttj"] = {"Tooro"}, ["ttk"] = {"Totoro"}, ["ttl"] = {"Totela"}, ["ttm"] = {"Tutchone Hwoaie"}, ["ttn"] = {"Towei"}, ["tto"] = {"Ta'oih Injil"}, ["ttp"] = {"Tombelala"}, ["ttq"] = {"Tamajaq Tawallammat"}, ["ttr"] = {"Tera"}, ["tts"] = {"Thai Hiar Hwoaie"}, ["ttt"] = {"Tatish Voslymagh"}, ["ttu"] = {"Torau"}, ["ttv"] = {"Titan"}, ["ttw"] = {"Long Wat"}, ["tty"] = {"Sikaritai"}, ["ttz"] = {"Tsum"}, ["tua"] = {"Wiarumus"}, ["tub"] = {"Tübatulabal"}, ["tuc"] = {"Mutu"}, ["tud"] = {"Tuxá"}, ["tue"] = {"Tuyuca"}, ["tuf"] = {"Tunebo Veanagh"}, ["tug"] = {"Tunia"}, ["tuh"] = {"Taulil"}, ["tui"] = {"Tupuri"}, ["tuj"] = {"Tugutil"}, ["tul"] = {"Tula"}, ["tum"] = {"Tumbukish"}, ["tun"] = {"Tunica"}, ["tuo"] = {"Tucano"}, ["tup"] = {"çhengaghyn Tupi"}, ["tuq"] = {"Tedaga"}, ["tus"] = {"Tuscarora"}, ["tut"] = {"çhengaghyn Altaiagh"}, ["tuu"] = {"Tututni"}, ["tuv"] = {"Turkana"}, ["tuw"] = {"çhengaghyn Tungusagh"}, ["tux"] = {"Tuxináwa"}, ["tuy"] = {"Tugen"}, ["tuz"] = {"Turka"}, ["tva"] = {"Vaghua"}, ["tvd"] = {"Tsuvadi"}, ["tve"] = {"Te'un"}, ["tvi"] = {"Tulai"}, ["tvk"] = {"Ambrym Hiar Yiass"}, ["tvl"] = {"Tuvalu"}, ["tvm"] = {"Tela-Masbuar"}, ["tvn"] = {"Tavoyan"}, ["tvo"] = {"Tidore"}, ["tvs"] = {"Taveta"}, ["tvt"] = {"Naga Tutsa"}, ["tvu"] = {"Tunen"}, ["tvw"] = {"Sedoa"}, ["tvx"] = {"Taivoan"}, ["tvy"] = {"Timorish Vrisht"}, ["twa"] = {"Twana"}, ["twb"] = {"Tawbuid Heear"}, ["twc"] = {"Teshenawa"}, ["twd"] = {"Twents"}, ["twe"] = {"Tewa (yn Indoneesh)"}, ["twf"] = {"Tiwa Hwoaie"}, ["twg"] = {"Tereweng"}, ["twh"] = {"Tai Dón"}, ["twl"] = {"Tawara"}, ["twm"] = {"Tawang Monpa"}, ["twn"] = {"Twendi"}, ["two"] = {"Tswapong"}, ["twp"] = {"Ere"}, ["twq"] = {"Tasawaq"}, ["twr"] = {"Tarahumara Heear Yiass"}, ["twt"] = {"Turiwára"}, ["twu"] = {"Termanu"}, ["tww"] = {"Tuwari"}, ["twx"] = {"Tewe"}, ["twy"] = {"Tawoyan"}, ["txa"] = {"Tombonuo"}, ["txb"] = {"Tokharish B"}, ["txc"] = {"Tsetsaut"}, ["txe"] = {"Totoli"}, ["txg"] = {"Tangut"}, ["txh"] = {"Thrackish"}, ["txi"] = {"Ikpeng"}, ["txj"] = {"Tarjumo"}, ["txm"] = {"Tomini"}, ["txn"] = {"Tarangan Heear"}, ["txo"] = {"Toto"}, ["txq"] = {"Tii"}, ["txr"] = {"Tartessish"}, ["txs"] = {"Tonsea"}, ["txt"] = {"Citak"}, ["txu"] = {"Kayapó"}, ["txx"] = {"Tatana"}, ["txy"] = {"Malagasish Tanosy"}, ["tya"] = {"Tauya"}, ["tye"] = {"Kyanga"}, ["tyh"] = {"O'du"}, ["tyi"] = {"Teke-Tsaayi"}, ["tyj"] = {"Tai Do", "Tai Yo"}, ["tyl"] = {"Thu Lao"}, ["tyn"] = {"Kombai"}, ["typ"] = {"Thaypan"}, ["tyr"] = {"Tai Daeng"}, ["tys"] = {"Tày Sa Pa"}, ["tyt"] = {"Tày Tac"}, ["tyu"] = {"Kua"}, ["tyv"] = {"Tuvish"}, ["tyx"] = {"Teke-Tyee"}, ["tyy"] = {"Tiyaa"}, ["tyz"] = {"Tày"}, ["tza"] = {"Çhengey Chowree Tanzania"}, ["tzh"] = {"Tzeltal"}, ["tzj"] = {"Tz'utujil"}, ["tzl"] = {"Talossan"}, ["tzm"] = {"Tamazight Atlas Veanagh"}, ["tzn"] = {"Tugun"}, ["tzo"] = {"Tzotzil"}, ["tzx"] = {"Tabriak"}, ["uam"] = {"Uamué"}, ["uan"] = {"Kuan"}, ["uar"] = {"Tairuma"}, ["uba"] = {"Ubang"}, ["ubi"] = {"Ubi"}, ["ubl"] = {"Buhi'non Bikol"}, ["ubr"] = {"Ubir"}, ["ubu"] = {"Umbu-Ungu"}, ["uby"] = {"Ubykhish"}, ["uda"] = {"Uda"}, ["ude"] = {"Udihe"}, ["udg"] = {"Muduga"}, ["udi"] = {"Udi"}, ["udj"] = {"Ujir"}, ["udl"] = {"Wuzlam"}, ["udm"] = {"Udmurtish"}, ["udu"] = {"Uduk"}, ["ues"] = {"Kioko"}, ["ufi"] = {"Ufim"}, ["uga"] = {"Oogaritish"}, ["ugb"] = {"Kuku-Ugbanh"}, ["uge"] = {"Ughele"}, ["ugh"] = {"Kubachi"}, ["ugn"] = {"Çhengey Chowree Oogandagh"}, ["ugo"] = {"Ugong"}, ["ugy"] = {"Çhengey Chowree Ooraguayagh"}, ["uha"] = {"Uhami"}, ["uhn"] = {"Damal"}, ["uis"] = {"Uisai"}, ["uiv"] = {"Iyive"}, ["uji"] = {"Tanjijili"}, ["uka"] = {"Kaburi"}, ["ukg"] = {"Ukuriguma"}, ["ukh"] = {"Ukhwejo"}, ["uki"] = {"Kui (yn Injey)"}, ["ukk"] = {"Muak Sa-aak"}, ["ukl"] = {"Çhengey Chowree Ookraanagh"}, ["ukp"] = {"Ukpe-Bayobiri"}, ["ukq"] = {"Ukwa"}, ["uks"] = {"Çhengey Chowree Urubú-Kaapor", "Çhengey Chowree Kaapor"}, ["uku"] = {"Ukue"}, ["ukv"] = {"Kuku"}, ["ukw"] = {"Ukwuani-Aboh-Ndoni"}, ["uky"] = {"Kuuk-Yak"}, ["ula"] = {"Fungwa"}, ["ulb"] = {"Ulukwumi"}, ["ulc"] = {"Ulch"}, ["ule"] = {"Lule"}, ["ulf"] = {"Usku", "Afra"}, ["uli"] = {"Ulithish"}, ["ulk"] = {"Meriam Mir"}, ["ull"] = {"Ullatan"}, ["ulm"] = {"Ulumanda'"}, ["uln"] = {"Unserdeutsch"}, ["ulu"] = {"Uma' Lung"}, ["ulw"] = {"Ulwa"}, ["uly"] = {"Buli"}, ["uma"] = {"Umatilla"}, ["umb"] = {"Umbundu"}, ["umc"] = {"Marrucinish"}, ["umd"] = {"Umbindhamu"}, ["umg"] = {"Morrobalama", "Umbuygamu"}, ["umi"] = {"Ukit"}, ["umm"] = {"Umon"}, ["umn"] = {"Makyan Naga"}, ["umo"] = {"Umotína"}, ["ump"] = {"Umpila"}, ["umr"] = {"Umbugarla"}, ["ums"] = {"Pendau"}, ["umu"] = {"Munsee"}, ["una"] = {"Watut Hwoaie"}, ["und"] = {"Neuoolit"}, ["une"] = {"Uneme"}, ["ung"] = {"Ngarinyin"}, ["uni"] = {"Uni"}, ["unk"] = {"Enawené-Nawé"}, ["unm"] = {"Unami"}, ["unn"] = {"Kurnai"}, ["unr"] = {"Mundari"}, ["unu"] = {"Unubahe"}, ["unx"] = {"Munda"}, ["unz"] = {"Unde Kaili"}, ["uon"] = {"Kulon"}, ["upi"] = {"Umeda"}, ["upv"] = {"Uripiv-Wala-Rano-Atchin"}, ["ura"] = {"Urarina"}, ["urb"] = {"Urubú-Kaapor", "Kaapor"}, ["urc"] = {"Urningangg"}, ["ure"] = {"Uru"}, ["urf"] = {"Uradhi"}, ["urg"] = {"Urigina"}, ["urh"] = {"Urhobo"}, ["uri"] = {"Urim"}, ["urj"] = {"çhengaghyn Ooralagh"}, ["urk"] = {"Urak Lawoi'"}, ["url"] = {"Urali"}, ["urm"] = {"Urapmin"}, ["urn"] = {"Uruangnirin"}, ["uro"] = {"Ura (Papooey Guinea Noa)"}, ["urp"] = {"Uru-Pa-In"}, ["urr"] = {"Lehalurup", "Löyöp"}, ["urt"] = {"Urat"}, ["uru"] = {"Urumi"}, ["urv"] = {"Uruava"}, ["urw"] = {"Sop"}, ["urx"] = {"Urimo"}, ["ury"] = {"Orya"}, ["urz"] = {"Uru-Eu-Wau-Wau"}, ["usa"] = {"Usarufa"}, ["ush"] = {"Ushojo"}, ["usi"] = {"Usui"}, ["usk"] = {"Usaghade"}, ["usp"] = {"Uspanteco"}, ["uss"] = {"us-Saare"}, ["usu"] = {"Uya"}, ["uta"] = {"Otank"}, ["ute"] = {"Ute-Paiute Yiass"}, ["uth"] = {"ut-Hun"}, ["utp"] = {"Amba (Ellanyn Solomon)"}, ["utr"] = {"Etulo"}, ["utu"] = {"Utu"}, ["uum"] = {"Urum"}, ["uur"] = {"Ura (Vanuatu)"}, ["uuu"] = {"U"}, ["uve"] = {"Uveish Heear", "Fagauvea"}, ["uvh"] = {"Uri"}, ["uvl"] = {"Lote"}, ["uwa"] = {"Kuku-Uwanh"}, ["uya"] = {"Doko-Uyanga"}, ["uzn"] = {"Oosbeckish Hwoaie"}, ["uzs"] = {"Oosbeckish Yiass"}, ["vaa"] = {"Vaagri Booli"}, ["vae"] = {"Vale"}, ["vaf"] = {"Vafsi"}, ["vag"] = {"Vagla"}, ["vah"] = {"Varhadi-Nagpuri"}, ["vai"] = {"Vai"}, ["vaj"] = {"Sekele", "ǃKung Heear Hwoaie", "Vasekele"}, ["val"] = {"Vehes"}, ["vam"] = {"Vanimo"}, ["van"] = {"Valman"}, ["vao"] = {"Vao"}, ["vap"] = {"Vaiphei"}, ["var"] = {"Huarijio"}, ["vas"] = {"Vasavi"}, ["vau"] = {"Vanuma"}, ["vav"] = {"Varli"}, ["vay"] = {"Wayu"}, ["vbb"] = {"Babar Hiar Yiass"}, ["vbk"] = {"Bontok Heear Yiass"}, ["vec"] = {"Veneeshish"}, ["ved"] = {"Veddah"}, ["vel"] = {"Veluws"}, ["vem"] = {"Vemgo-Mabas"}, ["veo"] = {"Ventureño"}, ["vep"] = {"Vepsish"}, ["ver"] = {"Mom Jango"}, ["vgr"] = {"Vaghri"}, ["vgt"] = {"Vlaamse Gebarentaal", "Çhengey Chowree Landrynagh"}, ["vic"] = {"Creeole Baarle Ellanyn y Voidyn"}, ["vid"] = {"Vidunda"}, ["vif"] = {"Vili"}, ["vig"] = {"Viemo"}, ["vil"] = {"Vilela"}, ["vin"] = {"Vinza"}, ["vis"] = {"Vishavan"}, ["vit"] = {"Viti"}, ["viv"] = {"Iduna"}, ["vjk"] = {"Bajjika"}, ["vka"] = {"Kariyarra"}, ["vkj"] = {"Kujarge"}, ["vkk"] = {"Kaur"}, ["vkl"] = {"Kulisusu"}, ["vkm"] = {"Kamakan"}, ["vkn"] = {"Koro Nulu"}, ["vko"] = {"Kodeoha"}, ["vkp"] = {"Creeole Portiugish Korlai"}, ["vkt"] = {"Malayish Tenggarong Kutai"}, ["vku"] = {"Kurrama"}, ["vkz"] = {"Koro Zuba"}, ["vlp"] = {"Valpei"}, ["vls"] = {"Vlaams"}, ["vma"] = {"Martuyhunira"}, ["vmb"] = {"Barbaram"}, ["vmc"] = {"Mixtecish Juxtlahuaca"}, ["vmd"] = {"Mudu Koraga"}, ["vme"] = {"Masela Hiar"}, ["vmf"] = {"Mainfränkisch"}, ["vmg"] = {"Lungalunga"}, ["vmh"] = {"Maraghei"}, ["vmi"] = {"Miwa"}, ["vmj"] = {"Mixtecish Ixtayutla"}, ["vmk"] = {"Makhuwa-Shirima"}, ["vml"] = {"Malgana"}, ["vmm"] = {"Mixtecish Mitlatongo"}, ["vmp"] = {"Mazatec Soyaltepec"}, ["vmq"] = {"Mixtecish Soyaltepec"}, ["vmr"] = {"Marenje"}, ["vms"] = {"Moksela"}, ["vmu"] = {"Muluridyi"}, ["vmv"] = {"Maidu Ghlionney"}, ["vmw"] = {"Makhuwa"}, ["vmx"] = {"Mixtecish Tamazola"}, ["vmy"] = {"Mazatec Ayautla"}, ["vmz"] = {"Mazatec Mazatlán"}, ["vnk"] = {"Vano", "Lovono"}, ["vnm"] = {"Vinmavis", "Neve'ei"}, ["vnp"] = {"Vunapu"}, ["vor"] = {"Voroish"}, ["vot"] = {"Votish"}, ["vra"] = {"Vera'a"}, ["vro"] = {"Võro"}, ["vrs"] = {"Varisi"}, ["vrt"] = {"Burmbar", "Banam Bay"}, ["vsi"] = {"Çhengey Chowree Voldovagh"}, ["vsl"] = {"Çhengey Chowree Veneswaalagh"}, ["vsv"] = {"Çhengey Chowree Valensianagh", "Llengua de signes valenciana"}, ["vto"] = {"Vitou"}, ["vum"] = {"Vumbu"}, ["vun"] = {"Vunjo"}, ["vut"] = {"Vute"}, ["vwa"] = {"Awa (y Çheen)"}, ["waa"] = {"Walla Walla"}, ["wab"] = {"Wab"}, ["wac"] = {"Wasco-Wishram"}, ["wad"] = {"Wamesa", "Wondama"}, ["wae"] = {"Walser"}, ["waf"] = {"Wakoná"}, ["wag"] = {"Wa'ema"}, ["wah"] = {"Watubela"}, ["wai"] = {"Wares"}, ["waj"] = {"Waffa"}, ["wak"] = {"çhengaghyn Wakashagh"}, ["wal"] = {"Wolaytta", "Wolaitta"}, ["wam"] = {"Wampanoag"}, ["wan"] = {"Wan"}, ["wao"] = {"Wappo"}, ["wap"] = {"Wapishana"}, ["waq"] = {"Wagiman"}, ["war"] = {"Waray (ny h-Ellanyn Philippeenagh)"}, ["was"] = {"Washo"}, ["wat"] = {"Kaninuwa"}, ["wau"] = {"Waurá"}, ["wav"] = {"Waka"}, ["waw"] = {"Waiwai"}, ["wax"] = {"Watam", "Marangis"}, ["way"] = {"Wayana"}, ["waz"] = {"Wampur"}, ["wba"] = {"Warao"}, ["wbb"] = {"Wabo"}, ["wbe"] = {"Waritai"}, ["wbf"] = {"Wara"}, ["wbh"] = {"Wanda"}, ["wbi"] = {"Vwanji"}, ["wbj"] = {"Alagwa"}, ["wbk"] = {"Waigali"}, ["wbl"] = {"Wakhi"}, ["wbm"] = {"Wa"}, ["wbp"] = {"Warlpiri"}, ["wbq"] = {"Waddar"}, ["wbr"] = {"Wagdi"}, ["wbs"] = {"Çhengey Chowree y Vengaal Heear"}, ["wbt"] = {"Warnman"}, ["wbv"] = {"Wajarri"}, ["wbw"] = {"Woi"}, ["wca"] = {"Yanomámi"}, ["wci"] = {"Waci Gbe"}, ["wdd"] = {"Wandji"}, ["wdg"] = {"Wadaginam"}, ["wdj"] = {"Wadjiginy"}, ["wdk"] = {"Wadikali"}, ["wdt"] = {"Wendat"}, ["wdu"] = {"Wadjigu"}, ["wdy"] = {"Wadjabangayi"}, ["wea"] = {"Wewaw"}, ["wec"] = {"Wè Heear"}, ["wed"] = {"Wedau"}, ["weg"] = {"Wergaia"}, ["weh"] = {"Weh"}, ["wei"] = {"Kiunum"}, ["wem"] = {"Weme Gbe"}, ["wen"] = {"çhengaghyn Sorbagh"}, ["weo"] = {"Wemale"}, ["wep"] = {"Westphalien"}, ["wer"] = {"Weri"}, ["wes"] = {"Cameroonish Vrisht"}, ["wet"] = {"Perai"}, ["weu"] = {"Rawngtu Chin"}, ["wew"] = {"Wejewa"}, ["wfg"] = {"Yafi", "Zorop"}, ["wga"] = {"Wagaya"}, ["wgb"] = {"Wagawaga"}, ["wgg"] = {"Wangkangurru", "Wangganguru"}, ["wgi"] = {"Wahgi"}, ["wgo"] = {"Waigeo"}, ["wgu"] = {"Wirangu"}, ["wgy"] = {"Warrgamay"}, ["wha"] = {"Sou Upaa", "Manusela"}, ["whg"] = {"Wahgi Hwoaie"}, ["whk"] = {"Wahau Kenyah"}, ["whu"] = {"Wahau Kayan"}, ["wib"] = {"Tusya Yiass"}, ["wic"] = {"Wichita"}, ["wie"] = {"Wik-Epa"}, ["wif"] = {"Wik-Keyangan"}, ["wig"] = {"Wik Ngathan"}, ["wih"] = {"Wik-Me'anha"}, ["wii"] = {"Minidien"}, ["wij"] = {"Wik-Iiyanh"}, ["wik"] = {"Wikalkan"}, ["wil"] = {"Wilawila"}, ["wim"] = {"Wik-Mungkan"}, ["win"] = {"Ho-Chunk"}, ["wir"] = {"Wiraféd"}, ["wiu"] = {"Wiru"}, ["wiv"] = {"Vitu"}, ["wiy"] = {"Wiyot"}, ["wja"] = {"Waja"}, ["wji"] = {"Warji"}, ["wka"] = {"Kw'adza"}, ["wkb"] = {"Kumbaran"}, ["wkd"] = {"Wakde", "Mo"}, ["wkl"] = {"Kalanadi"}, ["wkr"] = {"Keerray-Woorroong"}, ["wku"] = {"Kunduvadi"}, ["wkw"] = {"Wakawaka"}, ["wky"] = {"Wangkayutyuru"}, ["wla"] = {"Walio"}, ["wlc"] = {"Comoroish Mwali"}, ["wle"] = {"Wolane"}, ["wlg"] = {"Kunbarlang"}, ["wlh"] = {"Welaun"}, ["wli"] = {"Waioli"}, ["wlk"] = {"Wailaki"}, ["wll"] = {"Wali (y Toodaan)"}, ["wlm"] = {"Bretnish Veanagh"}, ["wlo"] = {"Wolio"}, ["wlr"] = {"Wailapa"}, ["wls"] = {"Wallisish"}, ["wlu"] = {"Wuliwuli"}, ["wlv"] = {"Wichí Lhamtés Vejoz"}, ["wlw"] = {"Walak"}, ["wlx"] = {"Wali (y Ghaney)"}, ["wly"] = {"Waling"}, ["wma"] = {"Mawa (y Naigeer)"}, ["wmb"] = {"Wambaya"}, ["wmc"] = {"Wamas"}, ["wmd"] = {"Mamaindé"}, ["wme"] = {"Wambule"}, ["wmg"] = {"Minyag Heear"}, ["wmh"] = {"Waima'a"}, ["wmi"] = {"Wamin"}, ["wmm"] = {"Maiwa (yn Indoneesh)"}, ["wmn"] = {"Waamwang"}, ["wmo"] = {"Wom (Papooey Guinea Noa)"}, ["wms"] = {"Wambon"}, ["wmt"] = {"Walmajarri"}, ["wmw"] = {"Mwani"}, ["wmx"] = {"Womo"}, ["wnb"] = {"Mokati"}, ["wnc"] = {"Wantoat"}, ["wnd"] = {"Wandarang"}, ["wne"] = {"Waneci"}, ["wng"] = {"Wanggom"}, ["wni"] = {"Comoroish Ndzwani"}, ["wnk"] = {"Wanukaka"}, ["wnm"] = {"Wanggamala"}, ["wnn"] = {"Wunumara"}, ["wno"] = {"Wano"}, ["wnp"] = {"Wanap"}, ["wnu"] = {"Usan"}, ["wnw"] = {"Wintu"}, ["wny"] = {"Wanyi", "Waanyi"}, ["woa"] = {"Kuwema", "Tyaraity"}, ["wob"] = {"Wè Hwoaie"}, ["woc"] = {"Wogeo"}, ["wod"] = {"Wolani"}, ["woe"] = {"Woleaish"}, ["wof"] = {"Wolofish Ghambiagh"}, ["wog"] = {"Wogamusin"}, ["woi"] = {"Kamang"}, ["wok"] = {"Longto"}, ["wom"] = {"Wom (y Naigeer)"}, ["won"] = {"Wongo"}, ["woo"] = {"Manombai"}, ["wor"] = {"Woria"}, ["wos"] = {"Hundish Hanga"}, ["wow"] = {"Wawonii"}, ["woy"] = {"Weyto"}, ["wpc"] = {"Maco"}, ["wrb"] = {"Waluwarra", "Warluwara"}, ["wrg"] = {"Warungu", "Gudjal"}, ["wrh"] = {"Wiradjuri"}, ["wri"] = {"Wariyangga"}, ["wrk"] = {"Garrwa"}, ["wrl"] = {"Warlmanpa"}, ["wrm"] = {"Warumungu"}, ["wrn"] = {"Warnang"}, ["wro"] = {"Worrorra"}, ["wrp"] = {"Waropen"}, ["wrr"] = {"Wardaman"}, ["wrs"] = {"Waris"}, ["wru"] = {"Waru"}, ["wrv"] = {"Waruna"}, ["wrw"] = {"Gugu Warra"}, ["wrx"] = {"Wae Rana"}, ["wry"] = {"Merwari"}, ["wrz"] = {"Waray (yn Austrail)"}, ["wsa"] = {"Warembori"}, ["wsg"] = {"Adilabad Gondi"}, ["wsi"] = {"Wusi"}, ["wsk"] = {"Waskia"}, ["wsr"] = {"Owenia"}, ["wss"] = {"Wasa"}, ["wsu"] = {"Wasu"}, ["wsv"] = {"Wotapuri-Katarqalai"}, ["wtb"] = {"Matambwe"}, ["wtf"] = {"Watiwa"}, ["wth"] = {"Wathawurrung"}, ["wti"] = {"Berta"}, ["wtk"] = {"Watakataui"}, ["wtm"] = {"Mewati"}, ["wtw"] = {"Wotu"}, ["wua"] = {"Wikngenchera"}, ["wub"] = {"Wunambal"}, ["wud"] = {"Wudu"}, ["wuh"] = {"Wutunhua"}, ["wul"] = {"Silimo"}, ["wum"] = {"Wumbvu"}, ["wun"] = {"Bungu"}, ["wur"] = {"Wurrugu"}, ["wut"] = {"Wutung"}, ["wuu"] = {"Sheenish Wu"}, ["wuv"] = {"Wuvulu-Aua"}, ["wux"] = {"Wulna"}, ["wuy"] = {"Wauyai"}, ["wwa"] = {"Waama"}, ["wwb"] = {"Wakabunga"}, ["wwo"] = {"Wetamut", "Dorig"}, ["wwr"] = {"Warrwa"}, ["www"] = {"Wawa"}, ["wxa"] = {"Waxianghua"}, ["wxw"] = {"Wardandi"}, ["wyb"] = {"Wangaaybuwan-Ngiyambaa"}, ["wyi"] = {"Woiwurrung"}, ["wym"] = {"Wymysorys"}, ["wyn"] = {"Wyandot"}, ["wyr"] = {"Wayoró"}, ["wyy"] = {"Fijish Heear"}, ["xaa"] = {"Arabish Andaloosagh"}, ["xab"] = {"Sambe"}, ["xac"] = {"Kachari"}, ["xad"] = {"Adai"}, ["xae"] = {"Aequish"}, ["xag"] = {"Aghwan"}, ["xai"] = {"Kaimbé"}, ["xaj"] = {"Ararandewára"}, ["xak"] = {"Máku"}, ["xal"] = {"Kalmykish", "Oiratish"}, ["xam"] = {"ǀXam"}, ["xan"] = {"Xamtanga"}, ["xao"] = {"Khao"}, ["xap"] = {"Apalaçheeish"}, ["xaq"] = {"Ackitaanish"}, ["xar"] = {"Karami"}, ["xas"] = {"Kamas"}, ["xat"] = {"Katawixi"}, ["xau"] = {"Kauwera"}, ["xav"] = {"Xavánte"}, ["xaw"] = {"Kawaiisu"}, ["xay"] = {"Kayan Mahakam"}, ["xbb"] = {"Burdekin Injil"}, ["xbc"] = {"Bactrish"}, ["xbd"] = {"Bindal"}, ["xbe"] = {"Bigambal"}, ["xbg"] = {"Bunganditj"}, ["xbi"] = {"Kombio"}, ["xbj"] = {"Birrpayi"}, ["xbm"] = {"Britaanish Veanagh"}, ["xbn"] = {"Kenaboi"}, ["xbo"] = {"Bolgarish"}, ["xbp"] = {"Bibbulman"}, ["xbr"] = {"Kambera"}, ["xbw"] = {"Kambiwá"}, ["xby"] = {"Batjala", "Batyala"}, ["xcb"] = {"Cumbrish"}, ["xcc"] = {"Camunish"}, ["xce"] = {"Celtibeirish"}, ["xcg"] = {"Goalish Chisalpagh"}, ["xch"] = {"Chemakum", "Chimakum"}, ["xcl"] = {"Armeanish Chlassicagh"}, ["xcm"] = {"Comecrudo"}, ["xcn"] = {"Cotoname"}, ["xco"] = {"Chorasmish"}, ["xcr"] = {"Carian"}, ["xct"] = {"Tibetish Chlassicagh"}, ["xcu"] = {"Curonish"}, ["xcv"] = {"Chuvantsy"}, ["xcw"] = {"Coahuilteco"}, ["xcy"] = {"Cayuse"}, ["xda"] = {"Darkinyung"}, ["xdc"] = {"Dackish"}, ["xdk"] = {"Dharuk"}, ["xdm"] = {"Edomish"}, ["xdo"] = {"Kwandu"}, ["xdq"] = {"Kaitag"}, ["xdy"] = {"Dayak Valayagh"}, ["xeb"] = {"Eblan"}, ["xed"] = {"Hdi"}, ["xeg"] = {"ǁXegwi"}, ["xel"] = {"Kelo"}, ["xem"] = {"Kembayan"}, ["xep"] = {"Epi-Olmec"}, ["xer"] = {"Xerénte"}, ["xes"] = {"Kesawai"}, ["xet"] = {"Xetá"}, ["xeu"] = {"Keoru-Ahia"}, ["xfa"] = {"Faliscish"}, ["xga"] = {"Galaatish"}, ["xgb"] = {"Gbin"}, ["xgd"] = {"Gudang"}, ["xgf"] = {"Gabrielino-Fernandeño"}, ["xgg"] = {"Goreng"}, ["xgi"] = {"Garingbal"}, ["xgl"] = {"Galindan"}, ["xgm"] = {"Dharumbal", "Guwinmal"}, ["xgn"] = {"çhengaghyn Mongoilagh"}, ["xgr"] = {"Garza"}, ["xgu"] = {"Unggumi"}, ["xgw"] = {"Guwa"}, ["xha"] = {"Haramish"}, ["xhc"] = {"Hunnish"}, ["xhd"] = {"Hadrami"}, ["xhe"] = {"Khetrani"}, ["xhm"] = {"Khmerish Veanagh (1400 derrey 1850 BNJ)"}, ["xhr"] = {"Hernicish"}, ["xht"] = {"Hattish"}, ["xhu"] = {"Hurrish"}, ["xhv"] = {"Khua"}, ["xib"] = {"Ibeirish"}, ["xii"] = {"Xiri"}, ["xil"] = {"Illyrish"}, ["xin"] = {"Xinca"}, ["xir"] = {"Xiriâna"}, ["xis"] = {"Kisan"}, ["xiv"] = {"Çhengey Ghlion yn Indus"}, ["xiy"] = {"Xipaya"}, ["xjb"] = {"Minjungbal"}, ["xjt"] = {"Jaitmatang"}, ["xka"] = {"Kalkoti"}, ["xkb"] = {"Nago Hwoaie"}, ["xkc"] = {"Kho'ini"}, ["xkd"] = {"Kayan Mendalam"}, ["xke"] = {"Kereho"}, ["xkf"] = {"Khengkha"}, ["xkg"] = {"Kagoro"}, ["xki"] = {"Çhengey Chowree Cheinnagh"}, ["xkj"] = {"Kajali"}, ["xkk"] = {"Kachok", "Kaco'"}, ["xkl"] = {"Kenyah Chadjin"}, ["xkn"] = {"Kayan yn Awin Kayan"}, ["xko"] = {"Kiorr"}, ["xkp"] = {"Kabatei"}, ["xkq"] = {"Koroni"}, ["xkr"] = {"Xakriabá"}, ["xks"] = {"Kumbewaha"}, ["xkt"] = {"Kantosi"}, ["xku"] = {"Kaamba"}, ["xkv"] = {"Kgalagadi"}, ["xkw"] = {"Kembra"}, ["xkx"] = {"Karore"}, ["xky"] = {"Uma' Lasan"}, ["xkz"] = {"Kurtokha"}, ["xla"] = {"Kamula"}, ["xlb"] = {"Loup B"}, ["xlc"] = {"Lyckish"}, ["xld"] = {"Lydish"}, ["xle"] = {"Lemnish"}, ["xlg"] = {"Ligoorish (Henndeeagh)"}, ["xli"] = {"Liburnish"}, ["xln"] = {"Alanish"}, ["xlo"] = {"Loup A"}, ["xlp"] = {"Lepontish"}, ["xls"] = {"Lusitaanish"}, ["xlu"] = {"Luwish Yeenysagh"}, ["xly"] = {"Elymish"}, ["xma"] = {"Mushungulu"}, ["xmb"] = {"Mbonga"}, ["xmc"] = {"Makhuwa-Marrevone"}, ["xmd"] = {"Mbudum"}, ["xme"] = {"Medish"}, ["xmf"] = {"Mingrelish"}, ["xmg"] = {"Mengaka"}, ["xmh"] = {"Kugu-Muminh"}, ["xmj"] = {"Majera"}, ["xmk"] = {"Massadoanish Henndeeagh"}, ["xml"] = {"Çhengey Chowree Valaysiagh"}, ["xmm"] = {"Malayish Manado"}, ["xmn"] = {"Pershish Veanagh Vanichaeagh"}, ["xmo"] = {"Morerebi"}, ["xmp"] = {"Kuku-Mu'inh"}, ["xmq"] = {"Kuku-Mangk"}, ["xmr"] = {"Meroitish"}, ["xms"] = {"Çhengey Chowree Varocagh"}, ["xmt"] = {"Matbat"}, ["xmu"] = {"Kamu"}, ["xmv"] = {"Malagasish Antankarana", "Malagasish Tankarana"}, ["xmw"] = {"Malagasish Tsimihety"}, ["xmx"] = {"Salawati", "Maden"}, ["xmy"] = {"Mayaguduna"}, ["xmz"] = {"Mori Bawah"}, ["xna"] = {"Arabish Hwoaie Henndeeagh"}, ["xnb"] = {"Kanakanabu"}, ["xnd"] = {"çhengaghyn Na-Dene"}, ["xng"] = {"Mongoilish Veanagh"}, ["xnh"] = {"Kuanhua"}, ["xni"] = {"Ngarigu"}, ["xnj"] = {"Ngoni (Tanzania)"}, ["xnk"] = {"Nganakarti"}, ["xnm"] = {"Ngumbarl"}, ["xnn"] = {"Kankanay Hwoaie"}, ["xno"] = {"Anglo-Normanish"}, ["xnq"] = {"Ngoni (y Vosambeeck)"}, ["xnr"] = {"Kangri"}, ["xns"] = {"Kanashi"}, ["xnt"] = {"Narragansett"}, ["xnu"] = {"Nukunul"}, ["xny"] = {"Nyiyaparli"}, ["xnz"] = {"Kenzi", "Mattoki"}, ["xoc"] = {"O'chi'chi'"}, ["xod"] = {"Kokoda"}, ["xog"] = {"Soga"}, ["xoi"] = {"Kominimung"}, ["xok"] = {"Xokleng"}, ["xom"] = {"Komo (y Toodaan)"}, ["xon"] = {"Konkomba"}, ["xoo"] = {"Xukurú"}, ["xop"] = {"Kopar"}, ["xor"] = {"Korubo"}, ["xow"] = {"Kowaki"}, ["xpa"] = {"Pirriya"}, ["xpb"] = {"Tasmanian Hiar Hwoaie", "Pyemmairrener"}, ["xpc"] = {"Pecheneg"}, ["xpd"] = {"Tasmaanish Oyster Bay"}, ["xpe"] = {"Kpelle yn Laibeer"}, ["xpf"] = {"Tasmaanish Hiar Yiass", "Nuenonne"}, ["xpg"] = {"Phrygish"}, ["xph"] = {"Tasmaanish Vean-çheerey Hwoaie", "Tyerrenoterpanner"}, ["xpi"] = {"Pictish"}, ["xpj"] = {"Mpalitjanh"}, ["xpk"] = {"Kulina Pano"}, ["xpl"] = {"Tasmaanish Port Sorell"}, ["xpm"] = {"Pumpokol"}, ["xpn"] = {"Kapinawá"}, ["xpo"] = {"Pochutec"}, ["xpp"] = {"Puyo-Paekche"}, ["xpq"] = {"Moheganish-Pequot"}, ["xpr"] = {"Parthish"}, ["xps"] = {"Pisidish"}, ["xpt"] = {"Punthamara"}, ["xpu"] = {"Punish"}, ["xpv"] = {"Tasmaanish Hwoaie", "Tommeginne"}, ["xpw"] = {"Tasmaanish Heear Hwoaie", "Peerapper"}, ["xpx"] = {"Tasmaanish Heear Yiass", "Toogee"}, ["xpy"] = {"Puyo"}, ["xpz"] = {"Tasmaanish Ellan Bruny"}, ["xqa"] = {"Karakhanid"}, ["xqt"] = {"Qatabanian"}, ["xra"] = {"Krahô"}, ["xrb"] = {"Karaboro Hiar"}, ["xrd"] = {"Gundungurra"}, ["xre"] = {"Kreye"}, ["xrg"] = {"Minang"}, ["xri"] = {"Krikati-Timbira"}, ["xrm"] = {"Armazish"}, ["xrn"] = {"Arin"}, ["xrr"] = {"Raetish"}, ["xrt"] = {"Aranama-Tamique"}, ["xru"] = {"Marriammu"}, ["xrw"] = {"Karawa"}, ["xsa"] = {"Sabaean"}, ["xsb"] = {"Sambal"}, ["xsc"] = {"Scythish"}, ["xsd"] = {"Sidetish"}, ["xse"] = {"Sempan"}, ["xsh"] = {"Shamang"}, ["xsi"] = {"Sio"}, ["xsj"] = {"Subi"}, ["xsl"] = {"Slavish Yiass"}, ["xsm"] = {"Kasem"}, ["xsn"] = {"Sanga (y Naigeer)"}, ["xso"] = {"Solano"}, ["xsp"] = {"Silopi"}, ["xsq"] = {"Makhuwa-Saka"}, ["xsr"] = {"Sherpa"}, ["xsu"] = {"Sanumá"}, ["xsv"] = {"Sudovish"}, ["xsy"] = {"Saisiyat"}, ["xta"] = {"Mixtecish Alcozauca"}, ["xtb"] = {"Mixtecish Chazumba"}, ["xtc"] = {"Katcha-Kadugli-Miri"}, ["xtd"] = {"Mixtecish Diuxi-Tilantongo"}, ["xte"] = {"Ketengban"}, ["xtg"] = {"Goalish Hessenalpagh"}, ["xth"] = {"Yitha Yitha"}, ["xti"] = {"Mixtecish Sinicahua"}, ["xtj"] = {"Mixtecish San Juan Teita"}, ["xtl"] = {"Mixtecish Tijaltepec"}, ["xtm"] = {"Mixtecish Magdalena Peñasco"}, ["xtn"] = {"Mixtecish Tlaxiaco Hwoaie"}, ["xto"] = {"Tokharish A"}, ["xtp"] = {"Mixtecish San Miguel Piedras"}, ["xtq"] = {"Tumshuqese"}, ["xtr"] = {"Tripoorish Leah"}, ["xts"] = {"Mixtecish Sindihui"}, ["xtt"] = {"Mixtecish Tacahua"}, ["xtu"] = {"Mixtecish Cuyamecalco"}, ["xtv"] = {"Thawa"}, ["xtw"] = {"Tawandê"}, ["xty"] = {"Mixtecish Yoloxochitl"}, ["xua"] = {"Alu Kurumba"}, ["xub"] = {"Betta Kurumba"}, ["xud"] = {"Umiida"}, ["xug"] = {"Kunigami"}, ["xuj"] = {"Jennu Kurumba"}, ["xul"] = {"Ngunawal", "Nunukul"}, ["xum"] = {"Umbrish"}, ["xun"] = {"Unggaranggu"}, ["xuo"] = {"Kuo"}, ["xup"] = {"Umpqua Heose"}, ["xur"] = {"Urartish"}, ["xut"] = {"Kuthant"}, ["xuu"] = {"Kxoe", "Khwedam"}, ["xve"] = {"Venetish"}, ["xvi"] = {"Kamviri"}, ["xvn"] = {"Vandalish"}, ["xvo"] = {"Volscish"}, ["xvs"] = {"Vestinish"}, ["xwa"] = {"Kwaza"}, ["xwc"] = {"Woccon"}, ["xwd"] = {"Wadi Wadi"}, ["xwe"] = {"Xwela Gbe"}, ["xwg"] = {"Kwegu"}, ["xwj"] = {"Wajuk"}, ["xwk"] = {"Wangkumara"}, ["xwl"] = {"Xwla Gbe Heear"}, ["xwo"] = {"Oiratish Screeuit"}, ["xwr"] = {"Kwerba Mamberamo"}, ["xwt"] = {"Wotjobaluk"}, ["xww"] = {"Wemba Wemba"}, ["xxb"] = {"Boro (y Ghaney)"}, ["xxk"] = {"Ke'o"}, ["xxm"] = {"Minkin"}, ["xxr"] = {"Koropó"}, ["xxt"] = {"Tambora"}, ["xya"] = {"Yaygir"}, ["xyb"] = {"Yandjibara"}, ["xyj"] = {"Mayi-Yapi"}, ["xyk"] = {"Mayi-Kulan"}, ["xyl"] = {"Yalakalore"}, ["xyt"] = {"Mayi-Thakurti"}, ["xyy"] = {"Yorta Yorta"}, ["xzh"] = {"Zhang-Zhung"}, ["xzm"] = {"Zemgalish"}, ["xzp"] = {"Zapotecish Henndeeagh"}, ["yaa"] = {"Yaminahua"}, ["yab"] = {"Yuhup"}, ["yac"] = {"Yali Pass Valley"}, ["yad"] = {"Yagua"}, ["yae"] = {"Pumé"}, ["yaf"] = {"Yaka (Pobblaght Gheynlagh y Chongo)"}, ["yag"] = {"Yámana"}, ["yah"] = {"Yazgulyam"}, ["yai"] = {"Yagnobi"}, ["yaj"] = {"Banda-Yangere"}, ["yak"] = {"Yakama"}, ["yal"] = {"Yalunka"}, ["yam"] = {"Yamba"}, ["yan"] = {"Mayangna"}, ["yao"] = {"Yao"}, ["yap"] = {"Yapish"}, ["yaq"] = {"Yaqui"}, ["yar"] = {"Yabarana"}, ["yas"] = {"Nugunu (Cameroon)"}, ["yat"] = {"Yambeta"}, ["yau"] = {"Yuwana"}, ["yav"] = {"Yangben"}, ["yaw"] = {"Yawalapití"}, ["yax"] = {"Yauma"}, ["yay"] = {"Agwagwune"}, ["yaz"] = {"Lokaa"}, ["yba"] = {"Yala"}, ["ybb"] = {"Yemba"}, ["ybe"] = {"Yugur Heear"}, ["ybh"] = {"Yakha"}, ["ybi"] = {"Yamphu"}, ["ybj"] = {"Hasha"}, ["ybk"] = {"Bokha"}, ["ybl"] = {"Yukuben"}, ["ybm"] = {"Yaben"}, ["ybn"] = {"Yabaâna"}, ["ybo"] = {"Yabong"}, ["ybx"] = {"Yawiyo"}, ["yby"] = {"Yaweyuha"}, ["ych"] = {"Chesu"}, ["ycl"] = {"Lolopo"}, ["ycn"] = {"Yucuna"}, ["ycp"] = {"Chepya"}, ["ycr"] = {"Creeole Yilan"}, ["yda"] = {"Yanda"}, ["ydd"] = {"Ewdish Hiar"}, ["yde"] = {"Yangum Dey"}, ["ydg"] = {"Yidgha"}, ["ydk"] = {"Yoidik"}, ["yea"] = {"Ravula"}, ["yec"] = {"Yeniche"}, ["yee"] = {"Yimas"}, ["yei"] = {"Yeni"}, ["yej"] = {"Yevanish"}, ["yel"] = {"Yela"}, ["yer"] = {"Tarok"}, ["yes"] = {"Nyankpa"}, ["yet"] = {"Yetfa"}, ["yeu"] = {"Yerukula"}, ["yev"] = {"Yapunda"}, ["yey"] = {"Yeyi"}, ["yga"] = {"Malyangapa"}, ["ygi"] = {"Yiningayi"}, ["ygl"] = {"Yangum Gel"}, ["ygm"] = {"Yagomi"}, ["ygp"] = {"Gepo"}, ["ygr"] = {"Yagaria"}, ["ygs"] = {"Çhengey Chowree Yolŋu"}, ["ygu"] = {"Yugul"}, ["ygw"] = {"Yagwoia"}, ["yha"] = {"Baha Buyang"}, ["yhd"] = {"Arabish Earackagh Ewagh"}, ["yhl"] = {"Hlepho Phowa"}, ["yhs"] = {"Çhengey Chowree Yan-nhaŋu"}, ["yia"] = {"Yinggarda"}, ["yif"] = {"Ache"}, ["yig"] = {"Wusa Nasu"}, ["yih"] = {"Ewdish Heear"}, ["yii"] = {"Yidiny"}, ["yij"] = {"Yindjibarndi"}, ["yik"] = {"Dongshanba Lalo"}, ["yil"] = {"Yindjilandji"}, ["yim"] = {"Naga Yimchungru"}, ["yin"] = {"Riang Lai", "Yinchia"}, ["yip"] = {"Pholo"}, ["yiq"] = {"Miqie"}, ["yir"] = {"Awyu Hwoaie"}, ["yis"] = {"Yis"}, ["yit"] = {"Lalu Hiar"}, ["yiu"] = {"Awu"}, ["yiv"] = {"Nisu Hwoaie"}, ["yix"] = {"Axi Yi"}, ["yiz"] = {"Azhe"}, ["yka"] = {"Yakan"}, ["ykg"] = {"Yukaghirish Hwoaie"}, ["ykh"] = {"Mongoilish Khamnigan"}, ["yki"] = {"Yoke"}, ["ykk"] = {"Yakaikeke"}, ["ykl"] = {"Khlula"}, ["ykm"] = {"Kap"}, ["ykn"] = {"Kua-nsi"}, ["yko"] = {"Yasa"}, ["ykr"] = {"Yekora"}, ["ykt"] = {"Kathu"}, ["yku"] = {"Kuamasi"}, ["yky"] = {"Yakoma"}, ["yla"] = {"Yaul"}, ["ylb"] = {"Yaleba"}, ["yle"] = {"Yele"}, ["ylg"] = {"Yelogu"}, ["yli"] = {"Yali Angguruk"}, ["yll"] = {"Yil"}, ["ylm"] = {"Limi"}, ["yln"] = {"Langnian Buyang"}, ["ylo"] = {"Naluo Yi"}, ["ylr"] = {"Yalarnnga"}, ["ylu"] = {"Aribwaung"}, ["yly"] = {"Nyâlayu", "Nyelâyu"}, ["ymb"] = {"Yambes"}, ["ymc"] = {"Muji Yiass"}, ["ymd"] = {"Muda"}, ["yme"] = {"Yameo"}, ["ymg"] = {"Yamongeri"}, ["ymh"] = {"Mili"}, ["ymi"] = {"Moji"}, ["ymk"] = {"Makwe"}, ["yml"] = {"Iamalele"}, ["ymm"] = {"Maay"}, ["ymn"] = {"Yamna", "Sunum"}, ["ymo"] = {"Yangum Mon"}, ["ymp"] = {"Yamap"}, ["ymq"] = {"Qila Muji"}, ["ymr"] = {"Malasar"}, ["yms"] = {"Mysish"}, ["ymx"] = {"Muji Hwoaie"}, ["ymz"] = {"Muzi"}, ["yna"] = {"Aluo"}, ["ynd"] = {"Yandruwandha"}, ["yne"] = {"Lang'e"}, ["yng"] = {"Yango"}, ["ynk"] = {"Yupikish Naukan"}, ["ynl"] = {"Yangulam"}, ["ynn"] = {"Yana"}, ["yno"] = {"Yong"}, ["ynq"] = {"Yendang"}, ["yns"] = {"Yansi"}, ["ynu"] = {"Yahuna"}, ["yob"] = {"Yoba"}, ["yog"] = {"Yogad"}, ["yoi"] = {"Yonaguni"}, ["yok"] = {"Yokuts"}, ["yol"] = {"Yola"}, ["yom"] = {"Yombe"}, ["yon"] = {"Yongkom"}, ["yot"] = {"Yotti"}, ["yox"] = {"Yoron"}, ["yoy"] = {"Yoy"}, ["ypa"] = {"Phala"}, ["ypb"] = {"Labo Phowa"}, ["ypg"] = {"Phola"}, ["yph"] = {"Phupha"}, ["ypk"] = {"çhengaghyn Yupikagh"}, ["ypm"] = {"Phuma"}, ["ypn"] = {"Ani Phowa"}, ["ypo"] = {"Alo Phola"}, ["ypp"] = {"Phupa"}, ["ypz"] = {"Phuza"}, ["yra"] = {"Yerakai"}, ["yrb"] = {"Yareba"}, ["yre"] = {"Yaouré"}, ["yrk"] = {"Nenetsish"}, ["yrl"] = {"Nhengatu"}, ["yrm"] = {"Yirrk-Mel"}, ["yrn"] = {"Yerong"}, ["yro"] = {"Yaroamë"}, ["yrs"] = {"Yarsun"}, ["yrw"] = {"Yarawata"}, ["yry"] = {"Yarluyandi"}, ["ysc"] = {"Yassish"}, ["ysd"] = {"Samatao"}, ["ysg"] = {"Sonaga"}, ["ysl"] = {"Çhengey Chowree Yugoslaavagh"}, ["ysm"] = {"Çhengey Chowree Myanmar"}, ["ysn"] = {"Sani"}, ["yso"] = {"Nisi (y Çheen)"}, ["ysp"] = {"Lolopo Yiass"}, ["ysr"] = {"Yupikish Sirenik"}, ["yss"] = {"Yessan-Mayo"}, ["ysy"] = {"Sanie"}, ["yta"] = {"Talu"}, ["ytl"] = {"Tanglang"}, ["ytp"] = {"Thopho"}, ["ytw"] = {"Yout Wam"}, ["yty"] = {"Yatay"}, ["yua"] = {"Yucateco", "Mayish Yucatec"}, ["yub"] = {"Yugambal"}, ["yuc"] = {"Yuchi"}, ["yud"] = {"Arabish Hripolitaanagh Ewagh"}, ["yue"] = {"Sheenish Yue", "Cantoanish", "Yueish"}, ["yuf"] = {"Havasupai-Walapai-Yavapai"}, ["yug"] = {"Yug"}, ["yui"] = {"Yurutí"}, ["yuj"] = {"Karkar-Yuri"}, ["yuk"] = {"Yuki"}, ["yul"] = {"Yulu"}, ["yum"] = {"Quechan"}, ["yun"] = {"Bena (y Naigeer)"}, ["yup"] = {"Yukpa"}, ["yuq"] = {"Yuqui"}, ["yur"] = {"Yurok"}, ["yut"] = {"Yopno"}, ["yuw"] = {"Yau (Queiggey Morobe)"}, ["yux"] = {"Yukaghirish Yiass"}, ["yuy"] = {"Yugur Hiar"}, ["yuz"] = {"Yuracare"}, ["yva"] = {"Yawa"}, ["yvt"] = {"Yavitero"}, ["ywa"] = {"Kalou"}, ["ywg"] = {"Yinhawangka"}, ["ywl"] = {"Lalu Heear"}, ["ywn"] = {"Yawanawa"}, ["ywq"] = {"Wuding-Luquan Yi"}, ["ywr"] = {"Yawuru"}, ["ywt"] = {"Xishanba Lalo", "Lalo Veanagh"}, ["ywu"] = {"Wumeng Nasu"}, ["yww"] = {"Yawarawarga"}, ["yxa"] = {"Mayawali"}, ["yxg"] = {"Yagara"}, ["yxl"] = {"Yardliyawarra"}, ["yxm"] = {"Yinwum"}, ["yxu"] = {"Yuyu"}, ["yxy"] = {"Yabula Yabula"}, ["yyr"] = {"Yir Yoront"}, ["yyu"] = {"Yau (Queiggey Sandaun)"}, ["yyz"] = {"Ayizi"}, ["yzg"] = {"E'ma Buyang"}, ["yzk"] = {"Zokhuo"}, ["zaa"] = {"Zapotecish Sierra de Juárez"}, ["zab"] = {"Zapotecish Ghlion Tlacolula Heear", "Zapotecish San Juan Guelavía"}, ["zac"] = {"Zapotecish Ocotlán"}, ["zad"] = {"Zapotecish Cajonos"}, ["zae"] = {"Zapotecish Yareni"}, ["zaf"] = {"Zapotecish Ayoquesco"}, ["zag"] = {"Zaghawa"}, ["zah"] = {"Zangwal"}, ["zai"] = {"Zapotecish Whing Hallooin"}, ["zaj"] = {"Zaramo"}, ["zak"] = {"Zanaki"}, ["zal"] = {"Zauzou"}, ["zam"] = {"Zapotecish Miahuatlán"}, ["zao"] = {"Zapotecish Ozolotepec"}, ["zap"] = {"Zapotecish"}, ["zaq"] = {"Zapotecish Aloápam"}, ["zar"] = {"Zapotecish Rincón"}, ["zas"] = {"Zapotecish Santo Domingo Albarradas"}, ["zat"] = {"Zapotecish Tabaa"}, ["zau"] = {"Zangskari"}, ["zav"] = {"Zapotecish Yatzachi"}, ["zaw"] = {"Zapotecish Mitla"}, ["zax"] = {"Zapotecish Xadani"}, ["zay"] = {"Zayse-Zergulla", "Zaysete"}, ["zaz"] = {"Zari"}, ["zba"] = {"Balaibalan"}, ["zbc"] = {"Berawan Veanagh"}, ["zbe"] = {"Berawan Hiar"}, ["zbl"] = {"Blissymbols", "Bliss", "Blissymbolics"}, ["zbt"] = {"Batui"}, ["zbu"] = {"Bu (Steat Bauchi)"}, ["zbw"] = {"Berawan Heear"}, ["zca"] = {"Zapotecish Coatecas Altas"}, ["zcd"] = {"Zapotecish Las Delicias"}, ["zch"] = {"Zhang Hongshuihe Veanagh"}, ["zdj"] = {"Comoroish Ngazidja"}, ["zea"] = {"Zeeuws"}, ["zeg"] = {"Zenag"}, ["zeh"] = {"Zhuang Hongshuihe Hiar"}, ["zem"] = {"Zeem"}, ["zen"] = {"Zenaga"}, ["zga"] = {"Kinga"}, ["zgb"] = {"Zhuang Guibei"}, ["zgh"] = {"Tamazightish Varocagh Stundayrtit"}, ["zgm"] = {"Zhuang Minz"}, ["zgn"] = {"Zhuang Guibian"}, ["zgr"] = {"Magori"}, ["zhb"] = {"Zhaba"}, ["zhd"] = {"Zhuang Dai"}, ["zhi"] = {"Zhire"}, ["zhn"] = {"Zhuang Nong"}, ["zhw"] = {"Zhoa"}, ["zhx"] = {"Sheenagh (kynney)"}, ["zia"] = {"Zia"}, ["zib"] = {"Çhengey Chowree Himbabweagh"}, ["zik"] = {"Zimakani"}, ["zil"] = {"Zialo"}, ["zim"] = {"Mesme"}, ["zin"] = {"Zinza"}, ["ziw"] = {"Zigula"}, ["ziz"] = {"Zizilivakan"}, ["zka"] = {"Kaimbulawa"}, ["zkd"] = {"Kadu"}, ["zkg"] = {"Koguryo"}, ["zkh"] = {"Khorezmish"}, ["zkk"] = {"Karankawa"}, ["zkn"] = {"Kanan"}, ["zko"] = {"Kott"}, ["zkp"] = {"Kaingáng São Paulo"}, ["zkr"] = {"Zakhring"}, ["zkt"] = {"Kitan"}, ["zku"] = {"Kaurna"}, ["zkv"] = {"Krevinish"}, ["zkz"] = {"Khazarish"}, ["zla"] = {"Zula"}, ["zle"] = {"çhengaghyn Slavagh Hiar"}, ["zlj"] = {"Zhuang Liujiang"}, ["zlm"] = {"Malayish (çhengey er lheh)"}, ["zln"] = {"Zhuang Lianshan"}, ["zlq"] = {"Zhuang Liuqian"}, ["zls"] = {"çhengaghyn Slavagh Yiass"}, ["zlu"] = {"Zul"}, ["zlw"] = {"çhengaghyn Slavagh Heear"}, ["zma"] = {"Manda (yn Austrail)"}, ["zmb"] = {"Zimba"}, ["zmc"] = {"Margany"}, ["zmd"] = {"Maridan"}, ["zme"] = {"Mangerr"}, ["zmf"] = {"Mfinu"}, ["zmg"] = {"Marti Ke"}, ["zmh"] = {"Makolkol"}, ["zmi"] = {"Malayish Negeri Sembilan"}, ["zmj"] = {"Maridjabin"}, ["zmk"] = {"Mandandanyi"}, ["zml"] = {"Matngala"}, ["zmm"] = {"Marimanindji", "Marramaninyshi"}, ["zmn"] = {"Mbangwe"}, ["zmo"] = {"Molo"}, ["zmp"] = {"Mpuono"}, ["zmq"] = {"Mituku"}, ["zmr"] = {"Maranunggu"}, ["zms"] = {"Mbesa"}, ["zmt"] = {"Maringarr"}, ["zmu"] = {"Muruwari"}, ["zmv"] = {"Mbariman-Gudhinma"}, ["zmw"] = {"Mbo (Pobblaght Gheynlagh y Chongo)"}, ["zmx"] = {"Bomitaba"}, ["zmy"] = {"Mariyedi"}, ["zmz"] = {"Mbandja"}, ["zna"] = {"Zan Gula"}, ["znd"] = {"çhengaghyn Zande"}, ["zne"] = {"Zande (çhengey er lheh)"}, ["zng"] = {"Mang"}, ["znk"] = {"Manangkari"}, ["zns"] = {"Mangas"}, ["zoc"] = {"Zoque Copainalá"}, ["zoh"] = {"Zoque Chimalapa"}, ["zom"] = {"Zou"}, ["zoo"] = {"Zapotecish Mixtepec Asunción"}, ["zoq"] = {"Zoque Tabasco"}, ["zor"] = {"Zoque Rayón"}, ["zos"] = {"Zoque Francisco León"}, ["zpa"] = {"Zapotecish Lachiguiri"}, ["zpb"] = {"Zapotecish Yautepec"}, ["zpc"] = {"Zapotecish Choapan"}, ["zpd"] = {"Zapotecish Ixtlán Hiar Yiass"}, ["zpe"] = {"Zapotecish Petapa"}, ["zpf"] = {"Zapotecish San Pedro Quiatoni"}, ["zpg"] = {"Zapotecish Guevea De Humboldt"}, ["zph"] = {"Zapotecish Totomachapan"}, ["zpi"] = {"Zapotecish Santa María Quiegolani"}, ["zpj"] = {"Zapotecish Quiavicuzas"}, ["zpk"] = {"Zapotecish Tlacolulita"}, ["zpl"] = {"Zapotecish Lachixío"}, ["zpm"] = {"Zapotecish Mixtepec"}, ["zpn"] = {"Zapotecish Santa Inés Yatzechi"}, ["zpo"] = {"Zapotecish Amatlán"}, ["zpp"] = {"Zapotecish El Alto"}, ["zpq"] = {"Zapotecish Zoogocho"}, ["zpr"] = {"Zapotecish Santiago Xanica"}, ["zps"] = {"Zapotecish Coatlán"}, ["zpt"] = {"Zapotecish San Vicente Coatlán"}, ["zpu"] = {"Zapotecish Yalálag"}, ["zpv"] = {"Zapotecish Chichicapan"}, ["zpw"] = {"Zapotecish Zaniza"}, ["zpx"] = {"Zapotecish San Baltazar Loxicha"}, ["zpy"] = {"Zapotecish Mazaltepec"}, ["zpz"] = {"Zapotecish Texmelucan"}, ["zqe"] = {"Zhuang Qiubei"}, ["zra"] = {"Kara (y Chorea)"}, ["zrg"] = {"Mirgan"}, ["zrn"] = {"Zerenkel"}, ["zro"] = {"Záparo"}, ["zrp"] = {"Zarphatish"}, ["zrs"] = {"Mairasi"}, ["zsa"] = {"Sarasira"}, ["zsk"] = {"Kaskeish"}, ["zsl"] = {"Çhengey Chowree Hambagh"}, ["zsm"] = {"Malayish Stundayrtit"}, ["zsr"] = {"Zapotecish Rincon Yiass"}, ["zsu"] = {"Sukurum"}, ["zte"] = {"Zapotecish Elotepec"}, ["ztg"] = {"Zapotecish Xanaguía"}, ["ztl"] = {"Zapotecish Lapaguía-Guivini"}, ["ztm"] = {"Zapotecish Mixtepec San Agustín"}, ["ztn"] = {"Zapotecish Santa Catarina Albarradas"}, ["ztp"] = {"Zapotecish Loxicha"}, ["ztq"] = {"Zapotecish Quioquitani-Quierí"}, ["zts"] = {"Zapotecish Tilquiapan"}, ["ztt"] = {"Zapotecish Tejalapan"}, ["ztu"] = {"Zapotecish Güilá"}, ["ztx"] = {"Zapotecish Zaachila"}, ["zty"] = {"Zapotecish Yatee"}, ["zuh"] = {"Tokano"}, ["zum"] = {"Kumzarish"}, ["zun"] = {"Zuni"}, ["zuy"] = {"Zumaya"}, ["zwa"] = {"Zay"}, ["zxx"] = {"Gyn stoo çhengoaylleeagh", "Neuchooie"}, ["zyb"] = {"Zhuang Yongbei"}, ["zyg"] = {"Zhuang Yang"}, ["zyj"] = {"Zhuang Youjiang"}, ["zyn"] = {"Zhuang Yongnan"}, ["zyp"] = {"Chinish Zyphe"}, ["zza"] = {"Zaza", "Dimili", "Dimli (mooar-hengey)", "Kirdki", "Kirmanjki (mooar-hengey)", "Zazakish"}, ["zzj"] = {"Zhuang Zuojiang"} } local deprecated = { ["in"] = {"Indoneeshish"}, ["iw"] = {"Ewnish"}, ["ji"] = {"Ewdish"}, ["jw"] = {"Javish", "Basa Jawa"}, ["mo"] = {"Moldaavish", "Moldovish"}, ["aam"] = {"Aramanik"}, ["adp"] = {"Adap"}, ["agp"] = {"Paranan"}, ["ais"] = {"Nataoran Amis"}, ["ajp"] = {"Arabish Levaantagh Yiass"}, ["ajt"] = {"Arabish Hooneeshagh Ewagh"}, ["aoh"] = {"Arma"}, ["asd"] = {"Asas"}, ["aue"] = {"ǂKxʼauǁʼein"}, ["ayx"] = {"Ayi (y Çheen)"}, ["ayy"] = {"Tayabas Ayta"}, ["baz"] = {"Tunen"}, ["bbz"] = {"Creeole Arabish Babalia"}, ["bgm"] = {"Baga Mboteni"}, ["bhk"] = {"Albay Bicolano"}, ["bic"] = {"Bikaru"}, ["bij"] = {"Vaghat-Ya-Bijim-Legeri"}, ["bjd"] = {"Bandjigali"}, ["bjq"] = {"Malagasish Betsimisaraka Yiass"}, ["bkb"] = {"Finallig"}, ["blg"] = {"Balau"}, ["bmy"] = {"Bemba (Pobblaght Gheynlagh y Chongo)"}, ["bpb"] = {"Barbacoas"}, ["btb"] = {"Beti (Cameroon)"}, ["btl"] = {"Bhatola"}, ["bxx"] = {"Borna (Pobblaght Gheynlagh y Chongo)"}, ["byy"] = {"Buya"}, ["cbe"] = {"Chipiajes"}, ["cbh"] = {"Cagua"}, ["cca"] = {"Cauca"}, ["ccq"] = {"Chaungtha"}, ["cdg"] = {"Chamari"}, ["cjr"] = {"Chorotega"}, ["cka"] = {"Khumi Awa Chin"}, ["cmk"] = {"Chimakum"}, ["coy"] = {"Coyaima"}, ["cqu"] = {"Quechua yn Çhillee"}, ["cug"] = {"Chungmboko", "Cung"}, ["cum"] = {"Cumeral"}, ["daf"] = {"Dan"}, ["dap"] = {"Nisi (yn Injey)"}, ["dgu"] = {"Degaru"}, ["dha"] = {"Dhanwar (yn Injey)"}, ["dit"] = {"Dirari"}, ["djl"] = {"Djiwarli"}, ["dkl"] = {"Kolum So Dogon"}, ["drh"] = {"Darkhat"}, ["drr"] = {"Dororo"}, ["drw"] = {"Darwazi"}, ["dud"] = {"Hun-Saare"}, ["duj"] = {"Dhuwal"}, ["dwl"] = {"Walo Kumbe Dogon"}, ["ekc"] = {"Karnish Hiar"}, ["elp"] = {"Elpaputih"}, ["emo"] = {"Emok"}, ["gav"] = {"Gabutamon"}, ["gbc"] = {"Garawa"}, ["gfx"] = {"Mangetti Dune ǃXung"}, ["ggn"] = {"Gurung Hiar"}, ["ggo"] = {"Gondi Yiass"}, ["ggr"] = {"Aghu Tharnggalu"}, ["gio"] = {"Gelao"}, ["gji"] = {"Geji"}, ["gli"] = {"Guliguli"}, ["gti"] = {"Gbati-ri"}, ["guv"] = {"Gey"}, ["hrr"] = {"Horuru"}, ["iap"] = {"Iapama"}, ["ibi"] = {"Ibilo"}, ["ill"] = {"Iranun"}, ["ilw"] = {"Talur"}, ["ime"] = {"Imeraguen"}, ["izi"] = {"Izi-Ezaa-Ikwo-Mgbo"}, ["jar"] = {"Jarawa (y Naigeer)"}, ["jeg"] = {"Jeng"}, ["kbf"] = {"Kakauhua"}, ["kdv"] = {"Kado"}, ["kgc"] = {"Kasseng"}, ["kgd"] = {"Kataang"}, ["kgh"] = {"Tanudan Kalinga Heose"}, ["kgm"] = {"Karipúna"}, ["kjf"] = {"Khalaj [Ind-Eeraanagh]"}, ["koj"] = {"Sara Dunjo"}, ["kox"] = {"Coxima"}, ["kpp"] = {"Karenish Paku"}, ["krm"] = {"Krim"}, ["ksa"] = {"Shuwa-Zamani"}, ["ktr"] = {"Kota Marudu Tinagas"}, ["kvs"] = {"Kunggara"}, ["kwq"] = {"Kwak"}, ["kxe"] = {"Kakihum"}, ["kxl"] = {"Kurux Nepaalagh"}, ["kxu"] = {"Kui (yn Injey)"}, ["kzh"] = {"Kenuzi-Dongola"}, ["kzj"] = {"Coastal Kadazan"}, ["kzt"] = {"Tambunan Dusun"}, ["lak"] = {"Laka (y Naigeer)"}, ["lba"] = {"Lui"}, ["leg"] = {"Lengua"}, ["lii"] = {"Lingkhim"}, ["llo"] = {"Khlor"}, ["lmm"] = {"Lamam"}, ["lmz"] = {"Lumbee"}, ["lno"] = {"Lango (y Toodaan Yiass)"}, ["lsg"] = {"Çhengey Chowree Lyons"}, ["meg"] = {"Mea"}, ["mgx"] = {"Omati"}, ["mhh"] = {"Maskoy Vrisht"}, ["mja"] = {"Mahei"}, ["mld"] = {"Malakhel"}, ["mnt"] = {"Maykulan"}, ["mof"] = {"Mohegan-Montauk-Narragansett"}, ["mst"] = {"Cataelano Mandaya"}, ["mvm"] = {"Muya"}, ["mwd"] = {"Mudbura"}, ["mwj"] = {"Maligo"}, ["mwx"] = {"Mediak"}, ["mwy"] = {"Mosiro"}, ["myd"] = {"Maramba"}, ["myi"] = {"Mina (yn Injey)"}, ["myq"] = {"Maninkish Cheylley"}, ["myt"] = {"Sangab Mandaya"}, ["nad"] = {"Nijadali"}, ["nbf"] = {"Naxi"}, ["nbx"] = {"Ngura"}, ["ncp"] = {"Ndaktup"}, ["ngo"] = {"Ngoni"}, ["nln"] = {"Nahuatl Durango"}, ["nlr"] = {"Ngarla"}, ["nns"] = {"Ningye"}, ["nnx"] = {"Ngong"}, ["nom"] = {"Nocamán"}, ["noo"] = {"Nootka"}, ["nts"] = {"Natagaimas"}, ["nxu"] = {"Narau"}, ["ome"] = {"Omejes"}, ["oun"] = {"ǃOǃung"}, ["pat"] = {"Papitalai"}, ["pbz"] = {"Palu"}, ["pcr"] = {"Panang"}, ["pgy"] = {"Pongyong"}, ["pii"] = {"Pini"}, ["plj"] = {"Polci"}, ["plp"] = {"Palpa"}, ["pmc"] = {"Palumata"}, ["pmk"] = {"Pamlico"}, ["pmu"] = {"Panjabish Mirpur"}, ["pod"] = {"Ponares"}, ["ppa"] = {"Pao"}, ["ppr"] = {"Piru"}, ["prb"] = {"Lua'"}, ["prp"] = {"Parsi"}, ["pry"] = {"Pray 3"}, ["puk"] = {"Pu Ko"}, ["puz"] = {"Purum Naga"}, ["rie"] = {"Rien"}, ["rmr"] = {"Caló"}, ["rna"] = {"Runa"}, ["rsi"] = {"Çhengey Chowree Rennellagh"}, ["sap"] = {"Sanapaná"}, ["sca"] = {"Sansu"}, ["sdm"] = {"Semandang"}, ["sgl"] = {"Sanglechi-Ishkashimi"}, ["sgo"] = {"Songa"}, ["skk"] = {"Sok"}, ["slq"] = {"Salchuq"}, ["smd"] = {"Sama"}, ["snb"] = {"Sebuyau"}, ["snh"] = {"Shinabo"}, ["sul"] = {"Surigaonon"}, ["sum"] = {"Sumo-Mayangna"}, ["svr"] = {"Savara"}, ["szd"] = {"Seru"}, ["tbb"] = {"Tapeba"}, ["tdu"] = {"Tempasuk Dusun"}, ["tgg"] = {"Tangga"}, ["thc"] = {"Tai Hang Tong"}, ["thw"] = {"Thudam"}, ["thx"] = {"The"}, ["tid"] = {"Tidong"}, ["tie"] = {"Tingal"}, ["tkk"] = {"Takpa"}, ["tlw"] = {"Wemale Yiass"}, ["tmk"] = {"Tamang Heear Hwoaie"}, ["tmp"] = {"Tai Mène"}, ["tne"] = {"Tinoc Kallahan"}, ["tnf"] = {"Tangshewi"}, ["toe"] = {"Tomedes"}, ["tpw"] = {"Tupí"}, ["tsf"] = {"Tamang Heear Yiass"}, ["unp"] = {"Worora"}, ["uok"] = {"Uokha"}, ["uun"] = {"Kulon-Pazeh"}, ["vki"] = {"Ija-Zuba"}, ["wgw"] = {"Wagawaga"}, ["wit"] = {"Wintu"}, ["wiw"] = {"Wirangu"}, ["wra"] = {"Warapu"}, ["wrd"] = {"Warduji"}, ["wya"] = {"Wyandot"}, ["xba"] = {"Kamba (y Vrasseel)"}, ["xbx"] = {"Kabixí"}, ["xia"] = {"Xiandao"}, ["xip"] = {"Xipináwa"}, ["xkh"] = {"Karahawyana"}, ["xrq"] = {"Karranga"}, ["xss"] = {"Assan"}, ["xtz"] = {"Tasmaanish"}, ["ybd"] = {"Yangbye"}, ["yds"] = {"Çhengey Chowree Ewdagh"}, ["yen"] = {"Yendang"}, ["yiy"] = {"Yir Yoront"}, ["yma"] = {"Yamphe"}, ["ymt"] = {"Mator-Taygi-Karagas"}, ["ynh"] = {"Yangho"}, ["yos"] = {"Yos"}, ["yri"] = {"Yarí"}, ["yuu"] = {"Yugh"}, ["zir"] = {"Ziriya"}, ["zkb"] = {"Koibal"}, ["zua"] = {"Zeem"} } return { active = active, deprecated = deprecated, } 0fgrm5chhz7eqvcsqib0bmzht4vsntf Mrunal Thakur 0 35607 394593 363034 2026-10-17T01:47:34Z MacTire02 219 ++ 394593 wikitext text/x-wiki {{WD Kishtey Fys Dooinney | jalloo = Mrunal Thakur in Andheri 1 (cropped).jpg | fo-heidyl = Thakur ayns 2024 | date_ruggyr = {{date_ruggyr|df=yes|1992|08|01}} | boayl_ruggyr = [[Dhule]], [[Maharashtra]], yn Injey | yrjid = {{cvt|1.65|m|ft}} | trimmid = {{cvt|55|kg|lb}} | towshan = 34C-28-38 }} She ben-aghteyr Injinagh ee '''Mrunal Thakur''' (ruggit er 1 Luanistyn 1992). Er y chooid smoo, t'ee cloie ayns filmyn [[Hindish]] as [[Teloogooish]].<ref>{{Cite news |title=When Mrunal Thakur was replaced from lead to second lead in a TV show, interesting facts about the actress |publisher=India TV |access-date=16 Luanistyn 2024 |url=https://www.indiatvnews.com/entertainment/celebrities/when-mrunal-thakur-was-replaced-from-lead-to-second-lead-in-a-tv-show-interesting-facts-about-birthday-girl-2024-08-01-944666 |date=1 Luanistyn 2024}}</ref> Ghow ee toshiaght rish e coorse cloie 'sy çhellveeish tra chloie ee ayns ny sheabin-dramaghyn ''[[Mujhse Kuchh Kehti...Yeh Khamoshiyaan]]'' (2012) as ''[[Kumkum Bhagya]]'' (2014–2016), chossyn j'ee [[Aundyr ITA da'n Ven-aghteyr Share ayns Paart Co-hassooagh|Aundyr ITA]]. Ren ee e chied fillym 'sy [[Scannaneaght y Hindish|Hindish]] lesh y fillym ''[[Love Sonia]]'' (2018) as chloie ee y ven toshee ayns ny filmyn rahoil ''[[Super 30 (fillym)|Super 30]]'' as ''[[Batla House]]'' (y daa jeu ayns 2019). Lurg tuittym coorse beg eck, hooar Thakur ny smoo ennoilid lesh ny dramaghyn romansagh [[Scannaneaght y Teloogooish|Teloogooish]] ''[[Sita Ramam]]'' (2022) as ''[[Hi Nanna]]'' (2023), raad chossyn ee [[Aundyr Filmfare da'n Ven-aghteyr Share – Teloogooish]] da'n fillym jerrinagh shen.<ref>{{Cite news |last=Rao |first=Justin |title=Why internet can't stop talking about Mrunal Thakur from Hi Nanna: Decoding Telugu success of the actor who isn't settling for flowerpot roles in South films |work=The Indian Express |access-date=11 Jerrey Geuree 2024 |url=https://indianexpress.com/article/entertainment/bollywood/why-internet-cant-stop-talking-about-mrunal-thakur-from-hi-nana-decoding-telugu-success-of-the-actor-who-isnt-settling-for-flowerpot-roles-in-south-films-9102903/ |date=11 Jerrey Geuree 2024}}</ref> ==Imraaghyn== {{Reflist}} ==Kianglaghyn magh== {{commonscat}} * {{IMDb name}} * {{Bollywood Hungama person|mrunal-thakur}} *{{Twitter|mrunal0801}} *{{Instagram}} {{Aundyr Chremeyderyn SIIMA da'n Ven-aghteyr Share – Teloogooish}} {{gurneil eaghtyrys}} {{DEFAULTSORT:Thakur, Mrunal}} [[Ronney:Ruggyryn 'sy vlein 1992]] [[Ronney:Feallee vio]] [[Ronney:Aghteyryn bwoirrin Injinagh y 21d eash]] [[Ronney:Aghteyryn çhellveeish bwoirrin Injinagh]] [[Ronney:Aghteyryn fillym bwoirrin Injinagh]] [[Ronney:Marathee]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Hindish]] [[Ronney:Aghteyryn bwoirrin ayns çhellveeish y Hindish]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Varathish]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Teloogooish]] [[Ronney:Feallee ass Dhule]] [[Ronney:Aghteyryn ass Maharashtra]] rst4ihv21tswaw2e3v84zdrvi8em651 Module:ISO 639 name/ISO 639-2 828 47025 394548 394407 2026-10-16T14:34:12Z MacTire02 219 wolofish 394548 Scribunto text/plain -- File-Date: 2013-01-11 return { -- 639-2T ["aar"] = {"Afar"}, ["abk"] = {"Abkhazian"}, ["ace"] = {"Achinese"}, ["ach"] = {"Acoli"}, ["ada"] = {"Adangme"}, ["ady"] = {"Adyghe", "Adygei"}, ["afa"] = {"Afro-Asiatic languages"}, ["afh"] = {"Afrihili"}, ["afr"] = {"Affrickaanish"}, ["ain"] = {"Ainu"}, ["aka"] = {"Akan"}, ["akk"] = {"Akkadian"}, ["ale"] = {"Aleut"}, ["alg"] = {"Algonquian languages"}, ["alt"] = {"Southern Altai"}, ["amh"] = {"Amharic"}, ["ang"] = {"English, Old (ca.450-1100)"}, ["anp"] = {"Angika"}, ["apa"] = {"Apache languages"}, ["ara"] = {"Arabic"}, ["arc"] = {"Official Aramaic (700-300 BCE)", "Imperial Aramaic (700-300 BCE)"}, ["arg"] = {"Aragonese"}, ["arn"] = {"Mapudungun", "Mapuche"}, ["arp"] = {"Arapaho"}, ["art"] = {"Artificial languages"}, ["arw"] = {"Arawak"}, ["asm"] = {"Assamese"}, ["ast"] = {"Asturian", "Bable", "Leonese", "Asturleonese"}, ["ath"] = {"Athapascan languages"}, ["aus"] = {"Australian languages"}, ["ava"] = {"Avaric"}, ["ave"] = {"Avestan"}, ["awa"] = {"Awadhi"}, ["aym"] = {"Aymara"}, ["aze"] = {"Azerbaijani"}, ["bad"] = {"Banda languages"}, ["bai"] = {"Bamileke languages"}, ["bak"] = {"Bashkir"}, ["bal"] = {"Baluchi"}, ["bam"] = {"Bambara"}, ["ban"] = {"Balinese"}, ["bas"] = {"Basa"}, ["bat"] = {"Baltic languages"}, ["bej"] = {"Beja", "Bedawiyet"}, ["bel"] = {"Belarusian"}, ["bem"] = {"Bemba"}, ["ben"] = {"Bengali"}, ["ber"] = {"Berber languages"}, ["bho"] = {"Bhojpuri"}, ["bih"] = {"Bihari languages"}, ["bik"] = {"Bikol"}, ["bin"] = {"Bini", "Edo"}, ["bis"] = {"Bislama"}, ["bla"] = {"Siksika"}, ["bnt"] = {"Bantu languages"}, ["bod"] = {"Tibetan"}, ["bos"] = {"Bosnian"}, ["bra"] = {"Braj"}, ["bre"] = {"Breton"}, ["btk"] = {"Batak languages"}, ["bua"] = {"Buriat"}, ["bug"] = {"Buginese"}, ["bul"] = {"Bulgarian"}, ["byn"] = {"Blin", "Bilin"}, ["cad"] = {"Caddo"}, ["cai"] = {"Central American Indian languages"}, ["car"] = {"Galibi Carib"}, ["cat"] = {"Catalan", "Valencian"}, ["cau"] = {"Caucasian languages"}, ["ceb"] = {"Cebuano"}, ["cel"] = {"Celtic languages"}, ["ces"] = {"Czech"}, ["cha"] = {"Chamorro"}, ["chb"] = {"Chibcha"}, ["che"] = {"Chechen"}, ["chg"] = {"Chagatai"}, ["chk"] = {"Chuukese"}, ["chm"] = {"Mari"}, ["chn"] = {"Chinook jargon"}, ["cho"] = {"Choctaw"}, ["chp"] = {"Chipewyan", "Dene Suline"}, ["chr"] = {"Cherokee"}, ["chu"] = {"Church Slavic", "Old Slavonic", "Church Slavonic", "Old Bulgarian", "Old Church Slavonic"}, ["chv"] = {"Chuvash"}, ["chy"] = {"Cheyenne"}, ["cmc"] = {"Chamic languages"}, ["cnr"] = {"Montenegrin"}, ["cop"] = {"Coptic"}, ["cor"] = {"Cornish"}, ["cos"] = {"Corsican"}, ["cpe"] = {"Creoles and pidgins, English based"}, ["cpf"] = {"Creoles and pidgins, French-based"}, ["cpp"] = {"Creoles and pidgins, Portuguese-based"}, ["cre"] = {"Cree"}, ["crh"] = {"Crimean Tatar", "Crimean Turkish"}, ["crp"] = {"Creoles and pidgins"}, ["csb"] = {"Kashubian"}, ["cus"] = {"Cushitic languages"}, ["cym"] = {"Welsh"}, ["dak"] = {"Dakota"}, ["dan"] = {"Danish"}, ["dar"] = {"Dargwa"}, ["day"] = {"Land Dayak languages"}, ["del"] = {"Delaware"}, ["den"] = {"Slave (Athapascan)"}, ["deu"] = {"German"}, ["dgr"] = {"Dogrib"}, ["din"] = {"Dinka"}, ["div"] = {"Divehi", "Dhivehi", "Maldivian"}, ["doi"] = {"Dogri"}, ["dra"] = {"Dravidian languages"}, ["dsb"] = {"Lower Sorbian"}, ["dua"] = {"Duala"}, ["dum"] = {"Dutch, Middle (ca.1050-1350)"}, ["dyu"] = {"Dyula"}, ["dzo"] = {"Dzongkha"}, ["efi"] = {"Efik"}, ["egy"] = {"Egyptian (Ancient)"}, ["eka"] = {"Ekajuk"}, ["ell"] = {"Greek, Modern (1453-)"}, ["elx"] = {"Elamite"}, ["eng"] = {"English"}, ["enm"] = {"English, Middle (1100-1500)"}, ["epo"] = {"Esperanto"}, ["est"] = {"Estonian"}, ["eus"] = {"Basque"}, ["ewe"] = {"Ewe"}, ["ewo"] = {"Ewondo"}, ["fan"] = {"Fang"}, ["fao"] = {"Faroese"}, ["fas"] = {"Persian"}, ["fat"] = {"Fanti"}, ["fij"] = {"Fijian"}, ["fil"] = {"Filipino", "Pilipino"}, ["fin"] = {"Finnish"}, ["fiu"] = {"Finno-Ugrian languages"}, ["fon"] = {"Fon"}, ["fra"] = {"French"}, ["frm"] = {"French, Middle (ca.1400-1600)"}, ["fro"] = {"French, Old (842-ca.1400)"}, ["frr"] = {"Northern Frisian"}, ["frs"] = {"Eastern Frisian"}, ["fry"] = {"Western Frisian"}, ["ful"] = {"Fulah"}, ["fur"] = {"Friulian"}, ["gaa"] = {"Ga"}, ["gay"] = {"Gayo"}, ["gba"] = {"Gbaya"}, ["gem"] = {"Germanic languages"}, ["gez"] = {"Geez"}, ["gil"] = {"Gilbertese"}, ["gla"] = {"Gaelic", "Scottish Gaelic"}, ["gle"] = {"Irish"}, ["glg"] = {"Galician"}, ["glv"] = {"Manx"}, ["gmh"] = {"German, Middle High (ca.1050-1500)"}, ["goh"] = {"German, Old High (ca.750-1050)"}, ["gon"] = {"Gondi"}, ["gor"] = {"Gorontalo"}, ["got"] = {"Gothic"}, ["grb"] = {"Grebo"}, ["grc"] = {"Greek, Ancient (to 1453)"}, ["grn"] = {"Guarani"}, ["gsw"] = {"Swiss German", "Alemannic", "Alsatian"}, ["guj"] = {"Gujarati"}, ["gwi"] = {"Gwich'in"}, ["hai"] = {"Haida"}, ["hat"] = {"Haitian", "Haitian Creole"}, ["hau"] = {"Hausa"}, ["haw"] = {"Hawaiian"}, ["heb"] = {"Hebrew"}, ["her"] = {"Herero"}, ["hil"] = {"Hiligaynon"}, ["him"] = {"Himachali languages", "Western Pahari languages"}, ["hin"] = {"Hindi"}, ["hit"] = {"Hittite"}, ["hmn"] = {"Hmong", "Mong"}, ["hmo"] = {"Hiri Motu"}, ["hrv"] = {"Croatian"}, ["hsb"] = {"Upper Sorbian"}, ["hun"] = {"Hungarian"}, ["hup"] = {"Hupa"}, ["hye"] = {"Armenian"}, ["iba"] = {"Iban"}, ["ibo"] = {"Igbo"}, ["ido"] = {"Ido"}, ["iii"] = {"Sichuan Yi", "Nuosu"}, ["ijo"] = {"Ijo languages"}, ["iku"] = {"Inuktitut"}, ["ile"] = {"Interlingue", "Occidental"}, ["ilo"] = {"Iloko"}, ["ina"] = {"Interlingua (International Auxiliary Language Association)"}, ["inc"] = {"Indic languages"}, ["ind"] = {"Indonesian"}, ["ine"] = {"Indo-European languages"}, ["inh"] = {"Ingush"}, ["ipk"] = {"Inupiaq"}, ["ira"] = {"Iranian languages"}, ["iro"] = {"Iroquoian languages"}, ["isl"] = {"Icelandic"}, ["ita"] = {"Italian"}, ["jav"] = {"Javanese"}, ["jbo"] = {"Lojban"}, ["jpn"] = {"Japanese"}, ["jpr"] = {"Judeo-Persian"}, ["jrb"] = {"Judeo-Arabic"}, ["kaa"] = {"Kara-Kalpak"}, ["kab"] = {"Kabyle"}, ["kac"] = {"Kachin", "Jingpho"}, ["kal"] = {"Kalaallisut", "Greenlandic"}, ["kam"] = {"Kamba"}, ["kan"] = {"Kannada"}, ["kar"] = {"Karen languages"}, ["kas"] = {"Kashmiri"}, ["kat"] = {"Georgian"}, ["kau"] = {"Kanuri"}, ["kaw"] = {"Kawi"}, ["kaz"] = {"Kazakh"}, ["kbd"] = {"Kabardian"}, ["kha"] = {"Khasi"}, ["khi"] = {"Khoisan languages"}, ["khm"] = {"Central Khmer"}, ["kho"] = {"Khotanese", "Sakan"}, ["kik"] = {"Kikuyu", "Gikuyu"}, ["kin"] = {"Kinyarwanda"}, ["kir"] = {"Kirghiz", "Kyrgyz"}, ["kmb"] = {"Kimbundu"}, ["kok"] = {"Konkani"}, ["kom"] = {"Komish"}, ["kon"] = {"Kongoish"}, ["kor"] = {"Koreeish"}, ["kos"] = {"Kosraean"}, ["kpe"] = {"Kpelle"}, ["krc"] = {"Karachay-Balkar"}, ["krl"] = {"Karelish"}, ["kro"] = {"Kru languages"}, ["kru"] = {"Kurukh"}, ["kua"] = {"Kuanyama", "Kwanyama"}, ["kum"] = {"Kumykish"}, ["kur"] = {"Kurdish"}, ["kut"] = {"Kutenai"}, ["lad"] = {"Ladino"}, ["lah"] = {"Lahnda"}, ["lam"] = {"Lamba"}, ["lao"] = {"Lao"}, ["lat"] = {"Latin"}, ["lav"] = {"Latvian"}, ["lez"] = {"Lezghian"}, ["lim"] = {"Limburgan", "Limburger", "Limburgish"}, ["lin"] = {"Lingala"}, ["lit"] = {"Lithuanian"}, ["lol"] = {"Mongo"}, ["loz"] = {"Lozi"}, ["ltz"] = {"Luxembourgish", "Letzeburgesch"}, ["lua"] = {"Luba-Lulua"}, ["lub"] = {"Luba-Katanga"}, ["lug"] = {"Ganda"}, ["lui"] = {"Luiseno"}, ["lun"] = {"Lunda"}, ["luo"] = {"Luo (Kenya and Tanzania)"}, ["lus"] = {"Lushai"}, ["mad"] = {"Madurese"}, ["mag"] = {"Magahi"}, ["mah"] = {"Marshallese"}, ["mai"] = {"Maithili"}, ["mak"] = {"Makasar"}, ["mal"] = {"Malayalam"}, ["man"] = {"Mandingo"}, ["map"] = {"Austronesian languages"}, ["mar"] = {"Marathi"}, ["mas"] = {"Masai"}, ["mdf"] = {"Moksha"}, ["mdr"] = {"Mandar"}, ["men"] = {"Mende"}, ["mga"] = {"Irish, Middle (900-1200)"}, ["mic"] = {"Mi'kmaq", "Micmac"}, ["min"] = {"Minangkabau"}, ["mis"] = {"Uncoded languages"}, ["mkd"] = {"Macedonian"}, ["mkh"] = {"Mon-Khmer languages"}, ["mlg"] = {"Malagasy"}, ["mlt"] = {"Maltese"}, ["mnc"] = {"Manchu"}, ["mni"] = {"Manipuri"}, ["mno"] = {"Manobo languages"}, ["moh"] = {"Mohawk"}, ["mon"] = {"Mongolian"}, ["mos"] = {"Mossi"}, ["mri"] = {"Maori"}, ["msa"] = {"Malay"}, ["mul"] = {"Multiple languages"}, ["mun"] = {"Munda languages"}, ["mus"] = {"Creek"}, ["mwl"] = {"Mirandese"}, ["mwr"] = {"Marwari"}, ["mya"] = {"Burmese"}, ["myn"] = {"Mayan languages"}, ["myv"] = {"Erzya"}, ["nah"] = {"Nahuatl languages"}, ["nai"] = {"North American Indian languages"}, ["nap"] = {"Neapolitan"}, ["nau"] = {"Nauru"}, ["nav"] = {"Navajo", "Navaho"}, ["nbl"] = {"Ndebele, South", "South Ndebele"}, ["nde"] = {"Ndebele, North", "North Ndebele"}, ["ndo"] = {"Ndonga"}, ["nds"] = {"Low German", "Low Saxon", "German, Low", "Saxon, Low"}, ["nep"] = {"Nepali"}, ["new"] = {"Nepal Bhasa", "Newari"}, ["nia"] = {"Nias"}, ["nic"] = {"Niger-Kordofanian languages"}, ["niu"] = {"Niuean"}, ["nld"] = {"Dutch", "Flemish"}, ["nno"] = {"Norwegian Nynorsk", "Nynorsk, Norwegian"}, ["nob"] = {"Bokmål, Norwegian", "Norwegian Bokmål"}, ["nog"] = {"Nogai"}, ["non"] = {"Norse, Old"}, ["nor"] = {"Norwegian"}, ["nqo"] = {"N'Ko"}, ["nso"] = {"Pedi", "Sepedi", "Northern Sotho"}, ["nub"] = {"Nubian languages"}, ["nwc"] = {"Classical Newari", "Old Newari", "Classical Nepal Bhasa"}, ["nya"] = {"Chewish", "Chichewa", "Chewa", "Nyanja"}, ["nym"] = {"Nyamwezi"}, ["nyn"] = {"Nyankole"}, ["nyo"] = {"Nyoro"}, ["nzi"] = {"Nzima"}, ["oci"] = {"Occitan (post 1500)"}, ["oji"] = {"Ojibwa"}, ["ori"] = {"Oriya"}, ["orm"] = {"Oromo"}, ["osa"] = {"Osage"}, ["oss"] = {"Ossetian", "Ossetic"}, ["ota"] = {"Turkish, Ottoman (1500-1928)"}, ["oto"] = {"Otomian languages"}, ["paa"] = {"Papuan languages"}, ["pag"] = {"Pangasinan"}, ["pal"] = {"Pahlavi"}, ["pam"] = {"Pampanga", "Kapampangan"}, ["pan"] = {"Panjabi", "Punjabi"}, ["pap"] = {"Papiamento"}, ["pau"] = {"Palauan"}, ["peo"] = {"Persian, Old (ca.600-400 B.C.)"}, ["phi"] = {"Philippine languages"}, ["phn"] = {"Phoenician"}, ["pli"] = {"Pali"}, ["pol"] = {"Polish"}, ["pon"] = {"Pohnpeian"}, ["por"] = {"Portuguese"}, ["pra"] = {"Prakrit languages"}, ["pro"] = {"Provençal, Old (to 1500)", "Occitan, Old (to 1500)"}, ["pus"] = {"Pushto", "Pashto"}, ["que"] = {"Quechua"}, ["raj"] = {"Rajasthani"}, ["rap"] = {"Rapanui"}, ["rar"] = {"Rarotongan", "Cook Islands Maori"}, ["roa"] = {"Romance languages"}, ["roh"] = {"Romansh"}, ["rom"] = {"Romany"}, ["ron"] = {"Romanian", "Moldavian", "Moldovan"}, ["run"] = {"Rundi"}, ["rup"] = {"Aromanian", "Arumanian", "Macedo-Romanian"}, ["rus"] = {"Russian"}, ["sad"] = {"Sandawe"}, ["sag"] = {"Sango"}, ["sah"] = {"Yakut"}, ["sai"] = {"South American Indian languages"}, ["sal"] = {"Salishan languages"}, ["sam"] = {"Samaritan Aramaic"}, ["san"] = {"Sanskrit"}, ["sas"] = {"Sasak"}, ["sat"] = {"Santali"}, ["scn"] = {"Sicilian"}, ["sco"] = {"Baarle Albinagh"}, ["sel"] = {"Selkup"}, ["sem"] = {"Semitic languages"}, ["sga"] = {"Irish, Old (to 900)"}, ["sgn"] = {"Sign Languages"}, ["shn"] = {"Shan"}, ["sid"] = {"Sidamo"}, ["sin"] = {"Sinhala", "Sinhalese"}, ["sio"] = {"Siouan languages"}, ["sit"] = {"Sino-Tibetan languages"}, ["sla"] = {"Slavic languages"}, ["slk"] = {"Slovak"}, ["slv"] = {"Slovenian"}, ["sma"] = {"Southern Sami"}, ["sme"] = {"Northern Sami"}, ["smi"] = {"Sami languages"}, ["smj"] = {"Lule Sami"}, ["smn"] = {"Inari Sami"}, ["smo"] = {"Samoan"}, ["sms"] = {"Saamish Skolt"}, ["sna"] = {"Shonish"}, ["snd"] = {"Sindhi"}, ["snk"] = {"Soninke"}, ["sog"] = {"Sogdian"}, ["som"] = {"Somali"}, ["son"] = {"Songhai languages"}, ["sot"] = {"Sotho, Southern"}, ["spa"] = {"Spanish", "Castilian"}, ["sqi"] = {"Albanian"}, ["srd"] = {"Sardinian"}, ["srn"] = {"Sranan Tongo"}, ["srp"] = {"Serbian"}, ["srr"] = {"Serer"}, ["ssa"] = {"Nilo-Saharan languages"}, ["ssw"] = {"Swati"}, ["suk"] = {"Sukuma"}, ["sun"] = {"Sundanese"}, ["sus"] = {"Susu"}, ["sux"] = {"Sumerian"}, ["swa"] = {"Swahili"}, ["swe"] = {"Swedish"}, ["syc"] = {"Classical Syriac"}, ["syr"] = {"Syriac"}, ["tah"] = {"Tahitian"}, ["tai"] = {"Tai languages"}, ["tam"] = {"Tamil"}, ["tat"] = {"Tatar"}, ["tel"] = {"Telugu"}, ["tem"] = {"Timne"}, ["ter"] = {"Tereno"}, ["tet"] = {"Tetum"}, ["tgk"] = {"Tajik"}, ["tgl"] = {"Tagalog"}, ["tha"] = {"Thai"}, ["tig"] = {"Tigre"}, ["tir"] = {"Tigrinya"}, ["tiv"] = {"Tiv"}, ["tkl"] = {"Tokelau"}, ["tlh"] = {"Klingon", "tlhIngan-Hol"}, ["tli"] = {"Tlingit"}, ["tmh"] = {"Tamashek"}, ["tog"] = {"Tonga (Nyasa)"}, ["ton"] = {"Tonga (Tonga Islands)"}, ["tpi"] = {"Tok Pisin"}, ["tsi"] = {"Tsimshian"}, ["tsn"] = {"Tswana"}, ["tso"] = {"Tsonga"}, ["tuk"] = {"Turkmen"}, ["tum"] = {"Tumbuka"}, ["tup"] = {"Tupi languages"}, ["tur"] = {"Turkish"}, ["tut"] = {"Altaic languages"}, ["tvl"] = {"Tuvalu"}, ["twi"] = {"Twi"}, ["tyv"] = {"Tuvinian"}, ["udm"] = {"Udmurt"}, ["uga"] = {"Ugaritic"}, ["uig"] = {"Uighur", "Uyghur"}, ["ukr"] = {"Ukrainian"}, ["umb"] = {"Umbundu"}, ["und"] = {"Undetermined"}, ["urd"] = {"Urdu"}, ["uzb"] = {"Uzbek"}, ["vai"] = {"Vai"}, ["ven"] = {"Venda"}, ["vie"] = {"Vietnamese"}, ["vol"] = {"Volapük"}, ["vot"] = {"Votic"}, ["wak"] = {"Wakashan languages"}, ["wal"] = {"Wolaitta", "Wolaytta"}, ["war"] = {"Waray"}, ["was"] = {"Washo"}, ["wen"] = {"Sorbian languages"}, ["wln"] = {"Walloonish"}, ["wol"] = {"Wolofish"}, ["xal"] = {"Kalmyk", "Oirat"}, ["xho"] = {"Xhosa"}, ["yao"] = {"Yao"}, ["yap"] = {"Yapese"}, ["yid"] = {"Yiddish"}, ["yor"] = {"Yoruba"}, ["ypk"] = {"Yupik languages"}, ["zap"] = {"Zapotec"}, ["zbl"] = {"Blissymbols", "Blissymbolics", "Bliss"}, ["zen"] = {"Zenaga"}, ["zgh"] = {"Standard Moroccan Tamazight"}, ["zha"] = {"Zhuang", "Chuang"}, ["zho"] = {"Chinese"}, ["znd"] = {"Zande languages"}, ["zul"] = {"Zulu"}, ["zun"] = {"Zuni"}, ["zxx"] = {"No linguistic content", "Not applicable"}, ["zza"] = {"Zaza", "Dimili", "Dimli", "Kirdki", "Kirmanjki", "Zazaki"} } nkwlblvzpaoi4b1u4qiqnykgmpa60lz Module:Kishtey fys çheer 828 55827 394568 393291 2026-10-16T17:35:04Z MacTire02 219 -chaghteraghtyn 394568 Scribunto text/plain local p = {} -- Helper to safely grab template arguments local function getArgs(frame) local parent = frame:getParent() if parent then return parent.args end return frame.args end -- Strips a leading "the "/"The " from an English P1448 name (Wikidata often -- stores "the United States of America"). Only applied to English text -- -- a country whose name genuinely starts with "The" (e.g. The Bahamas, The -- Gambia) should use |ennym_foddey_cadjincliaghtagh= to override this. local function stripLeadingThe(text, langCode) if langCode == "en" and text:match("^[Tt]he%s+%S") then return text:gsub("^[Tt]he%s+", "", 1) end return text end -- Safely get manual parameters from priority list local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and value ~= "" then local trimmed = value:match("^%s*(.-)%s*$") if trimmed ~= "" then return trimmed end end end return nil end function p.main(frame) local args = getArgs(frame) local rows = {} -- The universal border rule separating your modules local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' -- Centralized module injection manager local function appendModule(content) if content and content ~= "" then if #rows > 0 then table.insert(rows, dividerLine) end table.insert(rows, content) end end -------------------------------------------------- -- MODULE 1: HEADER & OFFICIAL NAMES -------------------------------------------------- local title = args["ennym"] or mw.title.getCurrentTitle().text local subTitle = getManual(args, {"ennym_foddey_cadjincliaghtagh", "ennym_dooghyssagh"}) if not subTitle or subTitle == "" then local entity = mw.wikibase.getEntityObject() if entity then local successLang, langData = pcall(mw.loadData, "Module:Lang/data") if successLang and langData and langData.lang_name_table and langData.lang_name_table.lang then local statements = entity:getBestStatements("P1448") if statements and #statements > 0 then for _, statement in ipairs(statements) do if statement.mainsnak and statement.mainsnak.datavalue then local value = statement.mainsnak.datavalue.value if value and value.text then local langCode = value.language or "" local langName = langData.lang_name_table.lang[langCode] or langCode local nameText = stripLeadingThe(value.text, langCode) subTitle = nameText .. ' <small>([[' .. langName .. '|' .. langName .. ']])</small>' break end end end end end end end local headerHtml = '<tr class="adr"><th colspan="2" class="fn org country-name" style="line-height:1.2em; padding:0.25em 0.4em 0.33em; font-size:1.25em; text-align:center; font-weight:normal;"><span style="font-weight:bold;">' .. title .. '</span>' if subTitle and subTitle ~= "" then headerHtml = headerHtml .. '<div style="padding-top:0.25em; font-weight:normal;">' .. subTitle .. '</div>' end headerHtml = headerHtml .. '</th></tr>' table.insert(rows, headerHtml) -------------------------------------------------- -- MODULE 2: FLAGS & ARMS -------------------------------------------------- local successFlags, flagsMod = pcall(require, "Module:Kishtey fys çheer/bratteeyn") if successFlags and flagsMod and flagsMod.main then appendModule(flagsMod.main(frame, args)) end -------------------------------------------------- -- MODULE 3: SYMBOLS (MOTTO & ANTHEMS) -------------------------------------------------- local successSymbols, symbolsMod = pcall(require, "Module:Kishtey fys çheer/cowraghyn") if successSymbols and symbolsMod and symbolsMod.main then appendModule(symbolsMod.main(frame, args)) end -------------------------------------------------- -- MODULE 4: LOCATOR MAPS -------------------------------------------------- -- FIXED: Tries BOTH paths sequentially to guarantee zero-fail execution regardless of your physical page name setup -- try both page-name spellings, in case the module is ever moved local successMaps, mapsMod = pcall(require, "Module:Kishtey fys çheer/caslyssyn-çheerey") if not successMaps or not mapsMod then successMaps, mapsMod = pcall(require, "Module:Kishtey fys çheer/caslyssyn") end if successMaps and mapsMod and mapsMod.main then appendModule(mapsMod.main(frame, args)) end -------------------------------------------------- -- MODULE 5: CITIES & CAPITALS -------------------------------------------------- local successCities, citiesMod = pcall(require, "Module:Kishtey fys çheer/balley") if successCities and citiesMod and citiesMod.main then appendModule(citiesMod.main(frame, args)) end -------------------------------------------------- -- MODULE 6: LANGUAGES -------------------------------------------------- local successLanguages, languagesMod = pcall(require, "Module:Kishtey fys çheer/çhengaghyn") if successLanguages and languagesMod and languagesMod.main then appendModule(languagesMod.main(frame, args)) end -------------------------------------------------- -- MODULE 7: ETHNIC GROUPS -------------------------------------------------- local successEthnic, ethnicMod = pcall(require, "Module:Kishtey fys çheer/possanyn_kynneeagh") if successEthnic and ethnicMod and ethnicMod.main then appendModule(ethnicMod.main(frame, args)) end -------------------------------------------------- -- MODULE 8: RELIGION -------------------------------------------------- local successReligion, religionMod = pcall(require, "Module:Kishtey fys çheer/craueeaght") if successReligion and religionMod and religionMod.main then appendModule(religionMod.main(frame, args)) end -------------------------------------------------- -- MODULE 9: GOVERNMENT & LEADERS -------------------------------------------------- local successGov, govMod = pcall(require, "Module:Kishtey fys çheer/reiltys") if successGov and govMod and govMod.main then appendModule(govMod.main(frame, args)) end -------------------------------------------------- -- MODULE 10: AREA -------------------------------------------------- local successArea, areaMod = pcall(require, "Module:Kishtey fys çheer/eaghtyr") if successArea and areaMod and areaMod.main then appendModule(areaMod.main(frame, args)) end -------------------------------------------------- -- MODULE 11: POPULATION -------------------------------------------------- local successPop, popMod = pcall(require, "Module:Kishtey fys çheer/pobble") if successPop and popMod and popMod.main then appendModule(popMod.main(frame, args)) end -------------------------------------------------- -- MODULE 12: ECONOMIC STATISTICS -------------------------------------------------- local successTarmaynys, tarmaynysMod = pcall(require, "Module:Kishtey fys çheer/tarmaynys") if successTarmaynys and tarmaynysMod and tarmaynysMod.main then appendModule(tarmaynysMod.main(frame, args)) end -------------------------------------------------- -- MODULE 13: COUNTRY CODES & TECHNICAL INFORMATION -------------------------------------------------- local successCoadyn, coadynMod = pcall(require, "Module:Kishtey fys çheer/coadyn") if successCoadyn and coadynMod and coadynMod.main then appendModule(coadynMod.main(frame, args)) end if #rows <= 1 then return nil end return '<table class="infobox geography vcard" style="float:right; clear:right; margin:0.5em 0 1em 1em; width:24.15em; border:1px solid #a2a9b1; border-collapse:collapse; font-size:95%;">' .. table.concat(rows) .. '</table>' end return p p9pwr98xb2kfbdoczn3rxmr6yyqev03 Module:Enmyn çheerey 828 55828 394633 394473 2026-10-17T05:37:27Z MacTire02 219 +SADR/PGAT 394633 Scribunto text/plain local p = {} -- Enmyn çheerey as ny lhiegganyn gienneydagh oc. -- Cur lhimmaghyn ayns shoh my vel feme orroo. -- -- Ordered by Manx alphabetization, not English: sorted by headword, with -- the leading article (yn/y/ny, including the ny h- form) never counted, -- and -- for countries specifically -- a leading "Ellan y", "Ellanyn", or -- "ny h-Ellanyn" not counted either (though these DO count in other -- contexts, just not here). çh and ch are treated as identical for sorting -- purposes (e.g. "Yn Chanadey" and "Yn Çheck" interleave by the vowel that -- follows, not by the cedilla), per the mutated spelling as actually -- written -- initial mutation is not reversed to a radical form for -- sorting. -- -- Genitive singular article: "yn" before a vowel-initial noun, "y" before -- a consonant-initial one (confirmed against your corrections -- Danvarg, -- Cholombey, Ghuatemaley, and 22 further consonant-initial entries that -- had been left as "yn" by mistake, now all "y"). local country_names = { ["Yn Abcaash"] = "Yn Abcaash", ["Yn Albaan"] = "Yn Albaan", ["Andorra"] = "Andorra", ["Antigua as Barbuda"] = "Antigua as Barbuda", ["Ard-valley yn Phaab"] = "Ard-valley yn Phaab", ["Yn Argenteen"] = "Yn Argenteen", ["Yn Armean"] = "Yn Armean", ["Yn Asserbajaan"] = "Yn Asserbajaan", ["Yn Austeyr"] = "Yn Austeyr", ["Yn Austrail"] = "Yn Austrail", ["Ny Bahamaghyn"] = "Ny Bahamaghyn", ["Barbados"] = "Barbados", ["Ny Bermioodee"] = "Ny Bermioodee", ["Bosnia as Herzegovina"] = "Bosnia as Herzegovina", ["Bretyn"] = "Bretyn", ["Yn Chanadey"] = "Yn Chanadey", ["Yn Chassaghstaan"] = "Yn Chassaghstaan", ["Yn Çheck"] = "Yn Çheck", ["Yn Cheeprey"] = "Yn Cheeprey", ["Yn Cheeprey Hwoaie"] = "Yn Cheeprey Hwoaie", ["Yn Çheer Injil"] = "Yn Çheer Injil", ["Yn Çhillee"] = "Yn Çhillee", ["Yn Cholombey"] = "Yn Cholombey", ["Yn Choobey"] = "Yn Choobey", ["Yn Çhorshey"] = "Yn Çhorshey", ["Yn Chroit"] = "Yn Chroit", ["Yn Clovack"] = "Yn Clovack", ["Yn Clovean"] = "Yn Clovean", ["Pobblaght y Chongo"] = "Pobblaght y Chongo", ["Pobblaght Gheynlagh y Chongo"] = "Pobblaght Gheynlagh y Chongo", ["Yn Coose Berçhagh"] = "Yn Coose Berçhagh", ["Yn Danvarg"] = "Yn Danvarg", ["Dominica"] = "Dominica", ["Yn Eeslynn"] = "Yn Eeslynn", ["Yn Elveeish"] = "Yn Elveeish", ["Yn Estaan"] = "Yn Estaan", ["Finnlynn"] = "Finnlynn", ["Geeaaney"] = "Geeaaney", ["Yn Ghermaan"] = "Yn Ghermaan", ["Yn Ghreag"] = "Yn Ghreag", ["Yn Ghuatemaley"] = "Yn Ghuatemaley", ["Greenlynn"] = "Greenlynn", ["Grenada"] = "Grenada", ["Guinea Chryss ny Cruinney"] = "Guinea Chryss ny Cruinney", ["Ny Hondooraghyn"] = "Ny Hondooraghyn", ["Yn Iddaal"] = "Yn Iddaal", ["Yn Jamaicey"] = "Yn Jamaicey", ["Jersee"] = "Jersee", ["Kosovo"] = "Kosovo", ["Yn Latvey"] = "Yn Latvey", ["Liechtenstein"] = "Liechtenstein", ["Yn Litaan"] = "Yn Litaan", ["Lucsemburg"] = "Lucsemburg", ["Mannin"] = "Mannin", ["Meksico"] = "Meksico", ["Moldova"] = "Moldova", ["Monaco"] = "Monaco", ["Montenegro"] = "Montenegro", ["Nalbin"] = "Nalbin", ["Nerin"] = "Nerin", ["Yn Nickeraag"] = "Yn Nickeraag", ["Noo Kitts as Nevis"] = "Noo Kitts as Nevis", ["Noo Lucia"] = "Noo Lucia", ["Noo Winsen as ny Grenadeenyn"] = "Noo Winsen as ny Grenadeenyn", ["Norlynn"] = "Norlynn", ["Yn Ookraan"] = "Yn Ookraan", ["Yn Ooraguay"] = "Yn Ooraguay", ["Ossetia Yiass"] = "Ossetia Yiass", ["Yn Phanamaa"] = "Yn Phanamaa", ["Yn Pharaguay"] = "Yn Pharaguay", ["Yn Pheroo"] = "Yn Pheroo", ["Yn Phobblaght Ghominicagh"] = "Yn Phobblaght Ghominicagh", ["Yn Pholynn"] = "Yn Pholynn", ["Yn Phortiugal"] = "Yn Phortiugal", ["Yn Phroosh"] = "Yn Phroosh", ["Yn Rank"] = "Yn Rank", ["Yn Reeriaght Unnaneysit"] = "Yn Reeriaght Unnaneysit", ["Yn Romaan"] = "Yn Romaan", ["Yn Roosh"] = "Yn Roosh", ["Yn Salvador"] = "Yn Salvador", ["San Marino"] = "San Marino", ["Yn Serb"] = "Yn Serb", ["Sostyn"] = "Sostyn", ["Yn Spaainey"] = "Yn Spaainey", ["Ny Steatyn Unnaneysit"] = "Ny Steatyn Unnaneysit", ["Pobblaght Gheynlagh Arabagh y Tahara"] = "Pobblaght Gheynlagh Arabagh y Tahara", ["Yn Toolynn"] = "y Toolynn", ["Yn Toorinam"] = "Yn Toorinam", ["Ellan y Trinaid as Tobago"] = "Ellan y Trinaid as Tobago", ["Yn Turkee"] = "Yn Turkee", ["Yn Ungaar"] = "Yn Ungaar", ["Yn Valta"] = "Yn Valta", ["Yn Vassadoan Hwoaie"] = "Yn Vassadoan Hwoaie", ["Yn Velaroosh"] = "Yn Velaroosh", ["Yn Veleesh"] = "Yn Veleesh", ["Yn Velg"] = "Yn Velg", ["Yn Volivia"] = "Yn Volivia", ["Yn Vrasseel"] = "Yn Vrasseel", ["Yn Vulgeyr"] = "Yn Vulgeyr", } local genitive = { ["Yn Abcaash"] = "yn Abcaash", ["Yn Albaan"] = "yn Albaan", ["Andorra"] = "Andorra", ["Antigua as Barbuda"] = "Antigua as Barbuda", ["Ard-valley yn Phaab"] = "Ard-valley yn Phaab", ["Yn Argenteen"] = "yn Argenteen", ["Yn Armean"] = "yn Armean", ["Yn Asserbajaan"] = "yn Asserbajaan", ["Yn Austeyr"] = "yn Austeyr", ["Yn Austrail"] = "yn Austrail", ["Ny Bahamaghyn"] = "ny Bahamaghyn", ["Barbados"] = "Barbados", ["Ny Bermioodee"] = "ny Bermioodee", ["Bosnia as Herzegovina"] = "Bosnia as Herzegovina", ["Bretyn"] = "Vretyn", ["Yn Chanadey"] = "y Chanadey", ["Yn Chassaghstaan"] = "y Chassaghstaan", ["Yn Çheck"] = "y Çheck", ["Yn Cheeprey"] = "y Cheeprey", ["Yn Cheeprey Hwoaie"] = "y Cheeprey Hwoaie", ["Yn Çheer Injil"] = "y Çheer Injil", ["Yn Çhillee"] = "y Çhillee", ["Yn Cholombey"] = "y Cholombey", ["Yn Choobey"] = "y Choobey", ["Yn Çhorshey"] = "y Çhorshey", ["Yn Chroit"] = "y Chroit", ["Yn Clovack"] = "y Clovack", ["Yn Clovean"] = "y Clovean", ["Pobblaght y Chongo"] = "Phobblaght y Chongo", ["Pobblaght Gheynlagh y Chongo"] = "Phobblaght Gheynlagh y Chongo", ["Yn Coose Berçhagh"] = "y Choose Berçhagh", ["Yn Danvarg"] = "y Danvarg", ["Dominica"] = "Dominica", ["Yn Eeslynn"] = "yn Eeslynn", ["Yn Elveeish"] = "yn Elveeish", ["Yn Estaan"] = "yn Estaan", ["Finnlynn"] = "Innlynn", ["Geeaaney"] = "Gheeaaney", ["Yn Ghermaan"] = "y Ghermaan", ["Yn Ghreag"] = "y Ghreag", ["Yn Ghuatemaley"] = "y Ghuatemaley", ["Greenlynn"] = "Ghreenlynn", ["Grenada"] = "Grenada", ["Guinea Chryss ny Cruinney"] = "Ghuinea Chryss ny Cruinney", ["Ny Hondooraghyn"] = "ny Hondooraghyn", ["Yn Iddaal"] = "yn Iddaal", ["Yn Jamaicey"] = "y Jamaicey", ["Jersee"] = "Jersee", ["Kosovo"] = "Chosovo", ["Yn Latvey"] = "y Latvey", ["Liechtenstein"] = "Liechtenstein", ["Yn Litaan"] = "y Litaan", ["Lucsemburg"] = "Lucsemburg", ["Mannin"] = "Vannin", ["Meksico"] = "Veksico", ["Moldova"] = "Voldova", ["Monaco"] = "Monaco", ["Montenegro"] = "Montenegro", ["Nalbin"] = "ny h-Albey", ["Nerin"] = "Nerin", ["Yn Nickeraag"] = "y Nickeraag", ["Noo Kitts as Nevis"] = "Noo Kitts as Nevis", ["Noo Lucia"] = "Noo Lucia", ["Noo Winsen as ny Grenadeenyn"] = "Noo Winsen as ny Grenadeenyn", ["Norlynn"] = "Norlynn", ["Yn Ookraan"] = "yn Ookraan", ["Yn Ooraguay"] = "yn Ooraguay", ["Ossetia Yiass"] = "Ossetia Yiass", ["Yn Phanamaa"] = "y Phanamaa", ["Yn Pharaguay"] = "y Pharaguay", ["Yn Pheroo"] = "y Pheroo", ["Yn Phobblaght Ghominicagh"] = "y Phobblaght Ghominicagh", ["Yn Pholynn"] = "y Pholynn", ["Yn Phortiugal"] = "y Phortiugal", ["Yn Phroosh"] = "y Phroosh", ["Yn Rank"] = "y Rank", ["Yn Reeriaght Unnaneysit"] = "y Reeriaght Unnaneysit", ["Yn Romaan"] = "y Romaan", ["Yn Roosh"] = "y Roosh", ["Yn Salvador"] = "y Talvador", ["San Marino"] = "San Marino", ["Yn Serb"] = "y Terb", ["Sostyn"] = "Hostyn", ["Yn Spaainey"] = "y Spaainey", ["Ny Steatyn Unnaneysit"] = "ny Steatyn Unnaneysit", ["Pobblaght Gheynlagh Arabagh y Tahara"] = "Phobblaght Gheynlagh Arabagh y Tahara", ["Yn Toolynn"] = "y Toolynn", ["Yn Toorinam"] = "y Toorinam", ["Ellan y Trinaid as Tobago"] = "Ellan y Trinaid as Tobago", ["Yn Turkee"] = "y Turkee", ["Yn Ungaar"] = "yn Ungaar", ["Yn Valta"] = "y Valta", ["Yn Vassadoan Hwoaie"] = "y Vassadoan Hwoaie", ["Yn Velaroosh"] = "y Velaroosh", ["Yn Veleesh"] = "y Veleesh", ["Yn Velg"] = "y Velg", ["Yn Volivia"] = "y Volivia", ["Yn Vrasseel"] = "y Vrasseel", ["Yn Vulgeyr"] = "y Vulgeyr", } function p.name(name) if not name or name == "" then return name end return country_names[name] or name end function p.genitive(name) if not name or name == "" then return name end return genitive[name] or name end return p k50z11n1ztzzfipbqgd5rzi0viudsa4 Module:Kishtey fys çheer/balley 828 55830 394563 394299 2026-10-16T17:32:47Z MacTire02 219 -chaghteraghtyn 394563 Scribunto text/plain local p = {} -- Safely get manual parameters from priority list local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Splits a manually-typed value into its link TARGET and an optional -- DISPLAY override: "[[Target|Display]]" keeps both; "[[Target]]" or a bare -- "Target" has no separate display (display = nil, every caller already -- falls back to the target in that case). Needed so a manual -- "[[Target|Display]]" value keeps its own display text instead of every -- render site rebuilding the link as target|target. local function splitManualLink(value) if not value then return "", nil end local clean = mw.text.trim(value) clean = clean:gsub("^%[%[", ""):gsub("%]%]$", "") local pipe = clean:find("|", 1, true) if pipe then local target = mw.text.trim(clean:sub(1, pipe - 1)) local display = mw.text.trim(clean:sub(pipe + 1)) if display == "" then display = nil end return target, display end return mw.text.trim(clean), nil end -- Target only (no display) -- kept as its own name since most callers (the -- capital-vs-largest-city duplicate check, Wikidata-title resolution) only -- ever want the target to compare or look up, never the display half. local function normaliseCityName(value) local target = splitManualLink(value) return target end -- Pull a city name from Wikidata (property must hold an item value, e.g. -- P36 = capital, P13574 = most populous urban area). Returns three values: -- the LINK TARGET (the title to point the wikilink at), the resolved item's -- own QID (so a caller that's about to render this exact item doesn't have -- to re-derive it later by chasing a page title back through a sitelink -- -- see getCoordinatesForQid below), and an optional DISPLAY override: nil -- when the sitelink and label already match, otherwise the item's own -- clean label (e.g. a disambiguated sitelink title like "Lucsemburg -- (ard-valley)" should still display as the item's plain label, -- "Lucsemburg", while the link itself still points at the real article). local function getWikidataCity(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local mainsnak = statements[1].mainsnak if not (mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid") then return nil end local value = mainsnak.datavalue.value local id = value.id or ("Q" .. tostring(value["numeric-id"])) -- Prefer the title of the local (gv) sitelink so the link isn't red; -- fall back to the item's label if there's no gv article yet. local sitelink = mw.wikibase.sitelink(id) sitelink = (sitelink and sitelink ~= "") and sitelink or nil local label = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) label = (label and label ~= "") and label or nil local target = sitelink or label if not target then return nil end local display = (label and label ~= target) and label or nil return target, id, display end -- Expands {{coord}} with a Wikidata item's own P625 coordinates, given its -- QID directly -- always with format="dms" (matching Module:WikidataIB. -- getCoords' own convention), since {{coord}}'s own default formatting -- isn't reliably DMS on its own. local function getCoordinatesForQid(frame, qid) if not qid then return nil end local entity = mw.wikibase.getEntityObject(qid) if not entity then return nil end local statements = entity:getBestStatements("P625") if not statements or #statements == 0 then return nil end local mainsnak = statements[1].mainsnak if not (mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "globecoordinate") then return nil end local coord = mainsnak.datavalue.value if not (coord.latitude and coord.longitude) then return nil end return frame:expandTemplate{ title = "coord", args = { coord.latitude, coord.longitude, "type:city", display = "inline", format = "dms" } } end -- Given a plain page title (a MANUALLY-typed city name, with no QID already -- known), resolve its Wikidata item via this wiki's own (gv) sitelink and -- pull its coordinates. Deliberately gv-only -- a city typed by hand with -- no gv.wikipedia article yet has no coordinates from this path. The -- Wikidata-populated case (largest city via P13574, capital via P36) -- instead chains straight from the QID that property already resolved to, -- through getCoordinatesForQid above, never through any wiki's sitelink. local function getCityCoordinates(frame, pageTitle) if not pageTitle or pageTitle == "" then return nil end local id = mw.wikibase.getEntityIdForTitle(pageTitle) return getCoordinatesForQid(frame, id) end -- Manual coordinate override, in the old template's own component shape -- (separate deg/min/direction params for lat and long -- the old {{coor -- cn}} call's input shape). Doesn't carry over the old `latNSgael`/ -- `longEWgael` Manx-direction params -- {{coord}} has no equivalent slot. -- Returns "suppress" (|...=none), a built {{coord}} expansion (format=dms), -- or nil (no override -- caller falls through to Wikidata). local function getManualCoordinates(frame, args, degParam, minParam, nsParam, lonDegParam, lonMinParam, ewParam) -- Each *Param argument is normally a single name (e.g. "latd"), but may -- also be a list of alternate spellings (e.g. balley_smoo/balley-smoo -- below) -- accept either so existing plain-string callers (the capital -- row) don't need to change. local function names(p) if type(p) == "table" then return p end return { p } end local latd = getManual(args, names(degParam)) if not latd then return nil end if isNone(latd) then return "suppress" end local latm = getManual(args, names(minParam)) or "" local latNS = getManual(args, names(nsParam)) or "" local longd = getManual(args, names(lonDegParam)) or "" local longm = getManual(args, names(lonMinParam)) or "" local longEW = getManual(args, names(ewParam)) or "" return frame:expandTemplate{ title = "coord", args = { latd, latm, latNS, longd, longm, longEW, "type:city", display = "inline", format = "dms" } } end -- Prevents coordinates from line-wrapping in the infobox's narrow column -- ({{coord}}'s output has plain spaces the browser is free to break on). local function coordSpan(coordText) if not coordText or coordText == "" then return "" end return '<br/><small style="white-space:nowrap;">' .. coordText .. '</small>' end -- Resolves coordinates for one largest-city entry: manual override (its own -- |latd_balley_smoo[N]=/etc. component params) wins outright, an explicit -- |latd_balley_smoo[N]=none suppresses them entirely, and otherwise falls -- through to that city's own Wikidata P625 value. When the entry's QID is -- already known (it came from the P13574 Wikidata fallback, not a manual -- name), that QID is used directly -- chaining straight from the country's -- own "most populous urban area" statement to that city's own coordinates, -- with no wiki sitelink lookup involved at all. A manually-typed name with -- no known QID falls through to the gv-sitelink-only lookup instead. local function resolveEntryCoordinates(frame, args, coordSuffix, cleanName, wdQid) -- Both spellings for every component -- "balley smoo" is two separate -- Manx words with no one fixed joining convention (unlike |jarroo-raa=, -- deliberately hyphen-only -- see cowraghyn.lua's design notes), so -- |latd_balley-smoo= is just as valid as |latd_balley_smoo=. local function both(prefix) return { prefix .. "_balley_smoo" .. coordSuffix, prefix .. "_balley-smoo" .. coordSuffix } end local manual = getManualCoordinates(frame, args, both("latd"), both("latm"), both("latNS"), both("longd"), both("longm"), both("longEW")) if manual == "suppress" then return nil end if manual then return manual end if wdQid then return getCoordinatesForQid(frame, wdQid) end return getCityCoordinates(frame, cleanName) end -- Up to this many distinct "largest city" values (e.g. Australia's largest -- city by urban area vs. by metropolitan area both being reasonably -- citable, and disagreeing) -- raising this later is a one-line change, -- same as every other numbered slot in this project. local MAX_LARGEST = 3 -- Border classes for a run of merged rows, matching reiltys.lua's own -- convention for a header followed by bulleted sub-rows. local function trClass(class) return ' class="' .. class .. '"' end -- Collects every largest-city entry the caller actually supplied (or, for -- slot 1 only, the Wikidata P13574 fallback), in order. Each entry keeps -- its own raw (still-manual-form) name, optional qualifier label, note and -- coordinate-param suffix -- nothing here decides display shape yet, since -- that depends on how many entries survive the capital-duplicate check -- below. local function collectLargestEntries(args) local entries = {} for i = 1, MAX_LARGEST do local suffix = tostring(i) -- Both the underscore and hyphen spellings are accepted at every -- slot -- "balley smoo" is two separate Manx words ("balley" = -- town/settlement, "smoo" = greatest/largest) with no single fixed -- joining convention, unlike |jarroo-raa= (deliberately hyphen-only -- -- see cowraghyn.lua's design notes), so editors may reasonably -- type either spelling. local nameNames = { "balley_smoo" .. suffix, "balley-smoo" .. suffix } local qualNames = { "sorçh_balley_smoo" .. suffix, "sorçh_balley-smoo" .. suffix } local noteNames = { "noteyn_balley_smoo" .. suffix, "noteyn_balley-smoo" .. suffix } local coordSuffix = suffix if i == 1 then -- Bare, unnumbered form (the only form the old template ever -- had) is a synonym for slot 1, in both spellings -- including -- its coordinate params, which keep their original unsuffixed -- names ("latd_balley_smoo"/"latd_balley-smoo", not -- "...balley_smoo1"). table.insert(nameNames, 1, "balley-smoo") table.insert(nameNames, 1, "balley_smoo") table.insert(qualNames, 1, "sorçh_balley-smoo") table.insert(qualNames, 1, "sorçh_balley_smoo") table.insert(noteNames, 1, "noteyn_balley-smoo") table.insert(noteNames, 1, "noteyn_balley_smoo") coordSuffix = "" end local nameRaw = getManual(args, nameNames) if isNone(nameRaw) then -- Explicit suppression for this one slot; doesn't fall through -- to Wikidata even for slot 1, matching the |param=none -- convention used everywhere else in this project. elseif nameRaw then table.insert(entries, { name = nameRaw, qualifier = getManual(args, qualNames), note = getManual(args, noteNames), coordSuffix = coordSuffix, }) elseif i == 1 then -- Wikidata fallback -- slot 1 only. Deeper slots are manual-only -- (this project's established precedent for numbered slots: -- picking out a second, specifically-qualified value like -- "largest by metropolitan area" isn't something to guess at -- from Wikidata automatically). local wd, wdQid, wdDisplay = getWikidataCity("P13574") if wd then table.insert(entries, { name = wd, qualifier = nil, note = getManual(args, noteNames), coordSuffix = "", wdQid = wdQid, wdDisplay = wdDisplay }) end end end return entries end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local capital = getManual(args, {"preeu-valley"}) local capitalWdQid = nil local capitalWdDisplay = nil if not capital then capital, capitalWdQid, capitalWdDisplay = getWikidataCity("P36") end local administrative = getManual(args, {"ynnyd_reiragh"}) local capNote = getManual(args, {"noteyn_preeu-valley"}) local adminNote = getManual(args, {"noteyn_ynnyd_reiragh"}) -- `latd` et al. (old template's params) bind to the capital row when one -- is present, else fall through to the administrative-centre row -- -- mirroring the old template's single combined row as closely as this -- module's two-row layout allows. `latd_balley_smoo[N]` et al. (new) -- cover the largest-city row(s), which the old template never had -- coordinates for. local manualPrimaryCoords = getManualCoordinates(frame, args, "latd", "latm", "latNS", "longd", "longm", "longEW") -- Gather every largest-city entry, then split off any that just -- duplicate the capital (either by literally matching its name, or via -- the old template's own "|balley_smoo=preeu-valley" sentinel value) -- -- those are dropped from the largest-city section entirely and instead -- surface as a "(as y balley smoo)" annotation on the capital row. local allEntries = collectLargestEntries(args) local largestEntries = {} local isSameAny = false for _, entry in ipairs(allEntries) do local cleanLower = mw.text.trim(entry.name):lower() local isSentinel = (cleanLower == "preeu-valley" or cleanLower == "preeu_valley") local matchesCapital = capital and normaliseCityName(capital):lower() == normaliseCityName(entry.name):lower() if isSentinel or matchesCapital then isSameAny = true else table.insert(largestEntries, entry) end end -- Every row this module can produce (capital, administrative centre, -- each largest-city entry) is collected into `pending` first, WITHOUT -- deciding its border class yet -- that depends on how many rows end up -- rendering in total, so that with two or more genuinely different rows -- present they get the "mergedtoprow"/"mergedrow"/"mergedbottomrow" -- classes (matching reiltys.lua's own convention) and no stray divider -- appears between them. `pending` entries: {th = label html or nil -- (nil = a continuation row whose label column is covered by an -- earlier row's rowspan), rowspan = number or nil, td = value html}. local pending = {} -- 1. CAPITAL if capital and mw.text.trim(capital):lower() ~= "none" then local label = args["sorçh_preeu-valley"] or "Preeu-valley" local displayLabel = '[[' .. label .. ']]' if isSameAny then displayLabel = '[[' .. label .. ']]<br/><small style="font-weight:normal;">(as y balley smoo)</small>' end -- A manually-typed |preeu-valley=[[Target|Display]] keeps its own -- Display half; the Wikidata path never produces a pipe at all, so -- capManualDisplay and capitalWdDisplay are never both set for the -- same row. local cleanCapName, capManualDisplay = splitManualLink(capital) local capDisplayName = capitalWdDisplay or capManualDisplay or cleanCapName local text = '[[' .. cleanCapName .. '|' .. capDisplayName .. ']]' if capNote and capNote ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { capNote } } end -- Manual override wins outright over Wikidata (and an explicit -- |latd=none suppresses coordinates entirely for this row, even -- when Wikidata has one); only falls through to the Wikidata -- fetch when the manual param wasn't supplied at all. When the -- capital itself came from Wikidata (P36), its QID is already -- known -- chain straight from it to P625 rather than re-deriving -- it via a gv sitelink lookup on the display name. local capCoords if manualPrimaryCoords == "suppress" then capCoords = nil elseif manualPrimaryCoords then capCoords = manualPrimaryCoords elseif capitalWdQid then capCoords = getCoordinatesForQid(frame, capitalWdQid) else capCoords = getCityCoordinates(frame, cleanCapName) end text = text .. coordSpan(capCoords) table.insert(pending, { th = displayLabel, td = text }) end -- 2. ADMINISTRATIVE CENTER if administrative and mw.text.trim(administrative):lower() ~= "none" then local label = args["sorçh_ynnyd_reiragh"] or "Ynnyd reiragh" -- Same manual-display handling as the capital row above -- keeps a -- typed |ynnyd_reiragh=[[Target|Display]]'s own Display half rather -- than showing the target twice over. local cleanAdminName, adminManualDisplay = splitManualLink(administrative) local text = '[[' .. cleanAdminName .. '|' .. (adminManualDisplay or cleanAdminName) .. ']]' if adminNote and adminNote ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { adminNote } } end -- Manual-override-only -- no Wikidata coordinate fetch for an -- administrative centre (the old template never had one either). if not (capital and mw.text.trim(capital):lower() ~= "none") then local adminCoords if manualPrimaryCoords == "suppress" then adminCoords = nil elseif manualPrimaryCoords then adminCoords = manualPrimaryCoords end text = text .. coordSpan(adminCoords) end table.insert(pending, { th = '[[' .. label .. ']]', td = text }) end -- 3. LARGEST CITY (one or more entries). A single entry sits in one -- row, same as capital/administrative centre above. With more than one -- surviving entry, the first entry's <th> gets a `rowspan` covering -- every entry's row, so the first entry still sits on the SAME line as -- "Balley smoo" and each further entry falls on its own line directly -- underneath -- no separate header row, no bullet. if #largestEntries > 0 then local total = #largestEntries for idx, entry in ipairs(largestEntries) do -- Same manual-display handling as the capital/administrative -- rows above. entry.wdDisplay only ever comes from the P13574 -- Wikidata fallback (collectLargestEntries), never a manually- -- typed |balley_smoo[N]= value, so it and largeManualDisplay -- are never both set for the same entry. local cleanLargeName, largeManualDisplay = splitManualLink(entry.name) local largeDisplayName = entry.wdDisplay or largeManualDisplay or cleanLargeName local text = '[[' .. cleanLargeName .. '|' .. largeDisplayName .. ']]' if entry.qualifier and entry.qualifier ~= "" then text = text .. ' (' .. entry.qualifier .. ')' end if entry.note and entry.note ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { entry.note } } end text = text .. coordSpan(resolveEntryCoordinates(frame, args, entry.coordSuffix, cleanLargeName, entry.wdQid)) if idx == 1 then table.insert(pending, { th = "Balley smoo", rowspan = (total > 1) and total or nil, td = text }) else table.insert(pending, { th = nil, td = text }) end end end if #pending == 0 then return nil end -- Now that the full row count is known, classify every row by its -- position in that single combined block: a lone row stays exactly as -- before (no class at all, backward compatible with the old -- single-field template); two or more rows get -- mergedtoprow/mergedrow/mergedbottomrow so the whole block reads as -- one seamless section with no divider in between its own rows. local subRows = {} local total = #pending for idx, row in ipairs(pending) do local class if total == 1 then class = "" elseif idx == 1 then class = "mergedtoprow" elseif idx == total then class = "mergedbottomrow" else class = "mergedrow" end local classAttr = (class ~= "") and trClass(class) or "" if row.th then local rowspanAttr = row.rowspan and (' rowspan="' .. row.rowspan .. '"') or '' table.insert(subRows, '<tr' .. classAttr .. '><th' .. rowspanAttr .. ' style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. row.th .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. row.td .. '</td></tr>') else table.insert(subRows, '<tr' .. classAttr .. '><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. row.td .. '</td></tr>') end end return table.concat(subRows) end return p 2tez2eusf799cjxo1d3mbmetq3yubt1 394630 394563 2026-10-17T05:13:27Z MacTire02 219 ++ 394630 Scribunto text/plain local p = {} -- Safely get manual parameters from priority list local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Splits a manual value into link target, display text and any trailing text, -- e.g. "[[Laayoune]] (''de jure'')" -> "Laayoune", nil, " (''de jure'')". local function splitManualLink(value) if not value then return "", nil, nil end local clean = mw.text.trim(value) local inner, rest = clean:match("^%[%[(.-)%]%](.*)$") if not inner then inner, rest = clean:match("^(.-)%s+(%(''.*)$") if inner then rest = " " .. rest else inner, rest = clean, "" end end rest = (rest ~= "") and rest or nil local pipe = inner:find("|", 1, true) if pipe then local target = mw.text.trim(inner:sub(1, pipe - 1)) local display = mw.text.trim(inner:sub(pipe + 1)) if display == "" then display = nil end return target, display, rest end return mw.text.trim(inner), nil, rest end -- Target half only. local function normaliseCityName(value) local target = splitManualLink(value) return target end -- Link target, QID, and a display override when the gv label differs from the sitelink. local function resolveCityItem(id) local sitelink = mw.wikibase.sitelink(id) sitelink = (sitelink and sitelink ~= "") and sitelink or nil local label = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) label = (label and label ~= "") and label or nil local target = sitelink or label if not target then return nil end local display = (label and label ~= target) and label or nil return target, id, display end local function snakItemId(snak) if not (snak and snak.snaktype == "value" and snak.datavalue and snak.datavalue.type == "wikibase-entityid") then return nil end local value = snak.datavalue.value return value.id or ("Q" .. tostring(value["numeric-id"])) end local function getWikidataCity(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local id = snakItemId(statements[1].mainsnak) if not id then return nil end return resolveCityItem(id) end -- P518 ("applies to part") values on a capital statement, in Manx. local BRANCH_LABELS = { Q105985 = "briwnyssagh", Q35798 = "kiannoortagh", Q11204 = "slattyssagh", } -- Every current P36 capital, each with its branch label. Statements with an end time are skipped. A capital -- below the best rank (e.g. Bolivia: Sucre preferred, La Paz normal) is kept only if it has a P518 branch. local function getWikidataCapitals() local result = {} local entity = mw.wikibase.getEntityObject() if not entity then return result end local statements = entity:getAllStatements("P36") or {} local bestRank = "normal" for _, statement in ipairs(statements) do if statement.rank == "preferred" then bestRank = "preferred" end end for _, statement in ipairs(statements) do local quals = statement.qualifiers or {} local id = snakItemId(statement.mainsnak) local keep = statement.rank ~= "deprecated" and (statement.rank == bestRank or quals.P518) if id and keep and not quals.P582 then local target, qid, display = resolveCityItem(id) if target then local branches = {} for _, snak in ipairs(quals.P518 or {}) do local label = BRANCH_LABELS[snakItemId(snak) or ""] if label then table.insert(branches, label) end end table.insert(result, { name = target, wdQid = qid, wdDisplay = display, branch = table.concat(branches, ", ") }) end end end return result end -- QID of a current P36 capital matching a typed city name, for coordinates when that city has no gv article. local function findCapitalQid(name) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local want = name:lower() for _, statement in ipairs(entity:getAllStatements("P36") or {}) do local id = snakItemId(statement.mainsnak) if id then local target, qid, display = resolveCityItem(id) if (target and target:lower() == want) or (display and display:lower() == want) then return qid end end end return nil end -- {{coord}} from a QID's P625, always DMS. local function getCoordinatesForQid(frame, qid) if not qid then return nil end local entity = mw.wikibase.getEntityObject(qid) if not entity then return nil end local statements = entity:getBestStatements("P625") if not statements or #statements == 0 then return nil end local mainsnak = statements[1].mainsnak if not (mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "globecoordinate") then return nil end local coord = mainsnak.datavalue.value if not (coord.latitude and coord.longitude) then return nil end return frame:expandTemplate{ title = "coord", args = { coord.latitude, coord.longitude, "type:city", display = "inline", format = "dms" } } end -- Coordinates for a manually typed name, via its gv sitelink only. local function getCityCoordinates(frame, pageTitle) if not pageTitle or pageTitle == "" then return nil end local id = mw.wikibase.getEntityIdForTitle(pageTitle) return getCoordinatesForQid(frame, id) end -- Manual coordinates from component params: "suppress", a {{coord}} expansion, or nil. local function getManualCoordinates(frame, args, degParam, minParam, nsParam, lonDegParam, lonMinParam, ewParam) -- Accepts one name or a list of alternate spellings. local function names(p) if type(p) == "table" then return p end return { p } end local latd = getManual(args, names(degParam)) if not latd then return nil end if isNone(latd) then return "suppress" end local latm = getManual(args, names(minParam)) or "" local latNS = getManual(args, names(nsParam)) or "" local longd = getManual(args, names(lonDegParam)) or "" local longm = getManual(args, names(lonMinParam)) or "" local longEW = getManual(args, names(ewParam)) or "" return frame:expandTemplate{ title = "coord", args = { latd, latm, latNS, longd, longm, longEW, "type:city", display = "inline", format = "dms" } } end -- Prevents coordinates from line-wrapping in the infobox's narrow column -- ({{coord}}'s output has plain spaces the browser is free to break on). local function coordSpan(coordText) if not coordText or coordText == "" then return "" end return '<br/><small style="white-space:nowrap;">' .. coordText .. '</small>' end -- Manual coordinates win, =none suppresses, else Wikidata (by QID if known, else gv title). local function resolveEntryCoordinates(frame, args, coordSuffix, cleanName, wdQid) -- Both underscore and hyphen spellings. local function both(prefix) return { prefix .. "_balley_smoo" .. coordSuffix, prefix .. "_balley-smoo" .. coordSuffix } end local manual = getManualCoordinates(frame, args, both("latd"), both("latm"), both("latNS"), both("longd"), both("longm"), both("longEW")) if manual == "suppress" then return nil end if manual then return manual end if wdQid then return getCoordinatesForQid(frame, wdQid) end return getCityCoordinates(frame, cleanName) or getCoordinatesForQid(frame, findCapitalQid(cleanName)) end -- Maximum number of largest-city slots. local MAX_LARGEST = 3 -- Border classes for a run of merged rows, matching reiltys.lua's own -- convention for a header followed by bulleted sub-rows. local function trClass(class) return ' class="' .. class .. '"' end -- Collects largest-city entries; Wikidata fallback for slot 1 only. local function collectLargestEntries(args) local entries = {} for i = 1, MAX_LARGEST do local suffix = tostring(i) -- Underscore and hyphen spellings accepted at every slot. local nameNames = { "balley_smoo" .. suffix, "balley-smoo" .. suffix } local qualNames = { "sorçh_balley_smoo" .. suffix, "sorçh_balley-smoo" .. suffix } local noteNames = { "noteyn_balley_smoo" .. suffix, "noteyn_balley-smoo" .. suffix } local coordSuffix = suffix if i == 1 then -- Bare form is a synonym for slot 1 (its coordinate params stay unsuffixed). table.insert(nameNames, 1, "balley-smoo") table.insert(nameNames, 1, "balley_smoo") table.insert(qualNames, 1, "sorçh_balley-smoo") table.insert(qualNames, 1, "sorçh_balley_smoo") table.insert(noteNames, 1, "noteyn_balley-smoo") table.insert(noteNames, 1, "noteyn_balley_smoo") coordSuffix = "" end local nameRaw = getManual(args, nameNames) if isNone(nameRaw) then -- Explicit none: no Wikidata fallback. elseif nameRaw then table.insert(entries, { name = nameRaw, qualifier = getManual(args, qualNames), note = getManual(args, noteNames), coordSuffix = coordSuffix, }) elseif i == 1 then -- Deeper slots are manual-only. local wd, wdQid, wdDisplay = getWikidataCity("P13574") if wd then table.insert(entries, { name = wd, qualifier = nil, note = getManual(args, noteNames), coordSuffix = "", wdQid = wdQid, wdDisplay = wdDisplay }) end end end return entries end -- Maximum number of capital slots. local MAX_CAPITALS = 5 -- Slot 1 uses the bare legacy names, slots 2+ a numeric suffix. The bare |sorçh_preeu-valley= is the row label, -- so slot 1's qualifier is |sorçh_preeu-valley1=. Slot 1 = none suppresses the row. With no manual slot set, -- every current P36 capital is used; if only slots 2+ are set, Wikidata's first capital fills slot 1. -- With several capitals each gets its P518 branch label (a manual qualifier overrides it, none hides it). local function collectCapitalEntries(args) local entries = {} local hasSlot1 = false local wdCapitals local function wdList() wdCapitals = wdCapitals or getWikidataCapitals() return wdCapitals end local function noteNamesFor(i) local names = { "noteyn_preeu-valley" .. i } if i == 1 then table.insert(names, 1, "noteyn_preeu-valley") end return names end local function qualifierFor(i) local qualifier = getManual(args, { "sorçh_preeu-valley" .. i }) if isNone(qualifier) then return nil, true end return qualifier, false end for i = 1, MAX_CAPITALS do local nameNames = { "preeu-valley" .. i } if i == 1 then table.insert(nameNames, 1, "preeu-valley") end local nameRaw = getManual(args, nameNames) if isNone(nameRaw) then if i == 1 then return {} end elseif nameRaw then if i == 1 then hasSlot1 = true end local qualifier, noTag = qualifierFor(i) table.insert(entries, { name = nameRaw, qualifier = qualifier, noTag = noTag, note = getManual(args, noteNamesFor(i)), coordSuffix = (i == 1) and "" or tostring(i), }) end end if #entries > 0 and not hasSlot1 then local first = wdList()[1] local wd, wdQid, wdDisplay if first then wd, wdQid, wdDisplay = first.name, first.wdQid, first.wdDisplay else wd, wdQid, wdDisplay = getWikidataCity("P36") end local duplicate = false for _, e in ipairs(entries) do if wd and normaliseCityName(e.name):lower() == wd:lower() then duplicate = true end end if wd and not duplicate then local qualifier, noTag = qualifierFor(1) table.insert(entries, 1, { name = wd, wdQid = wdQid, wdDisplay = wdDisplay, qualifier = qualifier, noTag = noTag, note = getManual(args, noteNamesFor(1)), coordSuffix = "", }) end end if #entries == 0 then local list = wdList() if #list == 0 then local wd, wdQid, wdDisplay = getWikidataCity("P36") if wd then list = { { name = wd, wdQid = wdQid, wdDisplay = wdDisplay, branch = "" } } end end for i, cap in ipairs(list) do if i > MAX_CAPITALS then break end local qualifier, noTag = qualifierFor(i) table.insert(entries, { name = cap.name, wdQid = cap.wdQid, wdDisplay = cap.wdDisplay, qualifier = qualifier, noTag = noTag, note = getManual(args, noteNamesFor(i)), coordSuffix = (i == 1) and "" or tostring(i), }) end end -- Several capitals: an entry matching a Wikidata capital takes that capital's branch label. if #entries > 1 then for _, entry in ipairs(entries) do if not entry.qualifier and not entry.noTag then local want = normaliseCityName(entry.name):lower() for _, cap in ipairs(wdList()) do if cap.branch ~= "" and (cap.name:lower() == want or (cap.wdDisplay and cap.wdDisplay:lower() == want)) then entry.qualifier = cap.branch end end end end end return entries end -- Manual params win (slot N uses suffix N), =none suppresses, else Wikidata via QID, else gv title. local function resolveCapitalCoordinates(frame, args, entry, cleanName) local function names(prefix) if entry.coordSuffix == "" then return { prefix, prefix .. "1" } end return { prefix .. entry.coordSuffix } end local manual = getManualCoordinates(frame, args, names("latd"), names("latm"), names("latNS"), names("longd"), names("longm"), names("longEW")) if manual == "suppress" then return nil end if manual then return manual end if entry.wdQid then return getCoordinatesForQid(frame, entry.wdQid) end return getCityCoordinates(frame, cleanName) or getCoordinatesForQid(frame, findCapitalQid(cleanName)) end function p.main(frame, args) -- Fallback verification to catch argument slots accurately if frame context shifts if not args then args = frame frame = mw.getCurrentFrame() end local capitalEntries = collectCapitalEntries(args) local administrative = getManual(args, {"ynnyd_reiragh"}) local adminNote = getManual(args, {"noteyn_ynnyd_reiragh"}) -- Bare latd etc. bind to the capital's slot 1, else the administrative centre. local manualPrimaryCoords = getManualCoordinates(frame, args, "latd", "latm", "latNS", "longd", "longm", "longEW") local hasCapital = #capitalEntries > 0 -- With one capital, a duplicate largest city is dropped and noted as "(as y balley smoo)"; -- with several, every largest city is listed in its own row, with coordinates. local multiple = #capitalEntries > 1 local allEntries = collectLargestEntries(args) local largestEntries = {} local isSameAny = false for _, entry in ipairs(allEntries) do local cleanLower = mw.text.trim(entry.name):lower() local isSentinel = (cleanLower == "preeu-valley" or cleanLower == "preeu_valley") local largestLower = normaliseCityName(entry.name):lower() local matchesCapital = false for _, capEntry in ipairs(capitalEntries) do if normaliseCityName(capEntry.name):lower() == largestLower then matchesCapital = true end end if multiple then if not isSentinel then table.insert(largestEntries, entry) end elseif isSentinel or matchesCapital then isSameAny = true else table.insert(largestEntries, entry) end end -- Rows are collected first, then classed by position: {th (nil = continuation row), rowspan, td}. local pending = {} -- With several capitals the label rowspans all rows. if hasCapital then local label = args["sorçh_preeu-valley"] or "Preeu-valley" local displayLabel = '[[' .. label .. ']]' if isSameAny then displayLabel = '[[' .. label .. ']]<br/><small style="font-weight:normal;">(as y balley smoo)</small>' end for idx, entry in ipairs(capitalEntries) do -- Manual display text is kept. local cleanCapName, capManualDisplay, capTrailing = splitManualLink(entry.name) local capDisplayName = entry.wdDisplay or capManualDisplay or cleanCapName local text = '[[' .. cleanCapName .. '|' .. capDisplayName .. ']]' if capTrailing then text = text .. capTrailing end if entry.qualifier and entry.qualifier ~= "" then text = text .. ' (' .. entry.qualifier .. ')' end if entry.note and entry.note ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { entry.note } } end -- Slot 1 uses the bare coordinate params; slots 2-3 use suffixed ones. local capCoords if entry.coordSuffix == "" and manualPrimaryCoords == "suppress" then capCoords = nil elseif entry.coordSuffix == "" and manualPrimaryCoords then capCoords = manualPrimaryCoords else capCoords = resolveCapitalCoordinates(frame, args, entry, cleanCapName) end text = text .. coordSpan(capCoords) if idx == 1 then table.insert(pending, { th = displayLabel, rowspan = multiple and #capitalEntries or nil, td = text }) else table.insert(pending, { th = nil, td = text }) end end end -- Capital in exile: free wikitext, shown as its own row. local exile = getManual(args, {"preeu-valley_ayns_eebyrtys"}) if exile and not isNone(exile) then local exileLabel = args["sorçh_preeu-valley_ayns_eebyrtys"] or "Preeu-valley ayns eebyrtys" local exileNote = getManual(args, {"noteyn_preeu-valley_ayns_eebyrtys"}) if exileNote then exile = exile .. frame:expandTemplate{ title = "efn", args = { exileNote } } end table.insert(pending, { th = '[[' .. exileLabel .. ']]', td = exile }) end -- 2. ADMINISTRATIVE CENTER if administrative and mw.text.trim(administrative):lower() ~= "none" then local label = args["sorçh_ynnyd_reiragh"] or "Ynnyd reiragh" -- Manual display text is kept. local cleanAdminName, adminManualDisplay, adminTrailing = splitManualLink(administrative) local text = '[[' .. cleanAdminName .. '|' .. (adminManualDisplay or cleanAdminName) .. ']]' .. (adminTrailing or '') if adminNote and adminNote ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { adminNote } } end -- Manual-override-only -- no Wikidata coordinate fetch for an -- administrative centre (the old template never had one either). if not hasCapital then local adminCoords if manualPrimaryCoords == "suppress" then adminCoords = nil elseif manualPrimaryCoords then adminCoords = manualPrimaryCoords end text = text .. coordSpan(adminCoords) end table.insert(pending, { th = '[[' .. label .. ']]', td = text }) end -- With several entries the first <th> rowspans them all. if #largestEntries > 0 then local total = #largestEntries for idx, entry in ipairs(largestEntries) do -- Wikidata and manual display overrides are never both set. local cleanLargeName, largeManualDisplay, largeTrailing = splitManualLink(entry.name) local largeDisplayName = entry.wdDisplay or largeManualDisplay or cleanLargeName local text = '[[' .. cleanLargeName .. '|' .. largeDisplayName .. ']]' if largeTrailing then text = text .. largeTrailing end if entry.qualifier and entry.qualifier ~= "" then text = text .. ' (' .. entry.qualifier .. ')' end if entry.note and entry.note ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { entry.note } } end text = text .. coordSpan(resolveEntryCoordinates(frame, args, entry.coordSuffix, cleanLargeName, entry.wdQid)) if idx == 1 then table.insert(pending, { th = "Balley smoo", rowspan = (total > 1) and total or nil, td = text }) else table.insert(pending, { th = nil, td = text }) end end end if #pending == 0 then return nil end -- Lone row gets no class; otherwise top/middle/bottom merged classes. local subRows = {} local total = #pending for idx, row in ipairs(pending) do local class if total == 1 then class = "" elseif idx == 1 then class = "mergedtoprow" elseif idx == total then class = "mergedbottomrow" else class = "mergedrow" end local classAttr = (class ~= "") and trClass(class) or "" if row.th then local rowspanAttr = row.rowspan and (' rowspan="' .. row.rowspan .. '"') or '' table.insert(subRows, '<tr' .. classAttr .. '><th' .. rowspanAttr .. ' style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. row.th .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. row.td .. '</td></tr>') else table.insert(subRows, '<tr' .. classAttr .. '><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. row.td .. '</td></tr>') end end return table.concat(subRows) end return p iank2eif1mrw19gokv1ky75gg22tlk7 394631 394630 2026-10-17T05:15:06Z MacTire02 219 ++ 394631 Scribunto text/plain local p = {} -- Safely get manual parameters from priority list local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Splits a manual value into link target, display text and any trailing text, -- e.g. "[[Laayoune]] (''de jure'')" -> "Laayoune", nil, " (''de jure'')". local function splitManualLink(value) if not value then return "", nil, nil end local clean = mw.text.trim(value) local inner, rest = clean:match("^%[%[(.-)%]%](.*)$") if not inner then inner, rest = clean:match("^(.-)%s+(%(''.*)$") if inner then rest = " " .. rest else inner, rest = clean, "" end end rest = (rest ~= "") and rest or nil local pipe = inner:find("|", 1, true) if pipe then local target = mw.text.trim(inner:sub(1, pipe - 1)) local display = mw.text.trim(inner:sub(pipe + 1)) if display == "" then display = nil end return target, display, rest end return mw.text.trim(inner), nil, rest end -- Target half only. local function normaliseCityName(value) local target = splitManualLink(value) return target end -- Link target, QID, and a display override when the gv label differs from the sitelink. local function resolveCityItem(id) local sitelink = mw.wikibase.sitelink(id) sitelink = (sitelink and sitelink ~= "") and sitelink or nil local label = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) label = (label and label ~= "") and label or nil local target = sitelink or label if not target then return nil end local display = (label and label ~= target) and label or nil return target, id, display end local function snakItemId(snak) if not (snak and snak.snaktype == "value" and snak.datavalue and snak.datavalue.type == "wikibase-entityid") then return nil end local value = snak.datavalue.value return value.id or ("Q" .. tostring(value["numeric-id"])) end local function getWikidataCity(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local id = snakItemId(statements[1].mainsnak) if not id then return nil end return resolveCityItem(id) end -- P518 ("applies to part") values on a capital statement, in Manx. local BRANCH_LABELS = { Q105985 = "briwnyssagh", Q35798 = "kiannoortagh", Q11204 = "slattyssagh", } -- Every current P36 capital, each with its branch label. Statements with an end time are skipped. A capital -- below the best rank (e.g. Bolivia: Sucre preferred, La Paz normal) is kept only if it has a P518 branch. local function getWikidataCapitals() local result = {} local entity = mw.wikibase.getEntityObject() if not entity then return result end local statements = entity:getAllStatements("P36") or {} local bestRank = "normal" for _, statement in ipairs(statements) do if statement.rank == "preferred" then bestRank = "preferred" end end for _, statement in ipairs(statements) do local quals = statement.qualifiers or {} local id = snakItemId(statement.mainsnak) local keep = statement.rank ~= "deprecated" and (statement.rank == bestRank or quals.P518) if id and keep and not quals.P582 then local target, qid, display = resolveCityItem(id) if target then local branches = {} for _, snak in ipairs(quals.P518 or {}) do local label = BRANCH_LABELS[snakItemId(snak) or ""] if label then table.insert(branches, label) end end table.insert(result, { name = target, wdQid = qid, wdDisplay = display, branch = table.concat(branches, ", ") }) end end end return result end -- QID of a current P36 capital matching a typed city name, for coordinates when that city has no gv article. local function findCapitalQid(name) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local want = name:lower() for _, statement in ipairs(entity:getAllStatements("P36") or {}) do local id = snakItemId(statement.mainsnak) if id then local target, qid, display = resolveCityItem(id) if (target and target:lower() == want) or (display and display:lower() == want) then return qid end end end return nil end -- {{coord}} from a QID's P625, always DMS. local function getCoordinatesForQid(frame, qid) if not qid then return nil end local entity = mw.wikibase.getEntityObject(qid) if not entity then return nil end local statements = entity:getBestStatements("P625") if not statements or #statements == 0 then return nil end local mainsnak = statements[1].mainsnak if not (mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "globecoordinate") then return nil end local coord = mainsnak.datavalue.value if not (coord.latitude and coord.longitude) then return nil end return frame:expandTemplate{ title = "coord", args = { coord.latitude, coord.longitude, "type:city", display = "inline", format = "dms" } } end -- Coordinates for a manually typed name, via its gv sitelink only. local function getCityCoordinates(frame, pageTitle) if not pageTitle or pageTitle == "" then return nil end local id = mw.wikibase.getEntityIdForTitle(pageTitle) return getCoordinatesForQid(frame, id) end -- Manual coordinates from component params: "suppress", a {{coord}} expansion, or nil. local function getManualCoordinates(frame, args, degParam, minParam, nsParam, lonDegParam, lonMinParam, ewParam) -- Accepts one name or a list of alternate spellings. local function names(p) if type(p) == "table" then return p end return { p } end local latd = getManual(args, names(degParam)) if not latd then return nil end if isNone(latd) then return "suppress" end local latm = getManual(args, names(minParam)) or "" local latNS = getManual(args, names(nsParam)) or "" local longd = getManual(args, names(lonDegParam)) or "" local longm = getManual(args, names(lonMinParam)) or "" local longEW = getManual(args, names(ewParam)) or "" return frame:expandTemplate{ title = "coord", args = { latd, latm, latNS, longd, longm, longEW, "type:city", display = "inline", format = "dms" } } end -- Prevents coordinates from line-wrapping in the infobox's narrow column -- ({{coord}}'s output has plain spaces the browser is free to break on). local function coordSpan(coordText) if not coordText or coordText == "" then return "" end return '<br/><small style="white-space:nowrap;">' .. coordText .. '</small>' end -- Manual coordinates win, =none suppresses, else Wikidata (by QID if known, else gv title). local function resolveEntryCoordinates(frame, args, coordSuffix, cleanName, wdQid) -- Both underscore and hyphen spellings. local function both(prefix) return { prefix .. "_balley_smoo" .. coordSuffix, prefix .. "_balley-smoo" .. coordSuffix } end local manual = getManualCoordinates(frame, args, both("latd"), both("latm"), both("latNS"), both("longd"), both("longm"), both("longEW")) if manual == "suppress" then return nil end if manual then return manual end if wdQid then return getCoordinatesForQid(frame, wdQid) end return getCityCoordinates(frame, cleanName) or getCoordinatesForQid(frame, findCapitalQid(cleanName)) end -- Maximum number of largest-city slots. local MAX_LARGEST = 3 -- Border classes for a run of merged rows, matching reiltys.lua's own -- convention for a header followed by bulleted sub-rows. local function trClass(class) return ' class="' .. class .. '"' end -- Collects largest-city entries; Wikidata fallback for slot 1 only. local function collectLargestEntries(args) local entries = {} for i = 1, MAX_LARGEST do local suffix = tostring(i) -- Underscore and hyphen spellings accepted at every slot. local nameNames = { "balley_smoo" .. suffix, "balley-smoo" .. suffix } local qualNames = { "sorçh_balley_smoo" .. suffix, "sorçh_balley-smoo" .. suffix } local noteNames = { "noteyn_balley_smoo" .. suffix, "noteyn_balley-smoo" .. suffix } local coordSuffix = suffix if i == 1 then -- Bare form is a synonym for slot 1 (its coordinate params stay unsuffixed). table.insert(nameNames, 1, "balley-smoo") table.insert(nameNames, 1, "balley_smoo") table.insert(qualNames, 1, "sorçh_balley-smoo") table.insert(qualNames, 1, "sorçh_balley_smoo") table.insert(noteNames, 1, "noteyn_balley-smoo") table.insert(noteNames, 1, "noteyn_balley_smoo") coordSuffix = "" end local nameRaw = getManual(args, nameNames) if isNone(nameRaw) then -- Explicit none: no Wikidata fallback. elseif nameRaw then table.insert(entries, { name = nameRaw, qualifier = getManual(args, qualNames), note = getManual(args, noteNames), coordSuffix = coordSuffix, }) elseif i == 1 then -- Deeper slots are manual-only. local wd, wdQid, wdDisplay = getWikidataCity("P13574") if wd then table.insert(entries, { name = wd, qualifier = nil, note = getManual(args, noteNames), coordSuffix = "", wdQid = wdQid, wdDisplay = wdDisplay }) end end end return entries end -- Maximum number of capital slots. local MAX_CAPITALS = 5 -- Slot 1 uses the bare legacy names, slots 2+ a numeric suffix. The bare |sorçh_preeu-valley= is the row label, -- so slot 1's qualifier is |sorçh_preeu-valley1=. Slot 1 = none suppresses the row. With no manual slot set, -- every current P36 capital is used; if only slots 2+ are set, Wikidata's first capital fills slot 1. -- With several capitals each gets its P518 branch label (a manual qualifier overrides it, none hides it). local function collectCapitalEntries(args) local entries = {} local hasSlot1 = false local wdCapitals local function wdList() wdCapitals = wdCapitals or getWikidataCapitals() return wdCapitals end local function noteNamesFor(i) local names = { "noteyn_preeu-valley" .. i } if i == 1 then table.insert(names, 1, "noteyn_preeu-valley") end return names end local function qualifierFor(i) local qualifier = getManual(args, { "sorçh_preeu-valley" .. i }) if isNone(qualifier) then return nil, true end return qualifier, false end for i = 1, MAX_CAPITALS do local nameNames = { "preeu-valley" .. i } if i == 1 then table.insert(nameNames, 1, "preeu-valley") end local nameRaw = getManual(args, nameNames) if isNone(nameRaw) then if i == 1 then return {} end elseif nameRaw then if i == 1 then hasSlot1 = true end local qualifier, noTag = qualifierFor(i) table.insert(entries, { name = nameRaw, qualifier = qualifier, noTag = noTag, note = getManual(args, noteNamesFor(i)), coordSuffix = (i == 1) and "" or tostring(i), }) end end if #entries > 0 and not hasSlot1 then local first = wdList()[1] local wd, wdQid, wdDisplay if first then wd, wdQid, wdDisplay = first.name, first.wdQid, first.wdDisplay else wd, wdQid, wdDisplay = getWikidataCity("P36") end local duplicate = false for _, e in ipairs(entries) do if wd and normaliseCityName(e.name):lower() == wd:lower() then duplicate = true end end if wd and not duplicate then local qualifier, noTag = qualifierFor(1) table.insert(entries, 1, { name = wd, wdQid = wdQid, wdDisplay = wdDisplay, qualifier = qualifier, noTag = noTag, note = getManual(args, noteNamesFor(1)), coordSuffix = "", }) end end if #entries == 0 then local list = wdList() if #list == 0 then local wd, wdQid, wdDisplay = getWikidataCity("P36") if wd then list = { { name = wd, wdQid = wdQid, wdDisplay = wdDisplay, branch = "" } } end end for i, cap in ipairs(list) do if i > MAX_CAPITALS then break end local qualifier, noTag = qualifierFor(i) table.insert(entries, { name = cap.name, wdQid = cap.wdQid, wdDisplay = cap.wdDisplay, qualifier = qualifier, noTag = noTag, note = getManual(args, noteNamesFor(i)), coordSuffix = (i == 1) and "" or tostring(i), }) end end -- Several capitals: an entry matching a Wikidata capital takes that capital's branch label. if #entries > 1 then for _, entry in ipairs(entries) do if not entry.qualifier and not entry.noTag then local want = normaliseCityName(entry.name):lower() for _, cap in ipairs(wdList()) do if cap.branch ~= "" and (cap.name:lower() == want or (cap.wdDisplay and cap.wdDisplay:lower() == want)) then entry.qualifier = cap.branch end end end end end return entries end -- Manual params win (slot N uses suffix N), =none suppresses, else Wikidata via QID, else gv title. local function resolveCapitalCoordinates(frame, args, entry, cleanName) local function names(prefix) if entry.coordSuffix == "" then return { prefix, prefix .. "1" } end return { prefix .. entry.coordSuffix } end local manual = getManualCoordinates(frame, args, names("latd"), names("latm"), names("latNS"), names("longd"), names("longm"), names("longEW")) if manual == "suppress" then return nil end if manual then return manual end if entry.wdQid then return getCoordinatesForQid(frame, entry.wdQid) end return getCityCoordinates(frame, cleanName) or getCoordinatesForQid(frame, findCapitalQid(cleanName)) end function p.main(frame, args) -- Fallback verification to catch argument slots accurately if frame context shifts if not args then args = frame frame = mw.getCurrentFrame() end local capitalEntries = collectCapitalEntries(args) local administrative = getManual(args, {"ynnyd_reiragh"}) local adminNote = getManual(args, {"noteyn_ynnyd_reiragh"}) -- Bare latd etc. bind to the capital's slot 1, else the administrative centre. local manualPrimaryCoords = getManualCoordinates(frame, args, "latd", "latm", "latNS", "longd", "longm", "longEW") local hasCapital = #capitalEntries > 0 -- With one capital, a duplicate largest city is dropped and noted as "(as y balley smoo)"; -- with several, every largest city is listed in its own row, with coordinates. local multiple = #capitalEntries > 1 local allEntries = collectLargestEntries(args) local largestEntries = {} local isSameAny = false for _, entry in ipairs(allEntries) do local cleanLower = mw.text.trim(entry.name):lower() local isSentinel = (cleanLower == "preeu-valley" or cleanLower == "preeu_valley") local largestLower = normaliseCityName(entry.name):lower() local matchesCapital = false for _, capEntry in ipairs(capitalEntries) do if normaliseCityName(capEntry.name):lower() == largestLower then matchesCapital = true end end if multiple then if not isSentinel then table.insert(largestEntries, entry) end elseif isSentinel or matchesCapital then isSameAny = true else table.insert(largestEntries, entry) end end -- Rows are collected first, then classed by position: {th (nil = continuation row), rowspan, td}. local pending = {} -- With several capitals the label rowspans all rows. if hasCapital then local label = args["sorçh_preeu-valley"] or "Preeu-valley" local displayLabel = '[[' .. label .. ']]' if isSameAny then displayLabel = '[[' .. label .. ']]<br/><small style="font-weight:normal;">(as y balley smoo)</small>' end for idx, entry in ipairs(capitalEntries) do -- Manual display text is kept. local cleanCapName, capManualDisplay, capTrailing = splitManualLink(entry.name) local capDisplayName = entry.wdDisplay or capManualDisplay or cleanCapName local text = '[[' .. cleanCapName .. '|' .. capDisplayName .. ']]' if capTrailing then text = text .. capTrailing end if entry.qualifier and entry.qualifier ~= "" then text = text .. ' (' .. entry.qualifier .. ')' end if entry.note and entry.note ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { entry.note } } end -- Slot 1 uses the bare coordinate params; slots 2-3 use suffixed ones. local capCoords if entry.coordSuffix == "" and manualPrimaryCoords == "suppress" then capCoords = nil elseif entry.coordSuffix == "" and manualPrimaryCoords then capCoords = manualPrimaryCoords else capCoords = resolveCapitalCoordinates(frame, args, entry, cleanCapName) end text = text .. coordSpan(capCoords) if idx == 1 then table.insert(pending, { th = displayLabel, rowspan = multiple and #capitalEntries or nil, td = text }) else table.insert(pending, { th = nil, td = text }) end end end -- Capital in exile: free wikitext, shown as its own row. local exile = getManual(args, {"preeu-valley_ayns_eebyrtys"}) if exile and not isNone(exile) then local exileLabel = args["sorçh_preeu-valley_ayns_eebyrtys"] or "Preeu-valley ayns eebyrtys" local exileNote = getManual(args, {"noteyn_preeu-valley_ayns_eebyrtys"}) if exileNote then exile = exile .. frame:expandTemplate{ title = "efn", args = { exileNote } } end table.insert(pending, { th = '[[' .. exileLabel .. ']]', wrap = true, td = exile }) end -- 2. ADMINISTRATIVE CENTER if administrative and mw.text.trim(administrative):lower() ~= "none" then local label = args["sorçh_ynnyd_reiragh"] or "Ynnyd reiragh" -- Manual display text is kept. local cleanAdminName, adminManualDisplay, adminTrailing = splitManualLink(administrative) local text = '[[' .. cleanAdminName .. '|' .. (adminManualDisplay or cleanAdminName) .. ']]' .. (adminTrailing or '') if adminNote and adminNote ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { adminNote } } end -- Manual-override-only -- no Wikidata coordinate fetch for an -- administrative centre (the old template never had one either). if not hasCapital then local adminCoords if manualPrimaryCoords == "suppress" then adminCoords = nil elseif manualPrimaryCoords then adminCoords = manualPrimaryCoords end text = text .. coordSpan(adminCoords) end table.insert(pending, { th = '[[' .. label .. ']]', td = text }) end -- With several entries the first <th> rowspans them all. if #largestEntries > 0 then local total = #largestEntries for idx, entry in ipairs(largestEntries) do -- Wikidata and manual display overrides are never both set. local cleanLargeName, largeManualDisplay, largeTrailing = splitManualLink(entry.name) local largeDisplayName = entry.wdDisplay or largeManualDisplay or cleanLargeName local text = '[[' .. cleanLargeName .. '|' .. largeDisplayName .. ']]' if largeTrailing then text = text .. largeTrailing end if entry.qualifier and entry.qualifier ~= "" then text = text .. ' (' .. entry.qualifier .. ')' end if entry.note and entry.note ~= "" then text = text .. frame:expandTemplate{ title = "efn", args = { entry.note } } end text = text .. coordSpan(resolveEntryCoordinates(frame, args, entry.coordSuffix, cleanLargeName, entry.wdQid)) if idx == 1 then table.insert(pending, { th = "Balley smoo", rowspan = (total > 1) and total or nil, td = text }) else table.insert(pending, { th = nil, td = text }) end end end if #pending == 0 then return nil end -- Lone row gets no class; otherwise top/middle/bottom merged classes. local subRows = {} local total = #pending for idx, row in ipairs(pending) do local class if total == 1 then class = "" elseif idx == 1 then class = "mergedtoprow" elseif idx == total then class = "mergedbottomrow" else class = "mergedrow" end local classAttr = (class ~= "") and trClass(class) or "" if row.th then local rowspanAttr = row.rowspan and (' rowspan="' .. row.rowspan .. '"') or '' table.insert(subRows, '<tr' .. classAttr .. '><th' .. rowspanAttr .. ' style="vertical-align:top; ' .. (row.wrap and '' or 'white-space:nowrap; ') .. 'text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. row.th .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. row.td .. '</td></tr>') else table.insert(subRows, '<tr' .. classAttr .. '><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. row.td .. '</td></tr>') end end return table.concat(subRows) end return p bvwaeu0q5fghei09jmguhg20v0uaiii Module:Kishtey fys çheer/bratteeyn 828 55831 394564 393454 2026-10-16T17:33:19Z MacTire02 219 -chaghteraghtyn 394564 Scribunto text/plain local p = {} local enmynCheerey = require("Module:Enmyn çheerey") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function getWikidataImage(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "string" then local file = mainsnak.datavalue.value if file and file ~= "" then return file end end end return nil end local NON_RECTANGULAR_FLAGS = { ["Flag of Nepal.svg"] = true, ["Flag of Ohio.svg"] = true, ["Flag of Switzerland.svg"] = true, } local function needsFlagBorder(flagFile) if not flagFile then return true end if NON_RECTANGULAR_FLAGS[flagFile] then return false end if mw.ustring.find(mw.ustring.lower(flagFile), "nepal") then return false end return true end function p.main(frame, args) local flag = getManual(args, {"jalloo_brattagh"}) if flag and mw.ustring.lower(flag) == "none" then flag = nil elseif not flag then flag = getWikidataImage("P41") end local flag2 = getManual(args, {"jalloo_brattagh_2", "jalloo_brattagh_elley"}) if flag2 and mw.ustring.lower(flag2) == "none" then flag2 = nil elseif not flag2 then flag2 = getWikidataImage("P163") end local arms = getManual(args, {"jalloo_armys", "jalloo_cleinney", "jalloo_cowrey"}) if arms and mw.ustring.lower(arms) == "none" then arms = nil elseif not arms then arms = getWikidataImage("P94") end local arms2 = getManual(args, {"jalloo_armys_2", "jalloo_cleinney_2"}) if arms2 and mw.ustring.lower(arms2) == "none" then arms2 = nil elseif not arms2 then arms2 = getWikidataImage("P237") end if not flag and not flag2 and not arms and not arms2 then return nil end local nameRaw = getManual(args, {"ennym_gienneydagh", "ennym", "ennym_çheerey", "ennym_çheer"}) or (mw.title.getCurrentTitle() and mw.title.getCurrentTitle().text) or "" local name = enmynCheerey.genitive(nameRaw) local data = { flags = {}, armses = {} } if flag then table.insert(data.flags, { image = flag, width = getManual(args, {"lheead_brattagh"}) or "125px", hasBorder = needsFlagBorder(flag), link = "Brattagh " .. name, label = getManual(args, {"fo-heidyl_brattagh"}) or "Brattagh" }) end if flag2 then table.insert(data.flags, { image = flag2, width = getManual(args, {"lheead_brattagh_2", "lheead_brattagh"}) or "100px", hasBorder = needsFlagBorder(flag2), link = "Brattagh " .. name, label = getManual(args, {"fo-heidyl_brattagh_2"}) or "Brattagh elley" }) end if arms then local kind = getManual(args, {"art_sorçh_cowrey", "sorçh_cowrey"}) or "Armys" table.insert(data.armses, { image = arms, width = getManual(args, {"lheead_armys", "lheead_cleinney", "lheead_cowrey"}) or "85px", link = kind .. " " .. name, label = getManual(args, {"sorçh_cowrey"}) or "Armys" }) end if arms2 then table.insert(data.armses, { image = arms2, width = getManual(args, {"lheead_armys_2", "lheead_cleinney_2"}) or "85px", link = "Armys " .. name, label = getManual(args, {"sorçh_cowrey_2"}) or "Armys" }) end local imageCells = {} local captionCells = {} local hasFlags = #data.flags > 0 local hasArms = #data.armses > 0 if hasFlags then local flagContent = {} for _, f in ipairs(data.flags) do -- `|border` is the real image option for the thumbborder line -- ("|style=..." is not valid inline image markup). local border = f.hasBorder and '|border' or "" table.insert(flagContent, '[[Coadan:' .. f.image .. '|' .. f.width .. border .. ']]') end -- Inline style="text-align:center;" (not the deprecated align= -- attribute) so mobile skins can't override it -- same fix applied -- to every cell and the inner table below. table.insert(imageCells, '<td style="text-align:center; ' .. (hasArms and "width:58%; " or "width:100%; ") .. 'vertical-align:middle;">' .. table.concat(flagContent, '<br/>') .. '</td>') -- Plain size, matching every other label (not wrapped in <small>, -- which on top of the outer table's own font-size:95% made these -- captions noticeably smaller than everything else). local flagCaptions = {} for _, f in ipairs(data.flags) do table.insert(flagCaptions, '[[' .. f.link .. '|' .. f.label .. ']]') end table.insert(captionCells, '<td style="text-align:center;">' .. table.concat(flagCaptions, '<br/>') .. '</td>') end if hasArms then local armsContent = {} for _, a in ipairs(data.armses) do table.insert(armsContent, '[[Coadan:' .. a.image .. '|' .. a.width .. ']]') end table.insert(imageCells, '<td style="text-align:center; width:auto; vertical-align:middle;">' .. table.concat(armsContent, '<br/>') .. '</td>') local armsCaptions = {} for _, a in ipairs(data.armses) do table.insert(armsCaptions, '[[' .. a.link .. '|' .. a.label .. ']]') end table.insert(captionCells, '<td style="text-align:center;">' .. table.concat(armsCaptions, '<br/>') .. '</td>') end return '<tr><td colspan="2" style="text-align:center; padding:0.5em 0.4em;"><table style="text-align:center; width:100%; background:none; margin:0 auto;"><tr>' .. table.concat(imageCells) .. '</tr><tr>' .. table.concat(captionCells) .. '</tr></table></td></tr>' end return p ne2oxl65mykqpttpesfkefcichbfb0q 394584 394564 2026-10-17T01:10:19Z MacTire02 219 y/yn 394584 Scribunto text/plain local p = {} local enmynCheerey = require("Module:Enmyn çheerey") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function getWikidataImage(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "string" then local file = mainsnak.datavalue.value if file and file ~= "" then return file end end end return nil end local NON_RECTANGULAR_FLAGS = { ["Flag of Nepal.svg"] = true, ["Flag of Ohio.svg"] = true, ["Flag of Switzerland.svg"] = true, } local function needsFlagBorder(flagFile) if not flagFile then return true end if NON_RECTANGULAR_FLAGS[flagFile] then return false end if mw.ustring.find(mw.ustring.lower(flagFile), "nepal") then return false end return true end -- Manx article after a vowel-final word: "Armys y Rank" but "Cowrey yn Toodaan". -- Only upgrades a leading "y" to "yn"; an existing "yn" (needed before a -- vowel-initial name) is never changed. local function joinKindAndName(kind, name) local lastChar = mw.ustring.sub(mw.ustring.lower(kind), -1) if mw.ustring.find(lastChar, "^[aeiouyàáâèéêìíîòóôùúû]$") then local rest = mw.ustring.match(name, "^[Yy] (.+)$") if rest then name = "yn " .. rest end end return kind .. " " .. name end function p.main(frame, args) local flag = getManual(args, {"jalloo_brattagh"}) if flag and mw.ustring.lower(flag) == "none" then flag = nil elseif not flag then flag = getWikidataImage("P41") end local flag2 = getManual(args, {"jalloo_brattagh_2", "jalloo_brattagh_elley"}) if flag2 and mw.ustring.lower(flag2) == "none" then flag2 = nil elseif not flag2 then flag2 = getWikidataImage("P163") end local arms = getManual(args, {"jalloo_armys", "jalloo_cleinney", "jalloo_cowrey"}) if arms and mw.ustring.lower(arms) == "none" then arms = nil elseif not arms then arms = getWikidataImage("P94") end local arms2 = getManual(args, {"jalloo_armys_2", "jalloo_cleinney_2"}) if arms2 and mw.ustring.lower(arms2) == "none" then arms2 = nil elseif not arms2 then arms2 = getWikidataImage("P237") end if not flag and not flag2 and not arms and not arms2 then return nil end local nameRaw = getManual(args, {"ennym_gienneydagh", "ennym", "ennym_çheerey", "ennym_çheer"}) or (mw.title.getCurrentTitle() and mw.title.getCurrentTitle().text) or "" local name = enmynCheerey.genitive(nameRaw) local data = { flags = {}, armses = {} } if flag then table.insert(data.flags, { image = flag, width = getManual(args, {"lheead_brattagh"}) or "125px", hasBorder = needsFlagBorder(flag), link = "Brattagh " .. name, label = getManual(args, {"fo-heidyl_brattagh"}) or "Brattagh" }) end if flag2 then table.insert(data.flags, { image = flag2, width = getManual(args, {"lheead_brattagh_2", "lheead_brattagh"}) or "100px", hasBorder = needsFlagBorder(flag2), link = "Brattagh " .. name, label = getManual(args, {"fo-heidyl_brattagh_2"}) or "Brattagh elley" }) end if arms then local kind = getManual(args, {"art_sorçh_cowrey", "sorçh_cowrey"}) or "Armys" table.insert(data.armses, { image = arms, width = getManual(args, {"lheead_armys", "lheead_cleinney", "lheead_cowrey"}) or "85px", link = joinKindAndName(kind, name), label = getManual(args, {"sorçh_cowrey"}) or "Armys" }) end if arms2 then table.insert(data.armses, { image = arms2, width = getManual(args, {"lheead_armys_2", "lheead_cleinney_2"}) or "85px", link = joinKindAndName(getManual(args, {"art_sorçh_cowrey_2", "sorçh_cowrey_2"}) or "Armys", name), label = getManual(args, {"sorçh_cowrey_2"}) or "Armys" }) end local imageCells = {} local captionCells = {} local hasFlags = #data.flags > 0 local hasArms = #data.armses > 0 if hasFlags then local flagContent = {} for _, f in ipairs(data.flags) do -- `|border` is the real image option for the thumbborder line -- ("|style=..." is not valid inline image markup). local border = f.hasBorder and '|border' or "" table.insert(flagContent, '[[Coadan:' .. f.image .. '|' .. f.width .. border .. ']]') end -- Inline style="text-align:center;" (not the deprecated align= -- attribute) so mobile skins can't override it -- same fix applied -- to every cell and the inner table below. table.insert(imageCells, '<td style="text-align:center; ' .. (hasArms and "width:58%; " or "width:100%; ") .. 'vertical-align:middle;">' .. table.concat(flagContent, '<br/>') .. '</td>') -- Plain size, matching every other label (not wrapped in <small>, -- which on top of the outer table's own font-size:95% made these -- captions noticeably smaller than everything else). local flagCaptions = {} for _, f in ipairs(data.flags) do table.insert(flagCaptions, '[[' .. f.link .. '|' .. f.label .. ']]') end table.insert(captionCells, '<td style="text-align:center;">' .. table.concat(flagCaptions, '<br/>') .. '</td>') end if hasArms then local armsContent = {} for _, a in ipairs(data.armses) do table.insert(armsContent, '[[Coadan:' .. a.image .. '|' .. a.width .. ']]') end table.insert(imageCells, '<td style="text-align:center; width:auto; vertical-align:middle;">' .. table.concat(armsContent, '<br/>') .. '</td>') local armsCaptions = {} for _, a in ipairs(data.armses) do table.insert(armsCaptions, '[[' .. a.link .. '|' .. a.label .. ']]') end table.insert(captionCells, '<td style="text-align:center;">' .. table.concat(armsCaptions, '<br/>') .. '</td>') end return '<tr><td colspan="2" style="text-align:center; padding:0.5em 0.4em;"><table style="text-align:center; width:100%; background:none; margin:0 auto;"><tr>' .. table.concat(imageCells) .. '</tr><tr>' .. table.concat(captionCells) .. '</tr></table></td></tr>' end return p 8pu1ydyuldzvygf6nhiw2th1d44y686 Module:Kishtey fys çheer/cowraghyn 828 55832 394536 394518 2026-10-16T12:01:54Z MacTire02 219 imraaghyn 394536 Scribunto text/plain local p = {} -- Max |jarroo-raaN= motto-name slots checked, beyond the bare/slot-1 -- spelling. Rwanda needs 4 (one per official language); set above that -- for headroom. Same convention as aarheynn.lua's MAX_LEVELS. local MAX_MOTTO_NAMES = 6 local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged -- (Scribunto pre-expands a literal <ref> into a strip marker; if stripping -- those markers leaves nothing, it was already tag(s)). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Wraps a plain language name in [[...]] unless already a wikilink (avoids -- double-bracketing a manual override), same guard as reiltys.lua's wikilinkLabel. local function linkPlainText(text) if not text or text == "" then return text end if mw.ustring.find(text, "%[%[") then return text end return "[[" .. text .. "]]" end local function getMottoData(args) local motto = getManual(args, {"jarroo-raa_ashoonagh", "jarroo_raa", "jarroo-raa", "jarroo-raa1"}) -- |jarroo-raa=none suppresses the motto entirely (manual text AND the -- Wikidata fallback) -- override valve for bad Wikidata data. if motto and mw.ustring.lower(motto) == "none" then return nil end local reference = getManual(args, {"imraa_jarroo_raa", "imraa_jarroo-raa"}) local chyndaa = getManual(args, {"çhyndaa_jarroo-raa", "chyndaa_jarroo-raa", "çhyndaa_jarroo_raa", "chyndaa_jarroo_raa"}) -- Transliteration is per-name, not shared (slot 1 keeps the bare, -- unnumbered spelling as a synonym, same as çhengey_jarroo-raa). local tessen = getManual(args, {"tessen-lettyraghey_jarroo-raa", "tessen-lettyraghey_jarroo_raa", "tessen-lettyraghey_jarroo-raa1", "tessen-lettyraghey_jarroo_raa1"}) local chengey = getManual(args, {"çhengey_jarroo-raa", "çhengey_jarroo_raa", "çhengey_jarroo-raa1", "çhengey_jarroo_raa1"}) -- A motto can have more than one equally official name (e.g. stated -- separately in two or more languages, neither a "translation" of the -- other -- that's |chyndaa_jarroo-raa=). Slot 1 keeps every legacy -- spelling and the P1451 Wikidata fallback; slots 2+ are manual-only. -- Each name carries its own çhengey (language) and tessen -- (transliteration); chyndaa is shared UNLESS distinctMode (below). local names = {} if motto then table.insert(names, { text = motto, chengey = chengey, tessen = tessen, chyndaa = chyndaa }) else local entity = mw.wikibase.getEntityObject() if entity then local statements = entity:getBestStatements("P1451") if statements and #statements > 0 then for _, statement in ipairs(statements) do if statement.mainsnak and statement.mainsnak.datavalue then local value = statement.mainsnak.datavalue.value if value and value.text then table.insert(names, { text = value.text, chengey = chengey, tessen = tessen, chyndaa = chyndaa }) break end end end end end end -- distinctMode: true once a second/third motto has its OWN translation -- set -- signals two genuinely separate mottos (each shown with its own -- translation directly beneath it) rather than one motto restated in -- multiple languages (single shared translation, shown once at the end). local distinctMode = false for i = 2, MAX_MOTTO_NAMES do -- Hyphen-only: "jarroo-raa" is one hyphenated word, not two words -- joined by a separator, so "jarroo_raa" + i is a typo, not a valid -- alternate spelling (unlike balley_smoo/balley-smoo). local extra = getManual(args, {"jarroo-raa" .. i}) if extra and mw.ustring.lower(extra) ~= "none" then local extraChengey = getManual(args, {"çhengey_jarroo-raa" .. i, "çhengey_jarroo_raa" .. i}) local extraTessen = getManual(args, {"tessen-lettyraghey_jarroo-raa" .. i, "tessen-lettyraghey_jarroo_raa" .. i}) local extraChyndaa = getManual(args, {"çhyndaa_jarroo-raa" .. i, "chyndaa_jarroo-raa" .. i, "çhyndaa_jarroo_raa" .. i, "chyndaa_jarroo_raa" .. i}) if extraChyndaa and extraChyndaa ~= "" then distinctMode = true end table.insert(names, { text = extra, chengey = extraChengey, tessen = extraTessen, chyndaa = extraChyndaa }) end end if #names == 0 then return nil end local finalRef = wrapReference(reference) return { names = names, reference = finalRef, chyndaa = chyndaa, distinctMode = distinctMode } end -- Given a property holding an item value (e.g. P85 = anthem), resolves the -- linked item to a page title (gv sitelink, else label). Returns the title, -- the item's own ID, and any P51 (audio) qualifier on this same statement -- (a shared anthem often carries audio per-country this way). local function getWikidataItemInfo(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local statement = statements[1] local mainsnak = statement.mainsnak if not (mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid") then return nil end local value = mainsnak.datavalue.value local id = value.id or ("Q" .. tostring(value["numeric-id"])) local title = mw.wikibase.sitelink(id) if not title or title == "" then title = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) end if not title or title == "" then return nil end local audioQuals = statement.qualifiers and statement.qualifiers.P51 local audioSnak = audioQuals and audioQuals[1] local qualifierAudio = audioSnak and audioSnak.snaktype == "value" and audioSnak.datavalue and audioSnak.datavalue.type == "string" and audioSnak.datavalue.value if qualifierAudio == "" then qualifierAudio = nil end return { id = id, title = title, qualifierAudio = qualifierAudio } end -- Returns a Wikidata item's own standalone P51 (audio) file, if any -- as -- opposed to the per-country qualifier checked first above. local function getWikidataAudioFile(id) if not id then return nil end local entity = mw.wikibase.getEntityObject(id) if not entity then return nil end local statements = entity:getBestStatements("P51") if not statements or #statements == 0 then return nil end local mainsnak = statements[1].mainsnak if not (mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "string") then return nil end local file = mainsnak.datavalue.value if file and file ~= "" then return file end return nil end -- Codepoint ranges treated as Latin/script-neutral for italicisation -- (Latin blocks, IPA, diacritics, general punctuation). Anything else -- (Cyrillic, Greek, Arabic, CJK, Devanagari, ...) isn't italicised, per -- MOS:FOREIGNITALIC. local function isLatinOrNeutral(cp) if cp < 0x80 then return true end if cp <= 0x02AF then return true end if cp >= 0x0300 and cp <= 0x036F then return true end if cp >= 0x1E00 and cp <= 0x1EFF then return true end if cp >= 0x2000 and cp <= 0x206F then return true end return false end local function isNonLatinScript(text) if not text or text == "" then return false end local length = mw.ustring.len(text) if not length or length == 0 then return false end local codepoints = { mw.ustring.codepoint(text, 1, length) } for _, cp in ipairs(codepoints) do if not isLatinOrNeutral(cp) then return true end end return false end function p.main(frame, args) local motto = getMottoData(args) local rows = {} if motto then -- One line per official name. Each gets its own script-based -- italics, language tag, and transliteration. local nameLines = {} for _, nameEntry in ipairs(motto.names) do -- mw.ustring.gsub (codepoint-aware), not plain :gsub -- a -- byte-wise gsub can truncate the last byte of a non-Latin -- character and corrupt it. local nameText = mw.ustring.gsub(mw.ustring.gsub(mw.text.trim(nameEntry.text), '^["“]', ''), '["”]$', '') -- Italicised purely by script (MOS:FOREIGNITALIC), wikilink or not. if not isNonLatinScript(nameText) then nameText = "''" .. nameText .. "''" end -- çhengey_jarroo-raa names the motto's own language. Native -- <small> tag, not {{small}} -- a literal "{{...}}" string -- returned from a module isn't re-parsed as a template call. if nameEntry.chengey and nameEntry.chengey ~= "" then nameText = nameText .. "&nbsp;<small>(" .. linkPlainText(nameEntry.chengey) .. ")</small>" end -- A transliteration is always Latin-script, so quotes, not -- italics -- attached to this name's own line. if nameEntry.tessen and nameEntry.tessen ~= "" then nameText = nameText .. " <br/>(“" .. nameEntry.tessen .. "”)" end -- Distinct mottos: each one's own translation goes directly -- under its own line, not deferred to the very end. if motto.distinctMode and nameEntry.chyndaa and nameEntry.chyndaa ~= "" then nameText = nameText .. " <br/><small>“" .. nameEntry.chyndaa .. "”</small>" end table.insert(nameLines, nameText) end local baseText = table.concat(nameLines, "<br/>") local mottoNote = getManual(args, {"noteyn_jarroo-raa", "noteyn_jarroo_raa"}) if mottoNote and mottoNote ~= "" then baseText = baseText .. frame:expandTemplate{ title = "efn", args = { mottoNote } } end if motto.reference then baseText = baseText .. motto.reference end -- One shared motto restated in multiple languages: single shared -- translation shown once at the very end. if not motto.distinctMode and motto.chyndaa and motto.chyndaa ~= "" then baseText = baseText .. " <br/><small>“" .. motto.chyndaa .. "”</small>" end table.insert(rows, "'''[[Jarroo-raa]]:&nbsp;'''" .. baseText) end -- wikidataProperty is optional: pass a property (e.g. "P85") to fall -- back to Wikidata when no manual parameter is set for this anthem slot. local function formatAnthem(label, key, wikidataProperty) local title = getManual(args, {key, key .. "1"}) -- |<key>=none suppresses this row entirely. if title and mw.ustring.lower(title) == "none" then return end local wikidataInfo = nil if not title and wikidataProperty then wikidataInfo = getWikidataItemInfo(wikidataProperty) if wikidataInfo then title = wikidataInfo.title end end if not title then return end -- |gyn_cowraghyn_aaraa_<key>= suppresses the curly quotes otherwise -- always wrapped around the title -- for places with no single -- official anthem (e.g. Northern Ireland), where what's shown is a -- descriptive label, not an actual title. local suppressQuotes = getManual(args, {"gyn_cowraghyn_aaraa_" .. key, "gyn_cowraghyn_aaraa_" .. key .. "1"}) ~= nil -- One line per official title (e.g. a bilingual anthem, same tune, -- two equally-official lyrics sets). Slot 1 keeps the Wikidata -- fallback; slots 2/3 are manual-only, each with its own -- transliteration. local names = { { text = title, chengey = getManual(args, {"çhengey_" .. key, "çhengey_" .. key .. "1"}), tessen = getManual(args, {"tessen-lettyraghey_" .. key, "tessen-lettyraghey_" .. key .. "1"}) }, } for i = 2, 3 do local extra = getManual(args, {key .. i}) if extra and mw.ustring.lower(extra) ~= "none" then table.insert(names, { text = extra, chengey = getManual(args, {"çhengey_" .. key .. i}), tessen = getManual(args, {"tessen-lettyraghey_" .. key .. i}), }) end end local nameLines = {} for _, nameEntry in ipairs(names) do -- Same UTF-8-safe quote-stripping as the motto above. local clean = mw.ustring.gsub(mw.ustring.gsub(mw.text.trim(nameEntry.text), '^["“]', ''), '["”]$', '') if not mw.ustring.find(clean, "%[%[") then clean = '[[' .. clean .. '|' .. clean .. ']]' end local line = suppressQuotes and clean or ('“' .. clean .. '”') if nameEntry.chengey and nameEntry.chengey ~= "" then line = line .. "&nbsp;<small>(" .. linkPlainText(nameEntry.chengey) .. ")</small>" end if nameEntry.tessen and nameEntry.tessen ~= "" then line = line .. " <br/>(“" .. nameEntry.tessen .. "”)" end table.insert(nameLines, line) end local display = table.concat(nameLines, "<br/>") local note = getManual(args, {"noteyn_" .. key}) if note and note ~= "" then display = display .. frame:expandTemplate{ title = "efn", args = { note } } end local ref = getManual(args, {"imraa_" .. key}) if ref then display = display .. wrapReference(ref) end local chyndaa = getManual(args, {"çhyndaa_" .. key, "chyndaa_" .. key}) if chyndaa and chyndaa ~= "" then if suppressQuotes then display = display .. " <br/><small>" .. chyndaa .. "</small>" else display = display .. " <br/><small>“" .. chyndaa .. "”</small>" end end local audio = getManual(args, {"coadan_" .. key}) if (not audio or audio == "") and wikidataInfo then -- Prefer a per-country qualifier over the anthem item's own -- standalone P51. audio = wikidataInfo.qualifierAudio or getWikidataAudioFile(wikidataInfo.id) end if audio and audio ~= "" then display = display .. '<br/><div style="text-align:center; margin-top:0.3em;">[[Coadan:' .. audio .. '|center]]</div>' end table.insert(rows, "'''" .. label .. ":&nbsp;'''" .. display) end formatAnthem("[[Arrane ashoonagh]]", "arrane_ashoonagh", "P85") formatAnthem("Anthym", "arrane") formatAnthem("[[Arrane reeoil]]", "arrane_reeoil") if #rows == 0 then return nil end return '<tr><td colspan="2" style="padding:0.4em; line-height:1.2em; text-align:center;">' .. table.concat(rows, "<br/>") .. '</td></tr>' end return p libcftvn9m1gdk7hmfuotcplj8gwfnm Module:Kishtey fys çheer/çhengaghyn 828 55833 394534 394476 2026-10-16T12:00:35Z MacTire02 219 imraaghyn 394534 Scribunto text/plain local p = {} local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function manxSort(a, b) local function norm(text) return text:lower():gsub("çh", "ch") end return norm(a) < norm(b) end -- Wraps a manual citation in <ref>...</ref>, unless it's already fully -- <ref>-tagged (Scribunto expands a literal <ref> in a parameter into an -- opaque \127UNIQ...QINU\127 strip marker before this module sees it, so we -- strip those out and check what's left -- nothing left means it was -- already tag(s), pass through unchanged; real text left over -- e.g. a -- bare {{cite web}} call whose own <templatestyles/> leaves an incidental -- marker -- means it still needs wrapping). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Splices `insertion` (an efn footnote marker and/or wrapped <ref>) in -- just before the deepest trailing closing tag, instead of appending it -- after the whole value. Reported live, with screenshots, across THREE -- rounds: (1) a manually-typed `{{hlist|[[Faaroish]]|[[Danvargish]]{{efn| -- ...}}}}` value (the footnote embedded INSIDE one hlist item) rendered -- with the footnote marker "pushed down", no longer level with the -- previous item -- traced to `{{hlist}}` itself expanding, before this -- module ever sees the parameter, into a BLOCK-level -- `<div class="hlist...">...</div>` wrapping a real `<ul><li>...</li> -- </ul>` list; (2) once the footnote was instead moved out to this -- module's own `noteyn_çhengaghyn_oikoil` parameter, an EARLIER version of -- this fix spliced the insertion in just before the trailing `</div>` -- alone -- which fixed this module's own bare `<div class="hlist">` wrapper -- (no `<ul>`/`<li>` at all), but NOT a real `{{hlist}}` call: splicing -- before `</div>` there lands the insertion right after the closing -- `</ul>` instead, as a sibling of that `<ul>` -- which is ALSO -- block-level by default, so it still got forced onto its own new line, -- just one tag deeper. Confirmed still broken live after that first fix -- shipped, with another screenshot showing the exact same "orphaned on -- its own line" symptom unchanged. -- -- Real fix: peel every trailing closing tag off the end of the value -- -- `</li></ul></div>` for a real `{{hlist}}`-expanded list, or just -- `</div>` for this module's own bare hlist wrapper -- down to the actual -- last piece of real content, splice the insertion in right there, then -- put every peeled tag back on in its original order. For a real list -- this lands the insertion INSIDE the final `<li>`, as part of that -- list item's own inline content (hlist's CSS sets `li { display: -- inline; }`, so content inside one `<li>` stays on the same line as its -- sibling `<li>`s) -- never as a sibling of a block-level `<ul>` or `<div>`, -- which is what forces a new line either way. Any other shape (plain -- text, a bare `[[link]]` with no tags at all -- the sentinel phrase's -- own branch) is unaffected: no trailing closing tag to peel, so the -- insertion is appended at the very end exactly as before. local function appendInsideTrailingBlock(text, insertion) if not insertion or insertion == "" then return text end local trailingTags = {} local rest = text while true do local tag = rest:match("(</%a[%w]*>)%s*$") if not tag then break end local tagStart = rest:find(tag .. "%s*$") table.insert(trailingTags, 1, tag) rest = rest:sub(1, tagStart - 1) end if #trailingTags == 0 then return text .. insertion end return rest .. insertion .. table.concat(trailingTags) end local function getWikidataLanguageItems(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local value = mainsnak.datavalue.value local id = value.id or ("Q" .. tostring(value["numeric-id"])) local label = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) if label and label ~= "" then table.insert(items, { id = id, name = label }) end end end if #items == 0 then return nil end return items end local function itemsToRaw(items, excludeIds) local names = {} for _, item in ipairs(items) do if not (excludeIds and excludeIds[item.id]) then table.insert(names, item.name) end end if #names == 0 then return nil end return table.concat(names, ",") end -- "Çhengey oikoil erbee" ("[there is] no official language") is a -- descriptive Manx phrase an editor types when a country genuinely has no -- official language -- it is NOT an article title, so it must never be -- wikilinked. Left to the generic comma-split/self-link logic below, it was -- being wrapped exactly like a real language name (`[[Çhengey oikoil -- erbee|Çhengey oikoil erbee]]`), and any stray bracket characters riding -- along with it (copy-pasted footnote markers, a leftover manual link -- attempt, etc.) then nested inside that outer [[...]] pair and broke -- MediaWiki's link parser, rendering as literal unparsed bracket/pipe text -- instead of a link -- exactly the "no official language" row bug reported. local NO_OFFICIAL_LANGUAGE = "Çhengey oikoil erbee" local function buildLanguageValue(raw, ref, note, frame) if not raw or mw.text.trim(raw):lower() == "none" then return nil, 0 end -- Watch for the sentinel by its first three words (a plain byte-prefix -- check -- safe even with Ç's multi-byte UTF-8 encoding, since this is -- an exact literal comparison, not a character-aware slice). Real -- citations for this claim are often several {{cite journal}}/{{cite -- book}} calls typed directly after the phrase (old-template habit -- -- see wrapReference's own note below) -- e.g. "Çhengey oikoil -- erbee<ref name=\"rights\">{{cite journal|...}}</ref><ref>{{cite -- book|...}}</ref><ref name=\"Footitt\">{{cite book|...}}</ref>". -- Rather than trying to parse out, count, or reorder whatever follows -- the phrase, once the prefix matches the WHOLE value is passed through -- completely unchanged (matching the already-pre-linked [[...]] branch -- just below) -- so every citation survives byte-for-byte, however -- elaborate, and the phrase itself is never wrapped in a self-link or -- piped like a real language name. if raw:sub(1, #NO_OFFICIAL_LANGUAGE) == NO_OFFICIAL_LANGUAGE then local display = raw if note and note ~= "" and frame then display = display .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then display = display .. wrapReference(ref) end return display, 1 end if raw:find("%[%[", 1, false) then local display = raw local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) local linkCount = 0 for _ in raw:gmatch("%[%[") do linkCount = linkCount + 1 end return display, linkCount end -- Strip any ref out of this comma-separated field before splitting -- a -- literal <ref> typed here (rather than via imraa_*) arrives as a strip -- marker (see wrapReference above), so both shapes are stripped. local cleaned = raw:gsub("<ref[^>]*>.-</ref>", ""):gsub("<ref[^>]*/>", ""):gsub("\127UNIQ.-QINU\127", "") local names = mw.text.split(cleaned, ",", true) local filteredNames = {} for _, part in ipairs(names) do local trimmed = mw.text.trim(part) if trimmed ~= "" then table.insert(filteredNames, trimmed) end end if #filteredNames == 0 then return nil, 0 end table.sort(filteredNames, manxSort) local parts = {} for _, name in ipairs(filteredNames) do if name == NO_OFFICIAL_LANGUAGE or name:find("[%[%]]") then -- Never self-link the sentinel phrase, or a fragment that already -- carries stray bracket characters -- nesting brackets inside a -- [[...]] pair breaks the link parser (see comment above). table.insert(parts, name) else table.insert(parts, '[[' .. name .. '|' .. name .. ']]') end end local display = '<div class="hlist">' .. table.concat(parts, '&nbsp;· ') .. '</div>' local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) return display, #filteredNames end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local officialItems = nil local officialRaw = getManual(args, {"çhengaghyn_oikoil", "çhengey_oikoil"}) if not officialRaw then officialItems = getWikidataLanguageItems("P37") officialRaw = itemsToRaw(officialItems) end local regionalRaw = getManual(args, {"çhengaghyn_ardjynagh", "çhengey_ardjynagh"}) local minorityRaw = getManual(args, {"mynçhengaghyn", "mynçhengey"}) local otherRaw = getManual(args, {"çhengaghyn", "çhengey"}) local official, offCount = buildLanguageValue(officialRaw, getManual(args, {"imraa_çhengaghyn_oikoil", "imraa_çhengey_oikoil"}), getManual(args, {"noteyn_çhengaghyn_oikoil", "noteyn_çhengey_oikoil"}), frame) local regional, regCount = buildLanguageValue(regionalRaw, getManual(args, {"imraa_çhengaghyn_ardjynagh", "imraa_çhengey_ardjynagh"}), getManual(args, {"noteyn_çhengaghyn_ardjynagh", "noteyn_çhengey_ardjynagh"}), frame) local minority, minCount = buildLanguageValue(minorityRaw, getManual(args, {"imraa_mynçhengaghyn", "imraa_mynçhengey"}), getManual(args, {"noteyn_mynçhengaghyn", "noteyn_mynçhengey"}), frame) local other, othCount = buildLanguageValue(otherRaw, getManual(args, {"imraa_çhengaghyn", "imraa_çhengey"}), getManual(args, {"noteyn_çhengaghyn", "noteyn_çhengey"}), frame) local subRows = {} if official then local label = offCount > 1 and "[[Çhengey oikoil|Çhengaghyn oikoil]]" or "[[Çhengey oikoil]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. label .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. official .. '</td></tr>') if regional then local rLabel = regCount > 1 and "Çhengaghyn&nbsp;ardjynagh er&nbsp;enney" or "Çhengey&nbsp;ardjynagh er&nbsp;enney" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end elseif regional then local rLabel = regCount > 1 and "Çhengaghyn ardjynagh er enney" or "Çhengey ardjynagh er enney" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end if minority then local mLabel = minCount > 1 and "[[Mynçhengey|Mynçhengaghyn]]" or "[[Mynçhengey]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. mLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. minority .. '</td></tr>') end if other then local oLabel = args["sorçh_çhengaghyn"] or (othCount > 1 and "Çhengaghyn" or "Çhengey") table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. oLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. other .. '</td></tr>') end if #subRows == 0 then return nil end return table.concat(subRows) end return p d6ipo2xzix426nxf7y5ahvdpo353yez 394566 394534 2026-10-16T17:34:14Z MacTire02 219 -chaghteraghtyn 394566 Scribunto text/plain local p = {} local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function manxSort(a, b) local function norm(text) return text:lower():gsub("çh", "ch") end return norm(a) < norm(b) end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged -- (Scribunto pre-expands a literal <ref> into a strip marker; if stripping -- those markers leaves nothing, it was already tag(s)). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Splices `insertion` (an efn footnote marker and/or wrapped <ref>) inside -- the deepest trailing closing tag rather than after it, so it lands -- inside the final <li> of an hlist (li is display:inline there) instead -- of as a sibling of a block-level </ul>/</div> -- which would force it -- onto its own new line. Peels every trailing closing tag off, splices -- the insertion in at the real content, then restores the tags in order. -- Plain text/a bare [[link]] with no trailing tags is just appended to. local function appendInsideTrailingBlock(text, insertion) if not insertion or insertion == "" then return text end local trailingTags = {} local rest = text while true do local tag = rest:match("(</%a[%w]*>)%s*$") if not tag then break end local tagStart = rest:find(tag .. "%s*$") table.insert(trailingTags, 1, tag) rest = rest:sub(1, tagStart - 1) end if #trailingTags == 0 then return text .. insertion end return rest .. insertion .. table.concat(trailingTags) end local function getWikidataLanguageItems(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local value = mainsnak.datavalue.value local id = value.id or ("Q" .. tostring(value["numeric-id"])) local label = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) if label and label ~= "" then table.insert(items, { id = id, name = label }) end end end if #items == 0 then return nil end return items end local function itemsToRaw(items, excludeIds) local names = {} for _, item in ipairs(items) do if not (excludeIds and excludeIds[item.id]) then table.insert(names, item.name) end end if #names == 0 then return nil end return table.concat(names, ",") end -- "Çhengey oikoil erbee" ("[there is] no official language") is a -- descriptive phrase, not an article title -- it must never be wikilinked -- (and any stray brackets riding along with it, e.g. copy-pasted footnote -- markers, must not nest inside an outer [[...]] pair either). local NO_OFFICIAL_LANGUAGE = "Çhengey oikoil erbee" local function buildLanguageValue(raw, ref, note, frame) if not raw or mw.text.trim(raw):lower() == "none" then return nil, 0 end -- Byte-prefix match (safe even with Ç's multi-byte UTF-8 encoding). -- Whatever follows the phrase (often several {{cite ...}} calls typed -- directly after it) is passed through completely unchanged. if raw:sub(1, #NO_OFFICIAL_LANGUAGE) == NO_OFFICIAL_LANGUAGE then local display = raw if note and note ~= "" and frame then display = display .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then display = display .. wrapReference(ref) end return display, 1 end if raw:find("%[%[", 1, false) then local display = raw local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) local linkCount = 0 for _ in raw:gmatch("%[%[") do linkCount = linkCount + 1 end return display, linkCount end -- Strip any ref out before splitting (a literal <ref> typed here rather -- than via imraa_* can arrive as a strip marker). local cleaned = raw:gsub("<ref[^>]*>.-</ref>", ""):gsub("<ref[^>]*/>", ""):gsub("\127UNIQ.-QINU\127", "") local names = mw.text.split(cleaned, ",", true) local filteredNames = {} for _, part in ipairs(names) do local trimmed = mw.text.trim(part) if trimmed ~= "" then table.insert(filteredNames, trimmed) end end if #filteredNames == 0 then return nil, 0 end table.sort(filteredNames, manxSort) local parts = {} for _, name in ipairs(filteredNames) do if name == NO_OFFICIAL_LANGUAGE or name:find("[%[%]]") then -- never self-link the sentinel phrase or a fragment with stray brackets table.insert(parts, name) else table.insert(parts, '[[' .. name .. '|' .. name .. ']]') end end local display = '<div class="hlist">' .. table.concat(parts, '&nbsp;· ') .. '</div>' local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) return display, #filteredNames end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local officialItems = nil local officialRaw = getManual(args, {"çhengaghyn_oikoil", "çhengey_oikoil"}) if not officialRaw then officialItems = getWikidataLanguageItems("P37") officialRaw = itemsToRaw(officialItems) end local regionalRaw = getManual(args, {"çhengaghyn_ardjynagh", "çhengey_ardjynagh"}) local minorityRaw = getManual(args, {"mynçhengaghyn", "mynçhengey"}) local otherRaw = getManual(args, {"çhengaghyn", "çhengey"}) local official, offCount = buildLanguageValue(officialRaw, getManual(args, {"imraa_çhengaghyn_oikoil", "imraa_çhengey_oikoil"}), getManual(args, {"noteyn_çhengaghyn_oikoil", "noteyn_çhengey_oikoil"}), frame) local regional, regCount = buildLanguageValue(regionalRaw, getManual(args, {"imraa_çhengaghyn_ardjynagh", "imraa_çhengey_ardjynagh"}), getManual(args, {"noteyn_çhengaghyn_ardjynagh", "noteyn_çhengey_ardjynagh"}), frame) local minority, minCount = buildLanguageValue(minorityRaw, getManual(args, {"imraa_mynçhengaghyn", "imraa_mynçhengey"}), getManual(args, {"noteyn_mynçhengaghyn", "noteyn_mynçhengey"}), frame) local other, othCount = buildLanguageValue(otherRaw, getManual(args, {"imraa_çhengaghyn", "imraa_çhengey"}), getManual(args, {"noteyn_çhengaghyn", "noteyn_çhengey"}), frame) local subRows = {} if official then local label = offCount > 1 and "[[Çhengey oikoil|Çhengaghyn oikoil]]" or "[[Çhengey oikoil]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. label .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. official .. '</td></tr>') if regional then local rLabel = regCount > 1 and "Çhengaghyn&nbsp;ardjynagh er&nbsp;enney" or "Çhengey&nbsp;ardjynagh er&nbsp;enney" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end elseif regional then local rLabel = regCount > 1 and "Çhengaghyn ardjynagh er enney" or "Çhengey ardjynagh er enney" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end if minority then local mLabel = minCount > 1 and "[[Mynçhengey|Mynçhengaghyn]]" or "[[Mynçhengey]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. mLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. minority .. '</td></tr>') end if other then local oLabel = args["sorçh_çhengaghyn"] or (othCount > 1 and "Çhengaghyn" or "Çhengey") table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. oLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. other .. '</td></tr>') end if #subRows == 0 then return nil end return table.concat(subRows) end return p tcpla5xafq83jswmhk8bgxgz18icqkt 394574 394566 2026-10-16T17:44:20Z MacTire02 219 ++ 394574 Scribunto text/plain local p = {} local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function manxSort(a, b) local function norm(text) return text:lower():gsub("çh", "ch") end return norm(a) < norm(b) end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged -- (Scribunto pre-expands a literal <ref> into a strip marker; if stripping -- those markers leaves nothing, it was already tag(s)). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Splices `insertion` (an efn footnote marker and/or wrapped <ref>) inside -- the deepest trailing closing tag rather than after it, so it lands -- inside the final <li> of an hlist (li is display:inline there) instead -- of as a sibling of a block-level </ul>/</div> -- which would force it -- onto its own new line. Peels every trailing closing tag off, splices -- the insertion in at the real content, then restores the tags in order. -- Plain text/a bare [[link]] with no trailing tags is just appended to. local function appendInsideTrailingBlock(text, insertion) if not insertion or insertion == "" then return text end local trailingTags = {} local rest = text while true do local tag = rest:match("(</%a[%w]*>)%s*$") if not tag then break end local tagStart = rest:find(tag .. "%s*$") table.insert(trailingTags, 1, tag) rest = rest:sub(1, tagStart - 1) end if #trailingTags == 0 then return text .. insertion end return rest .. insertion .. table.concat(trailingTags) end local function getWikidataLanguageItems(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local value = mainsnak.datavalue.value local id = value.id or ("Q" .. tostring(value["numeric-id"])) local label = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) if label and label ~= "" then table.insert(items, { id = id, name = label }) end end end if #items == 0 then return nil end return items end local function itemsToRaw(items, excludeIds) local names = {} for _, item in ipairs(items) do if not (excludeIds and excludeIds[item.id]) then table.insert(names, item.name) end end if #names == 0 then return nil end return table.concat(names, ",") end -- "Çhengey oikoil erbee" ("[there is] no official language") is a -- descriptive phrase, not an article title -- it must never be wikilinked -- (and any stray brackets riding along with it, e.g. copy-pasted footnote -- markers, must not nest inside an outer [[...]] pair either). local NO_OFFICIAL_LANGUAGE = "Çhengey oikoil erbee" local function buildLanguageValue(raw, ref, note, frame) if not raw or mw.text.trim(raw):lower() == "none" then return nil, 0 end -- Byte-prefix match (safe even with Ç's multi-byte UTF-8 encoding). -- Whatever follows the phrase (often several {{cite ...}} calls typed -- directly after it) is passed through completely unchanged. if raw:sub(1, #NO_OFFICIAL_LANGUAGE) == NO_OFFICIAL_LANGUAGE then local display = raw if note and note ~= "" and frame then display = display .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then display = display .. wrapReference(ref) end return display, 1 end if raw:find("%[%[", 1, false) then local display = raw local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) local linkCount = 0 for _ in raw:gmatch("%[%[") do linkCount = linkCount + 1 end return display, linkCount end -- Strip any ref out before splitting (a literal <ref> typed here rather -- than via imraa_* can arrive as a strip marker). local cleaned = raw:gsub("<ref[^>]*>.-</ref>", ""):gsub("<ref[^>]*/>", ""):gsub("\127UNIQ.-QINU\127", "") local names = mw.text.split(cleaned, ",", true) local filteredNames = {} for _, part in ipairs(names) do local trimmed = mw.text.trim(part) if trimmed ~= "" then table.insert(filteredNames, trimmed) end end if #filteredNames == 0 then return nil, 0 end table.sort(filteredNames, manxSort) local parts = {} for _, name in ipairs(filteredNames) do if name == NO_OFFICIAL_LANGUAGE or name:find("[%[%]]") then -- never self-link the sentinel phrase or a fragment with stray brackets table.insert(parts, name) else table.insert(parts, '[[' .. name .. '|' .. name .. ']]') end end local display = '<div class="hlist">' .. table.concat(parts, '&nbsp;· ') .. '</div>' local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) return display, #filteredNames end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local officialItems = nil local officialRaw = getManual(args, {"çhengaghyn_oikoil", "çhengey_oikoil"}) if not officialRaw then officialItems = getWikidataLanguageItems("P37") officialRaw = itemsToRaw(officialItems) end local regionalRaw = getManual(args, {"çhengaghyn_ardjynagh", "çhengey_ardjynagh"}) local minorityRaw = getManual(args, {"mynçhengaghyn", "mynçhengey"}) local otherRaw = getManual(args, {"çhengaghyn", "çhengey"}) local official, offCount = buildLanguageValue(officialRaw, getManual(args, {"imraa_çhengaghyn_oikoil", "imraa_çhengey_oikoil"}), getManual(args, {"noteyn_çhengaghyn_oikoil", "noteyn_çhengey_oikoil"}), frame) local regional, regCount = buildLanguageValue(regionalRaw, getManual(args, {"imraa_çhengaghyn_ardjynagh", "imraa_çhengey_ardjynagh"}), getManual(args, {"noteyn_çhengaghyn_ardjynagh", "noteyn_çhengey_ardjynagh"}), frame) local minority, minCount = buildLanguageValue(minorityRaw, getManual(args, {"imraa_mynçhengaghyn", "imraa_mynçhengey"}), getManual(args, {"noteyn_mynçhengaghyn", "noteyn_mynçhengey"}), frame) local other, othCount = buildLanguageValue(otherRaw, getManual(args, {"imraa_çhengaghyn", "imraa_çhengey"}), getManual(args, {"noteyn_çhengaghyn", "noteyn_çhengey"}), frame) local subRows = {} if official then local label = offCount > 1 and "[[Çhengey oikoil|Çhengaghyn oikoil]]" or "[[Çhengey oikoil]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. label .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. official .. '</td></tr>') if regional then -- No white-space:nowrap here, unlike every other <th> in this -- file: "Çhengaghyn ardjynagh er enney" is long enough to widen -- the whole infobox if forced onto one line. The &nbsp; pairs -- keep "Çhengaghyn ardjynagh"/"Çhengey ardjynagh" and "er enney" -- each glued together, so the only place it can ever wrap is the -- plain space between them -- a clean two-line break, not an -- arbitrary one. local rLabel = regCount > 1 and "Çhengaghyn&nbsp;ardjynagh er&nbsp;enney" or "Çhengey&nbsp;ardjynagh er&nbsp;enney" table.insert(subRows, '<tr><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end elseif regional then -- Same wrap handling as the nested case above -- no nowrap, &nbsp; -- pairs forcing the break to fall only between "ardjynagh" and "er". local rLabel = regCount > 1 and "Çhengaghyn&nbsp;ardjynagh er&nbsp;enney" or "Çhengey&nbsp;ardjynagh er&nbsp;enney" table.insert(subRows, '<tr><th style="vertical-align:top; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end if minority then local mLabel = minCount > 1 and "[[Mynçhengey|Mynçhengaghyn]]" or "[[Mynçhengey]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. mLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. minority .. '</td></tr>') end if other then local oLabel = args["sorçh_çhengaghyn"] or (othCount > 1 and "Çhengaghyn" or "Çhengey") table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. oLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. other .. '</td></tr>') end if #subRows == 0 then return nil end return table.concat(subRows) end return p 02ehxl4ijk05rezkdncuu9zbci381r5 394606 394574 2026-10-17T03:02:56Z MacTire02 219 ++ 394606 Scribunto text/plain local p = {} local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function manxSort(a, b) local function norm(text) return text:lower():gsub("çh", "ch") end return norm(a) < norm(b) end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Splices `insertion` (an efn footnote marker and/or wrapped <ref>) inside the deepest trailing local function appendInsideTrailingBlock(text, insertion) if not insertion or insertion == "" then return text end local trailingTags = {} local rest = text while true do local tag = rest:match("(</%a[%w]*>)%s*$") if not tag then break end local tagStart = rest:find(tag .. "%s*$") table.insert(trailingTags, 1, tag) rest = rest:sub(1, tagStart - 1) end if #trailingTags == 0 then return text .. insertion end return rest .. insertion .. table.concat(trailingTags) end local function getWikidataLanguageItems(property) local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements(property) if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local value = mainsnak.datavalue.value local id = value.id or ("Q" .. tostring(value["numeric-id"])) local label = mw.wikibase.getLabelByLang(id, "gv") or mw.wikibase.label(id) if label and label ~= "" then table.insert(items, { id = id, name = label }) end end end if #items == 0 then return nil end return items end local function itemsToRaw(items, excludeIds) local names = {} for _, item in ipairs(items) do if not (excludeIds and excludeIds[item.id]) then table.insert(names, item.name) end end if #names == 0 then return nil end return table.concat(names, ",") end -- "Çhengey oikoil erbee" ("[there is] no official language") is a descriptive phrase, not an article local NO_OFFICIAL_LANGUAGE = "Çhengey oikoil erbee" local function buildLanguageValue(raw, ref, note, frame) if not raw or mw.text.trim(raw):lower() == "none" then return nil, 0 end -- Byte-prefix match (safe even with Ç's multi-byte UTF-8 encoding) if raw:sub(1, #NO_OFFICIAL_LANGUAGE) == NO_OFFICIAL_LANGUAGE then local display = raw if note and note ~= "" and frame then display = display .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then display = display .. wrapReference(ref) end return display, 1 end if raw:find("%[%[", 1, false) then local display = raw local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) local linkCount = 0 for _ in raw:gmatch("%[%[") do linkCount = linkCount + 1 end return display, linkCount end -- Strip any ref out before splitting (a literal <ref> typed here rather -- than via imraa_* can arrive as a strip marker). local cleaned = raw:gsub("<ref[^>]*>.-</ref>", ""):gsub("<ref[^>]*/>", ""):gsub("\127UNIQ.-QINU\127", "") local names = mw.text.split(cleaned, ",", true) local filteredNames = {} for _, part in ipairs(names) do local trimmed = mw.text.trim(part) if trimmed ~= "" then table.insert(filteredNames, trimmed) end end if #filteredNames == 0 then return nil, 0 end table.sort(filteredNames, manxSort) local parts = {} for _, name in ipairs(filteredNames) do if name == NO_OFFICIAL_LANGUAGE or name:find("[%[%]]") then -- never self-link the sentinel phrase or a fragment with stray brackets table.insert(parts, name) else table.insert(parts, '[[' .. name .. '|' .. name .. ']]') end end local display = '<div class="hlist">' .. table.concat(parts, '&nbsp;· ') .. '</div>' local insertion = "" if note and note ~= "" and frame then insertion = insertion .. frame:expandTemplate{ title = "efn", args = { note } } end if ref then insertion = insertion .. wrapReference(ref) end display = appendInsideTrailingBlock(display, insertion) return display, #filteredNames end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local officialItems = nil local officialRaw = getManual(args, {"çhengaghyn_oikoil", "çhengey_oikoil"}) if not officialRaw then officialItems = getWikidataLanguageItems("P37") officialRaw = itemsToRaw(officialItems) end local regionalRaw = getManual(args, {"çhengaghyn_ardjynagh", "çhengey_ardjynagh"}) local minorityRaw = getManual(args, {"mynçhengaghyn", "mynçhengey"}) local otherRaw = getManual(args, {"çhengaghyn", "çhengey"}) local official, offCount = buildLanguageValue(officialRaw, getManual(args, {"imraa_çhengaghyn_oikoil", "imraa_çhengey_oikoil"}), getManual(args, {"noteyn_çhengaghyn_oikoil", "noteyn_çhengey_oikoil"}), frame) local regional, regCount = buildLanguageValue(regionalRaw, getManual(args, {"imraa_çhengaghyn_ardjynagh", "imraa_çhengey_ardjynagh"}), getManual(args, {"noteyn_çhengaghyn_ardjynagh", "noteyn_çhengey_ardjynagh"}), frame) local minority, minCount = buildLanguageValue(minorityRaw, getManual(args, {"imraa_mynçhengaghyn", "imraa_mynçhengey"}), getManual(args, {"noteyn_mynçhengaghyn", "noteyn_mynçhengey"}), frame) local other, othCount = buildLanguageValue(otherRaw, getManual(args, {"imraa_çhengaghyn", "imraa_çhengey"}), getManual(args, {"noteyn_çhengaghyn", "noteyn_çhengey"}), frame) local subRows = {} if official then local label = offCount > 1 and "[[Çhengey oikoil|Çhengaghyn oikoil]]" or "[[Çhengey oikoil]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. label .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. official .. '</td></tr>') if regional then -- No white-space:nowrap here, unlike every other <th> in this file local rLabel = regCount > 1 and "Çhengaghyn&nbsp;ardjynagh er&nbsp;enney" or "Çhengey&nbsp;ardjynagh er&nbsp;enney" table.insert(subRows, '<tr><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end elseif regional then -- Same wrap handling as the nested case above -- no nowrap, &nbsp; -- pairs forcing the break to fall only between "ardjynagh" and "er". local rLabel = regCount > 1 and "Çhengaghyn&nbsp;ardjynagh er&nbsp;enney" or "Çhengey&nbsp;ardjynagh er&nbsp;enney" table.insert(subRows, '<tr><th style="vertical-align:top; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">[[Çhengey ardjynagh|' .. rLabel .. ']]</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. regional .. '</td></tr>') end if minority then local mLabel = minCount > 1 and "[[Mynçhengey|Mynçhengaghyn]]" or "[[Mynçhengey]]" table.insert(subRows, '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. mLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. minority .. '</td></tr>') end if other then local oLabel = args["sorçh_çhengaghyn"] or (othCount > 1 and "Çhengaghyn" or "Çhengey") table.insert(subRows, '<tr><th style="vertical-align:top; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">' .. oLabel .. '</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">' .. other .. '</td></tr>') end if #subRows == 0 then return nil end return table.concat(subRows) end return p s4j6vldkcifiuqr32pt70wh5sbffddr Module:Kishtey fys çheer/caslyssyn-çheerey 828 55834 394565 393993 2026-10-16T17:33:46Z MacTire02 219 -chaghteraghtyn 394565 Scribunto text/plain local p = {} local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Only map 1 has a Wikidata fallback; maps 2/3 are manual-only. local function getWikidataLocatorMap() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P242") if not statements or #statements == 0 then return nil end for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "string" then local file = mainsnak.datavalue.value if file and file ~= "" then return file end end end return nil end -- Builds one map <tr>, or nil if this slot has no image. `topClass` is -- applied unconditionally (matching the old template), not just when an -- earlier map slot is actually present. local function buildMapRow(map, width, caption, topClass) if not map then return nil end local mapHtml = '[[Coadan:' .. map .. '|' .. width .. '|center]]' if caption then mapHtml = mapHtml .. '<div style="position:relative; top:0.3em;"><small>' .. caption .. '</small></div>' end local classAttr = topClass and (' class="' .. topClass .. '"') or "" return '<tr' .. classAttr .. '><td colspan="2" style="text-align:center; padding:0.2em 0.4em;">' .. mapHtml .. '</td></tr>' end function p.main(frame, args) local rows = {} -- Map 1: manual, else Wikidata P242. local map1 = getManual(args, {"caslys-çheerey1", "jalloo_caslys-çheerey", "jalloo_caslys"}) if not isNone(map1) then if not map1 then map1 = getWikidataLocatorMap() end if map1 then local width1 = getManual(args, {"lheead-çheerey1", "lheead_caslys-çheerey", "lheead_caslys"}) or "250px" local caption1 = getManual(args, {"fo-heidyl-çheerey1", "fo-heidyl_caslys-çheerey", "fo-heidyl_caslys"}) table.insert(rows, buildMapRow(map1, width1, caption1, nil)) end end -- Map 2: manual-only; old default width was 280px, kept as-is. local map2 = getManual(args, {"caslys-çheerey2", "jalloo_caslys2"}) if map2 and not isNone(map2) then local width2 = getManual(args, {"lheead-çheerey2", "lheead_caslys2"}) or "280px" local caption2 = getManual(args, {"fo-heidyl-çheerey2", "fo-heidyl_caslys2"}) table.insert(rows, buildMapRow(map2, width2, caption2, "mergedtoprow")) end -- Map 3: manual-only, folded in from the old template's "Caslys heese" -- section. `caslys_fo-heidyl3` (word order swapped vs. maps 1/2) is the -- old template's own naming, kept verbatim. local map3 = getManual(args, {"caslys-çheerey3", "jalloo_caslys3"}) if map3 and not isNone(map3) then local width3 = getManual(args, {"lheead-çheerey3", "lheead_caslys3"}) or "250px" local caption3 = getManual(args, {"fo-heidyl-çheerey3", "caslys_fo-heidyl3"}) table.insert(rows, buildMapRow(map3, width3, caption3, "mergedtoprow")) end if #rows == 0 then return nil end return table.concat(rows) end return p 63lnca1h9hsacd4d9n3wlm8y3xxrx1t Module:Kishtey fys çheer/reiltys 828 55837 394541 394348 2026-10-16T12:04:09Z MacTire02 219 imraaghyn 394541 Scribunto text/plain local p = {} -- Wikidata fetch/citation module (replaces Module:WikidataIB). local wdOK, Wd = pcall(require, "Module:Wd") -- Country genitive/mutated forms, e.g. Mannin -> Vannin. local enmynOK, EnmynCheerey = pcall(require, "Module:Enmyn çheerey") -- Manx-label-or-linked-Wikidata-fallback helper; last rung of getWdItemManxLink. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local aarheynnOK, Aarheynn = pcall(require, "Module:Kishtey fys çheer/aarheynn") -- Returns the first non-empty manual parameter from a list of names. local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Shared innards of getWdProperty/getWdPropertyWithCitation. local function getWdPropertyRaw(property, flags, includeReference) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(flags or {}) do table.insert(callArgs, f) end if includeReference then table.insert(callArgs, "reference") end table.insert(callArgs, "best") -- single best-ranked value table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and result ~= "" then return result end return nil end local function getWdProperty(property, flags) return getWdPropertyRaw(property, flags, true) end local function getWdPropertyWithCitation(property, flags) local base = getWdPropertyRaw(property, flags, false) if not base then return nil, nil end local withRef = getWdPropertyRaw(property, flags, true) if not withRef or withRef == base then return base, nil end if withRef:sub(1, #base) == base then local citation = withRef:sub(#base + 1) if citation ~= "" then return base, citation end return base, nil end return withRef, nil end local function ensureLinked(value) if not value or value == "" then return value end local label, refSuffix = value:match("^(.-)(<ref.*)$") if not label then label = value refSuffix = "" end if label:find("%[%[") or label:match("^%[https?://") then return value end label = mw.text.trim(label) if label == "" then return value end return "[[" .. label .. "]]" .. refSuffix end -- Manx label of a Wikidata PROPERTY (e.g. P35 -> "head of state"), title -- fallback. getLabelByLang avoids leaking an English fallback. local function getWikidataPropertyLabel(property) local ok, label = pcall(mw.wikibase.getLabelByLang, property, "gv") if ok and label and label ~= "" then return label end return nil end -- Raw QID of an entity-valued property on the current page's own item. local function getWdRawPropertyId(property, extraFlags) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, "best") table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawPropertyIds(property, extraFlags) if not wdOK or not Wd or not Wd._properties then return {} end local callArgs = {"raw"} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, property) local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end local function getWdQualifierRawId(property, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdQualifierRawIdForValue(property, valueQid, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier or not valueQid then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, valueQid, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawForeignPropertyIds(eid, property, extraFlags, qualifiers) if not wdOK or not Wd or not Wd._properties or not eid then return {} end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, property) callArgs[Wd.args and Wd.args.eid or "eid"] = eid for qid, value in pairs(qualifiers or {}) do callArgs[qid] = value end local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- QID of the Wikidata item connected to the current page. local function getCurrentCountryQid() local ok, id = pcall(mw.wikibase.getEntityIdForCurrentPage) if ok and id and id ~= "" then return id end return nil end local function getCurrentCountryGenitive() if not enmynOK or not EnmynCheerey or not EnmynCheerey.genitive then return nil end local okTitle, title = pcall(function() return mw.title.getCurrentTitle().text end) if not okTitle or not title or title == "" then return nil end local okGen, genitive = pcall(EnmynCheerey.genitive, title) if okGen and genitive and genitive ~= "" then return genitive end return nil end local function getGenitiveLinkedLabel(baseWord) local genitive = getCurrentCountryGenitive() if genitive and genitive ~= "" then return "[[" .. baseWord .. " " .. genitive .. "|" .. baseWord .. "]]" end return "[[" .. baseWord .. "]]" end local shortFormExceptions = { ["Çhiarn Vannin"] = true, ["Ree ny Belgee"] = true, ["Benrein ny Belgee"] = true, } local function stripCountryGenitiveSuffix(text, countryGenitive) if not text or not countryGenitive then return nil end local suffix = " " .. countryGenitive if #text > #suffix and text:sub(-#suffix) == suffix then return text:sub(1, #text - #suffix) end local bareNoun = countryGenitive:match("^yn%s+(.+)$") or countryGenitive:match("^y%s+(.+)$") if bareNoun and bareNoun ~= "" then local suffix2 = " " .. bareNoun if #text > #suffix2 and text:sub(-#suffix2) == suffix2 then local remainder = text:sub(1, #text - #suffix2) if remainder:sub(-3) == " yn" then return remainder:sub(1, #remainder - 3) elseif remainder:sub(-2) == " y" then return remainder:sub(1, #remainder - 2) end return remainder end end return nil end local function shortManxForm(title) if not title or title == "" then return title end if shortFormExceptions[title] then return title end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(title, countryGenitive) if stripped then return stripped end local short = title:match("^(.-)%sy%s") if short and short ~= "" then return short end short = title:match("^(.-)%syn%s") if short and short ~= "" then return short end -- "ny" is the plural/genitive connector (e.g. "Steatyn Unnaneysit" -> -- "ny Steatyn Unnaneysit", "of the United States") -- confirmed live: -- "Eaghtyrane ny Steatyn Unnaneysit" was falling through to the blind -- last-word rung below, which only strips "Unnaneysit", leaving a -- dangling "Eaghtyrane ny Steatyn" instead of "Eaghtyrane". "%sy%s"/ -- "%syn%s" can never match "ny" (the character before "y" there is -- "n", not whitespace), so this rung is purely additive. short = title:match("^(.-)%sny%s") if short and short ~= "" then return short end short = title:match("^(.+)%s%S+$") if short and short ~= "" then return short end return title end local function shortenCountrySuffixedName(name) if not name or name == "" then return name end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(name, countryGenitive) if stripped then return stripped end local short = name:match("^(.-)%sy%s") if short and short ~= "" then return short end short = name:match("^(.-)%syn%s") if short and short ~= "" then return short end short = name:match("^(.-)%sny%s") if short and short ~= "" then return short end return name end local function shortenLinkedCountryName(value) if not value or value == "" then return value end local main, refSuffix = value:match("^(.-)(<ref.*)$") if not main then main = value refSuffix = "" end local target, display = main:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$") if not target then target = main:match("^%[%[([^%[%]|]+)%]%]$") display = target end if not target then return value end local short = shortenCountrySuffixedName(display) if short ~= display then return "[[" .. target .. "|" .. short .. "]]" .. refSuffix end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("%]%]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end local function getWdItemManxLink(qid, shorten, capitalize, forceRedlink) if not qid then return nil end if capitalize == nil then capitalize = true end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then if capitalize then gvLabel = wikiUcfirst(gvLabel) end else gvLabel = nil end if not sitelinkTitle and not gvLabel then if forceRedlink then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, _, _, rawLabel = pcall(EnnymWd.labelWithFallback, qid) if ok and rawLabel and rawLabel ~= "" then return "[[" .. wikiUcfirst(mw.text.nowiki(rawLabel)) .. "]]" end end return nil end if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if shorten == false then if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end local short = shortManxForm(displayBase) if short ~= target then return "[[" .. target .. "|" .. short .. "]]" end return "[[" .. target .. "]]" end local function getWdOfficeItemTitle(officeProperty) local officeQid = getWdRawPropertyId(officeProperty) if not officeQid then return nil end return getWdItemManxLink(officeQid) end -- Same as getWdOfficeItemTitle, but the office property is read off a -- FOREIGN entity (eid) rather than the current page's own item -- needed -- for US territories, whose own Wikidata item never carries a P1906/P35 -- of its own; the office has to be resolved off the United States' item -- (Q30) instead. local function getWdForeignOfficeItemTitle(eid, officeProperty) local officeQid = getWdRawForeignPropertyIds(eid, officeProperty, {"best"})[1] if not officeQid then return nil end return getWdItemManxLink(officeQid) end local function getWdPositionTitleForPerson(personQid) if not personQid then return nil end local countryQid = getCurrentCountryQid() local candidates = {} if countryQid then for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"}, {["P1001"] = countryQid})) do table.insert(candidates, id) end end for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"})) do table.insert(candidates, id) end local tried = {} for _, qid in ipairs(candidates) do if not tried[qid] then tried[qid] = true local link = getWdItemManxLink(qid) if link then return link end end end return nil end local function getWdPositionTitle(headProperty) return getWdPositionTitleForPerson(getWdRawPropertyId(headProperty)) end -- Wikidata's "upper house" / "lower house" class items. local UPPER_HOUSE_QID = "Q637846" local LOWER_HOUSE_QID = "Q375928" local CLASS_WALK_DEPTH = 3 local function classReaches(classQid, targetQid, depth, seen) if classQid == targetQid then return true end if depth <= 0 then return false end seen = seen or {} if seen[classQid] then return false end seen[classQid] = true for _, superQid in ipairs(getWdRawForeignPropertyIds(classQid, "P279")) do if classReaches(superQid, targetQid, depth - 1, seen) then return true end end return false end local function getWdChambers(legislatureQid) if not legislatureQid then return nil, nil end local partQids = getWdRawForeignPropertyIds(legislatureQid, "P527") local upperQid, lowerQid = nil, nil local upperAmbiguous, lowerAmbiguous = false, false for _, partQid in ipairs(partQids) do local isUpper, isLower = false, false for _, classQid in ipairs(getWdRawForeignPropertyIds(partQid, "P31")) do if classQid == UPPER_HOUSE_QID or classReaches(classQid, UPPER_HOUSE_QID, CLASS_WALK_DEPTH) then isUpper = true elseif classQid == LOWER_HOUSE_QID or classReaches(classQid, LOWER_HOUSE_QID, CLASS_WALK_DEPTH) then isLower = true end end if isUpper then if upperQid and upperQid ~= partQid then upperAmbiguous = true end upperQid = partQid end if isLower then if lowerQid and lowerQid ~= partQid then lowerAmbiguous = true end lowerQid = partQid end end local upperLink = (upperQid and not upperAmbiguous) and getWdItemManxLink(upperQid, false) or nil local lowerLink = (lowerQid and not lowerAmbiguous) and getWdItemManxLink(lowerQid, false) or nil return upperLink, lowerLink end local JULIAN_CALENDAR_QID = "Q1985786" local function getJulianCalendarSuffixLink() local link = getWdItemManxLink(JULIAN_CALENDAR_QID, false) if link then local target = link:match("^%[%[([^%[%]|]+)") or link:match("^%[%[([^%[%]|]+)%]%]$") if target then return "[[" .. target .. "|Joolagh]]" end return link end return "Joolagh" end local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW_WRAP = '<tr%s><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' -- Builds a class="..." attribute, or an empty string. local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function wikilinkLabel(label) if not label or label == "" then return label end if label:find("%[%[") then return label end return "[[" .. label .. "]]" end local function appendIndentRun(rows, items, wrap) local template = wrap and SUBROW_WRAP or SUBROW for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(template, trClass(class), item[1], item[2])) end end local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end function p.main(frame, args) -- Allow being called as p.main(args) with no frame (used by tests). if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} local govRows = {} local quaiylRows = {} local foundingRows = {} local govTypeRaw = getManual(args, {"sorçh_reiltys", "government_type"}) local govRef = getManual(args, {"imraa_reiltys"}) local govNote = getManual(args, {"noteyn_reiltys"}) if not govTypeRaw then local govTypeQids = getWdRawPropertyIds("P122") local govTypeParts = {} for _, qid in ipairs(govTypeQids) do local link = getWdItemManxLink(qid, false, false) if link then table.insert(govTypeParts, link) end end if #govTypeParts > 0 then govTypeRaw = capitalizeFirstLetter(table.concat(govTypeParts, ", ")) end end local govShown = govTypeRaw and not isNone(govTypeRaw) local leaderPairs = {} local manualLeaderGiven = false for i = 1, 5 do local title = getManual(args, {"enmys_toshiagh" .. i, "enmys" .. i .. "_fer-toshee"}) local name = getManual(args, {"ennym_toshiagh" .. i, "ennym" .. i .. "_fer-toshee"}) if title or name then manualLeaderGiven = true if not isNone(name) then table.insert(leaderPairs, {title = title or "", name = name or ""}) end end end local leaderRef = getManual(args, {"imraa_toshiagh", "imraa_fer-toshee"}) local leaderNote = getManual(args, {"noteyn_toshiagh", "noteyn_fer-toshee"}) local leadersSuppressed = isNone(getManual(args, {"fir_hoshee", "toshiaghyn"})) local function resolvePersonName(qid) if not qid then return nil end return shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) end local councillors = {} for i = 1, 7 do local name = getManual(args, {"ennym_coonseilagh" .. i}) if name and not isNone(name) then table.insert(councillors, {slot = i, name = name}) end end local manualCouncillorsGiven = #councillors > 0 local swissBodyQid = getWdRawPropertyId("P35") or getWdRawPropertyId("P6") local isSwissFederalCouncil = swissBodyQid == "Q30917" if (manualCouncillorsGiven or isSwissFederalCouncil) and not leadersSuppressed then manualLeaderGiven = true local presidentAnnotation = ' ([[Eaghtyrane Chochiangle yn Elveeish|Eaghtyrane]])' local vpAnnotation = ' ([[Lhiass-eaghtyrane yn Elveeish|Lhiass-eaghtyrane]])' local nameLines = {} local chancellor = nil if manualCouncillorsGiven then local presidentSlot = tonumber(getManual(args, {"eaghtyrane_coonseilagh"})) local vicePresidentSlot = tonumber(getManual(args, {"lhiass-eaghtyrane_coonseilagh"})) for _, entry in ipairs(councillors) do local line = entry.name if presidentSlot and entry.slot == presidentSlot then line = line .. presidentAnnotation elseif vicePresidentSlot and entry.slot == vicePresidentSlot then line = line .. vpAnnotation end table.insert(nameLines, line) end chancellor = getManual(args, {"shansyleyr_conastagh"}) else local presidentOverride = getManual(args, {"eaghtyrane_coonseilagh"}) local vpOverride = getManual(args, {"lhiass-eaghtyrane_coonseilagh"}) local chancellorOverride = getManual(args, {"shansyleyr_conastagh"}) local councillorQids = getWdRawForeignPropertyIds("Q30917", "P3320", {"best", "current"}) local presidentQid = not isNone(presidentOverride) and getWdRawForeignPropertyIds("Q688230", "P1308", {"best"})[1] or nil local vpQid = not isNone(vpOverride) and getWdRawForeignPropertyIds("Q25550811", "P1308", {"best"})[1] or nil for _, qid in ipairs(councillorQids) do local name = resolvePersonName(qid) if name then if qid == presidentQid then name = name .. presidentAnnotation elseif qid == vpQid then name = name .. vpAnnotation end table.insert(nameLines, name) end end if chancellorOverride and not isNone(chancellorOverride) then chancellor = chancellorOverride elseif not isNone(chancellorOverride) then local chancellorQid = getWdRawForeignPropertyIds("Q687810", "P1308", {"best"})[1] chancellor = resolvePersonName(chancellorQid) end end if #nameLines > 0 then table.insert(leaderPairs, { title = '[[Coonseil Chonastagh yn Elveeish|Coonseilee Chonastagh]]', name = table.concat(nameLines, '<br/>'), }) end if chancellor and chancellor ~= "" then table.insert(leaderPairs, { title = '[[Shansyleyr yn Elveeish|Shansyleyr Conastagh]]', name = chancellor, }) end end local function isSanMarinoPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "San Marino" end local function isNorthernIrelandPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nerin Hwoaie" end local function isNicaraguaPage() if getCurrentCountryQid() == "Q811" then return true end local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nickeraag" end -- US unincorporated territories: the President of the United States is -- each territory's head of state, but this is never recorded on the -- territory's own Wikidata item -- confirmed directly against Puerto -- Rico's own item, which carries only "instance of" classification -- statements (e.g. "unincorporated territory of the United States", -- "insular area of the United States"), no P35 at all. The President -- has to be fetched off the United States' own item (Q30) instead -- -- same foreign-entity pattern as Nicaragua's co-presidents and -- Northern Ireland's Deputy First Minister above. Detected by an -- explicit page-title list (matching the San Marino/Northern Ireland -- convention), confirmed directly rather than guessed, since a -- territory's own P17 isn't something this module can reliably key -- automatic detection off. local US_QID = "Q30" local usTerritoryTitles = { ["Yn Phurt Verçhagh"] = true, -- Puerto Rico ["Guam"] = true, -- Guam ["Ellanyn Americaanagh y Voidyn"] = true, -- US Virgin Islands ["Samoa Americaanagh"] = true, -- American Samoa } local function isUSTerritoryPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title ~= nil and usTerritoryTitles[title] == true end local sanMarinoCaptains = {} for i = 1, 2 do local name = getManual(args, {"ennym_captan_reiree" .. i}) if name and not isNone(name) then table.insert(sanMarinoCaptains, name) end end local manualSanMarinoGiven = #sanMarinoCaptains > 0 if (manualSanMarinoGiven or isSanMarinoPage()) and not leadersSuppressed and not manualLeaderGiven then manualLeaderGiven = true local nameLines = {} if manualSanMarinoGiven then nameLines = sanMarinoCaptains else local captainQids = getWdRawPropertyIds("P35", {"best", "current"}) for _, qid in ipairs(captainQids) do local name = resolvePersonName(qid) if name then table.insert(nameLines, name) end end end if #nameLines > 0 then local title = getManual(args, {"sorçh_kione_steat"}) or '[[Captanyn Reiree]]' table.insert(leaderPairs, { title = title, name = table.concat(nameLines, '<br/>'), }) end end if not manualLeaderGiven and not leadersSuppressed then local hosQids = getWdRawPropertyIds("P35", {"best", "current"}) -- "current" matters here, not just "best": confirmed live on Benin, -- whose P6 (head of government) statements have no preferred rank -- at all (three past/present holders all tied at normal rank) -- -- Module:Wd's singular _property command has no way to break that -- tie chronologically, so without "current" filtering out the -- already-ended ones it can return an arbitrary past holder. local hogBase, hogCitation = getWdPropertyWithCitation("P6", {"linked", "current"}) local hog = ensureLinked(hogBase) if hog and hogCitation then hog = hog .. hogCitation end local hogQid = getWdRawPropertyId("P6", {"current"}) if isNicaraguaPage() then -- Nicaragua is a diarchy: two co-presidents, listed on Wikidata not -- as the country's own P35/P6 statements but as P1308 ("position -- holder") values on the "President of Nicaragua" OFFICE item -- itself (Q852448) -- same foreign-entity pattern as Northern -- Ireland's Deputy First Minister and Switzerland's councillors -- above. "best" (rank) and "current" (time period) are -- independent Wd flags, not alternatives -- both are needed -- together to get exactly the presently-serving, non-deprecated -- co-presidents, matching this file's existing convention -- (San Marino's Captains Regent, the Swiss Federal Council). local presidentQids = getWdRawForeignPropertyIds("Q852448", "P1308", {"best", "current"}) local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local sameHeadOfStateAndGovernment = false local presidentNames = {} for _, qid in ipairs(presidentQids) do local name = ensureLinked(getWdItemManxLink(qid, false, nil, true)) if name then table.insert(leaderPairs, {title = presidentTitle, name = name}) end if name then table.insert(presidentNames, name) end if qid == hogQid then sameHeadOfStateAndGovernment = true end end if #presidentNames > 0 then table.insert(leaderPairs, { title = presidentTitle, name = table.concat(presidentNames, '<br/>'), }) end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or getWdOfficeItemTitle("P1313") or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end elseif #hosQids > 1 then local sameHeadOfStateAndGovernment = false if hog and hogQid then for _, qid in ipairs(hosQids) do if qid == hogQid then sameHeadOfStateAndGovernment = true end end end local officeQids = getWdRawPropertyIds("P1906") local pairsBuilt = 0 if #officeQids > 1 then for _, officeQid in ipairs(officeQids) do local personQid = getWdQualifierRawIdForValue("P1906", officeQid, "P1308") local name = personQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(personQid, false, nil, true))) or nil if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink(officeQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) pairsBuilt = pairsBuilt + 1 end end end if pairsBuilt == 0 then for _, qid in ipairs(hosQids) do local name = shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdPositionTitleForPerson(qid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) end end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or getWdOfficeItemTitle("P1313") -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end else local hosBase, hosCitation = getWdPropertyWithCitation("P35", {"linked", "current"}) local hos = shortenLinkedCountryName(ensureLinked(hosBase)) if hos and hosCitation then hos = hos .. hosCitation end local hosQid = getWdRawPropertyId("P35", {"current"}) -- Some countries (Benin since its 2016 constitutional reform) -- have literally merged the head-of-state and head-of- -- government OFFICES into one -- confirmed directly on -- Wikidata, not guessed: Benin's own "office held by head of -- state" (P1906) and "office held by head of government" -- (P1313) both resolve to the identical item, "President of -- the Republic of Benin". Comparing only the PEOPLE -- (hosQid == hogQid) isn't enough to catch this: a merged- -- office country's P6 statement can easily be stale (an -- outgoing office-holder's statement left with no end-date -- after a transition, since "head of government" stops being -- tracked as a genuinely separate role once the offices -- merge) and so resolve to the wrong, out-of-date person -- -- but even then, a second row for an office already shown -- under the head-of-state row would always be redundant, so -- the OFFICES themselves are compared too, not just the -- people. local hosOfficeQid = getWdRawPropertyId("P1906") local hogOfficeQid = getWdRawPropertyId("P1313") local sameOffice = hosOfficeQid and hogOfficeQid and hosOfficeQid == hogOfficeQid local sameHeadOfStateAndGovernment = sameOffice or (hos and hog and hosQid and hogQid and hosQid == hogQid) if hos then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or (hosOfficeQid and getWdItemManxLink(hosOfficeQid)) -- office held by head of state or getWdPositionTitle("P35") or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = hos}) if not isNone(getManual(args, {"ynnydee_kione_steat"})) then local proxyOfficeQid = getWdQualifierRawId("P35", "P1393") if proxyOfficeQid then local proxyPersonIds = getWdRawForeignPropertyIds(proxyOfficeQid, "P1308", {"best"}) local proxyPersonQid = proxyPersonIds[1] local proxyName = proxyPersonQid and ensureLinked(getWdItemManxLink(proxyPersonQid, false, nil, true)) or nil if proxyName then local proxyTitle = getManual(args, {"sorçh_ynnydee"}) or getWdItemManxLink(proxyOfficeQid) or "Ynnydee" table.insert(leaderPairs, {title = proxyTitle, name = proxyName}) end end end elseif isUSTerritoryPage() then -- No P35 at all on the territory's own item (confirmed -- above) -- fetch the sitting President straight off the -- United States' own item (Q30) instead. Priority order -- for the title mirrors every other country's head-of- -- state title exactly, just sourced from Q30 rather than -- the current page: manual override, then the office -- actually set on the US's own item (P1906), then the -- person-chain heuristic (P39 on the President himself -- -- eid-agnostic, so it works unchanged here), then the -- property's own label, then the generic hardcoded word. local presidentQid = getWdRawForeignPropertyIds(US_QID, "P35", {"best", "current"})[1] local presidentName = resolvePersonName(presidentQid) if presidentName then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdForeignOfficeItemTitle(US_QID, "P1906") or getWdPositionTitleForPerson(presidentQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = presidentTitle, name = presidentName}) end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or (hogOfficeQid and getWdItemManxLink(hogOfficeQid)) -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) if isNorthernIrelandPage() then local dfmPersonQid = getWdRawForeignPropertyIds("Q11954685", "P1308", {"best"})[1] local dfmName = dfmPersonQid and ensureLinked(getWdItemManxLink(dfmPersonQid, false, nil, true)) or nil local dfmTitle = getWdItemManxLink("Q11954685") if dfmName and dfmTitle then table.insert(leaderPairs, {title = dfmTitle, name = dfmName}) end end end end end local reiltysLabel = getGenitiveLinkedLabel("Reiltys") if govShown then local govClass = (#leaderPairs > 0) and "mergedtoprow" or "" table.insert(govRows, string.format(ROW, trClass(govClass), reiltysLabel, applyRefNote(govTypeRaw, govRef, govNote, frame))) elseif #leaderPairs > 0 then table.insert(govRows, string.format(HEADER, reiltysLabel)) end if isNicaraguaPage() and #leaderPairs > 1 then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local combinedNames, seenNames = {}, {} local firstPresidentIndex = nil local filteredLeaderPairs = {} for _, leader in ipairs(leaderPairs) do if leader.title == presidentTitle then if not firstPresidentIndex then firstPresidentIndex = #filteredLeaderPairs + 1 end local remaining = leader.name or "" while true do local name, rest = remaining:match("^(.-)<br%s*/>(.*)$") if not name then name = remaining end name = mw.text.trim(name) if name ~= "" and not seenNames[name] then seenNames[name] = true table.insert(combinedNames, name) end if not rest then break end remaining = rest end else table.insert(filteredLeaderPairs, leader) end end if firstPresidentIndex and #combinedNames > 0 then table.insert(filteredLeaderPairs, firstPresidentIndex, { title = presidentTitle, name = table.concat(combinedNames, "<br/>"), }) leaderPairs = filteredLeaderPairs end end if #leaderPairs > 0 then local last = leaderPairs[#leaderPairs] last.name = applyRefNote(last.name, leaderRef, leaderNote, frame) local items = {} for _, leader in ipairs(leaderPairs) do table.insert(items, {leader.title, leader.name}) end appendIndentRun(govRows, items) end local quaiyl = getManual(args, {"çhionnal", "quaiyl"}) local quaiylSyrjey = getManual(args, {"thie_heose", "quaiyl_syrjey"}) local quaiylInshley = getManual(args, {"thie_heese", "quaiyl_s'inshley", "quaiyl_sinshley"}) local quaiylRef = getManual(args, {"imraa_çhionnal", "imraa_quaiyl"}) local quaiylNote = getManual(args, {"noteyn_çhionnal", "noteyn_quaiyl"}) local quaiylQid = nil if not quaiyl then quaiylQid = getWdRawPropertyId("P194") if quaiylQid then quaiyl = getWdItemManxLink(quaiylQid, false) end end if not quaiylSyrjey or not quaiylInshley then local legislatureQid = quaiylQid or getWdRawPropertyId("P194") if legislatureQid then local wdUpper, wdLower = getWdChambers(legislatureQid) if not quaiylSyrjey then quaiylSyrjey = wdUpper end if not quaiylInshley then quaiylInshley = wdLower end end end if quaiyl and not isNone(quaiyl) then local houseItems = {} if quaiylSyrjey and not isNone(quaiylSyrjey) then table.insert(houseItems, {"[[Thie heose]]", quaiylSyrjey}) end if quaiylInshley and not isNone(quaiylInshley) then table.insert(houseItems, {"[[Thie heese]]", quaiylInshley}) end local quaiylClass = (#houseItems > 0) and "mergedtoprow" or "" table.insert(quaiylRows, string.format(ROW, trClass(quaiylClass), "[[Çhionnal slattyssagh]]", applyRefNote(quaiyl, quaiylRef, quaiylNote, frame))) appendIndentRun(quaiylRows, houseItems) end local foundingLabel = getManual(args, {"sorçh_kionedeeaght", "sorçh_kiondeeaght"}) or "Bunneeaght" local foundingValue = getManual(args, {"bunnit"}) local foundingQualifier = getManual(args, {"note_kionedeeaght", "note_kiondeeaght"}) local foundingFootnote = getManual(args, {"noteyn_kionedeeaght", "noteyn_kiondeeaght"}) local foundingRef = getManual(args, {"imraa_kionedeeaght", "imraa_kiondeeaght"}) local function foundingLabelWithQualifier(label) local linked = wikilinkLabel(label) if foundingQualifier and foundingQualifier ~= "" then return linked .. '&nbsp;<span style="font-weight:normal;">' .. foundingQualifier .. '</span>' end return linked end local establishmentRows = {} for i = 1, 9 do local event = getManual(args, {"taghyrt_bunneeaght" .. i, "taghyrt" .. i .. "_bunnit"}) local date = getManual(args, {"date_bunneeaght" .. i, "date" .. i .. "_bunnit"}) if event then table.insert(establishmentRows, {event, date or ""}) end end if foundingValue or #establishmentRows > 0 then if foundingValue and not isNone(foundingValue) then local foundingClass = (#establishmentRows > 0) and "mergedtoprow" or "" table.insert(foundingRows, string.format(ROW, trClass(foundingClass), foundingLabelWithQualifier(foundingLabel), applyRefNote(foundingValue, foundingRef, foundingFootnote, frame))) elseif #establishmentRows > 0 then local headerLabel = applyRefNote(foundingLabelWithQualifier(foundingLabel), foundingRef, foundingFootnote, frame) table.insert(foundingRows, string.format(HEADER, headerLabel)) end appendIndentRun(foundingRows, establishmentRows, true) elseif not isNone(getManual(args, {"bunnit"})) then -- Wikidata fallback: inception (P571), only when unset (not none). local inception = getWdProperty("P571") if inception and inception:find(" (Joolagh)", 1, true) then inception = inception:gsub(" %(Joolagh%)", " (" .. getJulianCalendarSuffixLink() .. ")", 1) end if inception then table.insert(foundingRows, string.format(ROW, "", foundingLabelWithQualifier(foundingLabel), applyRefNote(inception, foundingRef, foundingFootnote, frame))) end end local aarheynnRows = {} if aarheynnOK and Aarheynn and Aarheynn.main then local okAarheynn, resultAarheynn = pcall(Aarheynn.main, frame, args) if okAarheynn and resultAarheynn then aarheynnRows = resultAarheynn end end appendSection(rows, govRows) appendSection(rows, quaiylRows) appendSection(rows, aarheynnRows) appendSection(rows, foundingRows) if #rows == 0 then return nil end return table.concat(rows) end return p ov16lpxkauvnh70p4gllxm9d1ajm604 394543 394541 2026-10-16T12:29:38Z MacTire02 219 +kianglaghyn roosht dys WD 394543 Scribunto text/plain local p = {} -- Wikidata fetch/citation module (replaces Module:WikidataIB). local wdOK, Wd = pcall(require, "Module:Wd") -- Country genitive/mutated forms, e.g. Mannin -> Vannin. local enmynOK, EnmynCheerey = pcall(require, "Module:Enmyn çheerey") -- Manx-label-or-linked-Wikidata-fallback helper; last rung of getWdItemManxLink. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local aarheynnOK, Aarheynn = pcall(require, "Module:Kishtey fys çheer/aarheynn") -- Returns the first non-empty manual parameter from a list of names. local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Shared innards of getWdProperty/getWdPropertyWithCitation. local function getWdPropertyRaw(property, flags, includeReference) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(flags or {}) do table.insert(callArgs, f) end if includeReference then table.insert(callArgs, "reference") end table.insert(callArgs, "best") -- single best-ranked value table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and result ~= "" then return result end return nil end local function getWdProperty(property, flags) return getWdPropertyRaw(property, flags, true) end local function getWdPropertyWithCitation(property, flags) local base = getWdPropertyRaw(property, flags, false) if not base then return nil, nil end local withRef = getWdPropertyRaw(property, flags, true) if not withRef or withRef == base then return base, nil end if withRef:sub(1, #base) == base then local citation = withRef:sub(#base + 1) if citation ~= "" then return base, citation end return base, nil end return withRef, nil end local function ensureLinked(value) if not value or value == "" then return value end local label, refSuffix = value:match("^(.-)(<ref.*)$") if not label then label = value refSuffix = "" end if label:find("%[%[") or label:match("^%[https?://") then return value end label = mw.text.trim(label) if label == "" then return value end return "[[" .. label .. "]]" .. refSuffix end -- Manx label of a Wikidata PROPERTY (e.g. P35 -> "head of state"), title -- fallback. getLabelByLang avoids leaking an English fallback. local function getWikidataPropertyLabel(property) local ok, label = pcall(mw.wikibase.getLabelByLang, property, "gv") if ok and label and label ~= "" then return label end return nil end -- Raw QID of an entity-valued property on the current page's own item. local function getWdRawPropertyId(property, extraFlags) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, "best") table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawPropertyIds(property, extraFlags) if not wdOK or not Wd or not Wd._properties then return {} end local callArgs = {"raw"} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, property) local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end local function getWdQualifierRawId(property, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdQualifierRawIdForValue(property, valueQid, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier or not valueQid then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, valueQid, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawForeignPropertyIds(eid, property, extraFlags, qualifiers) if not wdOK or not Wd or not Wd._properties or not eid then return {} end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, property) callArgs[Wd.args and Wd.args.eid or "eid"] = eid for qid, value in pairs(qualifiers or {}) do callArgs[qid] = value end local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- QID of the Wikidata item connected to the current page. local function getCurrentCountryQid() local ok, id = pcall(mw.wikibase.getEntityIdForCurrentPage) if ok and id and id ~= "" then return id end return nil end local function getCurrentCountryGenitive() if not enmynOK or not EnmynCheerey or not EnmynCheerey.genitive then return nil end local okTitle, title = pcall(function() return mw.title.getCurrentTitle().text end) if not okTitle or not title or title == "" then return nil end local okGen, genitive = pcall(EnmynCheerey.genitive, title) if okGen and genitive and genitive ~= "" then return genitive end return nil end local function getGenitiveLinkedLabel(baseWord) local genitive = getCurrentCountryGenitive() if genitive and genitive ~= "" then return "[[" .. baseWord .. " " .. genitive .. "|" .. baseWord .. "]]" end return "[[" .. baseWord .. "]]" end local shortFormExceptions = { ["Çhiarn Vannin"] = true, ["Ree ny Belgee"] = true, ["Benrein ny Belgee"] = true, } local function stripCountryGenitiveSuffix(text, countryGenitive) if not text or not countryGenitive then return nil end local suffix = " " .. countryGenitive if #text > #suffix and text:sub(-#suffix) == suffix then return text:sub(1, #text - #suffix) end local bareNoun = countryGenitive:match("^yn%s+(.+)$") or countryGenitive:match("^y%s+(.+)$") if bareNoun and bareNoun ~= "" then local suffix2 = " " .. bareNoun if #text > #suffix2 and text:sub(-#suffix2) == suffix2 then local remainder = text:sub(1, #text - #suffix2) if remainder:sub(-3) == " yn" then return remainder:sub(1, #remainder - 3) elseif remainder:sub(-2) == " y" then return remainder:sub(1, #remainder - 2) end return remainder end end return nil end local function shortManxForm(title) if not title or title == "" then return title end if shortFormExceptions[title] then return title end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(title, countryGenitive) if stripped then return stripped end local short = title:match("^(.-)%sy%s") if short and short ~= "" then return short end short = title:match("^(.-)%syn%s") if short and short ~= "" then return short end -- "ny" is the plural/genitive connector (e.g. "Steatyn Unnaneysit" -> -- "ny Steatyn Unnaneysit", "of the United States") -- confirmed live: -- "Eaghtyrane ny Steatyn Unnaneysit" was falling through to the blind -- last-word rung below, which only strips "Unnaneysit", leaving a -- dangling "Eaghtyrane ny Steatyn" instead of "Eaghtyrane". "%sy%s"/ -- "%syn%s" can never match "ny" (the character before "y" there is -- "n", not whitespace), so this rung is purely additive. short = title:match("^(.-)%sny%s") if short and short ~= "" then return short end short = title:match("^(.+)%s%S+$") if short and short ~= "" then return short end return title end local function shortenCountrySuffixedName(name) if not name or name == "" then return name end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(name, countryGenitive) if stripped then return stripped end local short = name:match("^(.-)%sy%s") if short and short ~= "" then return short end short = name:match("^(.-)%syn%s") if short and short ~= "" then return short end short = name:match("^(.-)%sny%s") if short and short ~= "" then return short end return name end local function shortenLinkedCountryName(value) if not value or value == "" then return value end local main, refSuffix = value:match("^(.-)(<ref.*)$") if not main then main = value refSuffix = "" end local target, display = main:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$") if not target then target = main:match("^%[%[([^%[%]|]+)%]%]$") display = target end if not target then return value end local short = shortenCountrySuffixedName(display) if short ~= display then return "[[" .. target .. "|" .. short .. "]]" .. refSuffix end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("%]%]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end local function getWdItemManxLink(qid, shorten, capitalize, forceRedlink, preferExternalForLabel) if not qid then return nil end if capitalize == nil then capitalize = true end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then if capitalize then gvLabel = wikiUcfirst(gvLabel) end else gvLabel = nil end if not sitelinkTitle and not gvLabel then if forceRedlink then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, _, _, rawLabel = pcall(EnnymWd.labelWithFallback, qid) if ok and rawLabel and rawLabel ~= "" then return "[[" .. wikiUcfirst(mw.text.nowiki(rawLabel)) .. "]]" end end return nil end if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end -- No gv sitelink yet: this item has no article of its own, so a -- same-named wikilink would redlink to a GENERIC title (e.g. "Çhionnal -- ashoonagh"/"National Assembly") that many unrelated countries' -- legislative bodies share via an identical gv label. Creating that one -- shared article later would wrongly merge every one of those distinct -- bodies into it. preferExternalForLabel routes around that: link -- straight to THIS item on Wikidata instead, which is always specific -- to one body no matter how many others carry the same label. if not sitelinkTitle and preferExternalForLabel then local display = (shorten == false) and gvLabel or shortManxForm(gvLabel) return "[https://www.wikidata.org/wiki/" .. qid .. " " .. display .. "]" end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if shorten == false then if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end local short = shortManxForm(displayBase) if short ~= target then return "[[" .. target .. "|" .. short .. "]]" end return "[[" .. target .. "]]" end local function getWdOfficeItemTitle(officeProperty) local officeQid = getWdRawPropertyId(officeProperty) if not officeQid then return nil end return getWdItemManxLink(officeQid) end -- Same as getWdOfficeItemTitle, but the office property is read off a -- FOREIGN entity (eid) rather than the current page's own item -- needed -- for US territories, whose own Wikidata item never carries a P1906/P35 -- of its own; the office has to be resolved off the United States' item -- (Q30) instead. local function getWdForeignOfficeItemTitle(eid, officeProperty) local officeQid = getWdRawForeignPropertyIds(eid, officeProperty, {"best"})[1] if not officeQid then return nil end return getWdItemManxLink(officeQid) end local function getWdPositionTitleForPerson(personQid) if not personQid then return nil end local countryQid = getCurrentCountryQid() local candidates = {} if countryQid then for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"}, {["P1001"] = countryQid})) do table.insert(candidates, id) end end for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"})) do table.insert(candidates, id) end local tried = {} for _, qid in ipairs(candidates) do if not tried[qid] then tried[qid] = true local link = getWdItemManxLink(qid) if link then return link end end end return nil end local function getWdPositionTitle(headProperty) return getWdPositionTitleForPerson(getWdRawPropertyId(headProperty)) end -- Wikidata's "upper house" / "lower house" class items. local UPPER_HOUSE_QID = "Q637846" local LOWER_HOUSE_QID = "Q375928" local CLASS_WALK_DEPTH = 3 local function classReaches(classQid, targetQid, depth, seen) if classQid == targetQid then return true end if depth <= 0 then return false end seen = seen or {} if seen[classQid] then return false end seen[classQid] = true for _, superQid in ipairs(getWdRawForeignPropertyIds(classQid, "P279")) do if classReaches(superQid, targetQid, depth - 1, seen) then return true end end return false end local function getWdChambers(legislatureQid) if not legislatureQid then return nil, nil end local partQids = getWdRawForeignPropertyIds(legislatureQid, "P527") local upperQid, lowerQid = nil, nil local upperAmbiguous, lowerAmbiguous = false, false for _, partQid in ipairs(partQids) do local isUpper, isLower = false, false for _, classQid in ipairs(getWdRawForeignPropertyIds(partQid, "P31")) do if classQid == UPPER_HOUSE_QID or classReaches(classQid, UPPER_HOUSE_QID, CLASS_WALK_DEPTH) then isUpper = true elseif classQid == LOWER_HOUSE_QID or classReaches(classQid, LOWER_HOUSE_QID, CLASS_WALK_DEPTH) then isLower = true end end if isUpper then if upperQid and upperQid ~= partQid then upperAmbiguous = true end upperQid = partQid end if isLower then if lowerQid and lowerQid ~= partQid then lowerAmbiguous = true end lowerQid = partQid end end local upperLink = (upperQid and not upperAmbiguous) and getWdItemManxLink(upperQid, false, nil, nil, true) or nil local lowerLink = (lowerQid and not lowerAmbiguous) and getWdItemManxLink(lowerQid, false, nil, nil, true) or nil return upperLink, lowerLink end local JULIAN_CALENDAR_QID = "Q1985786" local function getJulianCalendarSuffixLink() local link = getWdItemManxLink(JULIAN_CALENDAR_QID, false) if link then local target = link:match("^%[%[([^%[%]|]+)") or link:match("^%[%[([^%[%]|]+)%]%]$") if target then return "[[" .. target .. "|Joolagh]]" end return link end return "Joolagh" end local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW_WRAP = '<tr%s><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' -- Builds a class="..." attribute, or an empty string. local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function wikilinkLabel(label) if not label or label == "" then return label end if label:find("%[%[") then return label end return "[[" .. label .. "]]" end local function appendIndentRun(rows, items, wrap) local template = wrap and SUBROW_WRAP or SUBROW for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(template, trClass(class), item[1], item[2])) end end local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end function p.main(frame, args) -- Allow being called as p.main(args) with no frame (used by tests). if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} local govRows = {} local quaiylRows = {} local foundingRows = {} local govTypeRaw = getManual(args, {"sorçh_reiltys", "government_type"}) local govRef = getManual(args, {"imraa_reiltys"}) local govNote = getManual(args, {"noteyn_reiltys"}) if not govTypeRaw then local govTypeQids = getWdRawPropertyIds("P122") local govTypeParts = {} for _, qid in ipairs(govTypeQids) do local link = getWdItemManxLink(qid, false, false) if link then table.insert(govTypeParts, link) end end if #govTypeParts > 0 then govTypeRaw = capitalizeFirstLetter(table.concat(govTypeParts, ", ")) end end local govShown = govTypeRaw and not isNone(govTypeRaw) local leaderPairs = {} local manualLeaderGiven = false for i = 1, 5 do local title = getManual(args, {"enmys_toshiagh" .. i, "enmys" .. i .. "_fer-toshee"}) local name = getManual(args, {"ennym_toshiagh" .. i, "ennym" .. i .. "_fer-toshee"}) if title or name then manualLeaderGiven = true if not isNone(name) then table.insert(leaderPairs, {title = title or "", name = name or ""}) end end end local leaderRef = getManual(args, {"imraa_toshiagh", "imraa_fer-toshee"}) local leaderNote = getManual(args, {"noteyn_toshiagh", "noteyn_fer-toshee"}) local leadersSuppressed = isNone(getManual(args, {"fir_hoshee", "toshiaghyn"})) local function resolvePersonName(qid) if not qid then return nil end return shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) end local councillors = {} for i = 1, 7 do local name = getManual(args, {"ennym_coonseilagh" .. i}) if name and not isNone(name) then table.insert(councillors, {slot = i, name = name}) end end local manualCouncillorsGiven = #councillors > 0 local swissBodyQid = getWdRawPropertyId("P35") or getWdRawPropertyId("P6") local isSwissFederalCouncil = swissBodyQid == "Q30917" if (manualCouncillorsGiven or isSwissFederalCouncil) and not leadersSuppressed then manualLeaderGiven = true local presidentAnnotation = ' ([[Eaghtyrane Chochiangle yn Elveeish|Eaghtyrane]])' local vpAnnotation = ' ([[Lhiass-eaghtyrane yn Elveeish|Lhiass-eaghtyrane]])' local nameLines = {} local chancellor = nil if manualCouncillorsGiven then local presidentSlot = tonumber(getManual(args, {"eaghtyrane_coonseilagh"})) local vicePresidentSlot = tonumber(getManual(args, {"lhiass-eaghtyrane_coonseilagh"})) for _, entry in ipairs(councillors) do local line = entry.name if presidentSlot and entry.slot == presidentSlot then line = line .. presidentAnnotation elseif vicePresidentSlot and entry.slot == vicePresidentSlot then line = line .. vpAnnotation end table.insert(nameLines, line) end chancellor = getManual(args, {"shansyleyr_conastagh"}) else local presidentOverride = getManual(args, {"eaghtyrane_coonseilagh"}) local vpOverride = getManual(args, {"lhiass-eaghtyrane_coonseilagh"}) local chancellorOverride = getManual(args, {"shansyleyr_conastagh"}) local councillorQids = getWdRawForeignPropertyIds("Q30917", "P3320", {"best", "current"}) local presidentQid = not isNone(presidentOverride) and getWdRawForeignPropertyIds("Q688230", "P1308", {"best"})[1] or nil local vpQid = not isNone(vpOverride) and getWdRawForeignPropertyIds("Q25550811", "P1308", {"best"})[1] or nil for _, qid in ipairs(councillorQids) do local name = resolvePersonName(qid) if name then if qid == presidentQid then name = name .. presidentAnnotation elseif qid == vpQid then name = name .. vpAnnotation end table.insert(nameLines, name) end end if chancellorOverride and not isNone(chancellorOverride) then chancellor = chancellorOverride elseif not isNone(chancellorOverride) then local chancellorQid = getWdRawForeignPropertyIds("Q687810", "P1308", {"best"})[1] chancellor = resolvePersonName(chancellorQid) end end if #nameLines > 0 then table.insert(leaderPairs, { title = '[[Coonseil Chonastagh yn Elveeish|Coonseilee Chonastagh]]', name = table.concat(nameLines, '<br/>'), }) end if chancellor and chancellor ~= "" then table.insert(leaderPairs, { title = '[[Shansyleyr yn Elveeish|Shansyleyr Conastagh]]', name = chancellor, }) end end local function isSanMarinoPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "San Marino" end local function isNorthernIrelandPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nerin Hwoaie" end local function isNicaraguaPage() if getCurrentCountryQid() == "Q811" then return true end local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nickeraag" end -- US unincorporated territories: the President of the United States is -- each territory's head of state, but this is never recorded on the -- territory's own Wikidata item -- confirmed directly against Puerto -- Rico's own item, which carries only "instance of" classification -- statements (e.g. "unincorporated territory of the United States", -- "insular area of the United States"), no P35 at all. The President -- has to be fetched off the United States' own item (Q30) instead -- -- same foreign-entity pattern as Nicaragua's co-presidents and -- Northern Ireland's Deputy First Minister above. Detected by an -- explicit page-title list (matching the San Marino/Northern Ireland -- convention), confirmed directly rather than guessed, since a -- territory's own P17 isn't something this module can reliably key -- automatic detection off. local US_QID = "Q30" local usTerritoryTitles = { ["Yn Phurt Verçhagh"] = true, -- Puerto Rico ["Guam"] = true, -- Guam ["Ellanyn Americaanagh y Voidyn"] = true, -- US Virgin Islands ["Samoa Americaanagh"] = true, -- American Samoa } local function isUSTerritoryPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title ~= nil and usTerritoryTitles[title] == true end local sanMarinoCaptains = {} for i = 1, 2 do local name = getManual(args, {"ennym_captan_reiree" .. i}) if name and not isNone(name) then table.insert(sanMarinoCaptains, name) end end local manualSanMarinoGiven = #sanMarinoCaptains > 0 if (manualSanMarinoGiven or isSanMarinoPage()) and not leadersSuppressed and not manualLeaderGiven then manualLeaderGiven = true local nameLines = {} if manualSanMarinoGiven then nameLines = sanMarinoCaptains else local captainQids = getWdRawPropertyIds("P35", {"best", "current"}) for _, qid in ipairs(captainQids) do local name = resolvePersonName(qid) if name then table.insert(nameLines, name) end end end if #nameLines > 0 then local title = getManual(args, {"sorçh_kione_steat"}) or '[[Captanyn Reiree]]' table.insert(leaderPairs, { title = title, name = table.concat(nameLines, '<br/>'), }) end end if not manualLeaderGiven and not leadersSuppressed then local hosQids = getWdRawPropertyIds("P35", {"best", "current"}) -- "current" matters here, not just "best": confirmed live on Benin, -- whose P6 (head of government) statements have no preferred rank -- at all (three past/present holders all tied at normal rank) -- -- Module:Wd's singular _property command has no way to break that -- tie chronologically, so without "current" filtering out the -- already-ended ones it can return an arbitrary past holder. local hogBase, hogCitation = getWdPropertyWithCitation("P6", {"linked", "current"}) local hog = ensureLinked(hogBase) if hog and hogCitation then hog = hog .. hogCitation end local hogQid = getWdRawPropertyId("P6", {"current"}) if isNicaraguaPage() then -- Nicaragua is a diarchy: two co-presidents, listed on Wikidata not -- as the country's own P35/P6 statements but as P1308 ("position -- holder") values on the "President of Nicaragua" OFFICE item -- itself (Q852448) -- same foreign-entity pattern as Northern -- Ireland's Deputy First Minister and Switzerland's councillors -- above. "best" (rank) and "current" (time period) are -- independent Wd flags, not alternatives -- both are needed -- together to get exactly the presently-serving, non-deprecated -- co-presidents, matching this file's existing convention -- (San Marino's Captains Regent, the Swiss Federal Council). local presidentQids = getWdRawForeignPropertyIds("Q852448", "P1308", {"best", "current"}) local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local sameHeadOfStateAndGovernment = false local presidentNames = {} for _, qid in ipairs(presidentQids) do local name = ensureLinked(getWdItemManxLink(qid, false, nil, true)) if name then table.insert(leaderPairs, {title = presidentTitle, name = name}) end if name then table.insert(presidentNames, name) end if qid == hogQid then sameHeadOfStateAndGovernment = true end end if #presidentNames > 0 then table.insert(leaderPairs, { title = presidentTitle, name = table.concat(presidentNames, '<br/>'), }) end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or getWdOfficeItemTitle("P1313") or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end elseif #hosQids > 1 then local sameHeadOfStateAndGovernment = false if hog and hogQid then for _, qid in ipairs(hosQids) do if qid == hogQid then sameHeadOfStateAndGovernment = true end end end local officeQids = getWdRawPropertyIds("P1906") local pairsBuilt = 0 if #officeQids > 1 then for _, officeQid in ipairs(officeQids) do local personQid = getWdQualifierRawIdForValue("P1906", officeQid, "P1308") local name = personQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(personQid, false, nil, true))) or nil if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink(officeQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) pairsBuilt = pairsBuilt + 1 end end end if pairsBuilt == 0 then for _, qid in ipairs(hosQids) do local name = shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdPositionTitleForPerson(qid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) end end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or getWdOfficeItemTitle("P1313") -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end else local hosBase, hosCitation = getWdPropertyWithCitation("P35", {"linked", "current"}) local hos = shortenLinkedCountryName(ensureLinked(hosBase)) if hos and hosCitation then hos = hos .. hosCitation end local hosQid = getWdRawPropertyId("P35", {"current"}) -- Some countries (Benin since its 2016 constitutional reform) -- have literally merged the head-of-state and head-of- -- government OFFICES into one -- confirmed directly on -- Wikidata, not guessed: Benin's own "office held by head of -- state" (P1906) and "office held by head of government" -- (P1313) both resolve to the identical item, "President of -- the Republic of Benin". Comparing only the PEOPLE -- (hosQid == hogQid) isn't enough to catch this: a merged- -- office country's P6 statement can easily be stale (an -- outgoing office-holder's statement left with no end-date -- after a transition, since "head of government" stops being -- tracked as a genuinely separate role once the offices -- merge) and so resolve to the wrong, out-of-date person -- -- but even then, a second row for an office already shown -- under the head-of-state row would always be redundant, so -- the OFFICES themselves are compared too, not just the -- people. local hosOfficeQid = getWdRawPropertyId("P1906") local hogOfficeQid = getWdRawPropertyId("P1313") local sameOffice = hosOfficeQid and hogOfficeQid and hosOfficeQid == hogOfficeQid local sameHeadOfStateAndGovernment = sameOffice or (hos and hog and hosQid and hogQid and hosQid == hogQid) if hos then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or (hosOfficeQid and getWdItemManxLink(hosOfficeQid)) -- office held by head of state or getWdPositionTitle("P35") or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = hos}) if not isNone(getManual(args, {"ynnydee_kione_steat"})) then local proxyOfficeQid = getWdQualifierRawId("P35", "P1393") if proxyOfficeQid then local proxyPersonIds = getWdRawForeignPropertyIds(proxyOfficeQid, "P1308", {"best"}) local proxyPersonQid = proxyPersonIds[1] local proxyName = proxyPersonQid and ensureLinked(getWdItemManxLink(proxyPersonQid, false, nil, true)) or nil if proxyName then local proxyTitle = getManual(args, {"sorçh_ynnydee"}) or getWdItemManxLink(proxyOfficeQid) or "Ynnydee" table.insert(leaderPairs, {title = proxyTitle, name = proxyName}) end end end elseif isUSTerritoryPage() then -- No P35 at all on the territory's own item (confirmed -- above) -- fetch the sitting President straight off the -- United States' own item (Q30) instead. Priority order -- for the title mirrors every other country's head-of- -- state title exactly, just sourced from Q30 rather than -- the current page: manual override, then the office -- actually set on the US's own item (P1906), then the -- person-chain heuristic (P39 on the President himself -- -- eid-agnostic, so it works unchanged here), then the -- property's own label, then the generic hardcoded word. local presidentQid = getWdRawForeignPropertyIds(US_QID, "P35", {"best", "current"})[1] local presidentName = resolvePersonName(presidentQid) if presidentName then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdForeignOfficeItemTitle(US_QID, "P1906") or getWdPositionTitleForPerson(presidentQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = presidentTitle, name = presidentName}) end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or (hogOfficeQid and getWdItemManxLink(hogOfficeQid)) -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) if isNorthernIrelandPage() then local dfmPersonQid = getWdRawForeignPropertyIds("Q11954685", "P1308", {"best"})[1] local dfmName = dfmPersonQid and ensureLinked(getWdItemManxLink(dfmPersonQid, false, nil, true)) or nil local dfmTitle = getWdItemManxLink("Q11954685") if dfmName and dfmTitle then table.insert(leaderPairs, {title = dfmTitle, name = dfmName}) end end end end end local reiltysLabel = getGenitiveLinkedLabel("Reiltys") if govShown then local govClass = (#leaderPairs > 0) and "mergedtoprow" or "" table.insert(govRows, string.format(ROW, trClass(govClass), reiltysLabel, applyRefNote(govTypeRaw, govRef, govNote, frame))) elseif #leaderPairs > 0 then table.insert(govRows, string.format(HEADER, reiltysLabel)) end if isNicaraguaPage() and #leaderPairs > 1 then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local combinedNames, seenNames = {}, {} local firstPresidentIndex = nil local filteredLeaderPairs = {} for _, leader in ipairs(leaderPairs) do if leader.title == presidentTitle then if not firstPresidentIndex then firstPresidentIndex = #filteredLeaderPairs + 1 end local remaining = leader.name or "" while true do local name, rest = remaining:match("^(.-)<br%s*/>(.*)$") if not name then name = remaining end name = mw.text.trim(name) if name ~= "" and not seenNames[name] then seenNames[name] = true table.insert(combinedNames, name) end if not rest then break end remaining = rest end else table.insert(filteredLeaderPairs, leader) end end if firstPresidentIndex and #combinedNames > 0 then table.insert(filteredLeaderPairs, firstPresidentIndex, { title = presidentTitle, name = table.concat(combinedNames, "<br/>"), }) leaderPairs = filteredLeaderPairs end end if #leaderPairs > 0 then local last = leaderPairs[#leaderPairs] last.name = applyRefNote(last.name, leaderRef, leaderNote, frame) local items = {} for _, leader in ipairs(leaderPairs) do table.insert(items, {leader.title, leader.name}) end appendIndentRun(govRows, items) end local quaiyl = getManual(args, {"çhionnal", "quaiyl"}) local quaiylSyrjey = getManual(args, {"thie_heose", "quaiyl_syrjey"}) local quaiylInshley = getManual(args, {"thie_heese", "quaiyl_s'inshley", "quaiyl_sinshley"}) local quaiylRef = getManual(args, {"imraa_çhionnal", "imraa_quaiyl"}) local quaiylNote = getManual(args, {"noteyn_çhionnal", "noteyn_quaiyl"}) local quaiylQid = nil if not quaiyl then quaiylQid = getWdRawPropertyId("P194") if quaiylQid then quaiyl = getWdItemManxLink(quaiylQid, false, nil, nil, true) end end if not quaiylSyrjey or not quaiylInshley then local legislatureQid = quaiylQid or getWdRawPropertyId("P194") if legislatureQid then local wdUpper, wdLower = getWdChambers(legislatureQid) if not quaiylSyrjey then quaiylSyrjey = wdUpper end if not quaiylInshley then quaiylInshley = wdLower end end end if quaiyl and not isNone(quaiyl) then local houseItems = {} if quaiylSyrjey and not isNone(quaiylSyrjey) then table.insert(houseItems, {"[[Thie heose]]", quaiylSyrjey}) end if quaiylInshley and not isNone(quaiylInshley) then table.insert(houseItems, {"[[Thie heese]]", quaiylInshley}) end local quaiylClass = (#houseItems > 0) and "mergedtoprow" or "" table.insert(quaiylRows, string.format(ROW, trClass(quaiylClass), "[[Çhionnal slattyssagh]]", applyRefNote(quaiyl, quaiylRef, quaiylNote, frame))) appendIndentRun(quaiylRows, houseItems) end local foundingLabel = getManual(args, {"sorçh_kionedeeaght", "sorçh_kiondeeaght"}) or "Bunneeaght" local foundingValue = getManual(args, {"bunnit"}) local foundingQualifier = getManual(args, {"note_kionedeeaght", "note_kiondeeaght"}) local foundingFootnote = getManual(args, {"noteyn_kionedeeaght", "noteyn_kiondeeaght"}) local foundingRef = getManual(args, {"imraa_kionedeeaght", "imraa_kiondeeaght"}) local function foundingLabelWithQualifier(label) local linked = wikilinkLabel(label) if foundingQualifier and foundingQualifier ~= "" then return linked .. '&nbsp;<span style="font-weight:normal;">' .. foundingQualifier .. '</span>' end return linked end local establishmentRows = {} for i = 1, 9 do local event = getManual(args, {"taghyrt_bunneeaght" .. i, "taghyrt" .. i .. "_bunnit"}) local date = getManual(args, {"date_bunneeaght" .. i, "date" .. i .. "_bunnit"}) if event then table.insert(establishmentRows, {event, date or ""}) end end if foundingValue or #establishmentRows > 0 then if foundingValue and not isNone(foundingValue) then local foundingClass = (#establishmentRows > 0) and "mergedtoprow" or "" table.insert(foundingRows, string.format(ROW, trClass(foundingClass), foundingLabelWithQualifier(foundingLabel), applyRefNote(foundingValue, foundingRef, foundingFootnote, frame))) elseif #establishmentRows > 0 then local headerLabel = applyRefNote(foundingLabelWithQualifier(foundingLabel), foundingRef, foundingFootnote, frame) table.insert(foundingRows, string.format(HEADER, headerLabel)) end appendIndentRun(foundingRows, establishmentRows, true) elseif not isNone(getManual(args, {"bunnit"})) then -- Wikidata fallback: inception (P571), only when unset (not none). local inception = getWdProperty("P571") if inception and inception:find(" (Joolagh)", 1, true) then inception = inception:gsub(" %(Joolagh%)", " (" .. getJulianCalendarSuffixLink() .. ")", 1) end if inception then table.insert(foundingRows, string.format(ROW, "", foundingLabelWithQualifier(foundingLabel), applyRefNote(inception, foundingRef, foundingFootnote, frame))) end end local aarheynnRows = {} if aarheynnOK and Aarheynn and Aarheynn.main then local okAarheynn, resultAarheynn = pcall(Aarheynn.main, frame, args) if okAarheynn and resultAarheynn then aarheynnRows = resultAarheynn end end appendSection(rows, govRows) appendSection(rows, quaiylRows) appendSection(rows, aarheynnRows) appendSection(rows, foundingRows) if #rows == 0 then return nil end return table.concat(rows) end return p 8rj451n16ff63skchhxgt2rdgxhse0e 394572 394543 2026-10-16T17:36:45Z MacTire02 219 -chaghteraghtyn 394572 Scribunto text/plain local p = {} -- Wikidata fetch/citation module (replaces Module:WikidataIB). local wdOK, Wd = pcall(require, "Module:Wd") -- Country genitive/mutated forms, e.g. Mannin -> Vannin. local enmynOK, EnmynCheerey = pcall(require, "Module:Enmyn çheerey") -- Manx-label-or-linked-Wikidata-fallback helper; last rung of getWdItemManxLink. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local aarheynnOK, Aarheynn = pcall(require, "Module:Kishtey fys çheer/aarheynn") -- Returns the first non-empty manual parameter from a list of names. local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Shared innards of getWdProperty/getWdPropertyWithCitation. local function getWdPropertyRaw(property, flags, includeReference) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(flags or {}) do table.insert(callArgs, f) end if includeReference then table.insert(callArgs, "reference") end table.insert(callArgs, "best") -- single best-ranked value table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and result ~= "" then return result end return nil end local function getWdProperty(property, flags) return getWdPropertyRaw(property, flags, true) end local function getWdPropertyWithCitation(property, flags) local base = getWdPropertyRaw(property, flags, false) if not base then return nil, nil end local withRef = getWdPropertyRaw(property, flags, true) if not withRef or withRef == base then return base, nil end if withRef:sub(1, #base) == base then local citation = withRef:sub(#base + 1) if citation ~= "" then return base, citation end return base, nil end return withRef, nil end local function ensureLinked(value) if not value or value == "" then return value end local label, refSuffix = value:match("^(.-)(<ref.*)$") if not label then label = value refSuffix = "" end if label:find("%[%[") or label:match("^%[https?://") then return value end label = mw.text.trim(label) if label == "" then return value end return "[[" .. label .. "]]" .. refSuffix end -- Manx label of a Wikidata PROPERTY (e.g. P35 -> "head of state"), title -- fallback. getLabelByLang avoids leaking an English fallback. local function getWikidataPropertyLabel(property) local ok, label = pcall(mw.wikibase.getLabelByLang, property, "gv") if ok and label and label ~= "" then return label end return nil end -- Raw QID of an entity-valued property on the current page's own item. local function getWdRawPropertyId(property, extraFlags) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, "best") table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawPropertyIds(property, extraFlags) if not wdOK or not Wd or not Wd._properties then return {} end local callArgs = {"raw"} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, property) local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end local function getWdQualifierRawId(property, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdQualifierRawIdForValue(property, valueQid, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier or not valueQid then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, valueQid, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawForeignPropertyIds(eid, property, extraFlags, qualifiers) if not wdOK or not Wd or not Wd._properties or not eid then return {} end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, property) callArgs[Wd.args and Wd.args.eid or "eid"] = eid for qid, value in pairs(qualifiers or {}) do callArgs[qid] = value end local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- QID of the Wikidata item connected to the current page. local function getCurrentCountryQid() local ok, id = pcall(mw.wikibase.getEntityIdForCurrentPage) if ok and id and id ~= "" then return id end return nil end local function getCurrentCountryGenitive() if not enmynOK or not EnmynCheerey or not EnmynCheerey.genitive then return nil end local okTitle, title = pcall(function() return mw.title.getCurrentTitle().text end) if not okTitle or not title or title == "" then return nil end local okGen, genitive = pcall(EnmynCheerey.genitive, title) if okGen and genitive and genitive ~= "" then return genitive end return nil end local function getGenitiveLinkedLabel(baseWord) local genitive = getCurrentCountryGenitive() if genitive and genitive ~= "" then return "[[" .. baseWord .. " " .. genitive .. "|" .. baseWord .. "]]" end return "[[" .. baseWord .. "]]" end local shortFormExceptions = { ["Çhiarn Vannin"] = true, ["Ree ny Belgee"] = true, ["Benrein ny Belgee"] = true, -- Togo's head of government is titled "President of the Council of -- Ministers" (no separate Prime Minister); "ny Shirveishee" here is -- part of the office's own fixed name, not a country-genitive suffix, -- so the " ny " token-split rung below must not fire on it. ["Eaghtyrane Choonseil ny Shirveishee"] = true, } local function stripCountryGenitiveSuffix(text, countryGenitive) if not text or not countryGenitive then return nil end local suffix = " " .. countryGenitive if #text > #suffix and text:sub(-#suffix) == suffix then return text:sub(1, #text - #suffix) end local bareNoun = countryGenitive:match("^yn%s+(.+)$") or countryGenitive:match("^y%s+(.+)$") if bareNoun and bareNoun ~= "" then local suffix2 = " " .. bareNoun if #text > #suffix2 and text:sub(-#suffix2) == suffix2 then local remainder = text:sub(1, #text - #suffix2) if remainder:sub(-3) == " yn" then return remainder:sub(1, #remainder - 3) elseif remainder:sub(-2) == " y" then return remainder:sub(1, #remainder - 2) end return remainder end end return nil end local function shortManxForm(title) if not title or title == "" then return title end if shortFormExceptions[title] then return title end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(title, countryGenitive) if stripped then return stripped end local short = title:match("^(.-)%sy%s") if short and short ~= "" then return short end short = title:match("^(.-)%syn%s") if short and short ~= "" then return short end -- "ny" is the plural/genitive connector (e.g. "Steatyn Unnaneysit" -> -- "ny Steatyn Unnaneysit", "of the United States"). "%sy%s"/"%syn%s" -- can never match "ny" (the character before "y" there is "n", not -- whitespace), so this rung is purely additive, catching titles that -- would otherwise fall through to the blind last-word rung below. short = title:match("^(.-)%sny%s") if short and short ~= "" then return short end short = title:match("^(.+)%s%S+$") if short and short ~= "" then return short end return title end local function shortenCountrySuffixedName(name) if not name or name == "" then return name end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(name, countryGenitive) if stripped then return stripped end local short = name:match("^(.-)%sy%s") if short and short ~= "" then return short end short = name:match("^(.-)%syn%s") if short and short ~= "" then return short end short = name:match("^(.-)%sny%s") if short and short ~= "" then return short end return name end local function shortenLinkedCountryName(value) if not value or value == "" then return value end local main, refSuffix = value:match("^(.-)(<ref.*)$") if not main then main = value refSuffix = "" end local target, display = main:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$") if not target then target = main:match("^%[%[([^%[%]|]+)%]%]$") display = target end if not target then return value end local short = shortenCountrySuffixedName(display) if short ~= display then return "[[" .. target .. "|" .. short .. "]]" .. refSuffix end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("%]%]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end local function getWdItemManxLink(qid, shorten, capitalize, forceRedlink, preferExternalForLabel) if not qid then return nil end if capitalize == nil then capitalize = true end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then if capitalize then gvLabel = wikiUcfirst(gvLabel) end else gvLabel = nil end if not sitelinkTitle and not gvLabel then if forceRedlink then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, _, _, rawLabel = pcall(EnnymWd.labelWithFallback, qid) if ok and rawLabel and rawLabel ~= "" then return "[[" .. wikiUcfirst(mw.text.nowiki(rawLabel)) .. "]]" end end return nil end if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end -- No gv sitelink yet: this item has no article of its own, so a -- same-named wikilink would redlink to a GENERIC title (e.g. "Çhionnal -- ashoonagh"/"National Assembly") that many unrelated countries' -- legislative bodies share via an identical gv label. Creating that one -- shared article later would wrongly merge every one of those distinct -- bodies into it. preferExternalForLabel routes around that: link -- straight to THIS item on Wikidata instead, which is always specific -- to one body no matter how many others carry the same label. if not sitelinkTitle and preferExternalForLabel then local display = (shorten == false) and gvLabel or shortManxForm(gvLabel) return "[https://www.wikidata.org/wiki/" .. qid .. " " .. display .. "]" end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if shorten == false then if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end local short = shortManxForm(displayBase) if short ~= target then return "[[" .. target .. "|" .. short .. "]]" end return "[[" .. target .. "]]" end local function getWdOfficeItemTitle(officeProperty) local officeQid = getWdRawPropertyId(officeProperty) if not officeQid then return nil end return getWdItemManxLink(officeQid) end -- Same as getWdOfficeItemTitle, but the office property is read off a -- FOREIGN entity (eid) rather than the current page's own item -- needed -- for US territories, whose own Wikidata item never carries a P1906/P35 -- of its own; the office has to be resolved off the United States' item -- (Q30) instead. local function getWdForeignOfficeItemTitle(eid, officeProperty) local officeQid = getWdRawForeignPropertyIds(eid, officeProperty, {"best"})[1] if not officeQid then return nil end return getWdItemManxLink(officeQid) end local function getWdPositionTitleForPerson(personQid) if not personQid then return nil end local countryQid = getCurrentCountryQid() local candidates = {} if countryQid then for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"}, {["P1001"] = countryQid})) do table.insert(candidates, id) end end for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"})) do table.insert(candidates, id) end local tried = {} for _, qid in ipairs(candidates) do if not tried[qid] then tried[qid] = true local link = getWdItemManxLink(qid) if link then return link end end end return nil end local function getWdPositionTitle(headProperty) return getWdPositionTitleForPerson(getWdRawPropertyId(headProperty)) end -- Wikidata's "upper house" / "lower house" class items. local UPPER_HOUSE_QID = "Q637846" local LOWER_HOUSE_QID = "Q375928" local CLASS_WALK_DEPTH = 3 local function classReaches(classQid, targetQid, depth, seen) if classQid == targetQid then return true end if depth <= 0 then return false end seen = seen or {} if seen[classQid] then return false end seen[classQid] = true for _, superQid in ipairs(getWdRawForeignPropertyIds(classQid, "P279")) do if classReaches(superQid, targetQid, depth - 1, seen) then return true end end return false end local function getWdChambers(legislatureQid) if not legislatureQid then return nil, nil end local partQids = getWdRawForeignPropertyIds(legislatureQid, "P527") local upperQid, lowerQid = nil, nil local upperAmbiguous, lowerAmbiguous = false, false for _, partQid in ipairs(partQids) do local isUpper, isLower = false, false for _, classQid in ipairs(getWdRawForeignPropertyIds(partQid, "P31")) do if classQid == UPPER_HOUSE_QID or classReaches(classQid, UPPER_HOUSE_QID, CLASS_WALK_DEPTH) then isUpper = true elseif classQid == LOWER_HOUSE_QID or classReaches(classQid, LOWER_HOUSE_QID, CLASS_WALK_DEPTH) then isLower = true end end if isUpper then if upperQid and upperQid ~= partQid then upperAmbiguous = true end upperQid = partQid end if isLower then if lowerQid and lowerQid ~= partQid then lowerAmbiguous = true end lowerQid = partQid end end local upperLink = (upperQid and not upperAmbiguous) and getWdItemManxLink(upperQid, false, nil, nil, true) or nil local lowerLink = (lowerQid and not lowerAmbiguous) and getWdItemManxLink(lowerQid, false, nil, nil, true) or nil return upperLink, lowerLink end local JULIAN_CALENDAR_QID = "Q1985786" local function getJulianCalendarSuffixLink() local link = getWdItemManxLink(JULIAN_CALENDAR_QID, false) if link then local target = link:match("^%[%[([^%[%]|]+)") or link:match("^%[%[([^%[%]|]+)%]%]$") if target then return "[[" .. target .. "|Joolagh]]" end return link end return "Joolagh" end local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW_WRAP = '<tr%s><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' -- Builds a class="..." attribute, or an empty string. local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function wikilinkLabel(label) if not label or label == "" then return label end if label:find("%[%[") then return label end return "[[" .. label .. "]]" end local function appendIndentRun(rows, items, wrap) local template = wrap and SUBROW_WRAP or SUBROW for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(template, trClass(class), item[1], item[2])) end end local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end function p.main(frame, args) -- Allow being called as p.main(args) with no frame (used by tests). if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} local govRows = {} local quaiylRows = {} local foundingRows = {} local govTypeRaw = getManual(args, {"sorçh_reiltys", "government_type"}) local govRef = getManual(args, {"imraa_reiltys"}) local govNote = getManual(args, {"noteyn_reiltys"}) if not govTypeRaw then local govTypeQids = getWdRawPropertyIds("P122") local govTypeParts = {} for _, qid in ipairs(govTypeQids) do local link = getWdItemManxLink(qid, false, false) if link then table.insert(govTypeParts, link) end end if #govTypeParts > 0 then govTypeRaw = capitalizeFirstLetter(table.concat(govTypeParts, ", ")) end end local govShown = govTypeRaw and not isNone(govTypeRaw) local leaderPairs = {} local manualLeaderGiven = false for i = 1, 5 do local title = getManual(args, {"enmys_toshiagh" .. i, "enmys" .. i .. "_fer-toshee"}) local name = getManual(args, {"ennym_toshiagh" .. i, "ennym" .. i .. "_fer-toshee"}) if title or name then manualLeaderGiven = true if not isNone(name) then table.insert(leaderPairs, {title = title or "", name = name or ""}) end end end local leaderRef = getManual(args, {"imraa_toshiagh", "imraa_fer-toshee"}) local leaderNote = getManual(args, {"noteyn_toshiagh", "noteyn_fer-toshee"}) local leadersSuppressed = isNone(getManual(args, {"fir_hoshee", "toshiaghyn"})) local function resolvePersonName(qid) if not qid then return nil end return shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) end local councillors = {} for i = 1, 7 do local name = getManual(args, {"ennym_coonseilagh" .. i}) if name and not isNone(name) then table.insert(councillors, {slot = i, name = name}) end end local manualCouncillorsGiven = #councillors > 0 local swissBodyQid = getWdRawPropertyId("P35") or getWdRawPropertyId("P6") local isSwissFederalCouncil = swissBodyQid == "Q30917" if (manualCouncillorsGiven or isSwissFederalCouncil) and not leadersSuppressed then manualLeaderGiven = true local presidentAnnotation = ' ([[Eaghtyrane Chochiangle yn Elveeish|Eaghtyrane]])' local vpAnnotation = ' ([[Lhiass-eaghtyrane yn Elveeish|Lhiass-eaghtyrane]])' local nameLines = {} local chancellor = nil if manualCouncillorsGiven then local presidentSlot = tonumber(getManual(args, {"eaghtyrane_coonseilagh"})) local vicePresidentSlot = tonumber(getManual(args, {"lhiass-eaghtyrane_coonseilagh"})) for _, entry in ipairs(councillors) do local line = entry.name if presidentSlot and entry.slot == presidentSlot then line = line .. presidentAnnotation elseif vicePresidentSlot and entry.slot == vicePresidentSlot then line = line .. vpAnnotation end table.insert(nameLines, line) end chancellor = getManual(args, {"shansyleyr_conastagh"}) else local presidentOverride = getManual(args, {"eaghtyrane_coonseilagh"}) local vpOverride = getManual(args, {"lhiass-eaghtyrane_coonseilagh"}) local chancellorOverride = getManual(args, {"shansyleyr_conastagh"}) local councillorQids = getWdRawForeignPropertyIds("Q30917", "P3320", {"best", "current"}) local presidentQid = not isNone(presidentOverride) and getWdRawForeignPropertyIds("Q688230", "P1308", {"best"})[1] or nil local vpQid = not isNone(vpOverride) and getWdRawForeignPropertyIds("Q25550811", "P1308", {"best"})[1] or nil for _, qid in ipairs(councillorQids) do local name = resolvePersonName(qid) if name then if qid == presidentQid then name = name .. presidentAnnotation elseif qid == vpQid then name = name .. vpAnnotation end table.insert(nameLines, name) end end if chancellorOverride and not isNone(chancellorOverride) then chancellor = chancellorOverride elseif not isNone(chancellorOverride) then local chancellorQid = getWdRawForeignPropertyIds("Q687810", "P1308", {"best"})[1] chancellor = resolvePersonName(chancellorQid) end end if #nameLines > 0 then table.insert(leaderPairs, { title = '[[Coonseil Chonastagh yn Elveeish|Coonseilee Chonastagh]]', name = table.concat(nameLines, '<br/>'), }) end if chancellor and chancellor ~= "" then table.insert(leaderPairs, { title = '[[Shansyleyr yn Elveeish|Shansyleyr Conastagh]]', name = chancellor, }) end end local function isSanMarinoPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "San Marino" end local function isNorthernIrelandPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nerin Hwoaie" end local function isNicaraguaPage() if getCurrentCountryQid() == "Q811" then return true end local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nickeraag" end -- US unincorporated territories: the President of the United States is -- each territory's head of state, but this is never recorded on the -- territory's own Wikidata item (it carries only "instance of" -- classification statements, no P35). The President has to be fetched -- off the United States' own item (Q30) instead -- same foreign-entity -- pattern as Nicaragua's co-presidents and Northern Ireland's Deputy -- First Minister above. Detected by an explicit page-title list -- (matching the San Marino/Northern Ireland convention). local US_QID = "Q30" local usTerritoryTitles = { ["Yn Phurt Verçhagh"] = true, -- Puerto Rico ["Guam"] = true, -- Guam ["Ellanyn Americaanagh y Voidyn"] = true, -- US Virgin Islands ["Samoa Americaanagh"] = true, -- American Samoa } local function isUSTerritoryPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title ~= nil and usTerritoryTitles[title] == true end local sanMarinoCaptains = {} for i = 1, 2 do local name = getManual(args, {"ennym_captan_reiree" .. i}) if name and not isNone(name) then table.insert(sanMarinoCaptains, name) end end local manualSanMarinoGiven = #sanMarinoCaptains > 0 if (manualSanMarinoGiven or isSanMarinoPage()) and not leadersSuppressed and not manualLeaderGiven then manualLeaderGiven = true local nameLines = {} if manualSanMarinoGiven then nameLines = sanMarinoCaptains else local captainQids = getWdRawPropertyIds("P35", {"best", "current"}) for _, qid in ipairs(captainQids) do local name = resolvePersonName(qid) if name then table.insert(nameLines, name) end end end if #nameLines > 0 then local title = getManual(args, {"sorçh_kione_steat"}) or '[[Captanyn Reiree]]' table.insert(leaderPairs, { title = title, name = table.concat(nameLines, '<br/>'), }) end end if not manualLeaderGiven and not leadersSuppressed then local hosQids = getWdRawPropertyIds("P35", {"best", "current"}) -- "current" matters here, not just "best": a country whose P6 -- (head of government) statements have no preferred rank at all -- (several past/present holders tied at normal rank) would -- otherwise let Module:Wd's singular _property command return an -- arbitrary past holder, with no way to break the tie -- chronologically. local hogBase, hogCitation = getWdPropertyWithCitation("P6", {"linked", "current"}) local hog = ensureLinked(hogBase) if hog and hogCitation then hog = hog .. hogCitation end local hogQid = getWdRawPropertyId("P6", {"current"}) if isNicaraguaPage() then -- Nicaragua is a diarchy: two co-presidents, listed on Wikidata not -- as the country's own P35/P6 statements but as P1308 ("position -- holder") values on the "President of Nicaragua" OFFICE item -- itself (Q852448) -- same foreign-entity pattern as Northern -- Ireland's Deputy First Minister and Switzerland's councillors -- above. "best" and "current" are independent Wd flags, both -- needed to get exactly the presently-serving co-presidents. local presidentQids = getWdRawForeignPropertyIds("Q852448", "P1308", {"best", "current"}) local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local sameHeadOfStateAndGovernment = false local presidentNames = {} for _, qid in ipairs(presidentQids) do local name = ensureLinked(getWdItemManxLink(qid, false, nil, true)) if name then table.insert(leaderPairs, {title = presidentTitle, name = name}) end if name then table.insert(presidentNames, name) end if qid == hogQid then sameHeadOfStateAndGovernment = true end end if #presidentNames > 0 then table.insert(leaderPairs, { title = presidentTitle, name = table.concat(presidentNames, '<br/>'), }) end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or getWdOfficeItemTitle("P1313") or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end elseif #hosQids > 1 then local sameHeadOfStateAndGovernment = false if hog and hogQid then for _, qid in ipairs(hosQids) do if qid == hogQid then sameHeadOfStateAndGovernment = true end end end local officeQids = getWdRawPropertyIds("P1906") local pairsBuilt = 0 if #officeQids > 1 then for _, officeQid in ipairs(officeQids) do local personQid = getWdQualifierRawIdForValue("P1906", officeQid, "P1308") local name = personQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(personQid, false, nil, true))) or nil if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink(officeQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) pairsBuilt = pairsBuilt + 1 end end end if pairsBuilt == 0 then for _, qid in ipairs(hosQids) do local name = shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdPositionTitleForPerson(qid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) end end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or getWdOfficeItemTitle("P1313") -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end else local hosBase, hosCitation = getWdPropertyWithCitation("P35", {"linked", "current"}) local hos = shortenLinkedCountryName(ensureLinked(hosBase)) if hos and hosCitation then hos = hos .. hosCitation end local hosQid = getWdRawPropertyId("P35", {"current"}) -- Some countries (e.g. Benin since 2016) have literally merged -- the head-of-state and head-of-government OFFICES into one: -- "office held by head of state" (P1906) and "office held by -- head of government" (P1313) both resolve to the same item. -- Comparing only the PEOPLE (hosQid == hogQid) isn't enough -- -- a merged-office country's P6 statement can be stale (left -- over from before the merge) and resolve to the wrong person -- -- so the OFFICES themselves are compared too, not just the -- people. local hosOfficeQid = getWdRawPropertyId("P1906") local hogOfficeQid = getWdRawPropertyId("P1313") local sameOffice = hosOfficeQid and hogOfficeQid and hosOfficeQid == hogOfficeQid local sameHeadOfStateAndGovernment = sameOffice or (hos and hog and hosQid and hogQid and hosQid == hogQid) if hos then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or (hosOfficeQid and getWdItemManxLink(hosOfficeQid)) -- office held by head of state or getWdPositionTitle("P35") or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = hos}) if not isNone(getManual(args, {"ynnydee_kione_steat"})) then local proxyOfficeQid = getWdQualifierRawId("P35", "P1393") if proxyOfficeQid then local proxyPersonIds = getWdRawForeignPropertyIds(proxyOfficeQid, "P1308", {"best"}) local proxyPersonQid = proxyPersonIds[1] local proxyName = proxyPersonQid and ensureLinked(getWdItemManxLink(proxyPersonQid, false, nil, true)) or nil if proxyName then local proxyTitle = getManual(args, {"sorçh_ynnydee"}) or getWdItemManxLink(proxyOfficeQid) or "Ynnydee" table.insert(leaderPairs, {title = proxyTitle, name = proxyName}) end end end elseif isUSTerritoryPage() then -- No P35 at all on the territory's own item -- fetch the -- sitting President straight off the United States' own -- item (Q30) instead. Title priority mirrors every other -- country's head-of-state title, just sourced from Q30. local presidentQid = getWdRawForeignPropertyIds(US_QID, "P35", {"best", "current"})[1] local presidentName = resolvePersonName(presidentQid) if presidentName then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdForeignOfficeItemTitle(US_QID, "P1906") or getWdPositionTitleForPerson(presidentQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = presidentTitle, name = presidentName}) end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or (hogOfficeQid and getWdItemManxLink(hogOfficeQid)) -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) if isNorthernIrelandPage() then local dfmPersonQid = getWdRawForeignPropertyIds("Q11954685", "P1308", {"best"})[1] local dfmName = dfmPersonQid and ensureLinked(getWdItemManxLink(dfmPersonQid, false, nil, true)) or nil local dfmTitle = getWdItemManxLink("Q11954685") if dfmName and dfmTitle then table.insert(leaderPairs, {title = dfmTitle, name = dfmName}) end end end end end local reiltysLabel = getGenitiveLinkedLabel("Reiltys") if govShown then local govClass = (#leaderPairs > 0) and "mergedtoprow" or "" table.insert(govRows, string.format(ROW, trClass(govClass), reiltysLabel, applyRefNote(govTypeRaw, govRef, govNote, frame))) elseif #leaderPairs > 0 then table.insert(govRows, string.format(HEADER, reiltysLabel)) end if isNicaraguaPage() and #leaderPairs > 1 then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local combinedNames, seenNames = {}, {} local firstPresidentIndex = nil local filteredLeaderPairs = {} for _, leader in ipairs(leaderPairs) do if leader.title == presidentTitle then if not firstPresidentIndex then firstPresidentIndex = #filteredLeaderPairs + 1 end local remaining = leader.name or "" while true do local name, rest = remaining:match("^(.-)<br%s*/>(.*)$") if not name then name = remaining end name = mw.text.trim(name) if name ~= "" and not seenNames[name] then seenNames[name] = true table.insert(combinedNames, name) end if not rest then break end remaining = rest end else table.insert(filteredLeaderPairs, leader) end end if firstPresidentIndex and #combinedNames > 0 then table.insert(filteredLeaderPairs, firstPresidentIndex, { title = presidentTitle, name = table.concat(combinedNames, "<br/>"), }) leaderPairs = filteredLeaderPairs end end if #leaderPairs > 0 then local last = leaderPairs[#leaderPairs] last.name = applyRefNote(last.name, leaderRef, leaderNote, frame) local items = {} for _, leader in ipairs(leaderPairs) do table.insert(items, {leader.title, leader.name}) end appendIndentRun(govRows, items) end local quaiyl = getManual(args, {"çhionnal", "quaiyl"}) local quaiylSyrjey = getManual(args, {"thie_heose", "quaiyl_syrjey"}) local quaiylInshley = getManual(args, {"thie_heese", "quaiyl_s'inshley", "quaiyl_sinshley"}) local quaiylRef = getManual(args, {"imraa_çhionnal", "imraa_quaiyl"}) local quaiylNote = getManual(args, {"noteyn_çhionnal", "noteyn_quaiyl"}) local quaiylQid = nil if not quaiyl then quaiylQid = getWdRawPropertyId("P194") if quaiylQid then quaiyl = getWdItemManxLink(quaiylQid, false, nil, nil, true) end end if not quaiylSyrjey or not quaiylInshley then local legislatureQid = quaiylQid or getWdRawPropertyId("P194") if legislatureQid then local wdUpper, wdLower = getWdChambers(legislatureQid) if not quaiylSyrjey then quaiylSyrjey = wdUpper end if not quaiylInshley then quaiylInshley = wdLower end end end if quaiyl and not isNone(quaiyl) then local houseItems = {} if quaiylSyrjey and not isNone(quaiylSyrjey) then table.insert(houseItems, {"[[Thie heose]]", quaiylSyrjey}) end if quaiylInshley and not isNone(quaiylInshley) then table.insert(houseItems, {"[[Thie heese]]", quaiylInshley}) end local quaiylClass = (#houseItems > 0) and "mergedtoprow" or "" table.insert(quaiylRows, string.format(ROW, trClass(quaiylClass), "[[Çhionnal slattyssagh]]", applyRefNote(quaiyl, quaiylRef, quaiylNote, frame))) appendIndentRun(quaiylRows, houseItems) end local foundingLabel = getManual(args, {"sorçh_kionedeeaght", "sorçh_kiondeeaght"}) or "Bunneeaght" local foundingValue = getManual(args, {"bunnit"}) local foundingQualifier = getManual(args, {"note_kionedeeaght", "note_kiondeeaght"}) local foundingFootnote = getManual(args, {"noteyn_kionedeeaght", "noteyn_kiondeeaght"}) local foundingRef = getManual(args, {"imraa_kionedeeaght", "imraa_kiondeeaght"}) local function foundingLabelWithQualifier(label) local linked = wikilinkLabel(label) if foundingQualifier and foundingQualifier ~= "" then return linked .. '&nbsp;<span style="font-weight:normal;">' .. foundingQualifier .. '</span>' end return linked end local establishmentRows = {} for i = 1, 9 do local event = getManual(args, {"taghyrt_bunneeaght" .. i, "taghyrt" .. i .. "_bunnit"}) local date = getManual(args, {"date_bunneeaght" .. i, "date" .. i .. "_bunnit"}) if event then table.insert(establishmentRows, {event, date or ""}) end end if foundingValue or #establishmentRows > 0 then if foundingValue and not isNone(foundingValue) then local foundingClass = (#establishmentRows > 0) and "mergedtoprow" or "" table.insert(foundingRows, string.format(ROW, trClass(foundingClass), foundingLabelWithQualifier(foundingLabel), applyRefNote(foundingValue, foundingRef, foundingFootnote, frame))) elseif #establishmentRows > 0 then local headerLabel = applyRefNote(foundingLabelWithQualifier(foundingLabel), foundingRef, foundingFootnote, frame) table.insert(foundingRows, string.format(HEADER, headerLabel)) end appendIndentRun(foundingRows, establishmentRows, true) elseif not isNone(getManual(args, {"bunnit"})) then -- Wikidata fallback: inception (P571), only when unset (not none). local inception = getWdProperty("P571") if inception and inception:find(" (Joolagh)", 1, true) then inception = inception:gsub(" %(Joolagh%)", " (" .. getJulianCalendarSuffixLink() .. ")", 1) end if inception then table.insert(foundingRows, string.format(ROW, "", foundingLabelWithQualifier(foundingLabel), applyRefNote(inception, foundingRef, foundingFootnote, frame))) end end local aarheynnRows = {} if aarheynnOK and Aarheynn and Aarheynn.main then local okAarheynn, resultAarheynn = pcall(Aarheynn.main, frame, args) if okAarheynn and resultAarheynn then aarheynnRows = resultAarheynn end end appendSection(rows, govRows) appendSection(rows, quaiylRows) appendSection(rows, aarheynnRows) appendSection(rows, foundingRows) if #rows == 0 then return nil end return table.concat(rows) end return p lgikncnjk2b7lmz2u20hna7ho93h4ku 394576 394572 2026-10-16T18:04:32Z MacTire02 219 ++ 394576 Scribunto text/plain local p = {} -- Wikidata fetch/citation module (replaces Module:WikidataIB). local wdOK, Wd = pcall(require, "Module:Wd") -- Country genitive/mutated forms, e.g. Mannin -> Vannin. local enmynOK, EnmynCheerey = pcall(require, "Module:Enmyn çheerey") -- Manx-label-or-linked-Wikidata-fallback helper; last rung of getWdItemManxLink. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local aarheynnOK, Aarheynn = pcall(require, "Module:Kishtey fys çheer/aarheynn") -- Returns the first non-empty manual parameter from a list of names. local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Shared innards of getWdProperty/getWdPropertyWithCitation. local function getWdPropertyRaw(property, flags, includeReference) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(flags or {}) do table.insert(callArgs, f) end if includeReference then table.insert(callArgs, "reference") end table.insert(callArgs, "best") -- single best-ranked value table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and result ~= "" then return result end return nil end local function getWdProperty(property, flags) return getWdPropertyRaw(property, flags, true) end local function getWdPropertyWithCitation(property, flags) local base = getWdPropertyRaw(property, flags, false) if not base then return nil, nil end local withRef = getWdPropertyRaw(property, flags, true) if not withRef or withRef == base then return base, nil end if withRef:sub(1, #base) == base then local citation = withRef:sub(#base + 1) if citation ~= "" then return base, citation end return base, nil end return withRef, nil end local function ensureLinked(value) if not value or value == "" then return value end local label, refSuffix = value:match("^(.-)(<ref.*)$") if not label then label = value refSuffix = "" end if label:find("%[%[") or label:match("^%[https?://") then return value end label = mw.text.trim(label) if label == "" then return value end return "[[" .. label .. "]]" .. refSuffix end -- Manx label of a Wikidata PROPERTY (e.g. P35 -> "head of state"), title -- fallback. getLabelByLang avoids leaking an English fallback. local function getWikidataPropertyLabel(property) local ok, label = pcall(mw.wikibase.getLabelByLang, property, "gv") if ok and label and label ~= "" then return label end return nil end -- Raw QID of an entity-valued property on the current page's own item. local function getWdRawPropertyId(property, extraFlags) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, "best") table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawPropertyIds(property, extraFlags) if not wdOK or not Wd or not Wd._properties then return {} end local callArgs = {"raw"} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, property) local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end local function getWdQualifierRawId(property, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdQualifierRawIdForValue(property, valueQid, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier or not valueQid then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, valueQid, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawForeignPropertyIds(eid, property, extraFlags, qualifiers) if not wdOK or not Wd or not Wd._properties or not eid then return {} end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, property) callArgs[Wd.args and Wd.args.eid or "eid"] = eid for qid, value in pairs(qualifiers or {}) do callArgs[qid] = value end local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- QID of the Wikidata item connected to the current page. local function getCurrentCountryQid() local ok, id = pcall(mw.wikibase.getEntityIdForCurrentPage) if ok and id and id ~= "" then return id end return nil end local function getCurrentCountryGenitive() if not enmynOK or not EnmynCheerey or not EnmynCheerey.genitive then return nil end local okTitle, title = pcall(function() return mw.title.getCurrentTitle().text end) if not okTitle or not title or title == "" then return nil end local okGen, genitive = pcall(EnmynCheerey.genitive, title) if okGen and genitive and genitive ~= "" then return genitive end return nil end local function getGenitiveLinkedLabel(baseWord) local genitive = getCurrentCountryGenitive() if genitive and genitive ~= "" then return "[[" .. baseWord .. " " .. genitive .. "|" .. baseWord .. "]]" end return "[[" .. baseWord .. "]]" end local shortFormExceptions = { ["Çhiarn Vannin"] = true, ["Ree ny Belgee"] = true, ["Benrein ny Belgee"] = true, -- Togo's head of government is titled "President of the Council of -- Ministers" (no separate Prime Minister); "ny Shirveishee" here is -- part of the office's own fixed name, not a country-genitive suffix, -- so the " ny " token-split rung below must not fire on it. ["Eaghtyrane Choonseil ny Shirveishee"] = true, } local function stripCountryGenitiveSuffix(text, countryGenitive) if not text or not countryGenitive then return nil end local suffix = " " .. countryGenitive if #text > #suffix and text:sub(-#suffix) == suffix then return text:sub(1, #text - #suffix) end local bareNoun = countryGenitive:match("^yn%s+(.+)$") or countryGenitive:match("^y%s+(.+)$") if bareNoun and bareNoun ~= "" then local suffix2 = " " .. bareNoun if #text > #suffix2 and text:sub(-#suffix2) == suffix2 then local remainder = text:sub(1, #text - #suffix2) if remainder:sub(-3) == " yn" then return remainder:sub(1, #remainder - 3) elseif remainder:sub(-2) == " y" then return remainder:sub(1, #remainder - 2) end return remainder end end return nil end local function shortManxForm(title) if not title or title == "" then return title end if shortFormExceptions[title] then return title end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(title, countryGenitive) if stripped then return stripped end local short = title:match("^(.-)%sy%s") if short and short ~= "" then return short end short = title:match("^(.-)%syn%s") if short and short ~= "" then return short end -- "ny" is the plural/genitive connector (e.g. "Steatyn Unnaneysit" -> -- "ny Steatyn Unnaneysit", "of the United States"). "%sy%s"/"%syn%s" -- can never match "ny" (the character before "y" there is "n", not -- whitespace), so this rung is purely additive, catching titles that -- would otherwise fall through to the blind last-word rung below. short = title:match("^(.-)%sny%s") if short and short ~= "" then return short end short = title:match("^(.+)%s%S+$") if short and short ~= "" then return short end return title end local function shortenCountrySuffixedName(name) if not name or name == "" then return name end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(name, countryGenitive) if stripped then return stripped end local short = name:match("^(.-)%sy%s") if short and short ~= "" then return short end short = name:match("^(.-)%syn%s") if short and short ~= "" then return short end short = name:match("^(.-)%sny%s") if short and short ~= "" then return short end return name end local function shortenLinkedCountryName(value) if not value or value == "" then return value end local main, refSuffix = value:match("^(.-)(<ref.*)$") if not main then main = value refSuffix = "" end local target, display = main:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$") if not target then target = main:match("^%[%[([^%[%]|]+)%]%]$") display = target end if not target then return value end local short = shortenCountrySuffixedName(display) if short ~= display then return "[[" .. target .. "|" .. short .. "]]" .. refSuffix end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("]]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end local function getWdItemManxLink(qid, shorten, capitalize, forceRedlink, preferExternalForLabel) if not qid then return nil end if capitalize == nil then capitalize = true end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then if capitalize then gvLabel = wikiUcfirst(gvLabel) end else gvLabel = nil end if not sitelinkTitle and not gvLabel then if forceRedlink then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, _, _, rawLabel = pcall(EnnymWd.labelWithFallback, qid) if ok and rawLabel and rawLabel ~= "" then return "[[" .. wikiUcfirst(mw.text.nowiki(rawLabel)) .. "]]" end end return nil end if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end -- No gv sitelink yet: this item has no article of its own, so a -- same-named wikilink would redlink to a GENERIC title (e.g. "Çhionnal -- ashoonagh"/"National Assembly") that many unrelated countries' -- legislative bodies share via an identical gv label. Creating that one -- shared article later would wrongly merge every one of those distinct -- bodies into it. preferExternalForLabel routes around that: link -- straight to THIS item on Wikidata instead, which is always specific -- to one body no matter how many others carry the same label. if not sitelinkTitle and preferExternalForLabel then local display = (shorten == false) and gvLabel or shortManxForm(gvLabel) return "[https://www.wikidata.org/wiki/" .. qid .. " " .. display .. "]" end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if shorten == false then if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end local short = shortManxForm(displayBase) if short ~= target then return "[[" .. target .. "|" .. short .. "]]" end return "[[" .. target .. "]]" end local function getWdOfficeItemTitle(officeProperty) local officeQid = getWdRawPropertyId(officeProperty) if not officeQid then return nil end return getWdItemManxLink(officeQid) end -- Same as getWdOfficeItemTitle, but the office property is read off a -- FOREIGN entity (eid) rather than the current page's own item -- needed -- for US territories, whose own Wikidata item never carries a P1906/P35 -- of its own; the office has to be resolved off the United States' item -- (Q30) instead. local function getWdForeignOfficeItemTitle(eid, officeProperty) local officeQid = getWdRawForeignPropertyIds(eid, officeProperty, {"best"})[1] if not officeQid then return nil end return getWdItemManxLink(officeQid) end local function getWdPositionTitleForPerson(personQid) if not personQid then return nil end local countryQid = getCurrentCountryQid() local candidates = {} if countryQid then for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"}, {["P1001"] = countryQid})) do table.insert(candidates, id) end end for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"})) do table.insert(candidates, id) end local tried = {} for _, qid in ipairs(candidates) do if not tried[qid] then tried[qid] = true local link = getWdItemManxLink(qid) if link then return link end end end return nil end local function getWdPositionTitle(headProperty) return getWdPositionTitleForPerson(getWdRawPropertyId(headProperty)) end -- Wikidata's "upper house" / "lower house" class items. local UPPER_HOUSE_QID = "Q637846" local LOWER_HOUSE_QID = "Q375928" local CLASS_WALK_DEPTH = 3 local function classReaches(classQid, targetQid, depth, seen) if classQid == targetQid then return true end if depth <= 0 then return false end seen = seen or {} if seen[classQid] then return false end seen[classQid] = true for _, superQid in ipairs(getWdRawForeignPropertyIds(classQid, "P279")) do if classReaches(superQid, targetQid, depth - 1, seen) then return true end end return false end local function getWdChambers(legislatureQid) if not legislatureQid then return nil, nil end local partQids = getWdRawForeignPropertyIds(legislatureQid, "P527") local upperQid, lowerQid = nil, nil local upperAmbiguous, lowerAmbiguous = false, false for _, partQid in ipairs(partQids) do local isUpper, isLower = false, false for _, classQid in ipairs(getWdRawForeignPropertyIds(partQid, "P31")) do if classQid == UPPER_HOUSE_QID or classReaches(classQid, UPPER_HOUSE_QID, CLASS_WALK_DEPTH) then isUpper = true elseif classQid == LOWER_HOUSE_QID or classReaches(classQid, LOWER_HOUSE_QID, CLASS_WALK_DEPTH) then isLower = true end end if isUpper then if upperQid and upperQid ~= partQid then upperAmbiguous = true end upperQid = partQid end if isLower then if lowerQid and lowerQid ~= partQid then lowerAmbiguous = true end lowerQid = partQid end end local upperLink = (upperQid and not upperAmbiguous) and getWdItemManxLink(upperQid, false, nil, nil, true) or nil local lowerLink = (lowerQid and not lowerAmbiguous) and getWdItemManxLink(lowerQid, false, nil, nil, true) or nil return upperLink, lowerLink end local JULIAN_CALENDAR_QID = "Q1985786" local function getJulianCalendarSuffixLink() local link = getWdItemManxLink(JULIAN_CALENDAR_QID, false) if link then local target = link:match("^%[%[([^%[%]|]+)") or link:match("^%[%[([^%[%]|]+)%]%]$") if target then return "[[" .. target .. "|Joolagh]]" end return link end return "Joolagh" end local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW_WRAP = '<tr%s><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' -- Builds a class="..." attribute, or an empty string. local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function wikilinkLabel(label) if not label or label == "" then return label end if label:find("%[%[") then return label end return "[[" .. label .. "]]" end local function appendIndentRun(rows, items, wrap) local template = wrap and SUBROW_WRAP or SUBROW for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(template, trClass(class), item[1], item[2])) end end local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end function p.main(frame, args) -- Allow being called as p.main(args) with no frame (used by tests). if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} local govRows = {} local quaiylRows = {} local foundingRows = {} local govTypeRaw = getManual(args, {"sorçh_reiltys", "government_type"}) local govRef = getManual(args, {"imraa_reiltys"}) local govNote = getManual(args, {"noteyn_reiltys"}) if not govTypeRaw then local govTypeQids = getWdRawPropertyIds("P122") local govTypeParts = {} for _, qid in ipairs(govTypeQids) do local link = getWdItemManxLink(qid, false, false) if link then table.insert(govTypeParts, link) end end if #govTypeParts > 0 then govTypeRaw = capitalizeFirstLetter(table.concat(govTypeParts, ", ")) end end local govShown = govTypeRaw and not isNone(govTypeRaw) local leaderPairs = {} local manualLeaderGiven = false for i = 1, 5 do local title = getManual(args, {"enmys_toshiagh" .. i, "enmys" .. i .. "_fer-toshee"}) local name = getManual(args, {"ennym_toshiagh" .. i, "ennym" .. i .. "_fer-toshee"}) if title or name then manualLeaderGiven = true if not isNone(name) then table.insert(leaderPairs, {title = title or "", name = name or ""}) end end end local leaderRef = getManual(args, {"imraa_toshiagh", "imraa_fer-toshee"}) local leaderNote = getManual(args, {"noteyn_toshiagh", "noteyn_fer-toshee"}) local leadersSuppressed = isNone(getManual(args, {"fir_hoshee", "toshiaghyn"})) local function resolvePersonName(qid) if not qid then return nil end return shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) end local councillors = {} for i = 1, 7 do local name = getManual(args, {"ennym_coonseilagh" .. i}) if name and not isNone(name) then table.insert(councillors, {slot = i, name = name}) end end local manualCouncillorsGiven = #councillors > 0 local swissBodyQid = getWdRawPropertyId("P35") or getWdRawPropertyId("P6") local isSwissFederalCouncil = swissBodyQid == "Q30917" if (manualCouncillorsGiven or isSwissFederalCouncil) and not leadersSuppressed then manualLeaderGiven = true local presidentAnnotation = ' ([[Eaghtyrane Chochiangle yn Elveeish|Eaghtyrane]])' local vpAnnotation = ' ([[Lhiass-eaghtyrane yn Elveeish|Lhiass-eaghtyrane]])' local nameLines = {} local chancellor = nil if manualCouncillorsGiven then local presidentSlot = tonumber(getManual(args, {"eaghtyrane_coonseilagh"})) local vicePresidentSlot = tonumber(getManual(args, {"lhiass-eaghtyrane_coonseilagh"})) for _, entry in ipairs(councillors) do local line = entry.name if presidentSlot and entry.slot == presidentSlot then line = line .. presidentAnnotation elseif vicePresidentSlot and entry.slot == vicePresidentSlot then line = line .. vpAnnotation end table.insert(nameLines, line) end chancellor = getManual(args, {"shansyleyr_conastagh"}) else local presidentOverride = getManual(args, {"eaghtyrane_coonseilagh"}) local vpOverride = getManual(args, {"lhiass-eaghtyrane_coonseilagh"}) local chancellorOverride = getManual(args, {"shansyleyr_conastagh"}) local councillorQids = getWdRawForeignPropertyIds("Q30917", "P3320", {"best", "current"}) local presidentQid = not isNone(presidentOverride) and getWdRawForeignPropertyIds("Q688230", "P1308", {"best"})[1] or nil local vpQid = not isNone(vpOverride) and getWdRawForeignPropertyIds("Q25550811", "P1308", {"best"})[1] or nil for _, qid in ipairs(councillorQids) do local name = resolvePersonName(qid) if name then if qid == presidentQid then name = name .. presidentAnnotation elseif qid == vpQid then name = name .. vpAnnotation end table.insert(nameLines, name) end end if chancellorOverride and not isNone(chancellorOverride) then chancellor = chancellorOverride elseif not isNone(chancellorOverride) then local chancellorQid = getWdRawForeignPropertyIds("Q687810", "P1308", {"best"})[1] chancellor = resolvePersonName(chancellorQid) end end if #nameLines > 0 then table.insert(leaderPairs, { title = '[[Coonseil Chonastagh yn Elveeish|Coonseilee Chonastagh]]', name = table.concat(nameLines, '<br/>'), }) end if chancellor and chancellor ~= "" then table.insert(leaderPairs, { title = '[[Shansyleyr yn Elveeish|Shansyleyr Conastagh]]', name = chancellor, }) end end local function isSanMarinoPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "San Marino" end local function isNorthernIrelandPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nerin Hwoaie" end local function isNicaraguaPage() if getCurrentCountryQid() == "Q811" then return true end local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nickeraag" end -- US unincorporated territories: the President of the United States is -- each territory's head of state, but this is never recorded on the -- territory's own Wikidata item (it carries only "instance of" -- classification statements, no P35). The President has to be fetched -- off the United States' own item (Q30) instead -- same foreign-entity -- pattern as Nicaragua's co-presidents and Northern Ireland's Deputy -- First Minister above. Detected by an explicit page-title list -- (matching the San Marino/Northern Ireland convention). local US_QID = "Q30" local usTerritoryTitles = { ["Yn Phurt Verçhagh"] = true, -- Puerto Rico ["Guam"] = true, -- Guam ["Ellanyn Americaanagh y Voidyn"] = true, -- US Virgin Islands ["Samoa Americaanagh"] = true, -- American Samoa } local function isUSTerritoryPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title ~= nil and usTerritoryTitles[title] == true end local sanMarinoCaptains = {} for i = 1, 2 do local name = getManual(args, {"ennym_captan_reiree" .. i}) if name and not isNone(name) then table.insert(sanMarinoCaptains, name) end end local manualSanMarinoGiven = #sanMarinoCaptains > 0 if (manualSanMarinoGiven or isSanMarinoPage()) and not leadersSuppressed and not manualLeaderGiven then manualLeaderGiven = true local nameLines = {} if manualSanMarinoGiven then nameLines = sanMarinoCaptains else local captainQids = getWdRawPropertyIds("P35", {"best", "current"}) for _, qid in ipairs(captainQids) do local name = resolvePersonName(qid) if name then table.insert(nameLines, name) end end end if #nameLines > 0 then local title = getManual(args, {"sorçh_kione_steat"}) or '[[Captanyn Reiree]]' table.insert(leaderPairs, { title = title, name = table.concat(nameLines, '<br/>'), }) end end if not manualLeaderGiven and not leadersSuppressed then local hosQids = getWdRawPropertyIds("P35", {"best", "current"}) -- "current" matters here, not just "best": a country whose P6 -- (head of government) statements have no preferred rank at all -- (several past/present holders tied at normal rank) would -- otherwise let Module:Wd's singular _property command return an -- arbitrary past holder, with no way to break the tie -- chronologically. local hogBase, hogCitation = getWdPropertyWithCitation("P6", {"linked", "current"}) local hog = ensureLinked(hogBase) if hog and hogCitation then hog = hog .. hogCitation end local hogQid = getWdRawPropertyId("P6", {"current"}) -- No P6 on the item: take the holder (P1308) of the office item named by -- P1313, or of a known office for countries that lack both. local hogFallbackTitle = nil if not hog and not isNone(getManual(args, {"sorçh_kione_reiltys"})) then local HOG_OFFICE_FALLBACK = { Q9648 = { office = "Q3064699", manx = "[[Ard-heckter ny Malveenaghyn]]" }, -- Falkland Islands } local known = HOG_OFFICE_FALLBACK[getCurrentCountryQid() or ""] local officeQid = getWdRawPropertyId("P1313") or (known and known.office) if officeQid then local holderQid = getWdRawForeignPropertyIds(officeQid, "P1308", {"best", "current"})[1] local holderName = holderQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(holderQid, false, nil, true))) or nil if holderName then hog, hogQid = holderName, holderQid hogFallbackTitle = getWdItemManxLink(officeQid) or (known and known.office == officeQid and known.manx) or nil end end end if isNicaraguaPage() then -- Nicaragua is a diarchy: two co-presidents, listed on Wikidata not -- as the country's own P35/P6 statements but as P1308 ("position -- holder") values on the "President of Nicaragua" OFFICE item -- itself (Q852448) -- same foreign-entity pattern as Northern -- Ireland's Deputy First Minister and Switzerland's councillors -- above. "best" and "current" are independent Wd flags, both -- needed to get exactly the presently-serving co-presidents. local presidentQids = getWdRawForeignPropertyIds("Q852448", "P1308", {"best", "current"}) local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local sameHeadOfStateAndGovernment = false local presidentNames = {} for _, qid in ipairs(presidentQids) do local name = ensureLinked(getWdItemManxLink(qid, false, nil, true)) if name then table.insert(leaderPairs, {title = presidentTitle, name = name}) end if name then table.insert(presidentNames, name) end if qid == hogQid then sameHeadOfStateAndGovernment = true end end if #presidentNames > 0 then table.insert(leaderPairs, { title = presidentTitle, name = table.concat(presidentNames, '<br/>'), }) end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or hogFallbackTitle or getWdOfficeItemTitle("P1313") or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end elseif #hosQids > 1 then local sameHeadOfStateAndGovernment = false if hog and hogQid then for _, qid in ipairs(hosQids) do if qid == hogQid then sameHeadOfStateAndGovernment = true end end end local officeQids = getWdRawPropertyIds("P1906") local pairsBuilt = 0 if #officeQids > 1 then for _, officeQid in ipairs(officeQids) do local personQid = getWdQualifierRawIdForValue("P1906", officeQid, "P1308") local name = personQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(personQid, false, nil, true))) or nil if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink(officeQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) pairsBuilt = pairsBuilt + 1 end end end if pairsBuilt == 0 then for _, qid in ipairs(hosQids) do local name = shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdPositionTitleForPerson(qid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) end end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or hogFallbackTitle or getWdOfficeItemTitle("P1313") -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end else local hosBase, hosCitation = getWdPropertyWithCitation("P35", {"linked", "current"}) local hos = shortenLinkedCountryName(ensureLinked(hosBase)) if hos and hosCitation then hos = hos .. hosCitation end local hosQid = getWdRawPropertyId("P35", {"current"}) -- Some countries (e.g. Benin since 2016) have literally merged -- the head-of-state and head-of-government OFFICES into one: -- "office held by head of state" (P1906) and "office held by -- head of government" (P1313) both resolve to the same item. -- Comparing only the PEOPLE (hosQid == hogQid) isn't enough -- -- a merged-office country's P6 statement can be stale (left -- over from before the merge) and resolve to the wrong person -- -- so the OFFICES themselves are compared too, not just the -- people. local hosOfficeQid = getWdRawPropertyId("P1906") local hogOfficeQid = getWdRawPropertyId("P1313") local sameOffice = hosOfficeQid and hogOfficeQid and hosOfficeQid == hogOfficeQid local sameHeadOfStateAndGovernment = sameOffice or (hos and hog and hosQid and hogQid and hosQid == hogQid) if hos then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or (hosOfficeQid and getWdItemManxLink(hosOfficeQid)) -- office held by head of state or getWdPositionTitle("P35") or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = hos}) if not isNone(getManual(args, {"ynnydee_kione_steat"})) then local proxyOfficeQid = getWdQualifierRawId("P35", "P1393") if proxyOfficeQid then local proxyPersonIds = getWdRawForeignPropertyIds(proxyOfficeQid, "P1308", {"best"}) local proxyPersonQid = proxyPersonIds[1] local proxyName = proxyPersonQid and ensureLinked(getWdItemManxLink(proxyPersonQid, false, nil, true)) or nil if proxyName then local proxyTitle = getManual(args, {"sorçh_ynnydee"}) or getWdItemManxLink(proxyOfficeQid) or "Ynnydee" table.insert(leaderPairs, {title = proxyTitle, name = proxyName}) end end end elseif isUSTerritoryPage() then -- No P35 at all on the territory's own item -- fetch the -- sitting President straight off the United States' own -- item (Q30) instead. Title priority mirrors every other -- country's head-of-state title, just sourced from Q30. local presidentQid = getWdRawForeignPropertyIds(US_QID, "P35", {"best", "current"})[1] local presidentName = resolvePersonName(presidentQid) if presidentName then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdForeignOfficeItemTitle(US_QID, "P1906") or getWdPositionTitleForPerson(presidentQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = presidentTitle, name = presidentName}) end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or (hogOfficeQid and getWdItemManxLink(hogOfficeQid)) -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) if isNorthernIrelandPage() then local dfmPersonQid = getWdRawForeignPropertyIds("Q11954685", "P1308", {"best"})[1] local dfmName = dfmPersonQid and ensureLinked(getWdItemManxLink(dfmPersonQid, false, nil, true)) or nil local dfmTitle = getWdItemManxLink("Q11954685") if dfmName and dfmTitle then table.insert(leaderPairs, {title = dfmTitle, name = dfmName}) end end end end end local reiltysLabel = getGenitiveLinkedLabel("Reiltys") if govShown then local govClass = (#leaderPairs > 0) and "mergedtoprow" or "" table.insert(govRows, string.format(ROW, trClass(govClass), reiltysLabel, applyRefNote(govTypeRaw, govRef, govNote, frame))) elseif #leaderPairs > 0 then table.insert(govRows, string.format(HEADER, reiltysLabel)) end if isNicaraguaPage() and #leaderPairs > 1 then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local combinedNames, seenNames = {}, {} local firstPresidentIndex = nil local filteredLeaderPairs = {} for _, leader in ipairs(leaderPairs) do if leader.title == presidentTitle then if not firstPresidentIndex then firstPresidentIndex = #filteredLeaderPairs + 1 end local remaining = leader.name or "" while true do local name, rest = remaining:match("^(.-)<br%s*/>(.*)$") if not name then name = remaining end name = mw.text.trim(name) if name ~= "" and not seenNames[name] then seenNames[name] = true table.insert(combinedNames, name) end if not rest then break end remaining = rest end else table.insert(filteredLeaderPairs, leader) end end if firstPresidentIndex and #combinedNames > 0 then table.insert(filteredLeaderPairs, firstPresidentIndex, { title = presidentTitle, name = table.concat(combinedNames, "<br/>"), }) leaderPairs = filteredLeaderPairs end end if #leaderPairs > 0 then local last = leaderPairs[#leaderPairs] last.name = applyRefNote(last.name, leaderRef, leaderNote, frame) local items = {} for _, leader in ipairs(leaderPairs) do table.insert(items, {leader.title, leader.name}) end appendIndentRun(govRows, items) end local quaiyl = getManual(args, {"çhionnal", "quaiyl"}) local quaiylSyrjey = getManual(args, {"thie_heose", "quaiyl_syrjey"}) local quaiylInshley = getManual(args, {"thie_heese", "quaiyl_s'inshley", "quaiyl_sinshley"}) local quaiylRef = getManual(args, {"imraa_çhionnal", "imraa_quaiyl"}) local quaiylNote = getManual(args, {"noteyn_çhionnal", "noteyn_quaiyl"}) local quaiylQid = nil if not quaiyl then quaiylQid = getWdRawPropertyId("P194") if quaiylQid then quaiyl = getWdItemManxLink(quaiylQid, false, nil, nil, true) end end if not quaiylSyrjey or not quaiylInshley then local legislatureQid = quaiylQid or getWdRawPropertyId("P194") if legislatureQid then local wdUpper, wdLower = getWdChambers(legislatureQid) if not quaiylSyrjey then quaiylSyrjey = wdUpper end if not quaiylInshley then quaiylInshley = wdLower end end end if quaiyl and not isNone(quaiyl) then local houseItems = {} if quaiylSyrjey and not isNone(quaiylSyrjey) then table.insert(houseItems, {"[[Thie heose]]", quaiylSyrjey}) end if quaiylInshley and not isNone(quaiylInshley) then table.insert(houseItems, {"[[Thie heese]]", quaiylInshley}) end local quaiylClass = (#houseItems > 0) and "mergedtoprow" or "" table.insert(quaiylRows, string.format(ROW, trClass(quaiylClass), "[[Çhionnal slattyssagh]]", applyRefNote(quaiyl, quaiylRef, quaiylNote, frame))) appendIndentRun(quaiylRows, houseItems) end local foundingLabel = getManual(args, {"sorçh_kionedeeaght", "sorçh_kiondeeaght"}) or "Bunneeaght" local foundingValue = getManual(args, {"bunnit"}) local foundingQualifier = getManual(args, {"note_kionedeeaght", "note_kiondeeaght"}) local foundingFootnote = getManual(args, {"noteyn_kionedeeaght", "noteyn_kiondeeaght"}) local foundingRef = getManual(args, {"imraa_kionedeeaght", "imraa_kiondeeaght"}) local function foundingLabelWithQualifier(label) local linked = wikilinkLabel(label) if foundingQualifier and foundingQualifier ~= "" then return linked .. '&nbsp;<span style="font-weight:normal;">' .. foundingQualifier .. '</span>' end return linked end local establishmentRows = {} for i = 1, 9 do local event = getManual(args, {"taghyrt_bunneeaght" .. i, "taghyrt" .. i .. "_bunnit"}) local date = getManual(args, {"date_bunneeaght" .. i, "date" .. i .. "_bunnit"}) if event then table.insert(establishmentRows, {event, date or ""}) end end if foundingValue or #establishmentRows > 0 then if foundingValue and not isNone(foundingValue) then local foundingClass = (#establishmentRows > 0) and "mergedtoprow" or "" table.insert(foundingRows, string.format(ROW, trClass(foundingClass), foundingLabelWithQualifier(foundingLabel), applyRefNote(foundingValue, foundingRef, foundingFootnote, frame))) elseif #establishmentRows > 0 then local headerLabel = applyRefNote(foundingLabelWithQualifier(foundingLabel), foundingRef, foundingFootnote, frame) table.insert(foundingRows, string.format(HEADER, headerLabel)) end appendIndentRun(foundingRows, establishmentRows, true) elseif not isNone(getManual(args, {"bunnit"})) then -- Wikidata fallback: inception (P571), only when unset (not none). local inception = getWdProperty("P571") if inception and inception:find(" (Joolagh)", 1, true) then inception = inception:gsub(" %(Joolagh%)", " (" .. getJulianCalendarSuffixLink() .. ")", 1) end if inception then table.insert(foundingRows, string.format(ROW, "", foundingLabelWithQualifier(foundingLabel), applyRefNote(inception, foundingRef, foundingFootnote, frame))) end end local aarheynnRows = {} if aarheynnOK and Aarheynn and Aarheynn.main then local okAarheynn, resultAarheynn = pcall(Aarheynn.main, frame, args) if okAarheynn and resultAarheynn then aarheynnRows = resultAarheynn end end appendSection(rows, govRows) appendSection(rows, quaiylRows) appendSection(rows, aarheynnRows) appendSection(rows, foundingRows) if #rows == 0 then return nil end return table.concat(rows) end return p 1pyvytpsq9csezar0wnmmdb7pgryxj6 394583 394576 2026-10-17T00:55:36Z MacTire02 219 ++ 394583 Scribunto text/plain local p = {} -- Wikidata fetch/citation module (replaces Module:WikidataIB). local wdOK, Wd = pcall(require, "Module:Wd") -- Country genitive/mutated forms, e.g. Mannin -> Vannin. local enmynOK, EnmynCheerey = pcall(require, "Module:Enmyn çheerey") -- Manx-label-or-linked-Wikidata-fallback helper; last rung of getWdItemManxLink. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local aarheynnOK, Aarheynn = pcall(require, "Module:Kishtey fys çheer/aarheynn") -- Returns the first non-empty manual parameter from a list of names. local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Shared innards of getWdProperty/getWdPropertyWithCitation. local function getWdPropertyRaw(property, flags, includeReference) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(flags or {}) do table.insert(callArgs, f) end if includeReference then table.insert(callArgs, "reference") end table.insert(callArgs, "best") -- single best-ranked value table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and result ~= "" then return result end return nil end local function getWdProperty(property, flags) return getWdPropertyRaw(property, flags, true) end local function getWdPropertyWithCitation(property, flags) local base = getWdPropertyRaw(property, flags, false) if not base then return nil, nil end local withRef = getWdPropertyRaw(property, flags, true) if not withRef or withRef == base then return base, nil end if withRef:sub(1, #base) == base then local citation = withRef:sub(#base + 1) if citation ~= "" then return base, citation end return base, nil end return withRef, nil end local function ensureLinked(value) if not value or value == "" then return value end local label, refSuffix = value:match("^(.-)(<ref.*)$") if not label then label = value refSuffix = "" end if label:find("%[%[") or label:match("^%[https?://") then return value end label = mw.text.trim(label) if label == "" then return value end return "[[" .. label .. "]]" .. refSuffix end -- Manx label of a Wikidata PROPERTY (e.g. P35 -> "head of state"), title -- fallback. getLabelByLang avoids leaking an English fallback. local function getWikidataPropertyLabel(property) local ok, label = pcall(mw.wikibase.getLabelByLang, property, "gv") if ok and label and label ~= "" then return label end return nil end -- Raw QID of an entity-valued property on the current page's own item. local function getWdRawPropertyId(property, extraFlags) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, "best") table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawPropertyIds(property, extraFlags) if not wdOK or not Wd or not Wd._properties then return {} end local callArgs = {"raw"} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, property) local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end local function getWdQualifierRawId(property, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdQualifierRawIdForValue(property, valueQid, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier or not valueQid then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, valueQid, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawForeignPropertyIds(eid, property, extraFlags, qualifiers) if not wdOK or not Wd or not Wd._properties or not eid then return {} end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, property) callArgs[Wd.args and Wd.args.eid or "eid"] = eid for qid, value in pairs(qualifiers or {}) do callArgs[qid] = value end local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- QID of the Wikidata item connected to the current page. local function getCurrentCountryQid() local ok, id = pcall(mw.wikibase.getEntityIdForCurrentPage) if ok and id and id ~= "" then return id end return nil end local function getCurrentCountryGenitive() if not enmynOK or not EnmynCheerey or not EnmynCheerey.genitive then return nil end local okTitle, title = pcall(function() return mw.title.getCurrentTitle().text end) if not okTitle or not title or title == "" then return nil end local okGen, genitive = pcall(EnmynCheerey.genitive, title) if okGen and genitive and genitive ~= "" then return genitive end return nil end local function getGenitiveLinkedLabel(baseWord) local genitive = getCurrentCountryGenitive() if genitive and genitive ~= "" then return "[[" .. baseWord .. " " .. genitive .. "|" .. baseWord .. "]]" end return "[[" .. baseWord .. "]]" end local shortFormExceptions = { ["Çhiarn Vannin"] = true, ["Ree ny Belgee"] = true, ["Benrein ny Belgee"] = true, -- Togo's head of government is titled "President of the Council of -- Ministers" (no separate Prime Minister); "ny Shirveishee" here is -- part of the office's own fixed name, not a country-genitive suffix, -- so the " ny " token-split rung below must not fire on it. ["Eaghtyrane Choonseil ny Shirveishee"] = true, } local function stripCountryGenitiveSuffix(text, countryGenitive) if not text or not countryGenitive then return nil end local suffix = " " .. countryGenitive if #text > #suffix and text:sub(-#suffix) == suffix then return text:sub(1, #text - #suffix) end local bareNoun = countryGenitive:match("^yn%s+(.+)$") or countryGenitive:match("^y%s+(.+)$") if bareNoun and bareNoun ~= "" then local suffix2 = " " .. bareNoun if #text > #suffix2 and text:sub(-#suffix2) == suffix2 then local remainder = text:sub(1, #text - #suffix2) if remainder:sub(-3) == " yn" then return remainder:sub(1, #remainder - 3) elseif remainder:sub(-2) == " y" then return remainder:sub(1, #remainder - 2) end return remainder end end return nil end local function shortManxForm(title) if not title or title == "" then return title end if shortFormExceptions[title] then return title end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(title, countryGenitive) if stripped then return stripped end local short = title:match("^(.-)%sy%s") if short and short ~= "" then return short end short = title:match("^(.-)%syn%s") if short and short ~= "" then return short end -- "ny" is the plural/genitive connector (e.g. "Steatyn Unnaneysit" -> -- "ny Steatyn Unnaneysit", "of the United States"). "%sy%s"/"%syn%s" -- can never match "ny" (the character before "y" there is "n", not -- whitespace), so this rung is purely additive, catching titles that -- would otherwise fall through to the blind last-word rung below. short = title:match("^(.-)%sny%s") if short and short ~= "" then return short end short = title:match("^(.+)%s%S+$") if short and short ~= "" then return short end return title end local function shortenCountrySuffixedName(name) if not name or name == "" then return name end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(name, countryGenitive) if stripped then return stripped end local short = name:match("^(.-)%sy%s") if short and short ~= "" then return short end short = name:match("^(.-)%syn%s") if short and short ~= "" then return short end short = name:match("^(.-)%sny%s") if short and short ~= "" then return short end return name end local function shortenLinkedCountryName(value) if not value or value == "" then return value end local main, refSuffix = value:match("^(.-)(<ref.*)$") if not main then main = value refSuffix = "" end local target, display = main:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$") if not target then target = main:match("^%[%[([^%[%]|]+)%]%]$") display = target end if not target then return value end local short = shortenCountrySuffixedName(display) if short ~= display then return "[[" .. target .. "|" .. short .. "]]" .. refSuffix end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("]]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end local function getWdItemManxLink(qid, shorten, capitalize, forceRedlink, preferExternalForLabel) if not qid then return nil end if capitalize == nil then capitalize = true end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then if capitalize then gvLabel = wikiUcfirst(gvLabel) end else gvLabel = nil end if not sitelinkTitle and not gvLabel then if forceRedlink then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, _, _, rawLabel = pcall(EnnymWd.labelWithFallback, qid) if ok and rawLabel and rawLabel ~= "" then return "[[" .. wikiUcfirst(mw.text.nowiki(rawLabel)) .. "]]" end end return nil end if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end -- No gv sitelink yet: this item has no article of its own, so a -- same-named wikilink would redlink to a GENERIC title (e.g. "Çhionnal -- ashoonagh"/"National Assembly") that many unrelated countries' -- legislative bodies share via an identical gv label. Creating that one -- shared article later would wrongly merge every one of those distinct -- bodies into it. preferExternalForLabel routes around that: link -- straight to THIS item on Wikidata instead, which is always specific -- to one body no matter how many others carry the same label. if not sitelinkTitle and preferExternalForLabel then local display = (shorten == false) and gvLabel or shortManxForm(gvLabel) return "[https://www.wikidata.org/wiki/" .. qid .. " " .. display .. "]" end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if shorten == false then if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end local short = shortManxForm(displayBase) if short ~= target then return "[[" .. target .. "|" .. short .. "]]" end return "[[" .. target .. "]]" end local function getWdOfficeItemTitle(officeProperty) local officeQid = getWdRawPropertyId(officeProperty) if not officeQid then return nil end return getWdItemManxLink(officeQid) end -- Same as getWdOfficeItemTitle, but the office property is read off a -- FOREIGN entity (eid) rather than the current page's own item -- needed -- for US territories, whose own Wikidata item never carries a P1906/P35 -- of its own; the office has to be resolved off the United States' item -- (Q30) instead. local function getWdForeignOfficeItemTitle(eid, officeProperty) local officeQid = getWdRawForeignPropertyIds(eid, officeProperty, {"best"})[1] if not officeQid then return nil end return getWdItemManxLink(officeQid) end local function getWdPositionTitleForPerson(personQid) if not personQid then return nil end local countryQid = getCurrentCountryQid() local candidates = {} if countryQid then for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"}, {["P1001"] = countryQid})) do table.insert(candidates, id) end end for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"})) do table.insert(candidates, id) end local tried = {} for _, qid in ipairs(candidates) do if not tried[qid] then tried[qid] = true local link = getWdItemManxLink(qid) if link then return link end end end return nil end local function getWdPositionTitle(headProperty) return getWdPositionTitleForPerson(getWdRawPropertyId(headProperty)) end -- Wikidata's "upper house" / "lower house" class items. local UPPER_HOUSE_QID = "Q637846" local LOWER_HOUSE_QID = "Q375928" local CLASS_WALK_DEPTH = 3 local function classReaches(classQid, targetQid, depth, seen) if classQid == targetQid then return true end if depth <= 0 then return false end seen = seen or {} if seen[classQid] then return false end seen[classQid] = true for _, superQid in ipairs(getWdRawForeignPropertyIds(classQid, "P279")) do if classReaches(superQid, targetQid, depth - 1, seen) then return true end end return false end local function getWdChambers(legislatureQid) if not legislatureQid then return nil, nil end local partQids = getWdRawForeignPropertyIds(legislatureQid, "P527") local upperQid, lowerQid = nil, nil local upperAmbiguous, lowerAmbiguous = false, false for _, partQid in ipairs(partQids) do local isUpper, isLower = false, false for _, classQid in ipairs(getWdRawForeignPropertyIds(partQid, "P31")) do if classQid == UPPER_HOUSE_QID or classReaches(classQid, UPPER_HOUSE_QID, CLASS_WALK_DEPTH) then isUpper = true elseif classQid == LOWER_HOUSE_QID or classReaches(classQid, LOWER_HOUSE_QID, CLASS_WALK_DEPTH) then isLower = true end end if isUpper then if upperQid and upperQid ~= partQid then upperAmbiguous = true end upperQid = partQid end if isLower then if lowerQid and lowerQid ~= partQid then lowerAmbiguous = true end lowerQid = partQid end end local upperLink = (upperQid and not upperAmbiguous) and getWdItemManxLink(upperQid, false, nil, nil, true) or nil local lowerLink = (lowerQid and not lowerAmbiguous) and getWdItemManxLink(lowerQid, false, nil, nil, true) or nil return upperLink, lowerLink end local JULIAN_CALENDAR_QID = "Q1985786" local function getJulianCalendarSuffixLink() local link = getWdItemManxLink(JULIAN_CALENDAR_QID, false) if link then local target = link:match("^%[%[([^%[%]|]+)") or link:match("^%[%[([^%[%]|]+)%]%]$") if target then return "[[" .. target .. "|Joolagh]]" end return link end return "Joolagh" end local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW_WRAP = '<tr%s><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' -- Builds a class="..." attribute, or an empty string. local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function wikilinkLabel(label) if not label or label == "" then return label end if label:find("%[%[") then return label end return "[[" .. label .. "]]" end local function appendIndentRun(rows, items, wrap) local template = wrap and SUBROW_WRAP or SUBROW for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(template, trClass(class), item[1], item[2])) end end local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end function p.main(frame, args) -- Allow being called as p.main(args) with no frame (used by tests). if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} local govRows = {} local quaiylRows = {} local foundingRows = {} local govTypeRaw = getManual(args, {"sorçh_reiltys", "government_type"}) local govRef = getManual(args, {"imraa_reiltys"}) local govNote = getManual(args, {"noteyn_reiltys"}) if not govTypeRaw then local govTypeQids = getWdRawPropertyIds("P122") local govTypeParts = {} for _, qid in ipairs(govTypeQids) do local link = getWdItemManxLink(qid, false, false) if link then table.insert(govTypeParts, link) end end if #govTypeParts > 0 then govTypeRaw = capitalizeFirstLetter(table.concat(govTypeParts, ", ")) end end local govShown = govTypeRaw and not isNone(govTypeRaw) local leaderPairs = {} local manualLeaderGiven = false for i = 1, 5 do local title = getManual(args, {"enmys_toshiagh" .. i, "enmys" .. i .. "_fer-toshee"}) local name = getManual(args, {"ennym_toshiagh" .. i, "ennym" .. i .. "_fer-toshee"}) if title or name then manualLeaderGiven = true if not isNone(name) then table.insert(leaderPairs, {title = title or "", name = name or ""}) end end end local leaderRef = getManual(args, {"imraa_toshiagh", "imraa_fer-toshee"}) local leaderNote = getManual(args, {"noteyn_toshiagh", "noteyn_fer-toshee"}) local leadersSuppressed = isNone(getManual(args, {"fir_hoshee", "toshiaghyn"})) local function resolvePersonName(qid) if not qid then return nil end return shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) end local councillors = {} for i = 1, 7 do local name = getManual(args, {"ennym_coonseilagh" .. i}) if name and not isNone(name) then table.insert(councillors, {slot = i, name = name}) end end local manualCouncillorsGiven = #councillors > 0 local swissBodyQid = getWdRawPropertyId("P35") or getWdRawPropertyId("P6") local isSwissFederalCouncil = swissBodyQid == "Q30917" if (manualCouncillorsGiven or isSwissFederalCouncil) and not leadersSuppressed then manualLeaderGiven = true local presidentAnnotation = ' ([[Eaghtyrane Chochiangle yn Elveeish|Eaghtyrane]])' local vpAnnotation = ' ([[Lhiass-eaghtyrane yn Elveeish|Lhiass-eaghtyrane]])' local nameLines = {} local chancellor = nil if manualCouncillorsGiven then local presidentSlot = tonumber(getManual(args, {"eaghtyrane_coonseilagh"})) local vicePresidentSlot = tonumber(getManual(args, {"lhiass-eaghtyrane_coonseilagh"})) for _, entry in ipairs(councillors) do local line = entry.name if presidentSlot and entry.slot == presidentSlot then line = line .. presidentAnnotation elseif vicePresidentSlot and entry.slot == vicePresidentSlot then line = line .. vpAnnotation end table.insert(nameLines, line) end chancellor = getManual(args, {"shansyleyr_conastagh"}) else local presidentOverride = getManual(args, {"eaghtyrane_coonseilagh"}) local vpOverride = getManual(args, {"lhiass-eaghtyrane_coonseilagh"}) local chancellorOverride = getManual(args, {"shansyleyr_conastagh"}) local councillorQids = getWdRawForeignPropertyIds("Q30917", "P3320", {"best", "current"}) local presidentQid = not isNone(presidentOverride) and getWdRawForeignPropertyIds("Q688230", "P1308", {"best"})[1] or nil local vpQid = not isNone(vpOverride) and getWdRawForeignPropertyIds("Q25550811", "P1308", {"best"})[1] or nil for _, qid in ipairs(councillorQids) do local name = resolvePersonName(qid) if name then if qid == presidentQid then name = name .. presidentAnnotation elseif qid == vpQid then name = name .. vpAnnotation end table.insert(nameLines, name) end end if chancellorOverride and not isNone(chancellorOverride) then chancellor = chancellorOverride elseif not isNone(chancellorOverride) then local chancellorQid = getWdRawForeignPropertyIds("Q687810", "P1308", {"best"})[1] chancellor = resolvePersonName(chancellorQid) end end if #nameLines > 0 then table.insert(leaderPairs, { title = '[[Coonseil Chonastagh yn Elveeish|Coonseilee Chonastagh]]', name = table.concat(nameLines, '<br/>'), }) end if chancellor and chancellor ~= "" then table.insert(leaderPairs, { title = '[[Shansyleyr yn Elveeish|Shansyleyr Conastagh]]', name = chancellor, }) end end local function isSanMarinoPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "San Marino" end local function isNorthernIrelandPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nerin Hwoaie" end local function isNicaraguaPage() if getCurrentCountryQid() == "Q811" then return true end local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nickeraag" end -- US unincorporated territories: the President of the United States is -- each territory's head of state, but this is never recorded on the -- territory's own Wikidata item (it carries only "instance of" -- classification statements, no P35). The President has to be fetched -- off the United States' own item (Q30) instead -- same foreign-entity -- pattern as Nicaragua's co-presidents and Northern Ireland's Deputy -- First Minister above. Detected by an explicit page-title list -- (matching the San Marino/Northern Ireland convention). local US_QID = "Q30" local usTerritoryTitles = { ["Yn Phurt Verçhagh"] = true, -- Puerto Rico ["Guam"] = true, -- Guam ["Ellanyn Americaanagh y Voidyn"] = true, -- US Virgin Islands ["Samoa Americaanagh"] = true, -- American Samoa } local function isUSTerritoryPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title ~= nil and usTerritoryTitles[title] == true end local sanMarinoCaptains = {} for i = 1, 2 do local name = getManual(args, {"ennym_captan_reiree" .. i}) if name and not isNone(name) then table.insert(sanMarinoCaptains, name) end end local manualSanMarinoGiven = #sanMarinoCaptains > 0 if (manualSanMarinoGiven or isSanMarinoPage()) and not leadersSuppressed and not manualLeaderGiven then manualLeaderGiven = true local nameLines = {} if manualSanMarinoGiven then nameLines = sanMarinoCaptains else local captainQids = getWdRawPropertyIds("P35", {"best", "current"}) for _, qid in ipairs(captainQids) do local name = resolvePersonName(qid) if name then table.insert(nameLines, name) end end end if #nameLines > 0 then local title = getManual(args, {"sorçh_kione_steat"}) or '[[Captanyn Reiree]]' table.insert(leaderPairs, { title = title, name = table.concat(nameLines, '<br/>'), }) end end if not manualLeaderGiven and not leadersSuppressed then local hosQids = getWdRawPropertyIds("P35", {"best", "current"}) -- "current" matters here, not just "best": a country whose P6 -- (head of government) statements have no preferred rank at all -- (several past/present holders tied at normal rank) would -- otherwise let Module:Wd's singular _property command return an -- arbitrary past holder, with no way to break the tie -- chronologically. local hogBase, hogCitation = getWdPropertyWithCitation("P6", {"linked", "current"}) local hog = ensureLinked(hogBase) if hog and hogCitation then hog = hog .. hogCitation end local hogQid = getWdRawPropertyId("P6", {"current"}) -- No P6 on the item: take the holder (P1308) of the office item named by -- P1313, or of a known office for countries that lack both. local hogFallbackTitle = nil if not hog and not isNone(getManual(args, {"sorçh_kione_reiltys"})) then local HOG_OFFICE_FALLBACK = { Q9648 = { office = "Q3064699", manx = "[[Ard-heckter ny Malveenaghyn]]" }, -- Falkland Islands } local known = HOG_OFFICE_FALLBACK[getCurrentCountryQid() or ""] local officeQid = getWdRawPropertyId("P1313") or (known and known.office) if officeQid then local holderQid = getWdRawForeignPropertyIds(officeQid, "P1308", {"best", "current"})[1] local holderName = holderQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(holderQid, false, nil, true))) or nil if holderName then hog, hogQid = holderName, holderQid hogFallbackTitle = getWdItemManxLink(officeQid) or (known and known.office == officeQid and known.manx) or nil end end end if isNicaraguaPage() then -- Nicaragua is a diarchy: two co-presidents, listed on Wikidata not -- as the country's own P35/P6 statements but as P1308 ("position -- holder") values on the "President of Nicaragua" OFFICE item -- itself (Q852448) -- same foreign-entity pattern as Northern -- Ireland's Deputy First Minister and Switzerland's councillors -- above. "best" and "current" are independent Wd flags, both -- needed to get exactly the presently-serving co-presidents. local presidentQids = getWdRawForeignPropertyIds("Q852448", "P1308", {"best", "current"}) local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local sameHeadOfStateAndGovernment = false local presidentNames = {} for _, qid in ipairs(presidentQids) do local name = ensureLinked(getWdItemManxLink(qid, false, nil, true)) if name then table.insert(leaderPairs, {title = presidentTitle, name = name}) end if name then table.insert(presidentNames, name) end if qid == hogQid then sameHeadOfStateAndGovernment = true end end if #presidentNames > 0 then table.insert(leaderPairs, { title = presidentTitle, name = table.concat(presidentNames, '<br/>'), }) end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or hogFallbackTitle or getWdOfficeItemTitle("P1313") or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end elseif #hosQids > 1 then local sameHeadOfStateAndGovernment = false if hog and hogQid then for _, qid in ipairs(hosQids) do if qid == hogQid then sameHeadOfStateAndGovernment = true end end end local officeQids = getWdRawPropertyIds("P1906") local pairsBuilt = 0 if #officeQids > 1 then for _, officeQid in ipairs(officeQids) do local personQid = getWdQualifierRawIdForValue("P1906", officeQid, "P1308") local name = personQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(personQid, false, nil, true))) or nil if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink(officeQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) pairsBuilt = pairsBuilt + 1 end end end if pairsBuilt == 0 then for _, qid in ipairs(hosQids) do local name = shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdPositionTitleForPerson(qid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) end end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or hogFallbackTitle or getWdOfficeItemTitle("P1313") -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end else local hosBase, hosCitation = getWdPropertyWithCitation("P35", {"linked", "current"}) local hos = shortenLinkedCountryName(ensureLinked(hosBase)) if hos and hosCitation then hos = hos .. hosCitation end local hosQid = getWdRawPropertyId("P35", {"current"}) -- Some countries (e.g. Benin since 2016) have literally merged -- the head-of-state and head-of-government OFFICES into one: -- "office held by head of state" (P1906) and "office held by -- head of government" (P1313) both resolve to the same item. -- Comparing only the PEOPLE (hosQid == hogQid) isn't enough -- -- a merged-office country's P6 statement can be stale (left -- over from before the merge) and resolve to the wrong person -- -- so the OFFICES themselves are compared too, not just the -- people. local hosOfficeQid = getWdRawPropertyId("P1906") local hogOfficeQid = getWdRawPropertyId("P1313") local sameOffice = hosOfficeQid and hogOfficeQid and hosOfficeQid == hogOfficeQid local sameHeadOfStateAndGovernment = sameOffice or (hos and hog and hosQid and hogQid and hosQid == hogQid) if hos then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or (hosOfficeQid and getWdItemManxLink(hosOfficeQid)) -- office held by head of state or getWdPositionTitle("P35") or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = hos}) if not isNone(getManual(args, {"ynnydee_kione_steat"})) then local proxyOfficeQid = getWdQualifierRawId("P35", "P1393") if proxyOfficeQid then local proxyPersonIds = getWdRawForeignPropertyIds(proxyOfficeQid, "P1308", {"best"}) local proxyPersonQid = proxyPersonIds[1] local proxyName = proxyPersonQid and ensureLinked(getWdItemManxLink(proxyPersonQid, false, nil, true)) or nil if proxyName then local proxyTitle = getManual(args, {"sorçh_ynnydee"}) or getWdItemManxLink(proxyOfficeQid) or "Ynnydee" table.insert(leaderPairs, {title = proxyTitle, name = proxyName}) end end end elseif isUSTerritoryPage() then -- No P35 at all on the territory's own item -- fetch the -- sitting President straight off the United States' own -- item (Q30) instead. Title priority mirrors every other -- country's head-of-state title, just sourced from Q30. local presidentQid = getWdRawForeignPropertyIds(US_QID, "P35", {"best", "current"})[1] local presidentName = resolvePersonName(presidentQid) if presidentName then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdForeignOfficeItemTitle(US_QID, "P1906") or getWdPositionTitleForPerson(presidentQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = presidentTitle, name = presidentName}) end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or (hogOfficeQid and getWdItemManxLink(hogOfficeQid)) -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) if isNorthernIrelandPage() then local dfmPersonQid = getWdRawForeignPropertyIds("Q11954685", "P1308", {"best"})[1] local dfmName = dfmPersonQid and ensureLinked(getWdItemManxLink(dfmPersonQid, false, nil, true)) or nil local dfmTitle = getWdItemManxLink("Q11954685") if dfmName and dfmTitle then table.insert(leaderPairs, {title = dfmTitle, name = dfmName}) end end end end end local reiltysLabel = getGenitiveLinkedLabel("Reiltys") if govShown then local govClass = (#leaderPairs > 0) and "mergedtoprow" or "" table.insert(govRows, string.format(ROW, trClass(govClass), reiltysLabel, applyRefNote(govTypeRaw, govRef, govNote, frame))) elseif #leaderPairs > 0 then table.insert(govRows, string.format(HEADER, reiltysLabel)) end if isNicaraguaPage() and #leaderPairs > 1 then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local combinedNames, seenNames = {}, {} local firstPresidentIndex = nil local filteredLeaderPairs = {} for _, leader in ipairs(leaderPairs) do if leader.title == presidentTitle then if not firstPresidentIndex then firstPresidentIndex = #filteredLeaderPairs + 1 end local remaining = leader.name or "" while true do local name, rest = remaining:match("^(.-)<br%s*/>(.*)$") if not name then name = remaining end name = mw.text.trim(name) if name ~= "" and not seenNames[name] then seenNames[name] = true table.insert(combinedNames, name) end if not rest then break end remaining = rest end else table.insert(filteredLeaderPairs, leader) end end if firstPresidentIndex and #combinedNames > 0 then table.insert(filteredLeaderPairs, firstPresidentIndex, { title = presidentTitle, name = table.concat(combinedNames, "<br/>"), }) leaderPairs = filteredLeaderPairs end end if #leaderPairs > 0 then local last = leaderPairs[#leaderPairs] last.name = applyRefNote(last.name, leaderRef, leaderNote, frame) local items = {} for _, leader in ipairs(leaderPairs) do table.insert(items, {leader.title, leader.name}) end appendIndentRun(govRows, items, true) end local quaiyl = getManual(args, {"çhionnal", "quaiyl"}) local quaiylSyrjey = getManual(args, {"thie_heose", "quaiyl_syrjey"}) local quaiylInshley = getManual(args, {"thie_heese", "quaiyl_s'inshley", "quaiyl_sinshley"}) local quaiylRef = getManual(args, {"imraa_çhionnal", "imraa_quaiyl"}) local quaiylNote = getManual(args, {"noteyn_çhionnal", "noteyn_quaiyl"}) local quaiylQid = nil if not quaiyl then quaiylQid = getWdRawPropertyId("P194") if quaiylQid then quaiyl = getWdItemManxLink(quaiylQid, false, nil, nil, true) end end if not quaiylSyrjey or not quaiylInshley then local legislatureQid = quaiylQid or getWdRawPropertyId("P194") if legislatureQid then local wdUpper, wdLower = getWdChambers(legislatureQid) if not quaiylSyrjey then quaiylSyrjey = wdUpper end if not quaiylInshley then quaiylInshley = wdLower end end end if quaiyl and not isNone(quaiyl) then local houseItems = {} if quaiylSyrjey and not isNone(quaiylSyrjey) then table.insert(houseItems, {"[[Thie heose]]", quaiylSyrjey}) end if quaiylInshley and not isNone(quaiylInshley) then table.insert(houseItems, {"[[Thie heese]]", quaiylInshley}) end local quaiylClass = (#houseItems > 0) and "mergedtoprow" or "" table.insert(quaiylRows, string.format(ROW, trClass(quaiylClass), "[[Çhionnal slattyssagh]]", applyRefNote(quaiyl, quaiylRef, quaiylNote, frame))) appendIndentRun(quaiylRows, houseItems) end local foundingLabel = getManual(args, {"sorçh_kionedeeaght", "sorçh_kiondeeaght"}) or "Bunneeaght" local foundingValue = getManual(args, {"bunnit"}) local foundingQualifier = getManual(args, {"note_kionedeeaght", "note_kiondeeaght"}) local foundingFootnote = getManual(args, {"noteyn_kionedeeaght", "noteyn_kiondeeaght"}) local foundingRef = getManual(args, {"imraa_kionedeeaght", "imraa_kiondeeaght"}) local function foundingLabelWithQualifier(label) local linked = wikilinkLabel(label) if foundingQualifier and foundingQualifier ~= "" then return linked .. '&nbsp;<span style="font-weight:normal;">' .. foundingQualifier .. '</span>' end return linked end local establishmentRows = {} for i = 1, 9 do local event = getManual(args, {"taghyrt_bunneeaght" .. i, "taghyrt" .. i .. "_bunnit"}) local date = getManual(args, {"date_bunneeaght" .. i, "date" .. i .. "_bunnit"}) if event then table.insert(establishmentRows, {event, date or ""}) end end if foundingValue or #establishmentRows > 0 then if foundingValue and not isNone(foundingValue) then local foundingClass = (#establishmentRows > 0) and "mergedtoprow" or "" table.insert(foundingRows, string.format(ROW, trClass(foundingClass), foundingLabelWithQualifier(foundingLabel), applyRefNote(foundingValue, foundingRef, foundingFootnote, frame))) elseif #establishmentRows > 0 then local headerLabel = applyRefNote(foundingLabelWithQualifier(foundingLabel), foundingRef, foundingFootnote, frame) table.insert(foundingRows, string.format(HEADER, headerLabel)) end appendIndentRun(foundingRows, establishmentRows, true) elseif not isNone(getManual(args, {"bunnit"})) then -- Wikidata fallback: inception (P571), only when unset (not none). local inception = getWdProperty("P571") if inception and inception:find(" (Joolagh)", 1, true) then inception = inception:gsub(" %(Joolagh%)", " (" .. getJulianCalendarSuffixLink() .. ")", 1) end if inception then table.insert(foundingRows, string.format(ROW, "", foundingLabelWithQualifier(foundingLabel), applyRefNote(inception, foundingRef, foundingFootnote, frame))) end end local aarheynnRows = {} if aarheynnOK and Aarheynn and Aarheynn.main then local okAarheynn, resultAarheynn = pcall(Aarheynn.main, frame, args) if okAarheynn and resultAarheynn then aarheynnRows = resultAarheynn end end appendSection(rows, govRows) appendSection(rows, quaiylRows) appendSection(rows, aarheynnRows) appendSection(rows, foundingRows) if #rows == 0 then return nil end return table.concat(rows) end return p 58r08tre72aic9lj3m633flqiyqc41a 394623 394583 2026-10-17T04:42:41Z MacTire02 219 earroo ny taghyrtyn 394623 Scribunto text/plain local p = {} -- Wikidata fetch/citation module (replaces Module:WikidataIB). local wdOK, Wd = pcall(require, "Module:Wd") -- Country genitive/mutated forms, e.g. Mannin -> Vannin. local enmynOK, EnmynCheerey = pcall(require, "Module:Enmyn çheerey") -- Manx-label-or-linked-Wikidata-fallback helper; last rung of getWdItemManxLink. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local aarheynnOK, Aarheynn = pcall(require, "Module:Kishtey fys çheer/aarheynn") -- Returns the first non-empty manual parameter from a list of names. local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Shared innards of getWdProperty/getWdPropertyWithCitation. local function getWdPropertyRaw(property, flags, includeReference) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(flags or {}) do table.insert(callArgs, f) end if includeReference then table.insert(callArgs, "reference") end table.insert(callArgs, "best") -- single best-ranked value table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and result ~= "" then return result end return nil end local function getWdProperty(property, flags) return getWdPropertyRaw(property, flags, true) end local function getWdPropertyWithCitation(property, flags) local base = getWdPropertyRaw(property, flags, false) if not base then return nil, nil end local withRef = getWdPropertyRaw(property, flags, true) if not withRef or withRef == base then return base, nil end if withRef:sub(1, #base) == base then local citation = withRef:sub(#base + 1) if citation ~= "" then return base, citation end return base, nil end return withRef, nil end local function ensureLinked(value) if not value or value == "" then return value end local label, refSuffix = value:match("^(.-)(<ref.*)$") if not label then label = value refSuffix = "" end if label:find("%[%[") or label:match("^%[https?://") then return value end label = mw.text.trim(label) if label == "" then return value end return "[[" .. label .. "]]" .. refSuffix end -- Manx label of a Wikidata PROPERTY (e.g. P35 -> "head of state"), title -- fallback. getLabelByLang avoids leaking an English fallback. local function getWikidataPropertyLabel(property) local ok, label = pcall(mw.wikibase.getLabelByLang, property, "gv") if ok and label and label ~= "" then return label end return nil end -- Raw QID of an entity-valued property on the current page's own item. local function getWdRawPropertyId(property, extraFlags) if not wdOK or not Wd or not Wd._property then return nil end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, "best") table.insert(callArgs, property) local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawPropertyIds(property, extraFlags) if not wdOK or not Wd or not Wd._properties then return {} end local callArgs = {"raw"} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, property) local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end local function getWdQualifierRawId(property, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdQualifierRawIdForValue(property, valueQid, qualifierProperty) if not wdOK or not Wd or not Wd._qualifier or not valueQid then return nil end local ok, result = pcall(Wd._qualifier, {"raw", "best", property, valueQid, qualifierProperty}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function getWdRawForeignPropertyIds(eid, property, extraFlags, qualifiers) if not wdOK or not Wd or not Wd._properties or not eid then return {} end local callArgs = {} for _, f in ipairs(extraFlags or {}) do table.insert(callArgs, f) end table.insert(callArgs, "raw") table.insert(callArgs, property) callArgs[Wd.args and Wd.args.eid or "eid"] = eid for qid, value in pairs(qualifiers or {}) do callArgs[qid] = value end local ok, result = pcall(Wd._properties, callArgs) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- QID of the Wikidata item connected to the current page. local function getCurrentCountryQid() local ok, id = pcall(mw.wikibase.getEntityIdForCurrentPage) if ok and id and id ~= "" then return id end return nil end local function getCurrentCountryGenitive() if not enmynOK or not EnmynCheerey or not EnmynCheerey.genitive then return nil end local okTitle, title = pcall(function() return mw.title.getCurrentTitle().text end) if not okTitle or not title or title == "" then return nil end local okGen, genitive = pcall(EnmynCheerey.genitive, title) if okGen and genitive and genitive ~= "" then return genitive end return nil end local function getGenitiveLinkedLabel(baseWord) local genitive = getCurrentCountryGenitive() if genitive and genitive ~= "" then return "[[" .. baseWord .. " " .. genitive .. "|" .. baseWord .. "]]" end return "[[" .. baseWord .. "]]" end local shortFormExceptions = { ["Çhiarn Vannin"] = true, ["Ree ny Belgee"] = true, ["Benrein ny Belgee"] = true, -- Togo's head of government is titled "President of the Council of Ministers" ["Eaghtyrane Choonseil ny Shirveishee"] = true, } local function stripCountryGenitiveSuffix(text, countryGenitive) if not text or not countryGenitive then return nil end local suffix = " " .. countryGenitive if #text > #suffix and text:sub(-#suffix) == suffix then return text:sub(1, #text - #suffix) end local bareNoun = countryGenitive:match("^yn%s+(.+)$") or countryGenitive:match("^y%s+(.+)$") if bareNoun and bareNoun ~= "" then local suffix2 = " " .. bareNoun if #text > #suffix2 and text:sub(-#suffix2) == suffix2 then local remainder = text:sub(1, #text - #suffix2) if remainder:sub(-3) == " yn" then return remainder:sub(1, #remainder - 3) elseif remainder:sub(-2) == " y" then return remainder:sub(1, #remainder - 2) end return remainder end end return nil end local function shortManxForm(title) if not title or title == "" then return title end if shortFormExceptions[title] then return title end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(title, countryGenitive) if stripped then return stripped end local short = title:match("^(.-)%sy%s") if short and short ~= "" then return short end short = title:match("^(.-)%syn%s") if short and short ~= "" then return short end -- "ny" is the plural/genitive connector short = title:match("^(.-)%sny%s") if short and short ~= "" then return short end short = title:match("^(.+)%s%S+$") if short and short ~= "" then return short end return title end local function shortenCountrySuffixedName(name) if not name or name == "" then return name end local countryGenitive = getCurrentCountryGenitive() local stripped = stripCountryGenitiveSuffix(name, countryGenitive) if stripped then return stripped end local short = name:match("^(.-)%sy%s") if short and short ~= "" then return short end short = name:match("^(.-)%syn%s") if short and short ~= "" then return short end short = name:match("^(.-)%sny%s") if short and short ~= "" then return short end return name end local function shortenLinkedCountryName(value) if not value or value == "" then return value end local main, refSuffix = value:match("^(.-)(<ref.*)$") if not main then main = value refSuffix = "" end local target, display = main:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$") if not target then target = main:match("^%[%[([^%[%]|]+)%]%]$") display = target end if not target then return value end local short = shortenCountrySuffixedName(display) if short ~= display then return "[[" .. target .. "|" .. short .. "]]" .. refSuffix end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("]]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end local function getWdItemManxLink(qid, shorten, capitalize, forceRedlink, preferExternalForLabel) if not qid then return nil end if capitalize == nil then capitalize = true end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then if capitalize then gvLabel = wikiUcfirst(gvLabel) end else gvLabel = nil end if not sitelinkTitle and not gvLabel then if forceRedlink then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, _, _, rawLabel = pcall(EnnymWd.labelWithFallback, qid) if ok and rawLabel and rawLabel ~= "" then return "[[" .. wikiUcfirst(mw.text.nowiki(rawLabel)) .. "]]" end end return nil end if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end -- No gv sitelink yet if not sitelinkTitle and preferExternalForLabel then local display = (shorten == false) and gvLabel or shortManxForm(gvLabel) return "[https://www.wikidata.org/wiki/" .. qid .. " " .. display .. "]" end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if shorten == false then if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end local short = shortManxForm(displayBase) if short ~= target then return "[[" .. target .. "|" .. short .. "]]" end return "[[" .. target .. "]]" end local function getWdOfficeItemTitle(officeProperty) local officeQid = getWdRawPropertyId(officeProperty) if not officeQid then return nil end return getWdItemManxLink(officeQid) end -- Same as getWdOfficeItemTitle, but the office property is read off a FOREIGN entity (eid) rather local function getWdForeignOfficeItemTitle(eid, officeProperty) local officeQid = getWdRawForeignPropertyIds(eid, officeProperty, {"best"})[1] if not officeQid then return nil end return getWdItemManxLink(officeQid) end local function getWdPositionTitleForPerson(personQid) if not personQid then return nil end local countryQid = getCurrentCountryQid() local candidates = {} if countryQid then for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"}, {["P1001"] = countryQid})) do table.insert(candidates, id) end end for _, id in ipairs(getWdRawForeignPropertyIds(personQid, "P39", {"current"})) do table.insert(candidates, id) end local tried = {} for _, qid in ipairs(candidates) do if not tried[qid] then tried[qid] = true local link = getWdItemManxLink(qid) if link then return link end end end return nil end local function getWdPositionTitle(headProperty) return getWdPositionTitleForPerson(getWdRawPropertyId(headProperty)) end -- Wikidata's "upper house" / "lower house" class items. local UPPER_HOUSE_QID = "Q637846" local LOWER_HOUSE_QID = "Q375928" local CLASS_WALK_DEPTH = 3 local function classReaches(classQid, targetQid, depth, seen) if classQid == targetQid then return true end if depth <= 0 then return false end seen = seen or {} if seen[classQid] then return false end seen[classQid] = true for _, superQid in ipairs(getWdRawForeignPropertyIds(classQid, "P279")) do if classReaches(superQid, targetQid, depth - 1, seen) then return true end end return false end local function getWdChambers(legislatureQid) if not legislatureQid then return nil, nil end local partQids = getWdRawForeignPropertyIds(legislatureQid, "P527") local upperQid, lowerQid = nil, nil local upperAmbiguous, lowerAmbiguous = false, false for _, partQid in ipairs(partQids) do local isUpper, isLower = false, false for _, classQid in ipairs(getWdRawForeignPropertyIds(partQid, "P31")) do if classQid == UPPER_HOUSE_QID or classReaches(classQid, UPPER_HOUSE_QID, CLASS_WALK_DEPTH) then isUpper = true elseif classQid == LOWER_HOUSE_QID or classReaches(classQid, LOWER_HOUSE_QID, CLASS_WALK_DEPTH) then isLower = true end end if isUpper then if upperQid and upperQid ~= partQid then upperAmbiguous = true end upperQid = partQid end if isLower then if lowerQid and lowerQid ~= partQid then lowerAmbiguous = true end lowerQid = partQid end end local upperLink = (upperQid and not upperAmbiguous) and getWdItemManxLink(upperQid, false, nil, nil, true) or nil local lowerLink = (lowerQid and not lowerAmbiguous) and getWdItemManxLink(lowerQid, false, nil, nil, true) or nil return upperLink, lowerLink end local JULIAN_CALENDAR_QID = "Q1985786" local function getJulianCalendarSuffixLink() local link = getWdItemManxLink(JULIAN_CALENDAR_QID, false) if link then local target = link:match("^%[%[([^%[%]|]+)") or link:match("^%[%[([^%[%]|]+)%]%]$") if target then return "[[" .. target .. "|Joolagh]]" end return link end return "Joolagh" end local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW_WRAP = '<tr%s><th style="vertical-align:top; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' -- Builds a class="..." attribute, or an empty string. local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function wikilinkLabel(label) if not label or label == "" then return label end if label:find("%[%[") then return label end return "[[" .. label .. "]]" end local function appendIndentRun(rows, items, wrap) local template = wrap and SUBROW_WRAP or SUBROW for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(template, trClass(class), item[1], item[2])) end end local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end function p.main(frame, args) -- Allow being called as p.main(args) with no frame (used by tests). if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} local govRows = {} local quaiylRows = {} local foundingRows = {} local govTypeRaw = getManual(args, {"sorçh_reiltys", "government_type"}) local govRef = getManual(args, {"imraa_reiltys"}) local govNote = getManual(args, {"noteyn_reiltys"}) if not govTypeRaw then local govTypeQids = getWdRawPropertyIds("P122") local govTypeParts = {} for _, qid in ipairs(govTypeQids) do local link = getWdItemManxLink(qid, false, false) if link then table.insert(govTypeParts, link) end end if #govTypeParts > 0 then govTypeRaw = capitalizeFirstLetter(table.concat(govTypeParts, ", ")) end end local govShown = govTypeRaw and not isNone(govTypeRaw) local leaderPairs = {} local manualLeaderGiven = false for i = 1, 5 do local title = getManual(args, {"enmys_toshiagh" .. i, "enmys" .. i .. "_fer-toshee"}) local name = getManual(args, {"ennym_toshiagh" .. i, "ennym" .. i .. "_fer-toshee"}) if title or name then manualLeaderGiven = true if not isNone(name) then table.insert(leaderPairs, {title = title or "", name = name or ""}) end end end local leaderRef = getManual(args, {"imraa_toshiagh", "imraa_fer-toshee"}) local leaderNote = getManual(args, {"noteyn_toshiagh", "noteyn_fer-toshee"}) local leadersSuppressed = isNone(getManual(args, {"fir_hoshee", "toshiaghyn"})) local function resolvePersonName(qid) if not qid then return nil end return shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) end local councillors = {} for i = 1, 7 do local name = getManual(args, {"ennym_coonseilagh" .. i}) if name and not isNone(name) then table.insert(councillors, {slot = i, name = name}) end end local manualCouncillorsGiven = #councillors > 0 local swissBodyQid = getWdRawPropertyId("P35") or getWdRawPropertyId("P6") local isSwissFederalCouncil = swissBodyQid == "Q30917" if (manualCouncillorsGiven or isSwissFederalCouncil) and not leadersSuppressed then manualLeaderGiven = true local presidentAnnotation = ' ([[Eaghtyrane Chochiangle yn Elveeish|Eaghtyrane]])' local vpAnnotation = ' ([[Lhiass-eaghtyrane yn Elveeish|Lhiass-eaghtyrane]])' local nameLines = {} local chancellor = nil if manualCouncillorsGiven then local presidentSlot = tonumber(getManual(args, {"eaghtyrane_coonseilagh"})) local vicePresidentSlot = tonumber(getManual(args, {"lhiass-eaghtyrane_coonseilagh"})) for _, entry in ipairs(councillors) do local line = entry.name if presidentSlot and entry.slot == presidentSlot then line = line .. presidentAnnotation elseif vicePresidentSlot and entry.slot == vicePresidentSlot then line = line .. vpAnnotation end table.insert(nameLines, line) end chancellor = getManual(args, {"shansyleyr_conastagh"}) else local presidentOverride = getManual(args, {"eaghtyrane_coonseilagh"}) local vpOverride = getManual(args, {"lhiass-eaghtyrane_coonseilagh"}) local chancellorOverride = getManual(args, {"shansyleyr_conastagh"}) local councillorQids = getWdRawForeignPropertyIds("Q30917", "P3320", {"best", "current"}) local presidentQid = not isNone(presidentOverride) and getWdRawForeignPropertyIds("Q688230", "P1308", {"best"})[1] or nil local vpQid = not isNone(vpOverride) and getWdRawForeignPropertyIds("Q25550811", "P1308", {"best"})[1] or nil for _, qid in ipairs(councillorQids) do local name = resolvePersonName(qid) if name then if qid == presidentQid then name = name .. presidentAnnotation elseif qid == vpQid then name = name .. vpAnnotation end table.insert(nameLines, name) end end if chancellorOverride and not isNone(chancellorOverride) then chancellor = chancellorOverride elseif not isNone(chancellorOverride) then local chancellorQid = getWdRawForeignPropertyIds("Q687810", "P1308", {"best"})[1] chancellor = resolvePersonName(chancellorQid) end end if #nameLines > 0 then table.insert(leaderPairs, { title = '[[Coonseil Chonastagh yn Elveeish|Coonseilee Chonastagh]]', name = table.concat(nameLines, '<br/>'), }) end if chancellor and chancellor ~= "" then table.insert(leaderPairs, { title = '[[Shansyleyr yn Elveeish|Shansyleyr Conastagh]]', name = chancellor, }) end end local function isSanMarinoPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "San Marino" end local function isNorthernIrelandPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nerin Hwoaie" end local function isNicaraguaPage() if getCurrentCountryQid() == "Q811" then return true end local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title == "Nickeraag" end -- US unincorporated territories local US_QID = "Q30" local usTerritoryTitles = { ["Yn Phurt Verçhagh"] = true, -- Puerto Rico ["Guam"] = true, -- Guam ["Ellanyn Americaanagh y Voidyn"] = true, -- US Virgin Islands ["Samoa Americaanagh"] = true, -- American Samoa } local function isUSTerritoryPage() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) return ok and title ~= nil and usTerritoryTitles[title] == true end local sanMarinoCaptains = {} for i = 1, 2 do local name = getManual(args, {"ennym_captan_reiree" .. i}) if name and not isNone(name) then table.insert(sanMarinoCaptains, name) end end local manualSanMarinoGiven = #sanMarinoCaptains > 0 if (manualSanMarinoGiven or isSanMarinoPage()) and not leadersSuppressed and not manualLeaderGiven then manualLeaderGiven = true local nameLines = {} if manualSanMarinoGiven then nameLines = sanMarinoCaptains else local captainQids = getWdRawPropertyIds("P35", {"best", "current"}) for _, qid in ipairs(captainQids) do local name = resolvePersonName(qid) if name then table.insert(nameLines, name) end end end if #nameLines > 0 then local title = getManual(args, {"sorçh_kione_steat"}) or '[[Captanyn Reiree]]' table.insert(leaderPairs, { title = title, name = table.concat(nameLines, '<br/>'), }) end end if not manualLeaderGiven and not leadersSuppressed then local hosQids = getWdRawPropertyIds("P35", {"best", "current"}) -- "current" matters here, not just "best" local hogBase, hogCitation = getWdPropertyWithCitation("P6", {"linked", "current"}) local hog = ensureLinked(hogBase) if hog and hogCitation then hog = hog .. hogCitation end local hogQid = getWdRawPropertyId("P6", {"current"}) -- No P6 on the item: take the holder (P1308) of the office item named by -- P1313, or of a known office for countries that lack both. local hogFallbackTitle = nil if not hog and not isNone(getManual(args, {"sorçh_kione_reiltys"})) then local HOG_OFFICE_FALLBACK = { Q9648 = { office = "Q3064699", manx = "[[Ard-heckter ny Malveenaghyn]]" }, -- Falkland Islands } local known = HOG_OFFICE_FALLBACK[getCurrentCountryQid() or ""] local officeQid = getWdRawPropertyId("P1313") or (known and known.office) if officeQid then local holderQid = getWdRawForeignPropertyIds(officeQid, "P1308", {"best", "current"})[1] local holderName = holderQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(holderQid, false, nil, true))) or nil if holderName then hog, hogQid = holderName, holderQid hogFallbackTitle = getWdItemManxLink(officeQid) or (known and known.office == officeQid and known.manx) or nil end end end if isNicaraguaPage() then -- Nicaragua is a diarchy local presidentQids = getWdRawForeignPropertyIds("Q852448", "P1308", {"best", "current"}) local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local sameHeadOfStateAndGovernment = false local presidentNames = {} for _, qid in ipairs(presidentQids) do local name = ensureLinked(getWdItemManxLink(qid, false, nil, true)) if name then table.insert(leaderPairs, {title = presidentTitle, name = name}) end if name then table.insert(presidentNames, name) end if qid == hogQid then sameHeadOfStateAndGovernment = true end end if #presidentNames > 0 then table.insert(leaderPairs, { title = presidentTitle, name = table.concat(presidentNames, '<br/>'), }) end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or hogFallbackTitle or getWdOfficeItemTitle("P1313") or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end elseif #hosQids > 1 then local sameHeadOfStateAndGovernment = false if hog and hogQid then for _, qid in ipairs(hosQids) do if qid == hogQid then sameHeadOfStateAndGovernment = true end end end local officeQids = getWdRawPropertyIds("P1906") local pairsBuilt = 0 if #officeQids > 1 then for _, officeQid in ipairs(officeQids) do local personQid = getWdQualifierRawIdForValue("P1906", officeQid, "P1308") local name = personQid and shortenLinkedCountryName(ensureLinked(getWdItemManxLink(personQid, false, nil, true))) or nil if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink(officeQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) pairsBuilt = pairsBuilt + 1 end end end if pairsBuilt == 0 then for _, qid in ipairs(hosQids) do local name = shortenLinkedCountryName(ensureLinked(getWdItemManxLink(qid, false, nil, true))) if name then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or getWdPositionTitleForPerson(qid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = name}) end end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or hogFallbackTitle or getWdOfficeItemTitle("P1313") -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) end else local hosBase, hosCitation = getWdPropertyWithCitation("P35", {"linked", "current"}) local hos = shortenLinkedCountryName(ensureLinked(hosBase)) if hos and hosCitation then hos = hos .. hosCitation end local hosQid = getWdRawPropertyId("P35", {"current"}) -- Some countries (e.g. Benin since 2016) have literally merged the head-of-state and local hosOfficeQid = getWdRawPropertyId("P1906") local hogOfficeQid = getWdRawPropertyId("P1313") local sameOffice = hosOfficeQid and hogOfficeQid and hosOfficeQid == hogOfficeQid local sameHeadOfStateAndGovernment = sameOffice or (hos and hog and hosQid and hogQid and hosQid == hogQid) if hos then local hosTitle = getManual(args, {"sorçh_kione_steat"}) or (hosOfficeQid and getWdItemManxLink(hosOfficeQid)) -- office held by head of state or getWdPositionTitle("P35") or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = hosTitle, name = hos}) if not isNone(getManual(args, {"ynnydee_kione_steat"})) then local proxyOfficeQid = getWdQualifierRawId("P35", "P1393") if proxyOfficeQid then local proxyPersonIds = getWdRawForeignPropertyIds(proxyOfficeQid, "P1308", {"best"}) local proxyPersonQid = proxyPersonIds[1] local proxyName = proxyPersonQid and ensureLinked(getWdItemManxLink(proxyPersonQid, false, nil, true)) or nil if proxyName then local proxyTitle = getManual(args, {"sorçh_ynnydee"}) or getWdItemManxLink(proxyOfficeQid) or "Ynnydee" table.insert(leaderPairs, {title = proxyTitle, name = proxyName}) end end end elseif isUSTerritoryPage() then -- No P35 at all on the territory's own item local presidentQid = getWdRawForeignPropertyIds(US_QID, "P35", {"best", "current"})[1] local presidentName = resolvePersonName(presidentQid) if presidentName then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdForeignOfficeItemTitle(US_QID, "P1906") or getWdPositionTitleForPerson(presidentQid) or getWikidataPropertyLabel("P35") or "Kione steat" table.insert(leaderPairs, {title = presidentTitle, name = presidentName}) end end if hog and not sameHeadOfStateAndGovernment then local hogTitle = getManual(args, {"sorçh_kione_reiltys"}) or (hogOfficeQid and getWdItemManxLink(hogOfficeQid)) -- office held by head of government or getWdPositionTitle("P6") or getWikidataPropertyLabel("P6") or "Kione reiltys" table.insert(leaderPairs, {title = hogTitle, name = hog}) if isNorthernIrelandPage() then local dfmPersonQid = getWdRawForeignPropertyIds("Q11954685", "P1308", {"best"})[1] local dfmName = dfmPersonQid and ensureLinked(getWdItemManxLink(dfmPersonQid, false, nil, true)) or nil local dfmTitle = getWdItemManxLink("Q11954685") if dfmName and dfmTitle then table.insert(leaderPairs, {title = dfmTitle, name = dfmName}) end end end end end local reiltysLabel = getGenitiveLinkedLabel("Reiltys") if govShown then local govClass = (#leaderPairs > 0) and "mergedtoprow" or "" table.insert(govRows, string.format(ROW, trClass(govClass), reiltysLabel, applyRefNote(govTypeRaw, govRef, govNote, frame))) elseif #leaderPairs > 0 then table.insert(govRows, string.format(HEADER, reiltysLabel)) end if isNicaraguaPage() and #leaderPairs > 1 then local presidentTitle = getManual(args, {"sorçh_kione_steat"}) or getWdItemManxLink("Q852448") or getWikidataPropertyLabel("P35") or "Kione steat" local combinedNames, seenNames = {}, {} local firstPresidentIndex = nil local filteredLeaderPairs = {} for _, leader in ipairs(leaderPairs) do if leader.title == presidentTitle then if not firstPresidentIndex then firstPresidentIndex = #filteredLeaderPairs + 1 end local remaining = leader.name or "" while true do local name, rest = remaining:match("^(.-)<br%s*/>(.*)$") if not name then name = remaining end name = mw.text.trim(name) if name ~= "" and not seenNames[name] then seenNames[name] = true table.insert(combinedNames, name) end if not rest then break end remaining = rest end else table.insert(filteredLeaderPairs, leader) end end if firstPresidentIndex and #combinedNames > 0 then table.insert(filteredLeaderPairs, firstPresidentIndex, { title = presidentTitle, name = table.concat(combinedNames, "<br/>"), }) leaderPairs = filteredLeaderPairs end end if #leaderPairs > 0 then local last = leaderPairs[#leaderPairs] last.name = applyRefNote(last.name, leaderRef, leaderNote, frame) local items = {} for _, leader in ipairs(leaderPairs) do table.insert(items, {leader.title, leader.name}) end appendIndentRun(govRows, items) end local quaiyl = getManual(args, {"çhionnal", "quaiyl"}) local quaiylSyrjey = getManual(args, {"thie_heose", "quaiyl_syrjey"}) local quaiylInshley = getManual(args, {"thie_heese", "quaiyl_s'inshley", "quaiyl_sinshley"}) local quaiylRef = getManual(args, {"imraa_çhionnal", "imraa_quaiyl"}) local quaiylNote = getManual(args, {"noteyn_çhionnal", "noteyn_quaiyl"}) local quaiylQid = nil if not quaiyl then quaiylQid = getWdRawPropertyId("P194") if quaiylQid then quaiyl = getWdItemManxLink(quaiylQid, false, nil, nil, true) end end if not quaiylSyrjey or not quaiylInshley then local legislatureQid = quaiylQid or getWdRawPropertyId("P194") if legislatureQid then local wdUpper, wdLower = getWdChambers(legislatureQid) if not quaiylSyrjey then quaiylSyrjey = wdUpper end if not quaiylInshley then quaiylInshley = wdLower end end end if quaiyl and not isNone(quaiyl) then local houseItems = {} if quaiylSyrjey and not isNone(quaiylSyrjey) then table.insert(houseItems, {"[[Thie heose]]", quaiylSyrjey}) end if quaiylInshley and not isNone(quaiylInshley) then table.insert(houseItems, {"[[Thie heese]]", quaiylInshley}) end local quaiylClass = (#houseItems > 0) and "mergedtoprow" or "" table.insert(quaiylRows, string.format(ROW, trClass(quaiylClass), "[[Çhionnal slattyssagh]]", applyRefNote(quaiyl, quaiylRef, quaiylNote, frame))) appendIndentRun(quaiylRows, houseItems) end local foundingLabel = getManual(args, {"sorçh_kionedeeaght", "sorçh_kiondeeaght"}) or "Bunneeaght" local foundingValue = getManual(args, {"bunnit"}) local foundingQualifier = getManual(args, {"note_kionedeeaght", "note_kiondeeaght"}) local foundingFootnote = getManual(args, {"noteyn_kionedeeaght", "noteyn_kiondeeaght"}) local foundingRef = getManual(args, {"imraa_kionedeeaght", "imraa_kiondeeaght"}) local function foundingLabelWithQualifier(label) local linked = wikilinkLabel(label) if foundingQualifier and foundingQualifier ~= "" then return linked .. '&nbsp;<span style="font-weight:normal;">' .. foundingQualifier .. '</span>' end return linked end local establishmentRows = {} for i = 1, 30 do local event = getManual(args, {"taghyrt_bunneeaght" .. i, "taghyrt" .. i .. "_bunnit"}) local date = getManual(args, {"date_bunneeaght" .. i, "date" .. i .. "_bunnit"}) if event then table.insert(establishmentRows, {event, date or ""}) end end if foundingValue or #establishmentRows > 0 then if foundingValue and not isNone(foundingValue) then local foundingClass = (#establishmentRows > 0) and "mergedtoprow" or "" table.insert(foundingRows, string.format(ROW, trClass(foundingClass), foundingLabelWithQualifier(foundingLabel), applyRefNote(foundingValue, foundingRef, foundingFootnote, frame))) elseif #establishmentRows > 0 then local headerLabel = applyRefNote(foundingLabelWithQualifier(foundingLabel), foundingRef, foundingFootnote, frame) table.insert(foundingRows, string.format(HEADER, headerLabel)) end appendIndentRun(foundingRows, establishmentRows, true) elseif not isNone(getManual(args, {"bunnit"})) then -- Wikidata fallback: inception (P571), only when unset (not none). local inception = getWdProperty("P571") if inception and inception:find(" (Joolagh)", 1, true) then inception = inception:gsub(" %(Joolagh%)", " (" .. getJulianCalendarSuffixLink() .. ")", 1) end if inception then table.insert(foundingRows, string.format(ROW, "", foundingLabelWithQualifier(foundingLabel), applyRefNote(inception, foundingRef, foundingFootnote, frame))) end end local aarheynnRows = {} if aarheynnOK and Aarheynn and Aarheynn.main then local okAarheynn, resultAarheynn = pcall(Aarheynn.main, frame, args) if okAarheynn and resultAarheynn then aarheynnRows = resultAarheynn end end appendSection(rows, govRows) appendSection(rows, quaiylRows) appendSection(rows, aarheynnRows) appendSection(rows, foundingRows) if #rows == 0 then return nil end return table.concat(rows) end return p pzqauu45bjd80sb44aoz5ofivf752ev Module:Kishtey fys çheer/ennym-wd 828 55851 394570 393135 2026-10-16T17:35:58Z MacTire02 219 -chaghteraghtyn 394570 Scribunto text/plain local p = {} -- Shared helper: when a Wikidata item has no Manx (gv) label or sitelink at -- all, only some other language, show that label linked straight to the -- item on Wikidata (tier 3), tagged with its language. Tiers 1 (sitelink) -- and 2 (gv label, as a redlink) are built by the CALLER (e.g. /reiltys's -- getWdItemManxLink) before ever reaching this module. -- getLabelWithLang (not plain getLabel/label) so a genuine Manx label can be -- told apart from a same-shaped fallback in another language. local function labelWithLang(entityID) local ok, label, lang = pcall(mw.wikibase.getLabelWithLang, entityID) if ok and label and label ~= "" then return label, lang end return nil, nil end -- Wikidata URL in Manx UI language. propertyID (unused by any caller yet) -- jumps to a specific statement rather than the item's own page. local function wikidataUrl(entityID, propertyID) local prefix = (entityID:sub(1, 1) == "P") and "Property:" or "" local url = "https://www.wikidata.org/wiki/" .. prefix .. entityID .. "?uselang=gv" if propertyID and propertyID ~= "" then url = url .. "#" .. propertyID end return url end -- Returns display (nil, a plain Manx label, or an external-link+language-tag -- fallback), isManx (true only for a genuine unannotated Manx label), and -- rawLabel (the bare label text either way). function p.labelWithFallback(entityID, propertyID) if not entityID or entityID == "" then return nil, false, nil end local label, lang = labelWithLang(entityID) if not label then return nil, false, nil end if lang == "gv" then return label, true, label end local safeLabel = mw.text.nowiki(label) -- a raw label could contain "]" or other wikitext-breaking characters local linked = "[" .. wikidataUrl(entityID, propertyID) .. " " .. safeLabel .. "]" local annotated = linked .. " <sup>(" .. tostring(lang) .. ")</sup>" return annotated, false, label end return p rk1aireup42n0i0xejxlkpta0bezavd Module:Kishtey fys çheer/craueeaght 828 55872 394537 393631 2026-10-16T12:02:21Z MacTire02 219 imraaghyn 394537 Scribunto text/plain local p = {} -- Shared "Manx label, else linked Wikidata fallback" helper, for a religion -- item with no gv label at all. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>...</ref>, unless it's already fully -- <ref>-tagged (Scribunto expands a literal <ref> in a parameter into an -- opaque \127UNIQ...QINU\127 strip marker before this module sees it, so we -- strip those out and check what's left -- nothing left means it was -- already tag(s), pass through unchanged; real text left over -- e.g. a -- bare {{cite web}} call whose own <templatestyles/> leaves an incidental -- marker -- means it still needs wrapping). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe -- -- plain Lua string.upper mangles multi-byte characters). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Capitalizes the first VISIBLE letter, even through a leading wikilink or -- an ennym-wd external-link marker -- same logic as reiltys.lua's own -- capitalizeFirstLetter, duplicated here per this project's convention of -- not sharing small helpers across submodules. Unlike reiltys.lua's -- comment on its own copy, this one IS applied to manual values too (that's -- the whole point of this fix): a religion name is always capitalized, -- whether it came from Wikidata or was typed by hand. local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("%]%]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then -- ennym-wd external link: "[url label] <sup>(lang)</sup>" -- -- capitalize the label, right after the URL's own space. local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end -- Splits a value on "<br/>" (and the "<br />"/"<br>" variants an editor -- might type by hand -- this module's OWN output only ever uses the exact -- "<br/>" spelling, but a manual |craueeaght= value is free text), trims -- each piece, and capitalizes it individually -- so a hand-typed multi-line -- value (e.g. "yn Islam<br/>yn Ewaghys") gets the same per-entry treatment -- as the Wikidata fallback below, not just a single capitalization applied -- to the very first character of the whole string. local function capitalizeEachEntry(text) if not text or text == "" then return text end local pieces = {} local lastEnd = 1 local searchStart = 1 while true do local s, e = text:find("<%s*[Bb][Rr]%s*/?%s*>", searchStart) if not s then table.insert(pieces, text:sub(lastEnd)) break end table.insert(pieces, text:sub(lastEnd, s - 1)) lastEnd = e + 1 searchStart = e + 1 end local capitalized = {} for _, piece in ipairs(pieces) do local trimmed = mw.text.trim(piece) if trimmed ~= "" then table.insert(capitalized, capitalizeFirstLetter(trimmed)) else table.insert(capitalized, piece) end end return table.concat(capitalized, "<br/>") end local ROW = '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' -- Resolves a religion item to a link: gv sitelink, else gv label (as a -- redlink), else an ennym-wd external link to Wikidata. local function getWdItemLink(qid) if not qid then return nil end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if not (okLabel and gvLabel and gvLabel ~= "") then gvLabel = nil end if not sitelinkTitle and not gvLabel then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local display = gvLabel or sitelinkTitle if target == display then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. display .. "]]" end -- e.g. 0.547 -> "54.7%"; drops a trailing ".0". local function formatProportion(fraction) local formatted = string.format("%.1f", fraction * 100) return formatted:gsub("%.0$", "") .. "%" end -- Wikidata fallback: religion/worldview (P140), each optionally qualified -- with a proportion (P1107). Sorted by proportion, largest first, only -- when every entry has one; otherwise left in Wikidata's own statement -- order. No auto-built citation (this module doesn't go through Module:Wd). local function getWdReligions() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P140") if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local idValue = mainsnak.datavalue.value local qid = idValue.id or ("Q" .. tostring(idValue["numeric-id"])) local link = getWdItemLink(qid) if link then link = capitalizeFirstLetter(link) end if link then local pct = nil local quals = statement.qualifiers and statement.qualifiers.P1107 local qualSnak = quals and quals[1] if qualSnak and qualSnak.datavalue and qualSnak.datavalue.value then pct = tonumber(qualSnak.datavalue.value.amount) end table.insert(items, { link = link, pct = pct }) end end end if #items == 0 then return nil end local allHavePct = true for _, item in ipairs(items) do if not item.pct then allHavePct = false break end end if allHavePct then table.sort(items, function(a, b) return a.pct > b.pct end) end local parts = {} for _, item in ipairs(items) do if item.pct then table.insert(parts, formatProportion(item.pct) .. "&nbsp;" .. item.link) else table.insert(parts, item.link) end end return table.concat(parts, "<br/>") end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local value = getManual(args, {"craueeaght"}) if value then value = capitalizeEachEntry(value) else value = getWdReligions() end if not value or isNone(value) then return nil end local year = getManual(args, {"blein_craueeaght"}) local ref = getManual(args, {"imraa_craueeaght"}) local note = getManual(args, {"noteyn_craueeaght"}) local label = "[[Craueeaght]]" if year then label = label .. "&nbsp;(" .. year .. ")" end label = applyRefNote(label, ref, note, frame) return string.format(ROW, label, value) end return p tdk3jw4qc4os5zhx3n8ia282i0qesnk 394567 394537 2026-10-16T17:34:41Z MacTire02 219 -chaghteraghtyn 394567 Scribunto text/plain local p = {} local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged -- (Scribunto pre-expands a literal <ref> into a strip marker; if stripping -- those markers leaves nothing, it was already tag(s)). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe -- -- plain Lua string.upper mangles multi-byte characters). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Capitalizes the first VISIBLE letter, even through a leading wikilink or -- an ennym-wd external-link marker. Applied to manual values too, not just -- Wikidata ones -- a religion name is always capitalized either way. local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("%]%]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then -- ennym-wd external link: "[url label] <sup>(lang)</sup>" -- -- capitalize the label, right after the URL's own space. local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end -- Splits a value on "<br/>" (and the "<br />"/"<br>" variants an editor -- might type by hand), trims and capitalizes each piece individually -- -- so a hand-typed multi-line value gets the same per-entry treatment as -- the Wikidata fallback below. local function capitalizeEachEntry(text) if not text or text == "" then return text end local pieces = {} local lastEnd = 1 local searchStart = 1 while true do local s, e = text:find("<%s*[Bb][Rr]%s*/?%s*>", searchStart) if not s then table.insert(pieces, text:sub(lastEnd)) break end table.insert(pieces, text:sub(lastEnd, s - 1)) lastEnd = e + 1 searchStart = e + 1 end local capitalized = {} for _, piece in ipairs(pieces) do local trimmed = mw.text.trim(piece) if trimmed ~= "" then table.insert(capitalized, capitalizeFirstLetter(trimmed)) else table.insert(capitalized, piece) end end return table.concat(capitalized, "<br/>") end local ROW = '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' -- Resolves a religion item to a link: gv sitelink, else gv label (as a -- redlink), else an ennym-wd external link to Wikidata. local function getWdItemLink(qid) if not qid then return nil end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if not (okLabel and gvLabel and gvLabel ~= "") then gvLabel = nil end if not sitelinkTitle and not gvLabel then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local display = gvLabel or sitelinkTitle if target == display then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. display .. "]]" end -- e.g. 0.547 -> "54.7%"; drops a trailing ".0". local function formatProportion(fraction) local formatted = string.format("%.1f", fraction * 100) return formatted:gsub("%.0$", "") .. "%" end -- Wikidata fallback: religion/worldview (P140), each optionally qualified -- with a proportion (P1107). Sorted by proportion, largest first, only -- when every entry has one; otherwise left in Wikidata's own statement -- order. No auto-built citation (this module doesn't go through Module:Wd). local function getWdReligions() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P140") if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local idValue = mainsnak.datavalue.value local qid = idValue.id or ("Q" .. tostring(idValue["numeric-id"])) local link = getWdItemLink(qid) if link then link = capitalizeFirstLetter(link) end if link then local pct = nil local quals = statement.qualifiers and statement.qualifiers.P1107 local qualSnak = quals and quals[1] if qualSnak and qualSnak.datavalue and qualSnak.datavalue.value then pct = tonumber(qualSnak.datavalue.value.amount) end table.insert(items, { link = link, pct = pct }) end end end if #items == 0 then return nil end local allHavePct = true for _, item in ipairs(items) do if not item.pct then allHavePct = false break end end if allHavePct then table.sort(items, function(a, b) return a.pct > b.pct end) end local parts = {} for _, item in ipairs(items) do if item.pct then table.insert(parts, formatProportion(item.pct) .. "&nbsp;" .. item.link) else table.insert(parts, item.link) end end return table.concat(parts, "<br/>") end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local value = getManual(args, {"craueeaght"}) if value then value = capitalizeEachEntry(value) else value = getWdReligions() end if not value or isNone(value) then return nil end local year = getManual(args, {"blein_craueeaght"}) local ref = getManual(args, {"imraa_craueeaght"}) local note = getManual(args, {"noteyn_craueeaght"}) local label = "[[Craueeaght]]" if year then label = label .. "&nbsp;(" .. year .. ")" end label = applyRefNote(label, ref, note, frame) return string.format(ROW, label, value) end return p a7is0ikkp57kasbtdzdos78qy8cv56h 394577 394567 2026-10-16T18:04:58Z MacTire02 219 ++ 394577 Scribunto text/plain local p = {} local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged -- (Scribunto pre-expands a literal <ref> into a strip marker; if stripping -- those markers leaves nothing, it was already tag(s)). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Capitalizes via the content language's ucfirst (UTF-8/digraph-safe -- -- plain Lua string.upper mangles multi-byte characters). local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Capitalizes the first VISIBLE letter, even through a leading wikilink or -- an ennym-wd external-link marker. Applied to manual values too, not just -- Wikidata ones -- a religion name is always capitalized either way. local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("]]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos -- piped: capitalize the display half only else splitPos = 2 -- unpiped: capitalize just past the leading "[[" end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then -- ennym-wd external link: "[url label] <sup>(lang)</sup>" -- -- capitalize the label, right after the URL's own space. local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end -- Splits a value on "<br/>" (and the "<br />"/"<br>" variants an editor -- might type by hand), trims and capitalizes each piece individually -- -- so a hand-typed multi-line value gets the same per-entry treatment as -- the Wikidata fallback below. local function capitalizeEachEntry(text) if not text or text == "" then return text end local pieces = {} local lastEnd = 1 local searchStart = 1 while true do local s, e = text:find("<%s*[Bb][Rr]%s*/?%s*>", searchStart) if not s then table.insert(pieces, text:sub(lastEnd)) break end table.insert(pieces, text:sub(lastEnd, s - 1)) lastEnd = e + 1 searchStart = e + 1 end local capitalized = {} for _, piece in ipairs(pieces) do local trimmed = mw.text.trim(piece) if trimmed ~= "" then table.insert(capitalized, capitalizeFirstLetter(trimmed)) else table.insert(capitalized, piece) end end return table.concat(capitalized, "<br/>") end local ROW = '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' -- Resolves a religion item to a link: gv sitelink, else gv label (as a -- redlink), else an ennym-wd external link to Wikidata. local function getWdItemLink(qid) if not qid then return nil end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if not (okLabel and gvLabel and gvLabel ~= "") then gvLabel = nil end if not sitelinkTitle and not gvLabel then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local display = gvLabel or sitelinkTitle if target == display then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. display .. "]]" end -- e.g. 0.547 -> "54.7%"; drops a trailing ".0". local function formatProportion(fraction) local formatted = string.format("%.1f", fraction * 100) return formatted:gsub("%.0$", "") .. "%" end -- Wikidata fallback: religion/worldview (P140), each optionally qualified -- with a proportion (P1107). Sorted by proportion, largest first, only -- when every entry has one; otherwise left in Wikidata's own statement -- order. No auto-built citation (this module doesn't go through Module:Wd). local function getWdReligions() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P140") if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local idValue = mainsnak.datavalue.value local qid = idValue.id or ("Q" .. tostring(idValue["numeric-id"])) local link = getWdItemLink(qid) if link then link = capitalizeFirstLetter(link) end if link then local pct = nil local quals = statement.qualifiers and statement.qualifiers.P1107 local qualSnak = quals and quals[1] if qualSnak and qualSnak.datavalue and qualSnak.datavalue.value then pct = tonumber(qualSnak.datavalue.value.amount) end table.insert(items, { link = link, pct = pct }) end end end if #items == 0 then return nil end local allHavePct = true for _, item in ipairs(items) do if not item.pct then allHavePct = false break end end if allHavePct then table.sort(items, function(a, b) return a.pct > b.pct end) end local parts = {} for _, item in ipairs(items) do if item.pct then table.insert(parts, formatProportion(item.pct) .. "&nbsp;" .. item.link) else table.insert(parts, item.link) end end return table.concat(parts, "<br/>") end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local value = getManual(args, {"craueeaght"}) if value then -- manual value is output exactly as entered else value = getWdReligions() end if not value or isNone(value) then return nil end local year = getManual(args, {"blein_craueeaght"}) local ref = getManual(args, {"imraa_craueeaght"}) local note = getManual(args, {"noteyn_craueeaght"}) local label = "[[Craueeaght]]" if year then label = label .. "&nbsp;(" .. year .. ")" end label = applyRefNote(label, ref, note, frame) return string.format(ROW, label, value) end return p ab0sc57k3hg5o4yhzwca93ie2891bst Module:Kishtey fys çheer/possanyn kynneeagh 828 55873 394540 393875 2026-10-16T12:03:43Z MacTire02 219 imraaghyn 394540 Scribunto text/plain local p = {} -- Shared "Manx label, else linked Wikidata fallback" helper, for an ethnic- -- group item with no gv label at all. local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>...</ref>, unless it's already fully -- <ref>-tagged (Scribunto expands a literal <ref> in a parameter into an -- opaque \127UNIQ...QINU\127 strip marker before this module sees it, so we -- strip those out and check what's left -- nothing left means it was -- already tag(s), pass through unchanged; real text left over -- e.g. a -- bare {{cite web}} call whose own <templatestyles/> leaves an incidental -- marker -- means it still needs wrapping). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Same plain 2-cell row grid as every other submodule (see Module:Kishtey -- fys çheer/reiltys's own ROW comment for the full rationale). local ROW = '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' -- Shortens a diaspora/subgroup ethnic-group display name by dropping a -- trailing " 'sy <...>"/" 'syn <...>" locative qualifier -- the Manx "in the -- <country>" construction (the same contraction already used elsewhere in -- this project, e.g. reiltys.lua's founding-event text "...'syn Yugoslaavey" -- = "...in Yugoslavia"; "'sy" before a consonant-initial word, "'syn" before -- a vowel-initial one, per ordinary Manx grammar). -- -- Reported live, with a screenshot: an ethnic-group entry rendered as -- "[[Ookraanee 'sy Pholynn]]" -- the full, unshortened title ("Ukrainians in -- Poland") shown as the VISIBLE text, when it should read just "Ookraanee" -- ("Ukrainians"), still linking to the same full title. Unlike the -- Luxembourg City capital/largest-city fix (balley.lua), where the item's -- OWN Wikidata label already differed from its disambiguated sitelink, a -- diaspora-specific Wikidata item like this one typically has no separate -- "clean" label at all -- "Ookraanee 'sy Pholynn" most likely IS its actual -- gv label, describing exactly what the item is (the Ukrainian community -- specifically as it exists in Poland, a distinct Wikidata item from plain -- "Ukrainians"). So there's no alternate label to fall back to here; the -- qualifier has to be stripped out of the display text directly, since a -- list that's already labelled "Possanyn kynneeagh" on the Poland article -- doesn't need "in Poland" repeated on every one of its entries. local function shortenDiasporaName(display) if not display or display == "" then return display end local short = display:match("^(.-)%s'syn%s.+$") or display:match("^(.-)%s'sy%s.+$") if short and short ~= "" then return short end return display end -- Resolves an ethnic-group item to a link: gv sitelink, else gv label (as a -- redlink), else an ennym-wd external link to Wikidata. local function getWdItemLink(qid) if not qid then return nil end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if not (okLabel and gvLabel and gvLabel ~= "") then gvLabel = nil end if not sitelinkTitle and not gvLabel then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local display = shortenDiasporaName(gvLabel or sitelinkTitle) if target == display then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. display .. "]]" end -- e.g. 0.947 -> "94.7%"; drops a trailing ".0". local function formatProportion(fraction) local formatted = string.format("%.1f", fraction * 100) return formatted:gsub("%.0$", "") .. "%" end -- Wikidata fallback: ethnic groups (P172), each optionally qualified with a -- proportion (P1107). Sorted by proportion, largest first, only when every -- entry has one; otherwise left in Wikidata's own statement order. No -- auto-built citation (this module doesn't go through Module:Wd). local function getWdEthnicGroups() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P172") if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local idValue = mainsnak.datavalue.value local qid = idValue.id or ("Q" .. tostring(idValue["numeric-id"])) local link = getWdItemLink(qid) if link then local pct = nil local quals = statement.qualifiers and statement.qualifiers.P1107 local qualSnak = quals and quals[1] if qualSnak and qualSnak.datavalue and qualSnak.datavalue.value then pct = tonumber(qualSnak.datavalue.value.amount) end table.insert(items, { link = link, pct = pct }) end end end if #items == 0 then return nil end local allHavePct = true for _, item in ipairs(items) do if not item.pct then allHavePct = false break end end if allHavePct then table.sort(items, function(a, b) return a.pct > b.pct end) end local parts = {} for _, item in ipairs(items) do if item.pct then table.insert(parts, formatProportion(item.pct) .. "&nbsp;" .. item.link) else table.insert(parts, item.link) end end return table.concat(parts, "<br/>") end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local value = getManual(args, {"possanyn_kynneeagh"}) if not value then value = getWdEthnicGroups() end if not value or isNone(value) then return nil end local year = getManual(args, {"blein_possanyn_kynneeagh"}) local ref = getManual(args, {"imraa_possanyn_kynneeagh"}) local note = getManual(args, {"noteyn_possanyn_kynneeagh"}) local label = "[[Possan kynneeagh|Possanyn kynneeagh]]" if year then label = label .. "&nbsp;(" .. year .. ")" end label = applyRefNote(label, ref, note, frame) return string.format(ROW, label, value) end return p hun1rzvnfbljbyxihmos03sqgvdlbd3 394571 394540 2026-10-16T17:36:23Z MacTire02 219 -chaghteraghtyn 394571 Scribunto text/plain local p = {} local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged -- (Scribunto pre-expands a literal <ref> into a strip marker; if stripping -- those markers leaves nothing, it was already tag(s)). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- Same plain 2-cell row grid as every other submodule (see Module:Kishtey -- fys çheer/reiltys's own ROW comment for the full rationale). local ROW = '<tr><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' -- Drops a trailing " 'sy <...>"/" 'syn <...>" locative qualifier ("in the -- <country>") from a diaspora/subgroup display name -- e.g. "Ookraanee 'sy -- Pholynn" ("Ukrainians in Poland") displays as just "Ookraanee", still -- linking to the full title. There's usually no separate "clean" label to -- fall back to for these items, so the qualifier is stripped from the -- display text directly. local function shortenDiasporaName(display) if not display or display == "" then return display end local short = display:match("^(.-)%s'syn%s.+$") or display:match("^(.-)%s'sy%s.+$") if short and short ~= "" then return short end return display end -- Resolves an ethnic-group item to a link: gv sitelink, else gv label (as a -- redlink), else an ennym-wd external link to Wikidata. local function getWdItemLink(qid) if not qid then return nil end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if not (okLabel and gvLabel and gvLabel ~= "") then gvLabel = nil end if not sitelinkTitle and not gvLabel then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local display = shortenDiasporaName(gvLabel or sitelinkTitle) if target == display then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. display .. "]]" end -- e.g. 0.947 -> "94.7%"; drops a trailing ".0". local function formatProportion(fraction) local formatted = string.format("%.1f", fraction * 100) return formatted:gsub("%.0$", "") .. "%" end -- Wikidata fallback: ethnic groups (P172), each optionally qualified with a -- proportion (P1107). Sorted by proportion, largest first, only when every -- entry has one; otherwise left in Wikidata's own statement order. No -- auto-built citation (this module doesn't go through Module:Wd). local function getWdEthnicGroups() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P172") if not statements or #statements == 0 then return nil end local items = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "wikibase-entityid" then local idValue = mainsnak.datavalue.value local qid = idValue.id or ("Q" .. tostring(idValue["numeric-id"])) local link = getWdItemLink(qid) if link then local pct = nil local quals = statement.qualifiers and statement.qualifiers.P1107 local qualSnak = quals and quals[1] if qualSnak and qualSnak.datavalue and qualSnak.datavalue.value then pct = tonumber(qualSnak.datavalue.value.amount) end table.insert(items, { link = link, pct = pct }) end end end if #items == 0 then return nil end local allHavePct = true for _, item in ipairs(items) do if not item.pct then allHavePct = false break end end if allHavePct then table.sort(items, function(a, b) return a.pct > b.pct end) end local parts = {} for _, item in ipairs(items) do if item.pct then table.insert(parts, formatProportion(item.pct) .. "&nbsp;" .. item.link) else table.insert(parts, item.link) end end return table.concat(parts, "<br/>") end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local value = getManual(args, {"possanyn_kynneeagh"}) if not value then value = getWdEthnicGroups() end if not value or isNone(value) then return nil end local year = getManual(args, {"blein_possanyn_kynneeagh"}) local ref = getManual(args, {"imraa_possanyn_kynneeagh"}) local note = getManual(args, {"noteyn_possanyn_kynneeagh"}) local label = "[[Possan kynneeagh|Possanyn kynneeagh]]" if year then label = label .. "&nbsp;(" .. year .. ")" end label = applyRefNote(label, ref, note, frame) return string.format(ROW, label, value) end return p p5vb7vf70ch870wyj0ghmg721bbwagb Module:Kishtey fys çheer/eaghtyr 828 55874 394538 393991 2026-10-16T12:02:51Z MacTire02 219 imraaghyn 394538 Scribunto text/plain local p = {} local KM2_PER_MI2 = 2.589988110336 -- Recognized Wikidata area units (P2046), mapped to their km² factor. -- Q712226 = square kilometre, Q232291 = square mile. Anything else -- (hectare, acre, m², ...) is left unconverted rather than risking a wrong -- guess -- the manual |eaghtyr_km2= override always remains available. local AREA_UNIT_FACTORS = { Q712226 = 1, Q232291 = KM2_PER_MI2, } local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>...</ref>, unless it's already fully -- <ref>-tagged (Scribunto expands a literal <ref> in a parameter into an -- opaque \127UNIQ...QINU\127 strip marker before this module sees it, so we -- strip those out and check what's left -- nothing left means it was -- already tag(s), pass through unchanged; real text left over -- e.g. a -- bare {{cite web}} call whose own <templatestyles/> leaves an incidental -- marker -- means it still needs wrapping). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Strips trailing literal spaces and/or "&nbsp;" (in any mix or repeat -- -- e.g. a value that ends "...&nbsp;" with no rhenk actually appended after -- it) so a note or reference glues directly onto the claim it belongs to, -- with no visible or non-breaking gap in between. local function stripTrailingSpace(value) local changed = true while changed do local stripped = value:gsub("%s+$", ""):gsub("&nbsp;$", "") changed = (stripped ~= value) value = stripped end return value end local function applyRefNote(value, ref, note, frame) if not value then return value end local hasNote = note and note ~= "" and frame local hasRef = ref and ref ~= "" if hasNote or hasRef then value = stripTrailingSpace(value) end if hasNote then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if hasRef then value = value .. wrapReference(ref) end return value end -- Same row grid as Module:Kishtey fys çheer/reiltys (header + bulleted -- indented sub-rows), since Eaghtyr has the same shape: a section header -- with several stat lines beneath it. local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function appendIndentRun(rows, items) for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(SUBROW, trClass(class), item[1], item[2])) end end -- e.g. 1234567.5 -> "1,234,567.5"; drops a trailing ".0" and groups the -- integer part in thousands. Only used for numbers this module computed -- itself (Wikidata's raw amount, the auto-converted sq-mi figure) -- a -- manual value is always passed through exactly as the editor typed it. local function formatNumber(n) local isNeg = n < 0 n = math.abs(n) local formatted = string.format("%.2f", n):gsub("%.?0+$", "") local intPart, decPart = formatted:match("^(%d+)%.?(%d*)$") local grouped = intPart:reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") local result = (decPart and decPart ~= "") and (grouped .. "." .. decPart) or grouped return isNeg and ("-" .. result) or result end -- Wikidata fallback: total area (P2046), converted to km² when the unit is -- one this module recognizes (see AREA_UNIT_FACTORS). A country's area is -- sometimes split into several best-rank statements by an "applies to part" -- (P518) qualifier -- e.g. Bosnia and Herzegovina carries 10 km² (lake), -- 51,187 km² (land) and 51,209.2 km² (whole) as three separate best-rank -- P2046 statements. statements[1] isn't necessarily the whole-country -- figure -- confirmed live, it was returning the 10 km² lake sub-area. -- Never assume which "applies to part" QID means "whole" without verifying -- it; a sub-area is always <= the country's real total by definition, so -- the correct total is simply the LARGEST convertible value among them, -- with no qualifier data needed at all. Returns a plain number, not a -- formatted string -- the caller decides display/rounding. local function getWdAreaKm2() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P2046") if not statements or #statements == 0 then return nil end local best = nil for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local value = mainsnak.datavalue.value local amount = tonumber(value.amount) local unitQid = amount and value.unit and value.unit:match("Q%d+$") local factor = unitQid and AREA_UNIT_FACTORS[unitQid] if factor then local km2 = amount * factor if not best or km2 > best then best = km2 end end end end return best end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local headerLabel = getManual(args, {"sorçh_eaghtyr"}) or "Eaghtyr" local ref = getManual(args, {"imraa_eaghtyr"}) local note = getManual(args, {"noteyn_eaghtyr"}) ------------------------------------------------------------------ -- Total area ("Yn clane"): manual km² value, else Wikidata (P2046). -- An explicit |eaghtyr_km2=none suppresses this row (and the sq-mi -- conversion with it) without touching water%/the custom row below. ------------------------------------------------------------------ local km2Manual = getManual(args, {"eaghtyr_km2"}) local km2Str, km2Number if km2Manual then if not isNone(km2Manual) then km2Str = km2Manual km2Number = tonumber((km2Manual:gsub(",", ""))) end else km2Number = getWdAreaKm2() if km2Number then km2Str = formatNumber(km2Number) end end local totalItem = nil if km2Str then local label = getManual(args, {"eaghtyr_lipaid"}) or "Yn clane" local foScreeuyn = getManual(args, {"eaghtyr_fo-screeuyn"}) or "" local rhenk = getManual(args, {"eaghtyr_rhenk"}) local miKerManual = getManual(args, {"eaghtyr_mi_ker"}) local miKerStr = miKerManual if not miKerStr and km2Number then miKerStr = formatNumber(math.floor(km2Number / KM2_PER_MI2 + 0.5)) end local value = km2Str .. "&nbsp;[[km²|km<sup>2</sup>]]&nbsp;" .. foScreeuyn if rhenk then value = value .. "([[Rolley çheeraghyn as thallooyn foddey ersooyl rere eaghtyr|" .. rhenk .. "]]) " end if miKerStr then value = value .. "<br/>" .. miKerStr .. "&nbsp;[[Meeiley cherrinagh|mi&nbsp;ker]]&nbsp;" end value = applyRefNote(value, ref, note, frame) totalItem = {label, value} end ------------------------------------------------------------------ -- Water (%): manual only -- no Wikidata property reliably covers this. ------------------------------------------------------------------ local waterItem = nil local water = getManual(args, {"ushtey_sy_cheead"}) if water and not isNone(water) then waterItem = {"[[Ushtey]]&nbsp;([['Sy cheead|%]])", water} end ------------------------------------------------------------------ -- Custom second stat row: fully manual, generic label/value pass-through. ------------------------------------------------------------------ local customItem = nil local customLabel = getManual(args, {"eaghtyr_lipaid2"}) if customLabel then local customValue = getManual(args, {"eaghtyr_fysseree2"}) or "" customItem = {customLabel, customValue} end if not totalItem and not waterItem and not customItem then return nil end local rows = {} if totalItem then table.insert(rows, string.format(HEADER, headerLabel)) else -- No total row (e.g. |eaghtyr_km2=none with only water%/custom set): -- attach the section's own citation to the header instead. table.insert(rows, string.format(HEADER, applyRefNote(headerLabel, ref, note, frame))) end local items = {} if totalItem then table.insert(items, totalItem) end if waterItem then table.insert(items, waterItem) end if customItem then table.insert(items, customItem) end appendIndentRun(rows, items) return table.concat(rows) end return p 9qzuc071kub70qb610dv7gnk7cl44at 394569 394538 2026-10-16T17:35:28Z MacTire02 219 -chaghteraghtyn 394569 Scribunto text/plain local p = {} local KM2_PER_MI2 = 2.589988110336 -- Recognized Wikidata area units (P2046), mapped to their km² factor. -- Q712226 = square kilometre, Q232291 = square mile. Anything else -- (hectare, acre, m², ...) is left unconverted rather than risking a wrong -- guess -- the manual |eaghtyr_km2= override always remains available. local AREA_UNIT_FACTORS = { Q712226 = 1, Q232291 = KM2_PER_MI2, } local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>...</ref>, unless already fully <ref>-tagged -- (Scribunto pre-expands a literal <ref> into a strip marker; if stripping -- those markers leaves nothing, it was already tag(s)). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Strips trailing literal spaces and/or "&nbsp;" (in any mix or repeat -- -- e.g. a value that ends "...&nbsp;" with no rhenk actually appended after -- it) so a note or reference glues directly onto the claim it belongs to, -- with no visible or non-breaking gap in between. local function stripTrailingSpace(value) local changed = true while changed do local stripped = value:gsub("%s+$", ""):gsub("&nbsp;$", "") changed = (stripped ~= value) value = stripped end return value end local function applyRefNote(value, ref, note, frame) if not value then return value end local hasNote = note and note ~= "" and frame local hasRef = ref and ref ~= "" if hasNote or hasRef then value = stripTrailingSpace(value) end if hasNote then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if hasRef then value = value .. wrapReference(ref) end return value end -- Same row grid as Module:Kishtey fys çheer/reiltys (header + bulleted -- indented sub-rows), since Eaghtyr has the same shape: a section header -- with several stat lines beneath it. local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function appendIndentRun(rows, items) for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(SUBROW, trClass(class), item[1], item[2])) end end -- e.g. 1234567.5 -> "1,234,567.5"; drops a trailing ".0" and groups the -- integer part in thousands. Only used for numbers this module computed -- itself (Wikidata's raw amount, the auto-converted sq-mi figure) -- a -- manual value is always passed through exactly as the editor typed it. local function formatNumber(n) local isNeg = n < 0 n = math.abs(n) local formatted = string.format("%.2f", n):gsub("%.?0+$", "") local intPart, decPart = formatted:match("^(%d+)%.?(%d*)$") local grouped = intPart:reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") local result = (decPart and decPart ~= "") and (grouped .. "." .. decPart) or grouped return isNeg and ("-" .. result) or result end -- Wikidata fallback: total area (P2046), converted to km² when the unit is -- one this module recognizes. A country's area can be split into several -- best-rank statements by an "applies to part" qualifier (e.g. lake/land/ -- whole) -- statements[1] isn't necessarily the whole-country figure, so -- the correct total is simply the LARGEST convertible value among them. -- Returns a plain number; the caller decides display/rounding. local function getWdAreaKm2() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P2046") if not statements or #statements == 0 then return nil end local best = nil for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local value = mainsnak.datavalue.value local amount = tonumber(value.amount) local unitQid = amount and value.unit and value.unit:match("Q%d+$") local factor = unitQid and AREA_UNIT_FACTORS[unitQid] if factor then local km2 = amount * factor if not best or km2 > best then best = km2 end end end end return best end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local headerLabel = getManual(args, {"sorçh_eaghtyr"}) or "Eaghtyr" local ref = getManual(args, {"imraa_eaghtyr"}) local note = getManual(args, {"noteyn_eaghtyr"}) ------------------------------------------------------------------ -- Total area ("Yn clane"): manual km² value, else Wikidata (P2046). -- An explicit |eaghtyr_km2=none suppresses this row (and the sq-mi -- conversion with it) without touching water%/the custom row below. ------------------------------------------------------------------ local km2Manual = getManual(args, {"eaghtyr_km2"}) local km2Str, km2Number if km2Manual then if not isNone(km2Manual) then km2Str = km2Manual km2Number = tonumber((km2Manual:gsub(",", ""))) end else km2Number = getWdAreaKm2() if km2Number then km2Str = formatNumber(km2Number) end end local totalItem = nil if km2Str then local label = getManual(args, {"eaghtyr_lipaid"}) or "Yn clane" local foScreeuyn = getManual(args, {"eaghtyr_fo-screeuyn"}) or "" local rhenk = getManual(args, {"eaghtyr_rhenk"}) local miKerManual = getManual(args, {"eaghtyr_mi_ker"}) local miKerStr = miKerManual if not miKerStr and km2Number then miKerStr = formatNumber(math.floor(km2Number / KM2_PER_MI2 + 0.5)) end local value = km2Str .. "&nbsp;[[km²|km<sup>2</sup>]]&nbsp;" .. foScreeuyn if rhenk then value = value .. "([[Rolley çheeraghyn as thallooyn foddey ersooyl rere eaghtyr|" .. rhenk .. "]]) " end if miKerStr then value = value .. "<br/>" .. miKerStr .. "&nbsp;[[Meeiley cherrinagh|mi&nbsp;ker]]&nbsp;" end value = applyRefNote(value, ref, note, frame) totalItem = {label, value} end ------------------------------------------------------------------ -- Water (%): manual only -- no Wikidata property reliably covers this. ------------------------------------------------------------------ local waterItem = nil local water = getManual(args, {"ushtey_sy_cheead"}) if water and not isNone(water) then waterItem = {"[[Ushtey]]&nbsp;([['Sy cheead|%]])", water} end ------------------------------------------------------------------ -- Custom second stat row: fully manual, generic label/value pass-through. ------------------------------------------------------------------ local customItem = nil local customLabel = getManual(args, {"eaghtyr_lipaid2"}) if customLabel then local customValue = getManual(args, {"eaghtyr_fysseree2"}) or "" customItem = {customLabel, customValue} end if not totalItem and not waterItem and not customItem then return nil end local rows = {} if totalItem then table.insert(rows, string.format(HEADER, headerLabel)) else -- No total row (e.g. |eaghtyr_km2=none with only water%/custom set): -- attach the section's own citation to the header instead. table.insert(rows, string.format(HEADER, applyRefNote(headerLabel, ref, note, frame))) end local items = {} if totalItem then table.insert(items, totalItem) end if waterItem then table.insert(items, waterItem) end if customItem then table.insert(items, customItem) end appendIndentRun(rows, items) return table.concat(rows) end return p irt8wjgp8dbpws9ty7dth0z2av1zql6 Module:Kishtey fys çheer/pobble 828 55875 394539 393990 2026-10-16T12:03:20Z MacTire02 219 imraaghyn 394539 Scribunto text/plain local p = {} local KM2_PER_MI2 = 2.589988110336 -- P459 (determination method) QIDs, verified on Wikidata. Anything that -- isn't a census defaults to "estimate" in classify() below, so the -- estimate-family QIDs aren't matched explicitly -- kept here for reference. local CENSUS_QID = "Q39825" local ESTIMATE_QID = "Q791801" local DEMOGRAPHIC_BALANCE_QID = "Q15911027" local POPULATION_ESTIMATE_QID = "Q29051383" -- Same area units as eaghtyr.lua, for the density calc. local AREA_UNIT_FACTORS = { Q712226 = 1, Q232291 = KM2_PER_MI2, } -- For Wikidata citations only. local wdOK, Wd = pcall(require, "Module:Wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual ref in <ref> unless it's already tagged (Scribunto turns -- a literal <ref> into a strip marker before this module sees it). local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Strips trailing literal spaces and/or "&nbsp;" (in any mix or repeat -- -- e.g. a value that ends "...&nbsp;" with no rhenk actually appended after -- it) so a note, reference, or auto-citation glues directly onto the claim -- it belongs to, with no visible or non-breaking gap in between. local function stripTrailingSpace(value) local changed = true while changed do local stripped = value:gsub("%s+$", ""):gsub("&nbsp;$", "") changed = (stripped ~= value) value = stripped end return value end local function applyRefNote(value, ref, note, frame) if not value then return value end local hasNote = note and note ~= "" and frame local hasRef = ref and ref ~= "" if hasNote or hasRef then value = stripTrailingSpace(value) end if hasNote then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if hasRef then value = value .. wrapReference(ref) end return value end -- Same header + bulleted sub-rows grid as reiltys/eaghtyr. local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local HEADER = '<tr class="mergedtoprow"><th colspan="2" style="text-align:left; padding-left:0.4em; padding-right:0.4em;">%s</th></tr>' local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function appendIndentRun(rows, items) for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(SUBROW, trClass(class), item[1], item[2])) end end -- e.g. 1234567.5 -> "1,234,567.5". Manual values are never touched by this. local function formatNumber(n, decimals) decimals = decimals or 2 local isNeg = n < 0 n = math.abs(n) local formatted = string.format("%." .. decimals .. "f", n) if formatted:find("%.") then formatted = formatted:gsub("0+$", ""):gsub("%.$", "") end local intPart, decPart = formatted:match("^(%d+)%.?(%d*)$") local grouped = intPart:reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") local result = (decPart and decPart ~= "") and (grouped .. "." .. decPart) or grouped return isNeg and ("-" .. result) or result end -- Increase/decrease/steady arrow. No colour coding -- an increase isn't -- universally good or bad, it depends on the country. local function trendArrow(direction) if direction == "up" then return '<span title="Ardjaghey">▲</span>' elseif direction == "down" then return '<span title="Leodaghey">▼</span>' elseif direction == "steady" then return '<span title="Corrym">—</span>' end return "" end -- All P1082 statements, reduced to {amount, rawAmount, year, method}, -- sorted ascending by year. local function getWdPopulationStatements() local entity = mw.wikibase.getEntityObject() if not entity then return {} end -- getAllStatements, not getBestStatements: a single preferred-rank -- statement (Wikidata often marks the latest one that way) would -- otherwise hide every normal-rank statement, including the census. -- Deprecated-rank statements are excluded by hand below instead. local statements = entity:getAllStatements("P1082") if not statements then return {} end local results = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if statement.rank ~= "deprecated" and mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local rawAmount = mainsnak.datavalue.value.amount local amount = tonumber(rawAmount) local timeQuals = statement.qualifiers and statement.qualifiers.P585 local timeSnak = timeQuals and timeQuals[1] local timeValue = timeSnak and timeSnak.datavalue and timeSnak.datavalue.value local year = timeValue and timeValue.time and tonumber(timeValue.time:match("(%-?%d+)%-")) if amount and year then local methodQuals = statement.qualifiers and statement.qualifiers.P459 local methodSnak = methodQuals and methodQuals[1] local methodValue = methodSnak and methodSnak.datavalue and methodSnak.datavalue.value local method = methodValue and (methodValue.id or ("Q" .. tostring(methodValue["numeric-id"]))) table.insert(results, { amount = amount, rawAmount = rawAmount and rawAmount:gsub("^%+", ""), year = year, method = method, }) end end end table.sort(results, function(a, b) return a.year < b.year end) return results end -- Real census statements are usually tagged with a country-specific item, -- not the generic QID -- fall back to checking the label for "census". local function isCensusMethod(methodQid) if not methodQid then return false end if methodQid == CENSUS_QID then return true end local ok, label = pcall(mw.wikibase.getLabelByLang, methodQid, "en") return ok and label ~= nil and mw.ustring.find(mw.ustring.lower(label), "census", 1, true) ~= nil end local function classify(entry) if isCensusMethod(entry.method) then return "census" end return "estimate" end -- Compares `number` against whichever Wikidata P1082 statement (census or -- estimate) is the closest one strictly before `year` -- or, with no year, -- the single most recent Wikidata statement -- even when that statement -- isn't itself shown as a row. Used for both manual and Wikidata-sourced -- values, so a manual override is never compared to its sibling census/ -- estimate figure, only to Wikidata's own prior data for this property. local function trendAgainstWikidata(number, year, allEntries) if not number or not allEntries or #allEntries == 0 then return nil end local prev = nil for _, entry in ipairs(allEntries) do if year then if entry.year < year and (not prev or entry.year > prev.year) then prev = entry end elseif not prev or entry.year > prev.year then prev = entry end end if not prev then return nil end if number > prev.amount then return "up" end if number < prev.amount then return "down" end return "steady" end -- Matches the statement by its own value rather than re-matching P585/ -- P459 as strings, since dates can carry finer-than-year precision. local function getWdReferenceForValue(property, rawAmount) if not wdOK or not Wd or not Wd._reference or not rawAmount then return nil end local ok, result = pcall(Wd._reference, {"best", property, rawAmount}) if ok and result and result ~= "" then return result end return nil end -- Duplicated from eaghtyr.lua for the density calc. local function getWdAreaKm2() local entity = mw.wikibase.getEntityObject() if not entity then return nil end local statements = entity:getBestStatements("P2046") if not statements or #statements == 0 then return nil end local mainsnak = statements[1].mainsnak if not (mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity") then return nil end local value = mainsnak.datavalue.value local amount = tonumber(value.amount) if not amount then return nil end local unitQid = value.unit and value.unit:match("Q%d+$") local factor = unitQid and AREA_UNIT_FACTORS[unitQid] if not factor then return nil end return amount * factor end -- Builds one census/estimate row from manual params, else Wikidata. A -- trend arrow always compares against Wikidata's own prior P1082 data for -- this property (never a sibling census/estimate value), even when that -- prior statement isn't itself shown as a row. local function buildPopulationItem(args, frame, paramPrefix, labelWord, methodQid, statements) local manual = getManual(args, {"pobble_" .. paramPrefix}) local year = getManual(args, {"blein_" .. paramPrefix .. "_pobble"}) local rhenk = getManual(args, {"rhenk_" .. paramPrefix .. "_pobble"}) local ref = getManual(args, {"imraa_" .. paramPrefix .. "_pobble"}) local note = getManual(args, {"noteyn_" .. paramPrefix .. "_pobble"}) if manual then if isNone(manual) then return nil, nil end local number = tonumber((manual:gsub(",", ""))) local parsedYear = year and tonumber(year:match("%-?%d+")) local trend = trendAgainstWikidata(number, parsedYear, statements) local label = labelWord .. (year and ("&nbsp;" .. year) or "") local value = (trend and trendArrow(trend) or "") .. manual .. "&nbsp;" if rhenk then value = value .. "([[Rolley çheeraghyn rere earroo yn phobble|" .. rhenk .. "]]) " end value = applyRefNote(value, ref, note, frame) return {label, value}, number end local latest = nil for _, entry in ipairs(statements) do if classify(entry) == (methodQid == CENSUS_QID and "census" or "estimate") then latest = entry end end if not latest then return nil, nil end local trend = trendAgainstWikidata(latest.amount, latest.year, statements) local citation = getWdReferenceForValue("P1082", latest.rawAmount) local label = labelWord .. "&nbsp;" .. latest.year local value = (trend and trendArrow(trend) or "") .. formatNumber(latest.amount) .. "&nbsp;" if rhenk then value = value .. "([[Rolley çheeraghyn rere earroo yn phobble|" .. rhenk .. "]]) " end if citation then value = stripTrailingSpace(value) .. citation end value = applyRefNote(value, ref, note, frame) return {label, value}, latest.amount end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local headerLabel = getManual(args, {"sorçh_pobble"}) or "[[Earroo yn phobble]]" local wdStatements = nil local function statements() if wdStatements == nil then wdStatements = getWdPopulationStatements() end return wdStatements end -- Census, then estimate (old template's order). Each item's trend -- compares against Wikidata's own prior data, not against the other. local censusItem, censusNumber = buildPopulationItem(args, frame, "coontey", "Coontey-pobble", CENSUS_QID, statements()) local estimateItem, estimateNumber = buildPopulationItem(args, frame, "ooley", "Ooley-pobble", ESTIMATE_QID, statements()) -- Density: manual km², else population ÷ area. No auto citation -- -- a computed ratio isn't one citable statement. local densityRef = getManual(args, {"imraa_glooaght_pobble"}) local densityNote = getManual(args, {"noteyn_glooaght_pobble"}) local densityManual = getManual(args, {"glooaght_pobble_km2"}) local densityItem = nil local densityKm2Str, densityKm2Number if densityManual then if not isNone(densityManual) then densityKm2Str = densityManual densityKm2Number = tonumber((densityManual:gsub(",", ""))) end else local populationForDensity = estimateNumber or censusNumber local areaKm2 = populationForDensity and getWdAreaKm2() if populationForDensity and areaKm2 and areaKm2 > 0 then densityKm2Number = populationForDensity / areaKm2 densityKm2Str = formatNumber(densityKm2Number, 1) end end if densityKm2Str then local foScreeuyn = getManual(args, {"gloo_pob_fo-screeuyn"}) or "" local rhenk = getManual(args, {"rhenk_glooaght_pobble"}) local miKerManual = getManual(args, {"glooaght_pobble_mi_ker"}) local miKerStr = miKerManual if not miKerStr and densityKm2Number then miKerStr = formatNumber(densityKm2Number * KM2_PER_MI2, 1) end local value = densityKm2Str .. "/km<sup>2</sup>&nbsp;" .. foScreeuyn if rhenk then value = value .. "([[Rolley çheeraghyn rere glooaght y phobble|" .. rhenk .. "]]) " end if miKerStr then value = value .. "<br/>" .. miKerStr .. "/mi&nbsp;ker" end value = applyRefNote(value, densityRef, densityNote, frame) densityItem = {"[[Glooaght y phobble|Glooaght]]", value} end if not censusItem and not estimateItem and not densityItem then return nil end local rows = {string.format(HEADER, headerLabel)} local items = {} if estimateItem then table.insert(items, estimateItem) end if censusItem then table.insert(items, censusItem) end if densityItem then table.insert(items, densityItem) end appendIndentRun(rows, items) return table.concat(rows) end return p fnodmu7dn8ug52tg02uf2byh81csa4l Module:Kishtey fys çheer/tarmaynys 828 55890 394542 393998 2026-10-16T12:04:36Z MacTire02 219 imraaghyn 394542 Scribunto text/plain local p = {} -- Wikidata properties, verified individually before use (never guessed): -- P2131/P2132 nominal GDP total/per-capita, P4010/P2299 PPP GDP -- total/per-capita, P1125 Gini, P1081 HDI, P38 currency, P498 ISO 4217 code. local GDP_NOMINAL_TOTAL = "P2131" local GDP_NOMINAL_PERCAPITA = "P2132" local GDP_PPP_TOTAL = "P4010" local GDP_PPP_PERCAPITA = "P2299" local GINI_PROPERTY = "P1125" local HDI_PROPERTY = "P1081" local CURRENCY_PROPERTY = "P38" local ISO_CODE_PROPERTY = "P498" local UNIT_SYMBOL_PROPERTY = "P5061" -- confirmed against Module:WikidataIB's own usage -- P1082 population -- not a new lookup: this is the exact same property -- Module:Kishtey fys çheer/pobble already reads for its own census/ -- estimate rows, reused here (independently, per this project's -- per-submodule duplication convention) only for the LTS-per-capita -- computed fallback below. local POPULATION_PROPERTY = "P1082" local wdOK, Wd = pcall(require, "Module:Wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Capitalizes via the content language's own ucfirst (UTF-8/digraph-safe), -- not a plain Lua upper() on byte 1. Duplicated from reiltys.lua. local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Capitalizes the first letter a reader actually sees, even through a -- leading wikilink or external-link marker (getCurrencyLink's two linked -- shapes) -- Wikidata labels are commonly stored lower-case. Never applied -- to manual values. local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("%]%]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos else splitPos = 2 end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end -- Strips trailing literal spaces and/or "&nbsp;" (in any mix or repeat -- -- e.g. a value that ends "...&nbsp;" with no rhenk/band actually appended -- after it) so a note, reference, or auto-citation glues directly onto the -- claim it belongs to, with no visible or non-breaking gap in between. local function stripTrailingSpace(value) local changed = true while changed do local stripped = value:gsub("%s+$", ""):gsub("&nbsp;$", "") changed = (stripped ~= value) value = stripped end return value end local function applyRefNote(value, ref, note, frame) if not value then return value end local hasNote = note and note ~= "" and frame local hasRef = ref and ref ~= "" if hasNote or hasRef then value = stripTrailingSpace(value) end if hasNote then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if hasRef then value = value .. wrapReference(ref) end return value end -- Same row grid as reiltys/pobble: ROW is a plain label+value row, SUBROW a -- bulleted sub-item beneath a shared block. local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function appendIndentRun(rows, items) for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(SUBROW, trClass(class), item[1], item[2])) end end -- Divider between this module's own internal blocks (CCC / LTS / Gini / -- ALD / Argid) -- same rule as reiltys: only between two blocks that both -- produced rows. local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end local function formatNumber(n, decimals) decimals = decimals or 2 local isNeg = n < 0 n = math.abs(n) local formatted = string.format("%." .. decimals .. "f", n) if formatted:find("%.") then formatted = formatted:gsub("0+$", ""):gsub("%.$", "") end local intPart, decPart = formatted:match("^(%d+)%.?(%d*)$") local grouped = intPart:reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") local result = (decPart and decPart ~= "") and (grouped .. "." .. decPart) or grouped return isNeg and ("-" .. result) or result end -- Large-number Manx words, as given directly by you. Applied only to GDP -- TOTAL figures (not per-capita, not Gini/ALD) -- matching enwiki's own -- convention of abbreviating a total ("$32.384 trillion") while showing -- per-capita in full ("$94,430"). local SCALE_WORDS = { {1e12, "trillioon"}, {1e9, "billoon"}, {1e6, "millioon"}, {1e3, "thousane"}, } local function abbreviateNumber(n) for _, scale in ipairs(SCALE_WORDS) do local threshold, word = scale[1], scale[2] if math.abs(n) >= threshold then return formatNumber(n / threshold, 3) .. "&nbsp;" .. word end end return formatNumber(n, 0) end -- Splits a manual numeric value into {number, tail}: strips comma -- separators, then takes the leading numeric run. Anything left over (an -- inline <ref>...</ref> -- already a UNIQ strip marker by the time this -- module sees it -- or other trailing text) is kept, not discarded: the -- OLD template had no separate citation parameter for these fields, so on -- the existing 200+ articles a citation was the editor's only option -- directly inside the value itself, e.g. -- |LTS_ennymagh = 28,750,956,130,000<ref>...</ref>. Without this split, -- tonumber() on the whole string fails outright and the value falls back -- to unabbreviated raw text -- which is exactly what a plain -- comma-stripped tonumber() was doing before this fix. local function splitManualNumber(text) local stripped = text:gsub(",", "") local numStr, tail = stripped:match("^(%-?%d+%.?%d*)(.*)$") if not numStr then return nil, nil end tail = mw.text.trim(tail) return tonumber(numStr), tail ~= "" and tail or nil end -- Applies to a GDP field's own number, whether manual or Wikidata-sourced -- -- unlike every other manual value in this module, a manual GDP figure -- IS reformatted (scaled/grouped), since the whole point of this feature -- is the number's presentation, not just its source. `field.str` (the -- manual text as typed) is the fallback only for the rare manual value -- that doesn't parse as a plain number at all. Any trailing text captured -- alongside the number (typically an inline citation) is preserved -- immediately after the reformatted number. local function formatGdpDisplay(field, abbreviate) if not field.number then return field.str end local numStr = abbreviate and abbreviateNumber(field.number) or formatNumber(field.number, 0) if field.tail then return numStr .. field.tail end return numStr end -- Matches the wiki's own {{Increase}}/{{Decrease}}/{{Steady}} styling exactly -- (population deliberately uses no colour -- a separate, earlier decision -- that does NOT generalise here). Increase/decrease use the site's actual -- Coadan:Increase2.svg/Decrease2.svg icons, not hand-drawn coloured -- triangles; steady is the site's blue ▬, per your template source. local function trendArrow(direction) if direction == "up" then return "[[Coadan:Increase2.svg|11px|alt=Ardjaghey|link=|Ardjaghey]]" elseif direction == "down" then return "[[Coadan:Decrease2.svg|11px|alt=Leodaghey|link=|Leodaghey]]" elseif direction == "steady" then return '<span title="Corrym" style="color:#0AF; font-size: larger;">▬</span>' end return "" end -- A manual value can carry its OWN leading trend icon, typed by the editor -- as {{increase}}/{{decrease}}/{{steady}} (old-template habit -- confirmed -- live, e.g. |LTS_CCK={{increase}} $6.932&nbsp;billoon<ref>...</ref>). -- Those templates are already expanded by the time this module sees the -- argument, so the value STARTS with a Coadan:Increase2.svg/Decrease2.svg -- link (or the steady span) -- which also means it can never parse as a -- plain number (see splitManualNumber), so field.number is nil and no -- `trend` gets computed for it at all. Without this check the icon was -- passed through as opaque, unwrapped text -- exactly the "icon strands on -- its own line" bug the computed path was already fixed for. A bare -- ▲/▼/▬/— glyph is matched too, in case an editor typed the character -- directly instead of the template. Returns the marker text and whatever -- follows it (nil, text if no marker is present). local LEADING_TREND_PATTERNS = { "^%[%[Coadan:Increase2%.svg.-%]%]", "^%[%[Coadan:Decrease2%.svg.-%]%]", "^%[%[File:Increase2%.svg.-%]%]", "^%[%[File:Decrease2%.svg.-%]%]", "^<span[^>]*>▬</span>", } local function splitLeadingTrendMarker(text) if not text or text == "" then return nil, text end for _, pattern in ipairs(LEADING_TREND_PATTERNS) do local s, e = text:find(pattern) if s then return text:sub(s, e), text:sub(e + 1) end end for _, marker in ipairs({"▲", "▼", "▬", "—"}) do if text:sub(1, #marker) == marker then return marker, text:sub(#marker + 1) end end return nil, text end -- Strips whatever separator (plain spaces and/or a literal "&nbsp;") an -- editor already put between their hand-typed icon and the value, so -- glueTrend can supply exactly one "&nbsp;" instead of stacking two. local function stripLeadingSeparator(text) if not text then return text end while true do local stripped = text:gsub("^%s+", ""):gsub("^&nbsp;", "") if stripped == text then return stripped end text = stripped end end -- Glues a trend icon to the number it belongs to, with a visible space -- between them, so a line-wrap can never separate icon from value; anything -- appended after (rank, band) stays free to wrap onto its own line. Covers -- both an icon THIS module generated (`trend` given) and one already -- sitting at the front of manually-typed `text` (see -- splitLeadingTrendMarker above). local function glueTrend(trend, text) if trend then return '<span style="white-space:nowrap;">' .. trendArrow(trend) .. "&nbsp;" .. text .. '</span>' end local marker, rest = splitLeadingTrendMarker(text) if marker then return '<span style="white-space:nowrap;">' .. marker .. "&nbsp;" .. stripLeadingSeparator(rest) .. '</span>' end return text end -- All non-deprecated statements of a quantity property, reduced to -- {amount, rawAmount, year}, sorted ascending by year. local function getWdQuantityStatements(property) local entity = mw.wikibase.getEntityObject() if not entity then return {} end local statements = entity:getAllStatements(property) if not statements then return {} end local results = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if statement.rank ~= "deprecated" and mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local rawAmount = mainsnak.datavalue.value.amount local amount = tonumber(rawAmount) local timeQuals = statement.qualifiers and statement.qualifiers.P585 local timeSnak = timeQuals and timeQuals[1] local timeValue = timeSnak and timeSnak.datavalue and timeSnak.datavalue.value local year = timeValue and timeValue.time and tonumber(timeValue.time:match("(%-?%d+)%-")) -- The statement's OWN currency/unit (e.g. a specific country's -- dollar, not necessarily USD) -- never assumed, always read off -- this exact statement. Dimensionless properties (Gini, HDI) -- simply never match "Q%d+$" here and stay nil. local unitQid = mainsnak.datavalue.value.unit and mainsnak.datavalue.value.unit:match("Q%d+$") if amount then table.insert(results, { amount = amount, rawAmount = rawAmount and rawAmount:gsub("^%+", ""), year = year, unitQid = unitQid, }) end end end table.sort(results, function(a, b) return (a.year or 0) < (b.year or 0) end) return results end -- Compares `number` against whichever fetched statement is the closest one -- strictly before `year` -- or, with no year, the single most recent -- statement -- even when that statement isn't itself shown as a row. Used -- for both manual and Wikidata-sourced values alike. local function trendAgainstWikidata(number, year, allEntries) if not number or not allEntries or #allEntries == 0 then return nil end local prev = nil for _, entry in ipairs(allEntries) do if year then if entry.year and entry.year < year and (not prev or entry.year > prev.year) then prev = entry end elseif not prev or (entry.year or 0) > (prev.year or 0) then prev = entry end end if not prev then return nil end if number > prev.amount then return "up" end if number < prev.amount then return "down" end return "steady" end local function getWdReferenceForValue(property, rawAmount) if not wdOK or not Wd or not Wd._reference or not rawAmount then return nil end local ok, result = pcall(Wd._reference, {"best", property, rawAmount}) if ok and result and result ~= "" then return result end return nil end -- Raw QIDs of EVERY value of an entity-valued property on the current -- page's own item -- e.g. every P38 (currency) statement, for a country -- using more than one. local function getWdRawPropertyIds(property) if not wdOK or not Wd or not Wd._properties then return {} end local ok, result = pcall(Wd._properties, {"raw", property}) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- Raw value of a property on a FOREIGN Wikidata item (e.g. P498 on the -- currency item, not the country's own item) -- same eid-keyed pattern as -- reiltys.lua's getWdRawForeignPropertyIds, singular version. local function getWdForeignPropertyRaw(eid, property) if not wdOK or not Wd or not Wd._property or not eid then return nil end local callArgs = {"raw", "best", property} callArgs[Wd.args and Wd.args.eid or "eid"] = eid local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result ~= "" then return result end return nil end -- The short symbol (e.g. "$") of a currency/unit item, via P5061 -- read -- directly off mw.wikibase (a monolingualtext value, so Wd's plain-string -- commands don't fit), same technique as Module:WikidataIB. Prefers a -- language-neutral ("mul") or English value; falls back to whichever -- language is available rather than showing nothing. local function getWdUnitSymbol(unitQid) if not unitQid then return nil end local ok, statements = pcall(mw.wikibase.getBestStatements, unitQid, UNIT_SYMBOL_PROPERTY) if not ok or not statements then return nil end local fallback = nil for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak local value = mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.value if value and value.text then if value.language == "mul" or value.language == "en" then return value.text end fallback = fallback or value.text end end return fallback end -- Manx sitelink -> Manx label (redlink) -> English (or other) label with a -- language marker, linked to Wikidata directly. Capitalized -- Wikidata -- labels are commonly stored lower-case ("dollar ny Steatyn Unnaneysit"), -- but this is always the first word of the field. local function getCurrencyLink(qid) local sitelinkOk, sitelink = pcall(mw.wikibase.getSitelink, qid, "gvwiki") local labelOk, label, lang = pcall(mw.wikibase.getLabelWithLang, qid) local link if sitelinkOk and sitelink then local displayText = (labelOk and lang == "gv" and label) or sitelink if displayText ~= sitelink then link = "[[" .. sitelink .. "|" .. displayText .. "]]" else link = "[[" .. sitelink .. "]]" end elseif labelOk and label and lang == "gv" then link = "[[" .. label .. "]]" elseif labelOk and label then link = "[https://www.wikidata.org/wiki/" .. qid .. "?uselang=gv " .. label .. "] <small>(" .. lang .. ")</small>" end return link and capitalizeFirstLetter(link) or nil end -- Resolves one quantity field: a manual override (or "none" suppression) -- wins outright; otherwise the latest non-deprecated Wikidata statement. -- Returns "none" (suppressed), nil (no data), or a table -- {str, number, year, trend, citation}. local function resolveQuantityField(args, names, yearNames, property, statements, decimals) local manual = getManual(args, names) if manual then if isNone(manual) then return "none" end -- splitManualNumber (not a plain tonumber) so a manual value with -- trailing content -- typically an inline <ref>, already a UNIQ -- strip marker by the time this module sees it, since the OLD -- template had no separate citation parameter for these fields -- -- still parses as a number instead of falling back to raw, -- unformatted text. The trailing content itself is preserved via -- `tail`, not discarded. local number, tail = splitManualNumber(manual) local year = yearNames and getManual(args, yearNames) local parsedYear = year and tonumber(year:match("%-?%d+")) local trend = trendAgainstWikidata(number, parsedYear, statements) return {str = manual, number = number, tail = tail, year = year, trend = trend, citation = nil} end local latest = nil for _, entry in ipairs(statements) do if not latest or (entry.year or 0) > (latest.year or 0) then latest = entry end end if not latest then return nil end local trend = trendAgainstWikidata(latest.amount, latest.year, statements) local citation = getWdReferenceForValue(property, latest.rawAmount) return { str = formatNumber(latest.amount, decimals), number = latest.amount, year = latest.year and tostring(latest.year) or nil, trend = trend, citation = citation, unitQid = latest.unitQid, } end -- All non-deprecated P1082 (population) statements on the current page's -- own item, reduced to {amount, year} -- a smaller duplicate of -- pobble.lua's own getWdPopulationStatements (kept independent, per this -- project's per-submodule convention), since all this module needs is a -- population figure for one specific year, not census/estimate -- classification. local function getWdPopulationStatements() local entity = mw.wikibase.getEntityObject() if not entity then return {} end local statements = entity:getAllStatements(POPULATION_PROPERTY) if not statements then return {} end local results = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if statement.rank ~= "deprecated" and mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local amount = tonumber(mainsnak.datavalue.value.amount) local timeQuals = statement.qualifiers and statement.qualifiers.P585 local timeSnak = timeQuals and timeQuals[1] local timeValue = timeSnak and timeSnak.datavalue and timeSnak.datavalue.value local year = timeValue and timeValue.time and tonumber(timeValue.time:match("(%-?%d+)%-")) if amount and year then table.insert(results, {amount = amount, year = year}) end end end return results end -- The population figure for an EXACT year, or nil if Wikidata has none for -- that year -- deliberately no nearest-year fallback, per your own -- instruction that the population year must match the GDP year, not just -- be close to it. When more than one statement shares that year (e.g. a -- census and an estimate both dated the same year), the later one found -- wins -- an arbitrary but deterministic tie-break, since nothing here can -- tell which one an editor would consider "the" figure for that year. local function getWdPopulationForYear(year) if not year then return nil end local match = nil for _, entry in ipairs(getWdPopulationStatements()) do if entry.year == year then match = entry end end return match and match.amount or nil end -- Computed LTS-per-capita fallback ("yn dooinney"): when there's no manual -- value and no Wikidata P2132 statement at all, GDP total divided by -- population -- but ONLY when Wikidata has a population figure for the -- EXACT SAME year as the GDP total being used. No citation is attached: a -- computed ratio isn't one citable statement, same precedent as -- pobble.lua's own population-density calculation. Scope: the nominal -- ("ennymagh") block only, matching your own wording ("LTS per capita") -- -- not the PPP (CCC) block, which you didn't mention and which -- conventionally isn't derived this way on enwiki either. local function computeGdpPerCapita(total, decimals) if not total or not total.number then return nil end local year = total.year and tonumber(total.year:match("%-?%d+")) if not year then return nil end local population = getWdPopulationForYear(year) if not population or population <= 0 then return nil end local value = total.number / population return { str = formatNumber(value, decimals), number = value, year = total.year, trend = nil, citation = nil, unitQid = total.unitQid, } end -- One "total + per-capita" block (CCC/PPP or LTS/nominal): a top row with -- the block's own year, then "Yn clane"/"Yn dooinney" bullet sub-rows -- -- matching the old template's own two labels, just on the project's -- established 2-column grid instead of its old 3-column one. local function buildGdpBlock(args, frame, spec) local totalStatements = getWdQuantityStatements(spec.totalProperty) local percapitaStatements = getWdQuantityStatements(spec.percapitaProperty) local total = resolveQuantityField(args, spec.totalNames, spec.yearNames, spec.totalProperty, totalStatements, 0) local percapita = resolveQuantityField(args, spec.percapitaNames, spec.yearNames, spec.percapitaProperty, percapitaStatements, 0) -- Computed fallback (nominal/"ennymagh" block only -- see -- computeGdpPerCapita's own comment). Only when there's genuinely no -- manual value and no Wikidata statement at all: percapita == nil, -- never "none" -- a manual |..._dooinney=none must still suppress the -- row rather than being replaced by a computed one. if percapita == nil and spec.populationFallback and type(total) == "table" then percapita = computeGdpPerCapita(total, 0) end local totalShown = type(total) == "table" local percapitaShown = type(percapita) == "table" if not totalShown and not percapitaShown then return nil end local year = getManual(args, spec.yearNames) or (totalShown and total.year) or (percapitaShown and percapita.year) local rows = {} local headerLabel = getManual(args, spec.headerOverrideNames) or spec.headerLabel table.insert(rows, string.format(ROW, trClass("mergedtoprow"), headerLabel, year and ("Ooley&nbsp;" .. year) or "")) local items = {} if totalShown then local rhenk = getManual(args, spec.totalRhenkNames) local ref = getManual(args, spec.totalRefNames) local note = getManual(args, spec.totalNoteNames) -- Symbol from THIS statement's own currency (never assumed) -- -- manual entries carry no unit data, so no symbol unless the -- editor includes one themselves in the manual value. local symbol = getWdUnitSymbol(total.unitQid) or "" local value = glueTrend(total.trend, symbol .. formatGdpDisplay(total, true)) .. "&nbsp;" if rhenk then value = value .. "([[" .. spec.totalRhenkLink .. "|" .. rhenk .. "]]) " end if total.citation then value = stripTrailingSpace(value) .. total.citation end value = applyRefNote(value, ref, note, frame) table.insert(items, {"Yn clane", value}) end if percapitaShown then local rhenk = getManual(args, spec.percapitaRhenkNames) local ref = getManual(args, spec.percapitaRefNames) local note = getManual(args, spec.percapitaNoteNames) local symbol = getWdUnitSymbol(percapita.unitQid) or "" -- Per-capita stays a plain grouped number, matching enwiki's own -- convention (only the TOTAL gets abbreviated to trillion/billion/ -- million/thousand words). local value = glueTrend(percapita.trend, symbol .. formatGdpDisplay(percapita, false)) .. "&nbsp;" if rhenk then value = value .. "([[" .. spec.percapitaRhenkLink .. "|" .. rhenk .. "]]) " end if percapita.citation then value = stripTrailingSpace(value) .. percapita.citation end value = applyRefNote(value, ref, note, frame) table.insert(items, {"Yn dooinney", value}) end appendIndentRun(rows, items) return table.concat(rows) end -- HDI (ALD) bands: thresholds, Manx labels, and font colours exactly as -- given directly by you. local function classifyHdiBand(value) if not value then return nil end if value >= 0.800 then return "feer ard", "darkgreen" end if value >= 0.700 then return "ard", "green" end if value >= 0.550 then return "meanagh", "orange" end return "injil", "red" end -- Gini can be recorded as either a 0-1 fraction or a 0-100 percentage on -- Wikidata (and by a manual override) -- normalise to a fraction first so -- the same thresholds apply regardless of which scale the source used. local function normalizeGiniFraction(value) if value > 1 then return value / 100 end return value end -- Gini bands: thresholds, Manx labels, and font colours exactly as given -- directly by you. The medium band is the closed interval [0.30, 0.40] -- -- low is strictly below it, high strictly above -- so the three bands -- partition the whole range with no gap and no overlap. local function classifyGiniBand(value) if not value then return nil end local fraction = normalizeGiniFraction(value) if fraction < 0.30 then return "anchorrymid injil", "green" end if fraction <= 0.40 then return "anchorrymid veanagh", "dimgray" end return "anchorrymid ard", "red" end -- One flat label+value row (Gini, ALD): matches the old template's shape -- but on the project's established 2-column ROW grid, not its old -- colspan="2"-label-plus-separate-value-cell layout. local function buildSingleRow(args, frame, spec) local statements = getWdQuantityStatements(spec.property) local field = resolveQuantityField(args, spec.valueNames, spec.yearNames, spec.property, statements, spec.decimals) if not field or field == "none" then return nil end local label = getManual(args, spec.headerOverrideNames) or spec.headerLabel local year = getManual(args, spec.yearNames) or field.year if year then label = label .. "&nbsp;(" .. year .. ")" end local rhenk = getManual(args, spec.rhenkNames) local ref = getManual(args, spec.refNames) local note = getManual(args, spec.noteNames) -- Band: a manual value always wins outright, including -- |..._ronney=none to suppress the band entirely (same manual-beats- -- everything philosophy as the rest of this module, e.g. Slovakia's -- motto override) -- in neither case does it fall through to automatic -- classification. Only with no manual value at all does the band get -- computed automatically from whatever number is actually being -- shown, whether that number came from Wikidata or a manual override. local rawBand = spec.bandNames and getManual(args, spec.bandNames) local band, bandColor if rawBand then if not isNone(rawBand) then band = rawBand end elseif spec.classifyBand and field.number then band, bandColor = spec.classifyBand(field.number) end local value = glueTrend(field.trend, field.str) .. "&nbsp;" if band then -- Nowrapped so the band's own words (e.g. "anchorrymid ard") can't -- split across lines -- the whole "(...)" is free to wrap onto its -- own line instead, same principle as glueTrend for the value itself. local bandText = bandColor and ('<span style="color:' .. bandColor .. ';">' .. band .. "</span>") or band value = value .. '<span style="white-space:nowrap;">(' .. bandText .. ")</span>&nbsp;" end if rhenk then value = value .. "([[" .. spec.rhenkLink .. "|" .. rhenk .. "]]) " end if field.citation then value = stripTrailingSpace(value) .. field.citation end value = applyRefNote(value, ref, note, frame) return string.format(ROW, "", label, value) end -- One "name ($) (CODE)" line for a single currency item. local function buildCurrencyLine(qid, codeOverride) local nameStr = getCurrencyLink(qid) if not nameStr then return nil end local symbol = getWdUnitSymbol(qid) local codeStr = codeOverride or getWdForeignPropertyRaw(qid, ISO_CODE_PROPERTY) local line = nameStr if symbol then line = line .. " (" .. symbol .. ")" end if codeStr then line = line .. " (<code>[[ISO 4217|" .. codeStr .. "]]</code>)" end return line end local function buildCurrencyRow(args, frame) local nameManual = getManual(args, {"argid"}) local codeManual = getManual(args, {"coad_argid"}) local ref = getManual(args, {"imraa_argid"}) local note = getManual(args, {"noteyn_argid"}) local headerLabel = getManual(args, {"sorçh_argid"}) or "[[Argid cadjin|Argid]]" if isNone(nameManual) then return nil end local value if nameManual then -- Manual text passes through as typed. Numbered slots (argid2, -- coad_argid2, ...) support a second or further currency, e.g. -- the Isle of Man or the Faroe Islands, joined like the Wikidata -- multi-currency path below. local line1 = nameManual if codeManual then line1 = line1 .. " (<code>[[ISO 4217|" .. codeManual .. "]]</code>)" end local lines = {line1} local n = 2 while true do local name = getManual(args, {"argid" .. n}) if not name then break end local code = getManual(args, {"coad_argid" .. n}) local line = name if code then line = line .. " (<code>[[ISO 4217|" .. code .. "]]</code>)" end table.insert(lines, line) n = n + 1 end value = table.concat(lines, "<br/>") else -- Every P38 currency (a country can use more than one), each its -- own line -- not just the single "best" one. local currencyQids = getWdRawPropertyIds(CURRENCY_PROPERTY) if #currencyQids == 0 then return nil end local lines = {} for _, qid in ipairs(currencyQids) do local line = buildCurrencyLine(qid, #currencyQids == 1 and codeManual or nil) if line then table.insert(lines, line) end end if #lines == 0 then return nil end value = table.concat(lines, "<br/>") end value = applyRefNote(value, ref, note, frame) return string.format(ROW, "", headerLabel, value) end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} -- Old template order: PPP (CCK/CCC) block first, nominal (ennymagh) -- second, then Gini, ALD, Currency. local cccBlock = buildGdpBlock(args, frame, { totalNames = {"ccc", "LTS_CCK"}, percapitaNames = {"ccc_dooinney", "LTS_CCK_yn_dooinney"}, yearNames = {"blein_ccc", "blein_LTS_CCK"}, totalRhenkNames = {"rhenk_ccc", "rhenk_LTS_CCK"}, percapitaRhenkNames = {"rhenk_ccc_dooinney", "rhenk_LTS_CCK_yn_dooinney"}, totalRefNames = {"imraa_ccc"}, totalNoteNames = {"noteyn_ccc"}, percapitaRefNames = {"imraa_ccc_dooinney"}, percapitaNoteNames = {"noteyn_ccc_dooinney"}, headerOverrideNames = {"sorçh_ccc"}, headerLabel = "[[Lane troar sthie|LTS]]&nbsp;(CCC)", totalProperty = GDP_PPP_TOTAL, percapitaProperty = GDP_PPP_PERCAPITA, totalRhenkLink = "Rolley çheeraghyn rere LTS (CCC)", percapitaRhenkLink = "Rolley çheeraghyn rere LTS (CCC) yn dooinney", }) appendSection(rows, cccBlock and {cccBlock} or nil) local ltsBlock = buildGdpBlock(args, frame, { totalNames = {"lts_ennymagh", "LTS_ennymagh"}, percapitaNames = {"lts_ennymagh_dooinney", "LTS_ennymagh_yn_dooinney"}, yearNames = {"blein_lts_ennymagh", "blein_LTS_ennymagh"}, totalRhenkNames = {"rhenk_lts_ennymagh", "rhenk_LTS_ennymagh"}, percapitaRhenkNames = {"rhenk_lts_ennymagh_dooinney", "rhenk_LTS_ennymagh_yn_dooinney"}, totalRefNames = {"imraa_lts_ennymagh"}, totalNoteNames = {"noteyn_lts_ennymagh"}, percapitaRefNames = {"imraa_lts_ennymagh_dooinney"}, percapitaNoteNames = {"noteyn_lts_ennymagh_dooinney"}, headerOverrideNames = {"sorçh_lts_ennymagh"}, headerLabel = "[[Lane troar sthie|LTS]]&nbsp;(ennymagh)", totalProperty = GDP_NOMINAL_TOTAL, percapitaProperty = GDP_NOMINAL_PERCAPITA, totalRhenkLink = "Rolley çheeraghyn rere LTS (ennymagh)", percapitaRhenkLink = "Rolley çheeraghyn rere LTS (ennymagh) yn dooinney", populationFallback = true, }) appendSection(rows, ltsBlock and {ltsBlock} or nil) local giniRow = buildSingleRow(args, frame, { valueNames = {"gini", "Gini"}, yearNames = {"blein_gini", "blein_Gini"}, bandNames = {"ronney_gini", "ronney_Gini"}, rhenkNames = {"rhenk_gini", "rhenk_Gini"}, refNames = {"imraa_gini"}, noteNames = {"noteyn_gini"}, headerOverrideNames = {"sorçh_gini"}, headerLabel = "[[Co-effaght Gini|Gini]]", rhenkLink = "Rolley çheeraghyn rere co-chormid çheet stiagh", property = GINI_PROPERTY, decimals = 1, classifyBand = classifyGiniBand, }) appendSection(rows, giniRow and {giniRow} or nil) local aldRow = buildSingleRow(args, frame, { valueNames = {"ald", "ALD"}, yearNames = {"blein_ald", "blein_ALD"}, bandNames = {"ronney_ald", "ronney_ALD"}, rhenkNames = {"rhenk_ald", "rhenk_ALD"}, refNames = {"imraa_ald"}, noteNames = {"noteyn_ald"}, headerOverrideNames = {"sorçh_ald"}, headerLabel = "[[Ayndagh Lhiasaghey Deiney|ALD]]", rhenkLink = "Rolley çheeraghyn rere Ayndagh Lhiasaghey Deiney", property = HDI_PROPERTY, decimals = 3, classifyBand = classifyHdiBand, }) appendSection(rows, aldRow and {aldRow} or nil) local currencyRow = buildCurrencyRow(args, frame) appendSection(rows, currencyRow and {currencyRow} or nil) if #rows == 0 then return nil end return table.concat(rows) end return p 6jp69ti0zqkpkr0d7lgh64j8hf9kl93 394573 394542 2026-10-16T17:37:11Z MacTire02 219 -chaghteraghtyn 394573 Scribunto text/plain local p = {} -- Wikidata properties, verified individually before use (never guessed): -- P2131/P2132 nominal GDP total/per-capita, P4010/P2299 PPP GDP -- total/per-capita, P1125 Gini, P1081 HDI, P38 currency, P498 ISO 4217 code. local GDP_NOMINAL_TOTAL = "P2131" local GDP_NOMINAL_PERCAPITA = "P2132" local GDP_PPP_TOTAL = "P4010" local GDP_PPP_PERCAPITA = "P2299" local GINI_PROPERTY = "P1125" local HDI_PROPERTY = "P1081" local CURRENCY_PROPERTY = "P38" local ISO_CODE_PROPERTY = "P498" local UNIT_SYMBOL_PROPERTY = "P5061" -- confirmed against Module:WikidataIB's own usage -- P1082 population -- same property pobble.lua reads for its census/ -- estimate rows, reused here independently for the LTS-per-capita -- computed fallback below. local POPULATION_PROPERTY = "P1082" local wdOK, Wd = pcall(require, "Module:Wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Capitalizes via the content language's own ucfirst (UTF-8/digraph-safe), -- not a plain Lua upper() on byte 1. Duplicated from reiltys.lua. local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Capitalizes the first letter a reader actually sees, even through a -- leading wikilink or external-link marker (getCurrencyLink's two linked -- shapes) -- Wikidata labels are commonly stored lower-case. Never applied -- to manual values. local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("%]%]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos else splitPos = 2 end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end -- Strips trailing literal spaces and/or "&nbsp;" (in any mix or repeat -- -- e.g. a value that ends "...&nbsp;" with no rhenk/band actually appended -- after it) so a note, reference, or auto-citation glues directly onto the -- claim it belongs to, with no visible or non-breaking gap in between. local function stripTrailingSpace(value) local changed = true while changed do local stripped = value:gsub("%s+$", ""):gsub("&nbsp;$", "") changed = (stripped ~= value) value = stripped end return value end local function applyRefNote(value, ref, note, frame) if not value then return value end local hasNote = note and note ~= "" and frame local hasRef = ref and ref ~= "" if hasNote or hasRef then value = stripTrailingSpace(value) end if hasNote then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if hasRef then value = value .. wrapReference(ref) end return value end -- Same row grid as reiltys/pobble: ROW is a plain label+value row, SUBROW a -- bulleted sub-item beneath a shared block. local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function appendIndentRun(rows, items) for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(SUBROW, trClass(class), item[1], item[2])) end end -- Divider between this module's own internal blocks (CCC / LTS / Gini / -- ALD / Argid) -- same rule as reiltys: only between two blocks that both -- produced rows. local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end local function formatNumber(n, decimals) decimals = decimals or 2 local isNeg = n < 0 n = math.abs(n) local formatted = string.format("%." .. decimals .. "f", n) if formatted:find("%.") then formatted = formatted:gsub("0+$", ""):gsub("%.$", "") end local intPart, decPart = formatted:match("^(%d+)%.?(%d*)$") local grouped = intPart:reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") local result = (decPart and decPart ~= "") and (grouped .. "." .. decPart) or grouped return isNeg and ("-" .. result) or result end -- Large-number Manx words, as given directly by you. Applied only to GDP -- TOTAL figures (not per-capita, not Gini/ALD) -- matching enwiki's own -- convention of abbreviating a total ("$32.384 trillion") while showing -- per-capita in full ("$94,430"). local SCALE_WORDS = { {1e12, "trillioon"}, {1e9, "billoon"}, {1e6, "millioon"}, {1e3, "thousane"}, } local function abbreviateNumber(n) for _, scale in ipairs(SCALE_WORDS) do local threshold, word = scale[1], scale[2] if math.abs(n) >= threshold then return formatNumber(n / threshold, 3) .. "&nbsp;" .. word end end return formatNumber(n, 0) end -- Splits a manual numeric value into {number, tail}: strips comma -- separators, then takes the leading numeric run. Anything left over (an -- inline <ref>...</ref>, already a UNIQ strip marker by the time this -- module sees it, or other trailing text) is kept, not discarded -- the -- old template had no separate citation parameter for these fields, so on -- existing articles a citation can sit directly inside the value itself, -- e.g. |LTS_ennymagh = 28,750,956,130,000<ref>...</ref>. local function splitManualNumber(text) local stripped = text:gsub(",", "") local numStr, tail = stripped:match("^(%-?%d+%.?%d*)(.*)$") if not numStr then return nil, nil end tail = mw.text.trim(tail) return tonumber(numStr), tail ~= "" and tail or nil end -- Applies to a GDP field's own number, whether manual or Wikidata-sourced -- -- unlike every other manual value in this module, a manual GDP figure -- IS reformatted (scaled/grouped), since the whole point of this feature -- is the number's presentation, not just its source. `field.str` (the -- manual text as typed) is the fallback only for the rare manual value -- that doesn't parse as a plain number at all. Any trailing text captured -- alongside the number (typically an inline citation) is preserved -- immediately after the reformatted number. local function formatGdpDisplay(field, abbreviate) if not field.number then return field.str end local numStr = abbreviate and abbreviateNumber(field.number) or formatNumber(field.number, 0) if field.tail then return numStr .. field.tail end return numStr end -- Matches the wiki's own {{Increase}}/{{Decrease}}/{{Steady}} styling exactly -- (population deliberately uses no colour -- a separate, earlier decision -- that does NOT generalise here). Increase/decrease use the site's actual -- Coadan:Increase2.svg/Decrease2.svg icons, not hand-drawn coloured -- triangles; steady is the site's blue ▬, per your template source. local function trendArrow(direction) if direction == "up" then return "[[Coadan:Increase2.svg|11px|alt=Ardjaghey|link=|Ardjaghey]]" elseif direction == "down" then return "[[Coadan:Decrease2.svg|11px|alt=Leodaghey|link=|Leodaghey]]" elseif direction == "steady" then return '<span title="Corrym" style="color:#0AF; font-size: larger;">▬</span>' end return "" end -- A manual value can carry its OWN leading trend icon, typed by the editor -- as {{increase}}/{{decrease}}/{{steady}} (old-template habit, e.g. -- |LTS_CCK={{increase}} $6.932&nbsp;billoon<ref>...</ref>). Those templates -- are already expanded by the time this module sees the argument, so the -- value starts with a Coadan:Increase2.svg/Decrease2.svg link (or the -- steady span) -- which also means it can never parse as a plain number -- (see splitManualNumber), so field.number is nil and no `trend` is -- computed for it. A bare ▲/▼/▬/— glyph is matched too, in case an editor -- typed the character directly. Returns the marker text and whatever -- follows it (nil, text if no marker is present). local LEADING_TREND_PATTERNS = { "^%[%[Coadan:Increase2%.svg.-%]%]", "^%[%[Coadan:Decrease2%.svg.-%]%]", "^%[%[File:Increase2%.svg.-%]%]", "^%[%[File:Decrease2%.svg.-%]%]", "^<span[^>]*>▬</span>", } local function splitLeadingTrendMarker(text) if not text or text == "" then return nil, text end for _, pattern in ipairs(LEADING_TREND_PATTERNS) do local s, e = text:find(pattern) if s then return text:sub(s, e), text:sub(e + 1) end end for _, marker in ipairs({"▲", "▼", "▬", "—"}) do if text:sub(1, #marker) == marker then return marker, text:sub(#marker + 1) end end return nil, text end -- Strips whatever separator (plain spaces and/or a literal "&nbsp;") an -- editor already put between their hand-typed icon and the value, so -- glueTrend can supply exactly one "&nbsp;" instead of stacking two. local function stripLeadingSeparator(text) if not text then return text end while true do local stripped = text:gsub("^%s+", ""):gsub("^&nbsp;", "") if stripped == text then return stripped end text = stripped end end -- Glues a trend icon to the number it belongs to, with a visible space -- between them, so a line-wrap can never separate icon from value; anything -- appended after (rank, band) stays free to wrap onto its own line. Covers -- both an icon THIS module generated (`trend` given) and one already -- sitting at the front of manually-typed `text` (see -- splitLeadingTrendMarker above). local function glueTrend(trend, text) if trend then return '<span style="white-space:nowrap;">' .. trendArrow(trend) .. "&nbsp;" .. text .. '</span>' end local marker, rest = splitLeadingTrendMarker(text) if marker then return '<span style="white-space:nowrap;">' .. marker .. "&nbsp;" .. stripLeadingSeparator(rest) .. '</span>' end return text end -- All non-deprecated statements of a quantity property, reduced to -- {amount, rawAmount, year}, sorted ascending by year. local function getWdQuantityStatements(property) local entity = mw.wikibase.getEntityObject() if not entity then return {} end local statements = entity:getAllStatements(property) if not statements then return {} end local results = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if statement.rank ~= "deprecated" and mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local rawAmount = mainsnak.datavalue.value.amount local amount = tonumber(rawAmount) local timeQuals = statement.qualifiers and statement.qualifiers.P585 local timeSnak = timeQuals and timeQuals[1] local timeValue = timeSnak and timeSnak.datavalue and timeSnak.datavalue.value local year = timeValue and timeValue.time and tonumber(timeValue.time:match("(%-?%d+)%-")) -- The statement's OWN currency/unit (e.g. a specific country's -- dollar, not necessarily USD) -- never assumed, always read off -- this exact statement. Dimensionless properties (Gini, HDI) -- simply never match "Q%d+$" here and stay nil. local unitQid = mainsnak.datavalue.value.unit and mainsnak.datavalue.value.unit:match("Q%d+$") if amount then table.insert(results, { amount = amount, rawAmount = rawAmount and rawAmount:gsub("^%+", ""), year = year, unitQid = unitQid, }) end end end table.sort(results, function(a, b) return (a.year or 0) < (b.year or 0) end) return results end -- Compares `number` against whichever fetched statement is the closest one -- strictly before `year` -- or, with no year, the single most recent -- statement -- even when that statement isn't itself shown as a row. Used -- for both manual and Wikidata-sourced values alike. local function trendAgainstWikidata(number, year, allEntries) if not number or not allEntries or #allEntries == 0 then return nil end local prev = nil for _, entry in ipairs(allEntries) do if year then if entry.year and entry.year < year and (not prev or entry.year > prev.year) then prev = entry end elseif not prev or (entry.year or 0) > (prev.year or 0) then prev = entry end end if not prev then return nil end if number > prev.amount then return "up" end if number < prev.amount then return "down" end return "steady" end local function getWdReferenceForValue(property, rawAmount) if not wdOK or not Wd or not Wd._reference or not rawAmount then return nil end local ok, result = pcall(Wd._reference, {"best", property, rawAmount}) if ok and result and result ~= "" then return result end return nil end -- Raw QIDs of EVERY value of an entity-valued property on the current -- page's own item -- e.g. every P38 (currency) statement, for a country -- using more than one. local function getWdRawPropertyIds(property) if not wdOK or not Wd or not Wd._properties then return {} end local ok, result = pcall(Wd._properties, {"raw", property}) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- Raw value of a property on a FOREIGN Wikidata item (e.g. P498 on the -- currency item, not the country's own item) -- same eid-keyed pattern as -- reiltys.lua's getWdRawForeignPropertyIds, singular version. local function getWdForeignPropertyRaw(eid, property) if not wdOK or not Wd or not Wd._property or not eid then return nil end local callArgs = {"raw", "best", property} callArgs[Wd.args and Wd.args.eid or "eid"] = eid local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result ~= "" then return result end return nil end -- The short symbol (e.g. "$") of a currency/unit item, via P5061 -- read -- directly off mw.wikibase (a monolingualtext value, so Wd's plain-string -- commands don't fit), same technique as Module:WikidataIB. Prefers a -- language-neutral ("mul") or English value; falls back to whichever -- language is available rather than showing nothing. local function getWdUnitSymbol(unitQid) if not unitQid then return nil end local ok, statements = pcall(mw.wikibase.getBestStatements, unitQid, UNIT_SYMBOL_PROPERTY) if not ok or not statements then return nil end local fallback = nil for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak local value = mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.value if value and value.text then if value.language == "mul" or value.language == "en" then return value.text end fallback = fallback or value.text end end return fallback end -- Manx sitelink -> Manx label (redlink) -> English (or other) label with a -- language marker, linked to Wikidata directly. Capitalized -- Wikidata -- labels are commonly stored lower-case ("dollar ny Steatyn Unnaneysit"), -- but this is always the first word of the field. local function getCurrencyLink(qid) local sitelinkOk, sitelink = pcall(mw.wikibase.getSitelink, qid, "gvwiki") local labelOk, label, lang = pcall(mw.wikibase.getLabelWithLang, qid) local link if sitelinkOk and sitelink then local displayText = (labelOk and lang == "gv" and label) or sitelink if displayText ~= sitelink then link = "[[" .. sitelink .. "|" .. displayText .. "]]" else link = "[[" .. sitelink .. "]]" end elseif labelOk and label and lang == "gv" then link = "[[" .. label .. "]]" elseif labelOk and label then link = "[https://www.wikidata.org/wiki/" .. qid .. "?uselang=gv " .. label .. "] <small>(" .. lang .. ")</small>" end return link and capitalizeFirstLetter(link) or nil end -- Resolves one quantity field: a manual override (or "none" suppression) -- wins outright; otherwise the latest non-deprecated Wikidata statement. -- Returns "none" (suppressed), nil (no data), or a table -- {str, number, year, trend, citation}. local function resolveQuantityField(args, names, yearNames, property, statements, decimals) local manual = getManual(args, names) if manual then if isNone(manual) then return "none" end -- splitManualNumber (not a plain tonumber) so a manual value with -- trailing content (typically an inline <ref>, already a UNIQ -- strip marker here) still parses as a number instead of falling -- back to raw, unformatted text; the trailing content is preserved -- via `tail`, not discarded. local number, tail = splitManualNumber(manual) local year = yearNames and getManual(args, yearNames) local parsedYear = year and tonumber(year:match("%-?%d+")) local trend = trendAgainstWikidata(number, parsedYear, statements) return {str = manual, number = number, tail = tail, year = year, trend = trend, citation = nil} end local latest = nil for _, entry in ipairs(statements) do if not latest or (entry.year or 0) > (latest.year or 0) then latest = entry end end if not latest then return nil end local trend = trendAgainstWikidata(latest.amount, latest.year, statements) local citation = getWdReferenceForValue(property, latest.rawAmount) return { str = formatNumber(latest.amount, decimals), number = latest.amount, year = latest.year and tostring(latest.year) or nil, trend = trend, citation = citation, unitQid = latest.unitQid, } end -- All non-deprecated P1082 (population) statements on the current page's -- own item, reduced to {amount, year} -- a smaller duplicate of pobble.lua's -- own getWdPopulationStatements, since this module only needs a population -- figure for one specific year, not census/estimate classification. local function getWdPopulationStatements() local entity = mw.wikibase.getEntityObject() if not entity then return {} end local statements = entity:getAllStatements(POPULATION_PROPERTY) if not statements then return {} end local results = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if statement.rank ~= "deprecated" and mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local amount = tonumber(mainsnak.datavalue.value.amount) local timeQuals = statement.qualifiers and statement.qualifiers.P585 local timeSnak = timeQuals and timeQuals[1] local timeValue = timeSnak and timeSnak.datavalue and timeSnak.datavalue.value local year = timeValue and timeValue.time and tonumber(timeValue.time:match("(%-?%d+)%-")) if amount and year then table.insert(results, {amount = amount, year = year}) end end end return results end -- The population figure for an EXACT year, or nil if Wikidata has none for -- that year -- deliberately no nearest-year fallback, since the population -- year must match the GDP year, not just be close to it. When more than -- one statement shares that year, the later one found wins (an arbitrary -- but deterministic tie-break). local function getWdPopulationForYear(year) if not year then return nil end local match = nil for _, entry in ipairs(getWdPopulationStatements()) do if entry.year == year then match = entry end end return match and match.amount or nil end -- Computed LTS-per-capita fallback ("yn dooinney"): when there's no manual -- value and no Wikidata P2132 statement at all, GDP total divided by -- population -- but only when Wikidata has a population figure for the -- exact same year as the GDP total being used. No citation is attached (a -- computed ratio isn't one citable statement, same as pobble.lua's own -- population-density calc). Scope: the nominal ("ennymagh") block only, -- not PPP (CCC), which conventionally isn't derived this way either. local function computeGdpPerCapita(total, decimals) if not total or not total.number then return nil end local year = total.year and tonumber(total.year:match("%-?%d+")) if not year then return nil end local population = getWdPopulationForYear(year) if not population or population <= 0 then return nil end local value = total.number / population return { str = formatNumber(value, decimals), number = value, year = total.year, trend = nil, citation = nil, unitQid = total.unitQid, } end -- One "total + per-capita" block (CCC/PPP or LTS/nominal): a top row with -- the block's own year, then "Yn clane"/"Yn dooinney" bullet sub-rows -- -- matching the old template's own two labels, just on the project's -- established 2-column grid instead of its old 3-column one. local function buildGdpBlock(args, frame, spec) local totalStatements = getWdQuantityStatements(spec.totalProperty) local percapitaStatements = getWdQuantityStatements(spec.percapitaProperty) local total = resolveQuantityField(args, spec.totalNames, spec.yearNames, spec.totalProperty, totalStatements, 0) local percapita = resolveQuantityField(args, spec.percapitaNames, spec.yearNames, spec.percapitaProperty, percapitaStatements, 0) -- Computed fallback (nominal/"ennymagh" block only -- see -- computeGdpPerCapita's own comment). Only when there's genuinely no -- manual value and no Wikidata statement at all: percapita == nil, -- never "none" -- a manual |..._dooinney=none must still suppress the -- row rather than being replaced by a computed one. if percapita == nil and spec.populationFallback and type(total) == "table" then percapita = computeGdpPerCapita(total, 0) end local totalShown = type(total) == "table" local percapitaShown = type(percapita) == "table" if not totalShown and not percapitaShown then return nil end local year = getManual(args, spec.yearNames) or (totalShown and total.year) or (percapitaShown and percapita.year) local rows = {} local headerLabel = getManual(args, spec.headerOverrideNames) or spec.headerLabel table.insert(rows, string.format(ROW, trClass("mergedtoprow"), headerLabel, year and ("Ooley&nbsp;" .. year) or "")) local items = {} if totalShown then local rhenk = getManual(args, spec.totalRhenkNames) local ref = getManual(args, spec.totalRefNames) local note = getManual(args, spec.totalNoteNames) -- Symbol from THIS statement's own currency (never assumed) -- -- manual entries carry no unit data, so no symbol unless the -- editor includes one themselves in the manual value. local symbol = getWdUnitSymbol(total.unitQid) or "" local value = glueTrend(total.trend, symbol .. formatGdpDisplay(total, true)) .. "&nbsp;" if rhenk then value = value .. "([[" .. spec.totalRhenkLink .. "|" .. rhenk .. "]]) " end if total.citation then value = stripTrailingSpace(value) .. total.citation end value = applyRefNote(value, ref, note, frame) table.insert(items, {"Yn clane", value}) end if percapitaShown then local rhenk = getManual(args, spec.percapitaRhenkNames) local ref = getManual(args, spec.percapitaRefNames) local note = getManual(args, spec.percapitaNoteNames) local symbol = getWdUnitSymbol(percapita.unitQid) or "" -- Per-capita stays a plain grouped number, matching enwiki's own -- convention (only the TOTAL gets abbreviated to trillion/billion/ -- million/thousand words). local value = glueTrend(percapita.trend, symbol .. formatGdpDisplay(percapita, false)) .. "&nbsp;" if rhenk then value = value .. "([[" .. spec.percapitaRhenkLink .. "|" .. rhenk .. "]]) " end if percapita.citation then value = stripTrailingSpace(value) .. percapita.citation end value = applyRefNote(value, ref, note, frame) table.insert(items, {"Yn dooinney", value}) end appendIndentRun(rows, items) return table.concat(rows) end -- HDI (ALD) bands: thresholds, Manx labels, and font colours exactly as -- given directly by you. local function classifyHdiBand(value) if not value then return nil end if value >= 0.800 then return "feer ard", "darkgreen" end if value >= 0.700 then return "ard", "green" end if value >= 0.550 then return "meanagh", "orange" end return "injil", "red" end -- Gini can be recorded as either a 0-1 fraction or a 0-100 percentage on -- Wikidata (and by a manual override) -- normalise to a fraction first so -- the same thresholds apply regardless of which scale the source used. local function normalizeGiniFraction(value) if value > 1 then return value / 100 end return value end -- Gini bands: thresholds, Manx labels, and font colours exactly as given -- directly by you. The medium band is the closed interval [0.30, 0.40] -- -- low is strictly below it, high strictly above -- so the three bands -- partition the whole range with no gap and no overlap. local function classifyGiniBand(value) if not value then return nil end local fraction = normalizeGiniFraction(value) if fraction < 0.30 then return "anchorrymid injil", "green" end if fraction <= 0.40 then return "anchorrymid veanagh", "dimgray" end return "anchorrymid ard", "red" end -- One flat label+value row (Gini, ALD): matches the old template's shape -- but on the project's established 2-column ROW grid, not its old -- colspan="2"-label-plus-separate-value-cell layout. local function buildSingleRow(args, frame, spec) local statements = getWdQuantityStatements(spec.property) local field = resolveQuantityField(args, spec.valueNames, spec.yearNames, spec.property, statements, spec.decimals) if not field or field == "none" then return nil end local label = getManual(args, spec.headerOverrideNames) or spec.headerLabel local year = getManual(args, spec.yearNames) or field.year if year then label = label .. "&nbsp;(" .. year .. ")" end local rhenk = getManual(args, spec.rhenkNames) local ref = getManual(args, spec.refNames) local note = getManual(args, spec.noteNames) -- Band: a manual value always wins outright, including -- |..._ronney=none to suppress it entirely (same manual-beats-Wikidata -- philosophy as the rest of this module). Only with no manual value at -- all does the band get computed automatically from whatever number is -- actually being shown. local rawBand = spec.bandNames and getManual(args, spec.bandNames) local band, bandColor if rawBand then if not isNone(rawBand) then band = rawBand end elseif spec.classifyBand and field.number then band, bandColor = spec.classifyBand(field.number) end local value = glueTrend(field.trend, field.str) .. "&nbsp;" if band then -- Nowrapped so the band's own words (e.g. "anchorrymid ard") can't -- split across lines -- the whole "(...)" is free to wrap onto its -- own line instead, same principle as glueTrend for the value itself. local bandText = bandColor and ('<span style="color:' .. bandColor .. ';">' .. band .. "</span>") or band value = value .. '<span style="white-space:nowrap;">(' .. bandText .. ")</span>&nbsp;" end if rhenk then value = value .. "([[" .. spec.rhenkLink .. "|" .. rhenk .. "]]) " end if field.citation then value = stripTrailingSpace(value) .. field.citation end value = applyRefNote(value, ref, note, frame) return string.format(ROW, "", label, value) end -- One "name ($) (CODE)" line for a single currency item. local function buildCurrencyLine(qid, codeOverride) local nameStr = getCurrencyLink(qid) if not nameStr then return nil end local symbol = getWdUnitSymbol(qid) local codeStr = codeOverride or getWdForeignPropertyRaw(qid, ISO_CODE_PROPERTY) local line = nameStr if symbol then line = line .. " (" .. symbol .. ")" end if codeStr then line = line .. " (<code>[[ISO 4217|" .. codeStr .. "]]</code>)" end return line end local function buildCurrencyRow(args, frame) local nameManual = getManual(args, {"argid"}) local codeManual = getManual(args, {"coad_argid"}) local ref = getManual(args, {"imraa_argid"}) local note = getManual(args, {"noteyn_argid"}) local headerLabel = getManual(args, {"sorçh_argid"}) or "[[Argid cadjin|Argid]]" if isNone(nameManual) then return nil end local value if nameManual then -- Manual text passes through as typed. Numbered slots (argid2, -- coad_argid2, ...) support a second or further currency, e.g. -- the Isle of Man or the Faroe Islands, joined like the Wikidata -- multi-currency path below. local line1 = nameManual if codeManual then line1 = line1 .. " (<code>[[ISO 4217|" .. codeManual .. "]]</code>)" end local lines = {line1} local n = 2 while true do local name = getManual(args, {"argid" .. n}) if not name then break end local code = getManual(args, {"coad_argid" .. n}) local line = name if code then line = line .. " (<code>[[ISO 4217|" .. code .. "]]</code>)" end table.insert(lines, line) n = n + 1 end value = table.concat(lines, "<br/>") else -- Every P38 currency (a country can use more than one), each its -- own line -- not just the single "best" one. local currencyQids = getWdRawPropertyIds(CURRENCY_PROPERTY) if #currencyQids == 0 then return nil end local lines = {} for _, qid in ipairs(currencyQids) do local line = buildCurrencyLine(qid, #currencyQids == 1 and codeManual or nil) if line then table.insert(lines, line) end end if #lines == 0 then return nil end value = table.concat(lines, "<br/>") end value = applyRefNote(value, ref, note, frame) return string.format(ROW, "", headerLabel, value) end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} -- Old template order: PPP (CCK/CCC) block first, nominal (ennymagh) -- second, then Gini, ALD, Currency. local cccBlock = buildGdpBlock(args, frame, { totalNames = {"ccc", "LTS_CCK"}, percapitaNames = {"ccc_dooinney", "LTS_CCK_yn_dooinney"}, yearNames = {"blein_ccc", "blein_LTS_CCK"}, totalRhenkNames = {"rhenk_ccc", "rhenk_LTS_CCK"}, percapitaRhenkNames = {"rhenk_ccc_dooinney", "rhenk_LTS_CCK_yn_dooinney"}, totalRefNames = {"imraa_ccc"}, totalNoteNames = {"noteyn_ccc"}, percapitaRefNames = {"imraa_ccc_dooinney"}, percapitaNoteNames = {"noteyn_ccc_dooinney"}, headerOverrideNames = {"sorçh_ccc"}, headerLabel = "[[Lane troar sthie|LTS]]&nbsp;(CCC)", totalProperty = GDP_PPP_TOTAL, percapitaProperty = GDP_PPP_PERCAPITA, totalRhenkLink = "Rolley çheeraghyn rere LTS (CCC)", percapitaRhenkLink = "Rolley çheeraghyn rere LTS (CCC) yn dooinney", }) appendSection(rows, cccBlock and {cccBlock} or nil) local ltsBlock = buildGdpBlock(args, frame, { totalNames = {"lts_ennymagh", "LTS_ennymagh"}, percapitaNames = {"lts_ennymagh_dooinney", "LTS_ennymagh_yn_dooinney"}, yearNames = {"blein_lts_ennymagh", "blein_LTS_ennymagh"}, totalRhenkNames = {"rhenk_lts_ennymagh", "rhenk_LTS_ennymagh"}, percapitaRhenkNames = {"rhenk_lts_ennymagh_dooinney", "rhenk_LTS_ennymagh_yn_dooinney"}, totalRefNames = {"imraa_lts_ennymagh"}, totalNoteNames = {"noteyn_lts_ennymagh"}, percapitaRefNames = {"imraa_lts_ennymagh_dooinney"}, percapitaNoteNames = {"noteyn_lts_ennymagh_dooinney"}, headerOverrideNames = {"sorçh_lts_ennymagh"}, headerLabel = "[[Lane troar sthie|LTS]]&nbsp;(ennymagh)", totalProperty = GDP_NOMINAL_TOTAL, percapitaProperty = GDP_NOMINAL_PERCAPITA, totalRhenkLink = "Rolley çheeraghyn rere LTS (ennymagh)", percapitaRhenkLink = "Rolley çheeraghyn rere LTS (ennymagh) yn dooinney", populationFallback = true, }) appendSection(rows, ltsBlock and {ltsBlock} or nil) local giniRow = buildSingleRow(args, frame, { valueNames = {"gini", "Gini"}, yearNames = {"blein_gini", "blein_Gini"}, bandNames = {"ronney_gini", "ronney_Gini"}, rhenkNames = {"rhenk_gini", "rhenk_Gini"}, refNames = {"imraa_gini"}, noteNames = {"noteyn_gini"}, headerOverrideNames = {"sorçh_gini"}, headerLabel = "[[Co-effaght Gini|Gini]]", rhenkLink = "Rolley çheeraghyn rere co-chormid çheet stiagh", property = GINI_PROPERTY, decimals = 1, classifyBand = classifyGiniBand, }) appendSection(rows, giniRow and {giniRow} or nil) local aldRow = buildSingleRow(args, frame, { valueNames = {"ald", "ALD"}, yearNames = {"blein_ald", "blein_ALD"}, bandNames = {"ronney_ald", "ronney_ALD"}, rhenkNames = {"rhenk_ald", "rhenk_ALD"}, refNames = {"imraa_ald"}, noteNames = {"noteyn_ald"}, headerOverrideNames = {"sorçh_ald"}, headerLabel = "[[Ayndagh Lhiasaghey Deiney|ALD]]", rhenkLink = "Rolley çheeraghyn rere Ayndagh Lhiasaghey Deiney", property = HDI_PROPERTY, decimals = 3, classifyBand = classifyHdiBand, }) appendSection(rows, aldRow and {aldRow} or nil) local currencyRow = buildCurrencyRow(args, frame) appendSection(rows, currencyRow and {currencyRow} or nil) if #rows == 0 then return nil end return table.concat(rows) end return p 15zp29nm0stm32n0telbh7omwxa1k1h 394575 394573 2026-10-16T18:04:12Z MacTire02 219 ++ 394575 Scribunto text/plain local p = {} -- Wikidata properties, verified individually before use (never guessed): -- P2131/P2132 nominal GDP total/per-capita, P4010/P2299 PPP GDP -- total/per-capita, P1125 Gini, P1081 HDI, P38 currency, P498 ISO 4217 code. local GDP_NOMINAL_TOTAL = "P2131" local GDP_NOMINAL_PERCAPITA = "P2132" local GDP_PPP_TOTAL = "P4010" local GDP_PPP_PERCAPITA = "P2299" local GINI_PROPERTY = "P1125" local HDI_PROPERTY = "P1081" local CURRENCY_PROPERTY = "P38" local ISO_CODE_PROPERTY = "P498" local UNIT_SYMBOL_PROPERTY = "P5061" -- confirmed against Module:WikidataIB's own usage -- P1082 population -- same property pobble.lua reads for its census/ -- estimate rows, reused here independently for the LTS-per-capita -- computed fallback below. local POPULATION_PROPERTY = "P1082" local wdOK, Wd = pcall(require, "Module:Wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end -- Capitalizes via the content language's own ucfirst (UTF-8/digraph-safe), -- not a plain Lua upper() on byte 1. Duplicated from reiltys.lua. local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Capitalizes the first letter a reader actually sees, even through a -- leading wikilink or external-link marker (getCurrencyLink's two linked -- shapes) -- Wikidata labels are commonly stored lower-case. Never applied -- to manual values. local function capitalizeFirstLetter(text) if not text or text == "" then return text end if text:match("^%[%[") then local closePos = text:find("]]", 3, true) local pipePos = text:find("|", 1, true) local splitPos if pipePos and (not closePos or pipePos < closePos) then splitPos = pipePos else splitPos = 2 end return text:sub(1, splitPos) .. wikiUcfirst(text:sub(splitPos + 1)) elseif text:match("^%[https?://") then local spacePos = text:find(" ", 2, true) if spacePos then return text:sub(1, spacePos) .. wikiUcfirst(text:sub(spacePos + 1)) end return text end return wikiUcfirst(text) end -- Strips trailing literal spaces and/or "&nbsp;" (in any mix or repeat -- -- e.g. a value that ends "...&nbsp;" with no rhenk/band actually appended -- after it) so a note, reference, or auto-citation glues directly onto the -- claim it belongs to, with no visible or non-breaking gap in between. local function stripTrailingSpace(value) local changed = true while changed do local stripped = value:gsub("%s+$", ""):gsub("&nbsp;$", "") changed = (stripped ~= value) value = stripped end return value end local function applyRefNote(value, ref, note, frame) if not value then return value end local hasNote = note and note ~= "" and frame local hasRef = ref and ref ~= "" if hasNote or hasRef then value = stripTrailingSpace(value) end if hasNote then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if hasRef then value = value .. wrapReference(ref) end return value end -- Same row grid as reiltys/pobble: ROW is a plain label+value row, SUBROW a -- bulleted sub-item beneath a shared block. local ROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local SUBROW = '<tr%s><th style="vertical-align:top; white-space:nowrap; text-align:left; font-weight:normal; padding-left:0.9em; padding-right:0.4em;">•&nbsp;%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' local function trClass(name) if name and name ~= "" then return ' class="' .. name .. '"' end return "" end local function appendIndentRun(rows, items) for idx, item in ipairs(items) do local class = (idx == #items) and "mergedbottomrow" or "mergedrow" table.insert(rows, string.format(SUBROW, trClass(class), item[1], item[2])) end end -- Divider between this module's own internal blocks (CCC / LTS / Gini / -- ALD / Argid) -- same rule as reiltys: only between two blocks that both -- produced rows. local dividerLine = '<tr><td colspan="2" style="border-top:1px solid #a2a9b1; padding:0; height:0px;"></td></tr>' local function appendSection(rows, sectionRows) if sectionRows and #sectionRows > 0 then if #rows > 0 then table.insert(rows, dividerLine) end for _, row in ipairs(sectionRows) do table.insert(rows, row) end end end local function formatNumber(n, decimals) decimals = decimals or 2 local isNeg = n < 0 n = math.abs(n) local formatted = string.format("%." .. decimals .. "f", n) if formatted:find("%.") then formatted = formatted:gsub("0+$", ""):gsub("%.$", "") end local intPart, decPart = formatted:match("^(%d+)%.?(%d*)$") local grouped = intPart:reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") local result = (decPart and decPart ~= "") and (grouped .. "." .. decPart) or grouped return isNeg and ("-" .. result) or result end -- Large-number Manx words, as given directly by you. Applied only to GDP -- TOTAL figures (not per-capita, not Gini/ALD) -- matching enwiki's own -- convention of abbreviating a total ("$32.384 trillion") while showing -- per-capita in full ("$94,430"). local SCALE_WORDS = { {1e12, "trillioon"}, {1e9, "billoon"}, {1e6, "millioon"}, {1e3, "thousane"}, } local function abbreviateNumber(n) for _, scale in ipairs(SCALE_WORDS) do local threshold, word = scale[1], scale[2] if math.abs(n) >= threshold then return formatNumber(n / threshold, 3) .. "&nbsp;" .. word end end return formatNumber(n, 0) end -- Splits a manual numeric value into {number, tail}: strips comma -- separators, then takes the leading numeric run. Anything left over (an -- inline <ref>...</ref>, already a UNIQ strip marker by the time this -- module sees it, or other trailing text) is kept, not discarded -- the -- old template had no separate citation parameter for these fields, so on -- existing articles a citation can sit directly inside the value itself, -- e.g. |LTS_ennymagh = 28,750,956,130,000<ref>...</ref>. local function splitManualNumber(text) local stripped = text:gsub(",", "") local numStr, tail = stripped:match("^(%-?%d+%.?%d*)(.*)$") if not numStr then return nil, nil end tail = mw.text.trim(tail) return tonumber(numStr), tail ~= "" and tail or nil end -- Applies to a GDP field's own number, whether manual or Wikidata-sourced -- -- unlike every other manual value in this module, a manual GDP figure -- IS reformatted (scaled/grouped), since the whole point of this feature -- is the number's presentation, not just its source. `field.str` (the -- manual text as typed) is the fallback only for the rare manual value -- that doesn't parse as a plain number at all. Any trailing text captured -- alongside the number (typically an inline citation) is preserved -- immediately after the reformatted number. local function formatGdpDisplay(field, abbreviate) if not field.number then return field.str end local numStr = abbreviate and abbreviateNumber(field.number) or formatNumber(field.number, 0) if field.tail then return numStr .. field.tail end return numStr end -- Matches the wiki's own {{Increase}}/{{Decrease}}/{{Steady}} styling exactly -- (population deliberately uses no colour -- a separate, earlier decision -- that does NOT generalise here). Increase/decrease use the site's actual -- Coadan:Increase2.svg/Decrease2.svg icons, not hand-drawn coloured -- triangles; steady is the site's blue ▬, per your template source. local function trendArrow(direction) if direction == "up" then return "[[Coadan:Increase2.svg|11px|alt=Ardjaghey|link=|Ardjaghey]]" elseif direction == "down" then return "[[Coadan:Decrease2.svg|11px|alt=Leodaghey|link=|Leodaghey]]" elseif direction == "steady" then return '<span title="Corrym" style="color:#0AF; font-size: larger;">▬</span>' end return "" end -- A manual value can carry its OWN leading trend icon, typed by the editor -- as {{increase}}/{{decrease}}/{{steady}} (old-template habit, e.g. -- |LTS_CCK={{increase}} $6.932&nbsp;billoon<ref>...</ref>). Those templates -- are already expanded by the time this module sees the argument, so the -- value starts with a Coadan:Increase2.svg/Decrease2.svg link (or the -- steady span) -- which also means it can never parse as a plain number -- (see splitManualNumber), so field.number is nil and no `trend` is -- computed for it. A bare ▲/▼/▬/— glyph is matched too, in case an editor -- typed the character directly. Returns the marker text and whatever -- follows it (nil, text if no marker is present). local LEADING_TREND_PATTERNS = { "^%[%[Coadan:Increase2%.svg.-%]%]", "^%[%[Coadan:Decrease2%.svg.-%]%]", "^%[%[File:Increase2%.svg.-%]%]", "^%[%[File:Decrease2%.svg.-%]%]", "^<span[^>]*>▬</span>", } local function splitLeadingTrendMarker(text) if not text or text == "" then return nil, text end for _, pattern in ipairs(LEADING_TREND_PATTERNS) do local s, e = text:find(pattern) if s then return text:sub(s, e), text:sub(e + 1) end end for _, marker in ipairs({"▲", "▼", "▬", "—"}) do if text:sub(1, #marker) == marker then return marker, text:sub(#marker + 1) end end return nil, text end -- Strips whatever separator (plain spaces and/or a literal "&nbsp;") an -- editor already put between their hand-typed icon and the value, so -- glueTrend can supply exactly one "&nbsp;" instead of stacking two. local function stripLeadingSeparator(text) if not text then return text end while true do local stripped = text:gsub("^%s+", ""):gsub("^&nbsp;", "") if stripped == text then return stripped end text = stripped end end -- Glues a trend icon to the number it belongs to, with a visible space -- between them, so a line-wrap can never separate icon from value; anything -- appended after (rank, band) stays free to wrap onto its own line. Covers -- both an icon THIS module generated (`trend` given) and one already -- sitting at the front of manually-typed `text` (see -- splitLeadingTrendMarker above). local function glueTrend(trend, text) if trend then return '<span style="white-space:nowrap;">' .. trendArrow(trend) .. "&nbsp;" .. text .. '</span>' end local marker, rest = splitLeadingTrendMarker(text) if marker then return '<span style="white-space:nowrap;">' .. marker .. "&nbsp;" .. stripLeadingSeparator(rest) .. '</span>' end return text end -- All non-deprecated statements of a quantity property, reduced to -- {amount, rawAmount, year}, sorted ascending by year. local function getWdQuantityStatements(property) local entity = mw.wikibase.getEntityObject() if not entity then return {} end local statements = entity:getAllStatements(property) if not statements then return {} end local results = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if statement.rank ~= "deprecated" and mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local rawAmount = mainsnak.datavalue.value.amount local amount = tonumber(rawAmount) local timeQuals = statement.qualifiers and statement.qualifiers.P585 local timeSnak = timeQuals and timeQuals[1] local timeValue = timeSnak and timeSnak.datavalue and timeSnak.datavalue.value local year = timeValue and timeValue.time and tonumber(timeValue.time:match("(%-?%d+)%-")) -- The statement's OWN currency/unit (e.g. a specific country's -- dollar, not necessarily USD) -- never assumed, always read off -- this exact statement. Dimensionless properties (Gini, HDI) -- simply never match "Q%d+$" here and stay nil. local unitQid = mainsnak.datavalue.value.unit and mainsnak.datavalue.value.unit:match("Q%d+$") if amount then table.insert(results, { amount = amount, rawAmount = rawAmount and rawAmount:gsub("^%+", ""), year = year, unitQid = unitQid, }) end end end table.sort(results, function(a, b) return (a.year or 0) < (b.year or 0) end) return results end -- Compares `number` against whichever fetched statement is the closest one -- strictly before `year` -- or, with no year, the single most recent -- statement -- even when that statement isn't itself shown as a row. Used -- for both manual and Wikidata-sourced values alike. local function trendAgainstWikidata(number, year, allEntries) if not number or not allEntries or #allEntries == 0 then return nil end local prev = nil for _, entry in ipairs(allEntries) do if year then if entry.year and entry.year < year and (not prev or entry.year > prev.year) then prev = entry end elseif not prev or (entry.year or 0) > (prev.year or 0) then prev = entry end end if not prev then return nil end if number > prev.amount then return "up" end if number < prev.amount then return "down" end return "steady" end local function getWdReferenceForValue(property, rawAmount) if not wdOK or not Wd or not Wd._reference or not rawAmount then return nil end local ok, result = pcall(Wd._reference, {"best", property, rawAmount}) if ok and result and result ~= "" then return result end return nil end -- Raw QIDs of EVERY value of an entity-valued property on the current -- page's own item -- e.g. every P38 (currency) statement, for a country -- using more than one. local function getWdRawPropertyIds(property) if not wdOK or not Wd or not Wd._properties then return {} end local ok, result = pcall(Wd._properties, {"raw", property}) if not ok or not result or type(result) ~= "string" or result == "" then return {} end local ids = {} for id in result:gmatch("Q%d+") do table.insert(ids, id) end return ids end -- Raw value of a property on a FOREIGN Wikidata item (e.g. P498 on the -- currency item, not the country's own item) -- same eid-keyed pattern as -- reiltys.lua's getWdRawForeignPropertyIds, singular version. local function getWdForeignPropertyRaw(eid, property) if not wdOK or not Wd or not Wd._property or not eid then return nil end local callArgs = {"raw", "best", property} callArgs[Wd.args and Wd.args.eid or "eid"] = eid local ok, result = pcall(Wd._property, callArgs) if ok and result and type(result) == "string" and result ~= "" then return result end return nil end -- The short symbol (e.g. "$") of a currency/unit item, via P5061 -- read -- directly off mw.wikibase (a monolingualtext value, so Wd's plain-string -- commands don't fit), same technique as Module:WikidataIB. Prefers a -- language-neutral ("mul") or English value; falls back to whichever -- language is available rather than showing nothing. local function getWdUnitSymbol(unitQid) if not unitQid then return nil end local ok, statements = pcall(mw.wikibase.getBestStatements, unitQid, UNIT_SYMBOL_PROPERTY) if not ok or not statements then return nil end local fallback = nil for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak local value = mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.value if value and value.text then if value.language == "mul" or value.language == "en" then return value.text end fallback = fallback or value.text end end return fallback end -- Manx sitelink -> Manx label (redlink) -> English (or other) label with a -- language marker, linked to Wikidata directly. Capitalized -- Wikidata -- labels are commonly stored lower-case ("dollar ny Steatyn Unnaneysit"), -- but this is always the first word of the field. local function getCurrencyLink(qid) local sitelinkOk, sitelink = pcall(mw.wikibase.getSitelink, qid, "gvwiki") local labelOk, label, lang = pcall(mw.wikibase.getLabelWithLang, qid) local link if sitelinkOk and sitelink then local displayText = (labelOk and lang == "gv" and label) or sitelink if displayText ~= sitelink then link = "[[" .. sitelink .. "|" .. displayText .. "]]" else link = "[[" .. sitelink .. "]]" end elseif labelOk and label and lang == "gv" then link = "[[" .. label .. "]]" elseif labelOk and label then link = "[https://www.wikidata.org/wiki/" .. qid .. "?uselang=gv " .. label .. "] <small>(" .. lang .. ")</small>" end return link and capitalizeFirstLetter(link) or nil end -- Resolves one quantity field: a manual override (or "none" suppression) -- wins outright; otherwise the latest non-deprecated Wikidata statement. -- Returns "none" (suppressed), nil (no data), or a table -- {str, number, year, trend, citation}. local function resolveQuantityField(args, names, yearNames, property, statements, decimals) local manual = getManual(args, names) if manual then if isNone(manual) then return "none" end -- splitManualNumber (not a plain tonumber) so a manual value with -- trailing content (typically an inline <ref>, already a UNIQ -- strip marker here) still parses as a number instead of falling -- back to raw, unformatted text; the trailing content is preserved -- via `tail`, not discarded. local number, tail = splitManualNumber(manual) local year = yearNames and getManual(args, yearNames) local parsedYear = year and tonumber(year:match("%-?%d+")) local trend = trendAgainstWikidata(number, parsedYear, statements) return {str = manual, number = number, tail = tail, year = year, trend = trend, citation = nil} end local latest = nil for _, entry in ipairs(statements) do if not latest or (entry.year or 0) > (latest.year or 0) then latest = entry end end if not latest then return nil end local trend = trendAgainstWikidata(latest.amount, latest.year, statements) local citation = getWdReferenceForValue(property, latest.rawAmount) return { str = formatNumber(latest.amount, decimals), number = latest.amount, year = latest.year and tostring(latest.year) or nil, trend = trend, citation = citation, unitQid = latest.unitQid, } end -- All non-deprecated P1082 (population) statements on the current page's -- own item, reduced to {amount, year} -- a smaller duplicate of pobble.lua's -- own getWdPopulationStatements, since this module only needs a population -- figure for one specific year, not census/estimate classification. local function getWdPopulationStatements() local entity = mw.wikibase.getEntityObject() if not entity then return {} end local statements = entity:getAllStatements(POPULATION_PROPERTY) if not statements then return {} end local results = {} for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak if statement.rank ~= "deprecated" and mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue and mainsnak.datavalue.type == "quantity" then local amount = tonumber(mainsnak.datavalue.value.amount) local timeQuals = statement.qualifiers and statement.qualifiers.P585 local timeSnak = timeQuals and timeQuals[1] local timeValue = timeSnak and timeSnak.datavalue and timeSnak.datavalue.value local year = timeValue and timeValue.time and tonumber(timeValue.time:match("(%-?%d+)%-")) if amount and year then table.insert(results, {amount = amount, year = year}) end end end return results end -- The population figure for an EXACT year, or nil if Wikidata has none for -- that year -- deliberately no nearest-year fallback, since the population -- year must match the GDP year, not just be close to it. When more than -- one statement shares that year, the later one found wins (an arbitrary -- but deterministic tie-break). local function getWdPopulationForYear(year) if not year then return nil end local match = nil for _, entry in ipairs(getWdPopulationStatements()) do if entry.year == year then match = entry end end return match and match.amount or nil end -- Computed LTS-per-capita fallback ("yn dooinney"): when there's no manual -- value and no Wikidata P2132 statement at all, GDP total divided by -- population -- but only when Wikidata has a population figure for the -- exact same year as the GDP total being used. No citation is attached (a -- computed ratio isn't one citable statement, same as pobble.lua's own -- population-density calc). Scope: the nominal ("ennymagh") block only, -- not PPP (CCC), which conventionally isn't derived this way either. local function computeGdpPerCapita(total, decimals) if not total or not total.number then return nil end local year = total.year and tonumber(total.year:match("%-?%d+")) if not year then return nil end local population = getWdPopulationForYear(year) if not population or population <= 0 then return nil end local value = total.number / population return { str = formatNumber(value, decimals), number = value, year = total.year, trend = nil, citation = nil, unitQid = total.unitQid, } end -- One "total + per-capita" block (CCC/PPP or LTS/nominal): a top row with -- the block's own year, then "Yn clane"/"Yn dooinney" bullet sub-rows -- -- matching the old template's own two labels, just on the project's -- established 2-column grid instead of its old 3-column one. local function buildGdpBlock(args, frame, spec) local totalStatements = getWdQuantityStatements(spec.totalProperty) local percapitaStatements = getWdQuantityStatements(spec.percapitaProperty) local total = resolveQuantityField(args, spec.totalNames, spec.yearNames, spec.totalProperty, totalStatements, 0) local percapita = resolveQuantityField(args, spec.percapitaNames, spec.yearNames, spec.percapitaProperty, percapitaStatements, 0) -- Computed fallback (nominal/"ennymagh" block only -- see -- computeGdpPerCapita's own comment). Only when there's genuinely no -- manual value and no Wikidata statement at all: percapita == nil, -- never "none" -- a manual |..._dooinney=none must still suppress the -- row rather than being replaced by a computed one. if percapita == nil and spec.populationFallback and type(total) == "table" then percapita = computeGdpPerCapita(total, 0) end local totalShown = type(total) == "table" local percapitaShown = type(percapita) == "table" if not totalShown and not percapitaShown then return nil end local year = getManual(args, spec.yearNames) or (totalShown and total.year) or (percapitaShown and percapita.year) local rows = {} local headerLabel = getManual(args, spec.headerOverrideNames) or spec.headerLabel table.insert(rows, string.format(ROW, trClass("mergedtoprow"), headerLabel, year and ("Ooley&nbsp;" .. year) or "")) local items = {} if totalShown then local rhenk = getManual(args, spec.totalRhenkNames) local ref = getManual(args, spec.totalRefNames) local note = getManual(args, spec.totalNoteNames) -- Symbol from THIS statement's own currency (never assumed) -- -- manual entries carry no unit data, so no symbol unless the -- editor includes one themselves in the manual value. local symbol = getWdUnitSymbol(total.unitQid) or "" local value = glueTrend(total.trend, symbol .. formatGdpDisplay(total, true)) .. "&nbsp;" if rhenk then value = value .. "([[" .. spec.totalRhenkLink .. "|" .. rhenk .. "]]) " end if total.citation then value = stripTrailingSpace(value) .. total.citation end value = applyRefNote(value, ref, note, frame) table.insert(items, {"Yn clane", value}) end if percapitaShown then local rhenk = getManual(args, spec.percapitaRhenkNames) local ref = getManual(args, spec.percapitaRefNames) local note = getManual(args, spec.percapitaNoteNames) local symbol = getWdUnitSymbol(percapita.unitQid) or "" -- Per-capita stays a plain grouped number, matching enwiki's own -- convention (only the TOTAL gets abbreviated to trillion/billion/ -- million/thousand words). local value = glueTrend(percapita.trend, symbol .. formatGdpDisplay(percapita, false)) .. "&nbsp;" if rhenk then value = value .. "([[" .. spec.percapitaRhenkLink .. "|" .. rhenk .. "]]) " end if percapita.citation then value = stripTrailingSpace(value) .. percapita.citation end value = applyRefNote(value, ref, note, frame) table.insert(items, {"Yn dooinney", value}) end appendIndentRun(rows, items) return table.concat(rows) end -- HDI (ALD) bands: thresholds, Manx labels, and font colours exactly as -- given directly by you. local function classifyHdiBand(value) if not value then return nil end if value >= 0.800 then return "feer ard", "darkgreen" end if value >= 0.700 then return "ard", "green" end if value >= 0.550 then return "meanagh", "orange" end return "injil", "red" end -- Gini can be recorded as either a 0-1 fraction or a 0-100 percentage on -- Wikidata (and by a manual override) -- normalise to a fraction first so -- the same thresholds apply regardless of which scale the source used. local function normalizeGiniFraction(value) if value > 1 then return value / 100 end return value end -- Gini bands: thresholds, Manx labels, and font colours exactly as given -- directly by you. The medium band is the closed interval [0.30, 0.40] -- -- low is strictly below it, high strictly above -- so the three bands -- partition the whole range with no gap and no overlap. local function classifyGiniBand(value) if not value then return nil end local fraction = normalizeGiniFraction(value) if fraction < 0.30 then return "anchorrymid injil", "green" end if fraction <= 0.40 then return "anchorrymid veanagh", "dimgray" end return "anchorrymid ard", "red" end -- One flat label+value row (Gini, ALD): matches the old template's shape -- but on the project's established 2-column ROW grid, not its old -- colspan="2"-label-plus-separate-value-cell layout. local function buildSingleRow(args, frame, spec) local statements = getWdQuantityStatements(spec.property) local field = resolveQuantityField(args, spec.valueNames, spec.yearNames, spec.property, statements, spec.decimals) if not field or field == "none" then return nil end local label = getManual(args, spec.headerOverrideNames) or spec.headerLabel local year = getManual(args, spec.yearNames) or field.year if year then label = label .. "&nbsp;(" .. year .. ")" end local rhenk = getManual(args, spec.rhenkNames) local ref = getManual(args, spec.refNames) local note = getManual(args, spec.noteNames) -- Band: a manual value always wins outright, including -- |..._ronney=none to suppress it entirely (same manual-beats-Wikidata -- philosophy as the rest of this module). Only with no manual value at -- all does the band get computed automatically from whatever number is -- actually being shown. local rawBand = spec.bandNames and getManual(args, spec.bandNames) local band, bandColor if rawBand then if not isNone(rawBand) then band = rawBand end elseif spec.classifyBand and field.number then band, bandColor = spec.classifyBand(field.number) end local value = glueTrend(field.trend, field.str) .. "&nbsp;" if band then -- Nowrapped so the band's own words (e.g. "anchorrymid ard") can't -- split across lines -- the whole "(...)" is free to wrap onto its -- own line instead, same principle as glueTrend for the value itself. local bandText = bandColor and ('<span style="color:' .. bandColor .. ';">' .. band .. "</span>") or band value = value .. '<span style="white-space:nowrap;">(' .. bandText .. ")</span>&nbsp;" end if rhenk then value = value .. "([[" .. spec.rhenkLink .. "|" .. rhenk .. "]]) " end if field.citation then value = stripTrailingSpace(value) .. field.citation end value = applyRefNote(value, ref, note, frame) return string.format(ROW, "", label, value) end -- One "name ($) (CODE)" line for a single currency item. local function buildCurrencyLine(qid, codeOverride) local nameStr = getCurrencyLink(qid) if not nameStr then return nil end local symbol = getWdUnitSymbol(qid) local codeStr = codeOverride or getWdForeignPropertyRaw(qid, ISO_CODE_PROPERTY) local line = nameStr if symbol then line = line .. " (" .. symbol .. ")" end if codeStr then line = line .. " (<code>[[ISO 4217|" .. codeStr .. "]]</code>)" end return line end local function buildCurrencyRow(args, frame) local nameManual = getManual(args, {"argid"}) local codeManual = getManual(args, {"coad_argid"}) local ref = getManual(args, {"imraa_argid"}) local note = getManual(args, {"noteyn_argid"}) local headerLabel = getManual(args, {"sorçh_argid"}) or "[[Argid cadjin|Argid]]" if isNone(nameManual) then return nil end local value if nameManual then -- Manual text passes through as typed. Numbered slots (argid2, -- coad_argid2, ...) support a second or further currency, e.g. -- the Isle of Man or the Faroe Islands, joined like the Wikidata -- multi-currency path below. local line1 = nameManual if codeManual then line1 = line1 .. " (<code>[[ISO 4217|" .. codeManual .. "]]</code>)" end local lines = {line1} local n = 2 while true do local name = getManual(args, {"argid" .. n}) if not name then break end local code = getManual(args, {"coad_argid" .. n}) local line = name if code then line = line .. " (<code>[[ISO 4217|" .. code .. "]]</code>)" end table.insert(lines, line) n = n + 1 end value = table.concat(lines, "<br/>") else -- Every P38 currency (a country can use more than one), each its -- own line -- not just the single "best" one. local currencyQids = getWdRawPropertyIds(CURRENCY_PROPERTY) if #currencyQids == 0 then return nil end local lines = {} for _, qid in ipairs(currencyQids) do local line = buildCurrencyLine(qid, #currencyQids == 1 and codeManual or nil) if line then table.insert(lines, line) end end if #lines == 0 then return nil end value = table.concat(lines, "<br/>") end value = applyRefNote(value, ref, note, frame) return string.format(ROW, "", headerLabel, value) end function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} -- Old template order: PPP (CCK/CCC) block first, nominal (ennymagh) -- second, then Gini, ALD, Currency. local cccBlock = buildGdpBlock(args, frame, { totalNames = {"ccc", "LTS_CCK"}, percapitaNames = {"ccc_dooinney", "LTS_CCK_yn_dooinney"}, yearNames = {"blein_ccc", "blein_LTS_CCK"}, totalRhenkNames = {"rhenk_ccc", "rhenk_LTS_CCK"}, percapitaRhenkNames = {"rhenk_ccc_dooinney", "rhenk_LTS_CCK_yn_dooinney"}, totalRefNames = {"imraa_ccc"}, totalNoteNames = {"noteyn_ccc"}, percapitaRefNames = {"imraa_ccc_dooinney"}, percapitaNoteNames = {"noteyn_ccc_dooinney"}, headerOverrideNames = {"sorçh_ccc"}, headerLabel = "[[Lane troar sthie|LTS]]&nbsp;(CCC)", totalProperty = GDP_PPP_TOTAL, percapitaProperty = GDP_PPP_PERCAPITA, totalRhenkLink = "Rolley çheeraghyn rere LTS (CCC)", percapitaRhenkLink = "Rolley çheeraghyn rere LTS (CCC) yn dooinney", }) appendSection(rows, cccBlock and {cccBlock} or nil) local ltsBlock = buildGdpBlock(args, frame, { totalNames = {"lts_ennymagh", "LTS_ennymagh"}, percapitaNames = {"lts_ennymagh_dooinney", "LTS_ennymagh_yn_dooinney"}, yearNames = {"blein_lts_ennymagh", "blein_LTS_ennymagh"}, totalRhenkNames = {"rhenk_lts_ennymagh", "rhenk_LTS_ennymagh"}, percapitaRhenkNames = {"rhenk_lts_ennymagh_dooinney", "rhenk_LTS_ennymagh_yn_dooinney"}, totalRefNames = {"imraa_lts_ennymagh"}, totalNoteNames = {"noteyn_lts_ennymagh"}, percapitaRefNames = {"imraa_lts_ennymagh_dooinney"}, percapitaNoteNames = {"noteyn_lts_ennymagh_dooinney"}, headerOverrideNames = {"sorçh_lts_ennymagh"}, headerLabel = "[[Lane troar sthie|LTS]]&nbsp;(ennymagh)", totalProperty = GDP_NOMINAL_TOTAL, percapitaProperty = GDP_NOMINAL_PERCAPITA, totalRhenkLink = "Rolley çheeraghyn rere LTS (ennymagh)", percapitaRhenkLink = "Rolley çheeraghyn rere LTS (ennymagh) yn dooinney", populationFallback = true, }) appendSection(rows, ltsBlock and {ltsBlock} or nil) local giniRow = buildSingleRow(args, frame, { valueNames = {"gini", "Gini"}, yearNames = {"blein_gini", "blein_Gini"}, bandNames = {"ronney_gini", "ronney_Gini"}, rhenkNames = {"rhenk_gini", "rhenk_Gini"}, refNames = {"imraa_gini"}, noteNames = {"noteyn_gini"}, headerOverrideNames = {"sorçh_gini"}, headerLabel = "[[Co-effaght Gini|Gini]]", rhenkLink = "Rolley çheeraghyn rere co-chormid çheet stiagh", property = GINI_PROPERTY, decimals = 1, classifyBand = classifyGiniBand, }) appendSection(rows, giniRow and {giniRow} or nil) local aldRow = buildSingleRow(args, frame, { valueNames = {"ald", "ALD"}, yearNames = {"blein_ald", "blein_ALD"}, bandNames = {"ronney_ald", "ronney_ALD"}, rhenkNames = {"rhenk_ald", "rhenk_ALD"}, refNames = {"imraa_ald"}, noteNames = {"noteyn_ald"}, headerOverrideNames = {"sorçh_ald"}, headerLabel = "[[Ayndagh Lhiasaghey Deiney|ALD]]", rhenkLink = "Rolley çheeraghyn rere Ayndagh Lhiasaghey Deiney", property = HDI_PROPERTY, decimals = 3, classifyBand = classifyHdiBand, }) appendSection(rows, aldRow and {aldRow} or nil) local currencyRow = buildCurrencyRow(args, frame) appendSection(rows, currencyRow and {currencyRow} or nil) if #rows == 0 then return nil end return table.concat(rows) end return p f25xij6kgch5yf2ben5j9gocqi1mnk4 Module:Kishtey fys çheer/coadyn 828 55892 394535 394014 2026-10-16T12:01:25Z MacTire02 219 imraaghyn 394535 Scribunto text/plain local p = {} -------------------------------------------------- -- Wikidata properties -------------------------------------------------- local TIMEZONE_PROPERTY = "P421" local DATE_FORMAT_PARAM = "format_date" local CALLING_CODE_PROPERTY = "P474" local ISO_CODE_PROPERTY = "P297" local TLD_PROPERTY = "P78" local WEBSITE_PROPERTY = "P856" local VALID_PERIOD_QUALIFIER = "P1264" local UTC_OFFSET_PROPERTY = "P2907" -------------------------------------------------- -- Helpers -------------------------------------------------- local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function stripTrailingSpace(value) local changed = true while changed do local stripped = value:gsub("%s+$", ""):gsub("&nbsp;$", "") changed = (stripped ~= value) value = stripped end return value end local function appendInsideTrailingBlock(text, insertion) if not insertion or insertion == "" then return text end local trailingTags = {} local rest = text while true do local tag = rest:match("(</%a[%w]*>)%s*$") if not tag then break end local tagStart = rest:find(tag .. "%s*$") table.insert(trailingTags, 1, tag) rest = rest:sub(1, tagStart - 1) end if #trailingTags == 0 then return text .. insertion end return rest .. insertion .. table.concat(trailingTags) end local function applyRefNote(value, ref, note, frame) if not value then return value end local hasNote = note and note ~= "" and frame local hasRef = ref and ref ~= "" if hasNote or hasRef then value = stripTrailingSpace(value) end if hasNote then value = appendInsideTrailingBlock(value, frame:expandTemplate{ title = "efn", args = { note } }) end if hasRef then value = appendInsideTrailingBlock(value, wrapReference(ref)) end return value end local function getEntity() local ok, entity = pcall(mw.wikibase.getEntityObject) if ok then return entity end return nil end local function getStatements(property) local entity = getEntity() if not entity then return {} end local statements = entity:getAllStatements(property) if not statements then return {} end local result = {} for _, statement in ipairs(statements) do if statement.rank ~= "deprecated" and statement.mainsnak and statement.mainsnak.snaktype == "value" and statement.mainsnak.datavalue then table.insert(result, statement) end end return result end -------------------------------------------------- -- Wikidata item label -------------------------------------------------- local function getLabel(qid) if not qid then return nil end local ok, label, lang = pcall(mw.wikibase.getLabelWithLang, qid) if ok and label then return label, lang end return nil end -------------------------------------------------- -- UTC offset formatting -------------------------------------------------- local function parseUtcOffset(label) if not label then return nil end local sign, hh, mm = mw.ustring.match(label, "^UTC(%+)(%d%d):(%d%d)$") if not sign then sign, hh, mm = mw.ustring.match(label, "^UTC(%-)(%d%d):(%d%d)$") end if not sign then sign, hh, mm = mw.ustring.match(label, "^UTC(\226\136\146)(%d%d):(%d%d)$") end if not sign then return nil end local totalMinutes = tonumber(hh) * 60 + tonumber(mm) if sign ~= "+" then totalMinutes = -totalMinutes end return { minutes = totalMinutes, offsetText = sign .. hh .. ":" .. mm, } end local function formatUTCLabel(label) if not label then return nil end local parsed = parseUtcOffset(label) if parsed then return "[[UTC" .. parsed.offsetText .. "]]" end return label end local function roundHalfAwayFromZero(n) if n >= 0 then return math.floor(n + 0.5) end return -math.floor(-n + 0.5) end local function getWdUtcOffsetProperty(qid) if not qid then return nil end local ok, statements = pcall(mw.wikibase.getBestStatements, qid, UTC_OFFSET_PROPERTY) if not ok or not statements then return nil end for _, statement in ipairs(statements) do local mainsnak = statement.mainsnak local datavalue = mainsnak and mainsnak.snaktype == "value" and mainsnak.datavalue if datavalue and datavalue.type == "quantity" and datavalue.value then local amount = tonumber(datavalue.value.amount) if amount then local totalMinutes = roundHalfAwayFromZero(amount * 60) local sign = totalMinutes < 0 and "-" or "+" local absMinutes = math.abs(totalMinutes) local hh = math.floor(absMinutes / 60) local mm = absMinutes % 60 return { minutes = totalMinutes, offsetText = sign .. string.format("%02d", hh) .. ":" .. string.format("%02d", mm), } end elseif datavalue and datavalue.type == "string" and datavalue.value then local fromString = parseUtcOffset(datavalue.value) or parseUtcOffset("UTC" .. datavalue.value) if fromString then return fromString end end end return nil end local function getEffectiveOffset(zone) if not zone then return nil end return parseUtcOffset(zone.label) or getWdUtcOffsetProperty(zone.qid) end local function formatManualOffset(rawValue) if not rawValue then return nil end local withoutPrefix = mw.ustring.match(rawValue, "^UTC(.+)$") or rawValue local sign, hh, mm = mw.ustring.match(withoutPrefix, "^(%+)(%d%d?):(%d%d)$") if not sign then sign, hh, mm = mw.ustring.match(withoutPrefix, "^(%-)(%d%d?):(%d%d)$") end if not sign then sign, hh, mm = mw.ustring.match(withoutPrefix, "^(\226\136\146)(%d%d?):(%d%d)$") end if sign then return "[[UTC" .. sign .. string.format("%02d", tonumber(hh)) .. ":" .. mm .. "]]" end return rawValue end local function combineNameAndOffset(offsetValue, nameValue) local offsetDisplay = offsetValue and formatManualOffset(offsetValue) if offsetDisplay and nameValue then return offsetDisplay .. " (" .. nameValue .. ")" end return offsetDisplay or nameValue end -------------------------------------------------- -- Time-zone formatting -------------------------------------------------- local function getTimeZoneData() local statements = getStatements(TIMEZONE_PROPERTY) local standard = nil local daylight = nil local ordinary = {} for _, statement in ipairs(statements) do local value = statement.mainsnak.datavalue.value local qid = value and value.id if qid then local label = getLabel(qid) local periodQualifiers = statement.qualifiers and statement.qualifiers[VALID_PERIOD_QUALIFIER] local periodQid = nil if periodQualifiers and periodQualifiers[1] then local periodValue = periodQualifiers[1].datavalue and periodQualifiers[1].datavalue.value periodQid = periodValue and periodValue.id end if periodQid == "Q1777301" then -- Standard time standard = { qid = qid, label = label, } elseif periodQid == "Q36669" then -- Daylight saving time daylight = { qid = qid, label = label, } else table.insert(ordinary, { qid = qid, label = label, }) end end end return standard, daylight, ordinary end -------------------------------------------------- -- Time-zone line -------------------------------------------------- local function formatZone(zone) if not zone then return nil end local label = zone.label if not label then return nil end -------------------------------------------------- -- Short name (P1813) -- read regardless of which path below applies, -- since a named-zone item can carry one too. -------------------------------------------------- local shortName = nil local ok, statements = pcall( mw.wikibase.getBestStatements, zone.qid, "P1813" ) if ok and statements then for _, statement in ipairs(statements) do local value = statement.mainsnak and statement.mainsnak.datavalue and statement.mainsnak.datavalue.value if value and value.text then if value.language == "en" or value.language == "mul" then shortName = value.text break end shortName = shortName or value.text end end end -------------------------------------------------- -- (a) the label is already offset-shaped -------------------------------------------------- local parsedFromLabel = parseUtcOffset(label) if parsedFromLabel then local utcLabel = "[[UTC" .. parsedFromLabel.offsetText .. "]]" if shortName then return utcLabel .. " (" .. shortName .. ")" end return utcLabel end -------------------------------------------------- -- (b) the label is a NAME -- try P2907 on the same item -------------------------------------------------- local fromProperty = getWdUtcOffsetProperty(zone.qid) if fromProperty then return "[[UTC" .. fromProperty.offsetText .. "]] (" .. (shortName or label) .. ")" end -- No numeric offset available anywhere -- fall back to the bare name -- (better than nothing, but still missing the offset). return label end local function formatOrdinaryZones(ordinary) if not ordinary or #ordinary == 0 then return nil end if #ordinary == 1 then return formatZone(ordinary[1]) end local parsed = {} for _, zone in ipairs(ordinary) do local p = getEffectiveOffset(zone) if not p then return formatZone(ordinary[1]) end table.insert(parsed, p) end table.sort(parsed, function(a, b) return a.minutes < b.minutes end) local lowest = parsed[1] local highest = parsed[#parsed] if lowest.minutes == highest.minutes then return "[[UTC" .. lowest.offsetText .. "]]" end return "[[UTC" .. lowest.offsetText .. "]]" .. " dys " .. "[[UTC" .. highest.offsetText .. "|" .. highest.offsetText .. "]]" end local function buildTimezone() local standard, daylight, ordinary = getTimeZoneData() if not standard then -- No period-qualified (standard/daylight-saving) statement at -- all -- either exactly one plain zone, or several genuinely -- different ones, both handled by formatOrdinaryZones. return formatOrdinaryZones(ordinary), nil end local standardText = formatZone(standard) if not standardText then return nil, nil end return standardText, formatZone(daylight) end -------------------------------------------------- -- Simple Wikidata string property -------------------------------------------------- local function getStringProperty(property) local statements = getStatements(property) for _, statement in ipairs(statements) do local value = statement.mainsnak.datavalue and statement.mainsnak.datavalue.value if type(value) == "string" then return value end end return nil end -------------------------------------------------- -- Internet TLD -------------------------------------------------- local function getTld() local statements = getStatements(TLD_PROPERTY) local values = {} for _, statement in ipairs(statements) do local value = statement.mainsnak.datavalue and statement.mainsnak.datavalue.value if value and value.id then local label = getLabel(value.id) if label then table.insert(values, label) end end end if #values == 0 then return nil end return table.concat(values, "<br/>") end -------------------------------------------------- -- Official website -------------------------------------------------- local function getWebsite() local statements = getStatements(WEBSITE_PROPERTY) local urls = {} for _, statement in ipairs(statements) do local value = statement.mainsnak.datavalue and statement.mainsnak.datavalue.value if type(value) == "string" and value ~= "" then table.insert(urls, value) end end if #urls == 0 then return nil end local links = {} for _, url in ipairs(urls) do table.insert( links, '<span class="url">[' .. url .. ' ' .. mw.text.encode( url:gsub("^https?://", "") ) .. ']</span>' ) end return table.concat(links, "<br/>") end -------------------------------------------------- -- Row builder -------------------------------------------------- local function buildRow(label, value) if not value or value == "" then return nil end return '<tr>' .. '<th style="vertical-align:top; white-space:nowrap; ' .. 'text-align:left; font-weight:bold; padding-left:0.4em; ' .. 'padding-right:0.4em; border-bottom:1px solid #a2a9b1;">' .. label .. '</th>' .. '<td style="vertical-align:top; padding-left:0.4em; ' .. 'padding-right:0.4em; border-bottom:1px solid #a2a9b1;">' .. value .. '</td>' .. '</tr>' end local function appendGroupedRows(rows, items) local present = {} for _, item in ipairs(items) do if item.value and item.value ~= "" then table.insert(present, item) end end for idx, item in ipairs(present) do local border = (idx == #present) and "border-bottom:1px solid #a2a9b1;" or "" if item.indent then table.insert( rows, '<tr><th style="vertical-align:top; white-space:nowrap; ' .. 'text-align:left; font-weight:normal; padding-left:0.9em; ' .. 'padding-right:0.4em; ' .. border .. '">' .. '•&nbsp;' .. item.label .. '</th>' .. '<td style="vertical-align:top; padding-left:0.4em; ' .. 'padding-right:0.4em; ' .. border .. '">' .. item.value .. '</td></tr>' ) else table.insert( rows, '<tr><th style="vertical-align:top; white-space:nowrap; ' .. 'text-align:left; font-weight:bold; padding-left:0.4em; ' .. 'padding-right:0.4em; ' .. border .. '">' .. item.label .. '</th>' .. '<td style="vertical-align:top; padding-left:0.4em; ' .. 'padding-right:0.4em; ' .. border .. '">' .. item.value .. '</td></tr>' ) end end end -------------------------------------------------- -- Website row -------------------------------------------------- local function buildWebsiteRow(value) if not value or value == "" then return nil end return '<tr>' .. '<td colspan="2" style="text-align:center; ' .. 'padding:0.4em;">' .. value .. '</td>' .. '</tr>' end -------------------------------------------------- -- Main -------------------------------------------------- function p.main(frame, args) if not args then args = frame:getParent().args end local rows = {} -------------------------------------------------- -- Time zone (+ THHL, a subset/nested row -- never shown on its own) -------------------------------------------------- local manualZoneName = getManual(args, { "cryss_hraa", "traa_ynnydagh" }) local manualZoneOffset = getManual(args, { "ashchur", "ashchur_utc" }) local imraaCryssHraa = getManual(args, { "imraa_cryss_hraa", "imraa_ashchur_utc", "imraa_ashchur" }) local noteynCryssHraa = getManual(args, { "noteyn_cryss_hraa", "noteyn_ashchur_utc", "noteyn_ashchur" }) local mainZoneValue = nil local wikidataDaylightValue = nil if manualZoneName or manualZoneOffset then mainZoneValue = applyRefNote( combineNameAndOffset(manualZoneOffset, manualZoneName), imraaCryssHraa, noteynCryssHraa, frame ) else local standardText, daylightText = buildTimezone() if standardText then mainZoneValue = applyRefNote(standardText, imraaCryssHraa, noteynCryssHraa, frame) wikidataDaylightValue = daylightText end end local manualTtlsName = getManual(args, { "cryss_hraa_thhl", "traa_ynnydagh_TTLS" }) local manualTtlsOffset = getManual(args, { "ashchur_TTLS", "ashchur_utc_TTLS" }) local noteTTLS = getManual(args, { "noteyn_cryss_hraa_thhl", "note_TTLS", "noteyn_ashchur_TTLS", "noteyn_ashchur_utc_TTLS" }) local imraaTTLS = getManual(args, { "imraa_cryss_hraa_thhl", "imraa_ashchur_TTLS", "imraa_ashchur_utc_TTLS" }) local thhlValue = nil if mainZoneValue then if manualTtlsName or manualTtlsOffset then thhlValue = applyRefNote( combineNameAndOffset(manualTtlsOffset, manualTtlsName), imraaTTLS, nil, frame ) else thhlValue = wikidataDaylightValue end end appendGroupedRows(rows, { { label = "[[Cryss hraa]]", value = mainZoneValue }, { label = "Sourey&nbsp;([[Traa hashtee hollys y laa|THHL]])", value = thhlValue, indent = true }, }) if noteTTLS then table.insert( rows, buildRow( "", noteTTLS ) ) end -------------------------------------------------- -- Date format -------------------------------------------------- local dateFormat = getManual(args, { "format_date", "date_format" }) if dateFormat then table.insert( rows, buildRow( "Cummey date", dateFormat ) ) end -------------------------------------------------- -- Calling code -------------------------------------------------- local callingCode = getManual(args, { "coad_çhellvane" }) or getStringProperty(CALLING_CODE_PROPERTY) if callingCode then if not callingCode:match("^%+") then callingCode = "+" .. callingCode end callingCode = applyRefNote( callingCode, getManual(args, { "imraa_coad_çhellvane" }), getManual(args, { "noteyn_coad_çhellvane" }), frame ) table.insert( rows, buildRow( "[[Rolley coadyn çhellvane eddyr-ashoonagh|Coad çhellvane]]", callingCode ) ) end -------------------------------------------------- -- ISO 3166-1 alpha-2 -------------------------------------------------- local isoCode = getManual(args, { "coad_ISO", "iso3166code" }) or getStringProperty(ISO_CODE_PROPERTY) if isoCode then isoCode = applyRefNote( isoCode, getManual(args, { "imraa_coad_iso" }), getManual(args, { "noteyn_coad_iso" }), frame ) table.insert( rows, buildRow( "[[ISO 3166|Coad ISO 3166]]", isoCode ) ) end -------------------------------------------------- -- Internet TLD -------------------------------------------------- local tld = getManual(args, { "tld", "cctld" }) or getTld() if tld then tld = applyRefNote( tld, getManual(args, { "imraa_tld" }), getManual(args, { "noteyn_tld" }), frame ) table.insert( rows, buildRow( "[[TLD yn eddyr-voggyl]]", tld ) ) end -------------------------------------------------- -- Official website -------------------------------------------------- local website = getManual(args, { "ynnyd-eggey", "duillag", "duillag_oikoil" }) or getWebsite() if website then website = applyRefNote( website, getManual(args, { "imraa_ynnyd-eggey" }), getManual(args, { "noteyn_ynnyd-eggey" }), frame ) table.insert( rows, buildWebsiteRow(website) ) end -------------------------------------------------- -- Nothing to display -------------------------------------------------- if #rows == 0 then return nil end return table.concat(rows) end return p fxyzqh77b87lb6skqtvzedi1ws4p8f1 Module:Kishtey fys çheer/aarheynn 828 55930 394533 393922 2026-10-16T12:00:06Z MacTire02 219 imraaghyn 394533 Scribunto text/plain local p = {} -- Sovereignty/subdivision membership (enwiki's subdivision_type/ -- subdivision_name, e.g. "Sovereign state | Kingdom of the Netherlands"). -- Its own file since it's a separate concern from reiltys.lua, but its -- rendered position sits directly between the legislature and founding -- sections with no divider of its own -- so reiltys.lua requires this -- module and splices its rows into its own list at that point, instead of -- the dispatcher treating it as an independently-divided section. -- -- Duplicates a few small reiltys.lua helpers rather than sharing a utils -- module, per this project's per-file convention. local wdOK, Wd = pcall(require, "Module:Wd") local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>, tolerating a value Scribunto already -- pre-expanded into rendered "[N]" marker(s) or UNIQ...QINU strip markers. local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- The row label is shown exactly as given -- NOT auto-wikilinked. Linking -- is entirely the editor's own choice: a manual |sorçh_aarheynn= that's -- already typed as a full wikilink (e.g. "[[Steat kionedeeagh]]") is left -- alone, and a plain, unbracketed label (whether manually typed or the -- LEVEL1_FALLBACK_LABEL default below) is shown as plain text, with no link -- added on its behalf. This function's only remaining job is passthrough; -- kept as a named call (rather than inlining `label` directly) so this -- "never auto-link" decision stays documented at the one call site that -- matters, instead of being implicit. local function wikilinkLabel(label) return label end local function getWdRawPropertyId(property) if not wdOK or not Wd or not Wd._property then return nil end local ok, result = pcall(Wd._property, {"raw", "best", property}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Three-tier Wikidata-entity-to-Manx-link resolver: gv sitelink + gv label -- (preferred as display text) -> label-only redlink -> ennym-wd's -- external-link-to-Wikidata fallback. No "role + country" shortening rung -- (reiltys.lua's shortManxForm) -- a name like "Kingdom of the -- Netherlands" is a plain proper name. local function getWdItemManxLink(qid) if not qid then return nil end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then gvLabel = wikiUcfirst(gvLabel) else gvLabel = nil end if not sitelinkTitle and not gvLabel then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end -- Current page's own title, for the self-link guard below. local function getCurrentPageTitle() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) if ok and title and title ~= "" then return title end return nil end -- Strips a leading Manx definite article ("Yn "/"Y ") for self-link -- comparison only. Manx alternates "y"/"yn" grammatically (by the -- following sound), so the same country can be the target of a link -- written with one article form while the article's own page title uses -- the other -- e.g. Wikidata's gv label for Denmark reads "y Rank" where -- the article itself sits at "Yn Rank". Without this, those compare as -- different strings and the self-link goes undetected. Mirrors the same -- yn/y alternation reiltys.lua already handles in -- stripCountryGenitiveSuffix, just applied to a leading article instead of -- a trailing genitive. local function stripLeadingArticle(text) if not text then return text end local stripped = text:match("^[Yy]n%s+(.+)$") or text:match("^[Yy]%s+(.+)$") return stripped or text end -- True when a "[[Target]]"/"[[Target|Display]]" wikilink points at the -- current page itself -- e.g. a Wikidata P17 value that loops back to the -- current article (bad/unexpected data, but not impossible). Compares with -- and without a leading "y"/"yn" article, so an article-form mismatch -- (see stripLeadingArticle above) doesn't let a genuine self-link slip -- through. Never fires on the ennym-wd external-link fallback -- ("[url label]"), which can't self-reference an internal page anyway. -- Only ever applied to the WIKIDATA-DERIVED value below -- a manual -- |ennym_aarheynn= that happens to match the current page is left alone, -- same as every other manual override in this project winning outright -- over automatic behavior. local function isSelfLink(link) if not link then return false end local target = link:match("^%[%[([^%[%]|]+)") if not target then return false end local current = getCurrentPageTitle() if not current then return false end if target == current then return true end return stripLeadingArticle(target) == stripLeadingArticle(current) end -- No `white-space:nowrap` on the label cell -- unlike reiltys.lua's short, -- fixed role words ("Monark", "Kione steat"), |sorçh_aarheynn= is editor- -- typed free text (and the LEVEL1_FALLBACK_LABEL default, "Steat -- kionedeeagh", is itself two words) with no guaranteed short length. -- Forcing it onto one line is exactly the bug already fixed once for -- reiltys.lua's establishment-event labels (see that module's design notes, -- "establishment-event rows forcing the infobox too wide") -- a long label -- here would stretch this table, and the whole infobox, to fit it. Letting -- it wrap keeps the column width sane regardless of how long the editor's -- own label text runs. local ROW = '<tr><th style="vertical-align:top; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' -- Numbered levels supported (enwiki's own subdivision_type1/_2/_3...). local MAX_LEVELS = 5 -- Level-1-only fallback label, used when |sorçh_aarheynn= isn't set but a -- Wikidata P17 value is found -- confirmed directly by you (the same -- wording you used for the Netherlands), not guessed. Only ever shown -- paired with an actual resolved value; never shown alone. Shown as plain, -- unlinked text (see wikilinkLabel above) -- it's a generic descriptive -- label, not a specific article title, so it's never auto-linked. local LEVEL1_FALLBACK_LABEL = "Steat kionedeeagh" -- Returns an array of row strings (or nil), for reiltys.lua to splice into -- its own row list -- not a joined string, since the caller places these -- rows in among its own sections. function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} for i = 1, MAX_LEVELS do local suffix = tostring(i) local typeNames = { "sorçh_aarheynn" .. suffix } local nameNames = { "ennym_aarheynn" .. suffix } local refNames = { "imraa_aarheynn" .. suffix } local noteNames = { "noteyn_aarheynn" .. suffix } if i == 1 then -- Bare, unnumbered form (as used on the Netherlands article) is -- a synonym for level 1. table.insert(typeNames, 1, "sorçh_aarheynn") table.insert(nameNames, 1, "ennym_aarheynn") table.insert(refNames, 1, "imraa_aarheynn") table.insert(noteNames, 1, "noteyn_aarheynn") end -- The type/label is always manual if given -- no Wikidata property -- reliably maps to a short relationship label like "Sovereign -- state". |sorçh_aarheynnN=none suppresses the level outright, WD -- included. Level 1 with NO manual type at all still gets a row -- when Wikidata resolves a name, using LEVEL1_FALLBACK_LABEL. local typeRaw = getManual(args, typeNames) if not isNone(typeRaw) then local nameRaw = getManual(args, nameNames) if isNone(nameRaw) then nameRaw = nil elseif not nameRaw and i == 1 then -- Wikidata fallback (P17, "country") -- level 1 only. -- Deeper levels would need chaining through unconfirmed -- properties, too article-specific to trust to Wikidata. local qid = getWdRawPropertyId("P17") if qid then local link = getWdItemManxLink(qid) -- Skip a self-link automatically (e.g. P17 looping back -- to the current article) -- same end result as -- |ennym_aarheynnN=none, without needing it typed by -- hand. |sorçh_aarheynnN=none still works exactly as -- before for every other case. if link and not isSelfLink(link) then nameRaw = link end end end local label = typeRaw if not label and i == 1 and nameRaw then label = LEVEL1_FALLBACK_LABEL end if label and nameRaw then local ref = getManual(args, refNames) local note = getManual(args, noteNames) table.insert(rows, string.format(ROW, wikilinkLabel(label), applyRefNote(nameRaw, ref, note, frame))) end end end if #rows == 0 then return nil end return rows end return p 0vizdff9z1z84fw0ggxj826ied548ed 394562 394533 2026-10-16T17:32:25Z MacTire02 219 -chaghteraghtyn 394562 Scribunto text/plain local p = {} -- Sovereignty/subdivision membership (enwiki's subdivision_type/ -- subdivision_name, e.g. "Sovereign state | Kingdom of the Netherlands"). -- reiltys.lua requires this module and splices its rows into its own list -- between the legislature and founding sections, with no divider of its -- own. Duplicates a few small reiltys.lua helpers per this project's -- per-file convention. local wdOK, Wd = pcall(require, "Module:Wd") local ennymWdOK, EnnymWd = pcall(require, "Module:Kishtey fys çheer/ennym-wd") local function getManual(args, names) for _, name in ipairs(names) do local value = args[name] if value and mw.text.trim(value) ~= "" then return mw.text.trim(value) end end return nil end local function isNone(value) return value ~= nil and mw.text.trim(value):lower() == "none" end -- Wraps a manual citation in <ref>, tolerating a value Scribunto already -- pre-expanded into rendered "[N]" marker(s) or UNIQ...QINU strip markers. local function wrapReference(ref) if not ref or ref == "" then return nil end local withoutMarkers = mw.ustring.gsub(ref, "\127UNIQ.-QINU\127", "") if mw.ustring.gsub(withoutMarkers, "%s+", "") == "" then return ref end if mw.ustring.find(mw.ustring.lower(ref), "<ref", 1, true) then return ref end -- One or more <ref> tags (named or not) in the param value arrive here -- already expanded into rendered footnote marker(s), e.g. "[6][7][8][9]". local withoutRenderedMarkers = mw.ustring.gsub(ref, "%[%d+%]", "") if mw.ustring.gsub(withoutRenderedMarkers, "%s+", "") == "" then return ref end return "<ref>" .. ref .. "</ref>" end local function applyRefNote(value, ref, note, frame) if not value then return value end if note and note ~= "" and frame then value = value .. frame:expandTemplate{ title = "efn", args = { note } } end if ref and ref ~= "" then value = value .. wrapReference(ref) end return value end -- The row label is shown exactly as given -- never auto-wikilinked. -- Linking is entirely the editor's own choice. local function wikilinkLabel(label) return label end local function getWdRawPropertyId(property) if not wdOK or not Wd or not Wd._property then return nil end local ok, result = pcall(Wd._property, {"raw", "best", property}) if ok and result and type(result) == "string" and result:match("^Q%d+$") then return result end return nil end local function wikiUcfirst(text) if not text or text == "" then return text end local ok, result = pcall(function() return mw.language.getContentLanguage():ucfirst(text) end) if ok and result and result ~= "" then return result end return text end -- Three-tier Wikidata-entity-to-Manx-link resolver: gv sitelink + gv label -- -> label-only redlink -> ennym-wd's external-link-to-Wikidata fallback. -- No "role + country" shortening rung -- a name like "Kingdom of the -- Netherlands" is a plain proper name. local function getWdItemManxLink(qid) if not qid then return nil end local okSite, sitelinkTitle = pcall(mw.wikibase.sitelink, qid) if not okSite then sitelinkTitle = nil end sitelinkTitle = (sitelinkTitle and sitelinkTitle ~= "") and sitelinkTitle or nil local okLabel, gvLabel = pcall(mw.wikibase.getLabelByLang, qid, "gv") if okLabel and gvLabel and gvLabel ~= "" then gvLabel = wikiUcfirst(gvLabel) else gvLabel = nil end if not sitelinkTitle and not gvLabel then if ennymWdOK and EnnymWd and EnnymWd.labelWithFallback then local ok, annotated = pcall(EnnymWd.labelWithFallback, qid) if ok and annotated then return annotated end end return nil end local target = sitelinkTitle or gvLabel local displayBase = gvLabel or sitelinkTitle if target == displayBase then return "[[" .. target .. "]]" end return "[[" .. target .. "|" .. displayBase .. "]]" end -- Current page's own title, for the self-link guard below. local function getCurrentPageTitle() local ok, title = pcall(function() return mw.title.getCurrentTitle().text end) if ok and title and title ~= "" then return title end return nil end -- Strips a leading Manx definite article ("Yn "/"Y ") for self-link -- comparison only -- e.g. Wikidata's gv label for Denmark reads "y Rank" -- where the article itself sits at "Yn Rank"; without this they'd compare -- as different strings and the self-link would go undetected. local function stripLeadingArticle(text) if not text then return text end local stripped = text:match("^[Yy]n%s+(.+)$") or text:match("^[Yy]%s+(.+)$") return stripped or text end -- True when a "[[Target]]"/"[[Target|Display]]" wikilink points at the -- current page itself -- e.g. a Wikidata P17 value looping back to the -- current article. Compares with and without a leading "y"/"yn" article. -- Only ever applied to the Wikidata-derived value -- a matching manual -- |ennym_aarheynn= is left alone, like any other manual override here. local function isSelfLink(link) if not link then return false end local target = link:match("^%[%[([^%[%]|]+)") if not target then return false end local current = getCurrentPageTitle() if not current then return false end if target == current then return true end return stripLeadingArticle(target) == stripLeadingArticle(current) end -- No `white-space:nowrap` on the label cell: |sorçh_aarheynn= is editor- -- typed free text with no guaranteed short length, so it's allowed to wrap -- rather than stretching the table to fit one long line (same class of fix -- as reiltys.lua's establishment-event labels). local ROW = '<tr><th style="vertical-align:top; text-align:left; font-weight:bold; padding-left:0.4em; padding-right:0.4em;">%s</th><td style="vertical-align:top; padding-left:0.4em; padding-right:0.4em;">%s</td></tr>' -- Numbered levels supported (enwiki's own subdivision_type1/_2/_3...). local MAX_LEVELS = 5 -- Level-1-only fallback label when |sorçh_aarheynn= isn't set but a -- Wikidata P17 value is found. Only shown paired with a resolved value, as -- plain unlinked text (a generic descriptive label, not an article title). local LEVEL1_FALLBACK_LABEL = "Steat kionedeeagh" -- Returns an array of row strings (or nil), for reiltys.lua to splice into -- its own row list -- not a joined string, since the caller places these -- rows in among its own sections. function p.main(frame, args) if not args then args = frame frame = mw.getCurrentFrame() end local rows = {} for i = 1, MAX_LEVELS do local suffix = tostring(i) local typeNames = { "sorçh_aarheynn" .. suffix } local nameNames = { "ennym_aarheynn" .. suffix } local refNames = { "imraa_aarheynn" .. suffix } local noteNames = { "noteyn_aarheynn" .. suffix } if i == 1 then -- Bare, unnumbered form (as used on the Netherlands article) is -- a synonym for level 1. table.insert(typeNames, 1, "sorçh_aarheynn") table.insert(nameNames, 1, "ennym_aarheynn") table.insert(refNames, 1, "imraa_aarheynn") table.insert(noteNames, 1, "noteyn_aarheynn") end -- The type/label is always manual if given -- no Wikidata property -- reliably maps to a short relationship label like "Sovereign -- state". |sorçh_aarheynnN=none suppresses the level outright, WD -- included. Level 1 with NO manual type at all still gets a row -- when Wikidata resolves a name, using LEVEL1_FALLBACK_LABEL. local typeRaw = getManual(args, typeNames) if not isNone(typeRaw) then local nameRaw = getManual(args, nameNames) if isNone(nameRaw) then nameRaw = nil elseif not nameRaw and i == 1 then -- Wikidata fallback (P17, "country") -- level 1 only. -- Deeper levels would need chaining through unconfirmed -- properties, too article-specific to trust to Wikidata. local qid = getWdRawPropertyId("P17") if qid then local link = getWdItemManxLink(qid) -- Skip a self-link automatically (e.g. P17 looping back -- to the current article) -- same end result as -- |ennym_aarheynnN=none, without needing it typed by -- hand. |sorçh_aarheynnN=none still works exactly as -- before for every other case. if link and not isSelfLink(link) then nameRaw = link end end end local label = typeRaw if not label and i == 1 and nameRaw then label = LEVEL1_FALLBACK_LABEL end if label and nameRaw then local ref = getManual(args, refNames) local note = getManual(args, noteNames) table.insert(rows, string.format(ROW, wikilinkLabel(label), applyRefNote(nameRaw, ref, note, frame))) end end end if #rows == 0 then return nil end return rows end return p 5s96l4o510jyx6y2v0gc0rdulni1jy1 Module:ISO 639 name/ISO 639-2B 828 56217 394549 2026-10-16T14:38:57Z MacTire02 219 clowan noa 394549 Scribunto text/plain -- File-Date: 2013-01-11 return { -- 639-2B ["alb"] = {"Albaanish"}, ["arm"] = {"Armeanish"}, ["baq"] = {"Bascish"}, ["bur"] = {"Burmish"}, ["chi"] = {"Sheenish"}, ["cze"] = {"Sheckish"}, ["dut"] = {"Ollanish", "Flandrynish"}, ["fre"] = {"Frangish"}, ["geo"] = {"Shorshish"}, ["ger"] = {"Germaanish"}, ["gre"] = {"Greagish, Noa-emshiragh (1453-)"}, ["ice"] = {"Eeslynnish"}, ["mac"] = {"Massadoanish"}, ["mao"] = {"Maorish"}, ["may"] = {"Malayish"}, ["per"] = {"Pershish"}, ["rum"] = {"Romaanish", "Moldaavish", "Moldovish"}, ["slo"] = {"Slovackish"}, ["tib"] = {"Tibetish"}, ["wel"] = {"Bretnish"} } 0rqq0zbcn53k7xctyphk1nqydx7ab11 394550 394549 2026-10-16T14:39:22Z MacTire02 219 MacTire02 moved page [[Module:Language/data/ISO 639-2B]] to [[Module:ISO 639 name/ISO 639-2B]] 394549 Scribunto text/plain -- File-Date: 2013-01-11 return { -- 639-2B ["alb"] = {"Albaanish"}, ["arm"] = {"Armeanish"}, ["baq"] = {"Bascish"}, ["bur"] = {"Burmish"}, ["chi"] = {"Sheenish"}, ["cze"] = {"Sheckish"}, ["dut"] = {"Ollanish", "Flandrynish"}, ["fre"] = {"Frangish"}, ["geo"] = {"Shorshish"}, ["ger"] = {"Germaanish"}, ["gre"] = {"Greagish, Noa-emshiragh (1453-)"}, ["ice"] = {"Eeslynnish"}, ["mac"] = {"Massadoanish"}, ["mao"] = {"Maorish"}, ["may"] = {"Malayish"}, ["per"] = {"Pershish"}, ["rum"] = {"Romaanish", "Moldaavish", "Moldovish"}, ["slo"] = {"Slovackish"}, ["tib"] = {"Tibetish"}, ["wel"] = {"Bretnish"} } 0rqq0zbcn53k7xctyphk1nqydx7ab11 Module:Language/data/ISO 639-2B 828 56218 394551 2026-10-16T14:39:22Z MacTire02 219 MacTire02 moved page [[Module:Language/data/ISO 639-2B]] to [[Module:ISO 639 name/ISO 639-2B]] 394551 Scribunto text/plain return require [[Module:ISO 639 name/ISO 639-2B]] 8rr38c704cuy63f0zn8f4bedp9bc0lt Module:ISO 639 name/ISO 639-5 828 56219 394552 2026-10-16T14:40:19Z MacTire02 219 ++ 394552 Scribunto text/plain -- File-Date: 2013-02-11 return { ["aav"] = {"Austro-Asiatic languages"}, ["afa"] = {"Afro-Asiatic languages"}, ["alg"] = {"Algonquian languages"}, ["alv"] = {"Atlantic-Congo languages"}, ["apa"] = {"Apache languages"}, ["aqa"] = {"Alacalufan languages"}, ["aql"] = {"Algic languages"}, ["art"] = {"Artificial languages"}, ["ath"] = {"Athapascan languages"}, ["auf"] = {"Arauan languages"}, ["aus"] = {"Australian languages"}, ["awd"] = {"Arawakan languages"}, ["azc"] = {"Uto-Aztecan languages"}, ["bad"] = {"Banda languages"}, ["bai"] = {"Bamileke languages"}, ["bat"] = {"Baltic languages"}, ["ber"] = {"Berber languages"}, ["bih"] = {"Bihari languages"}, ["bnt"] = {"Bantu languages"}, ["btk"] = {"Batak languages"}, ["cai"] = {"Central American Indian languages"}, ["cau"] = {"Caucasian languages"}, ["cba"] = {"Chibchan languages"}, ["ccn"] = {"North Caucasian languages"}, ["ccs"] = {"South Caucasian languages"}, ["cdc"] = {"Chadic languages"}, ["cdd"] = {"Caddoan languages"}, ["cel"] = {"Celtic languages"}, ["cmc"] = {"Chamic languages"}, ["cpe"] = {"Creoles and pidgins, English-based"}, ["cpf"] = {"Creoles and pidgins, French-based"}, ["cpp"] = {"Creoles and pidgins, Portuguese-based"}, ["crp"] = {"Creoles and pidgins"}, ["csu"] = {"Central Sudanic languages"}, ["cus"] = {"Cushitic languages"}, ["day"] = {"Land Dayak languages"}, ["dmn"] = {"Mande languages"}, ["dra"] = {"Dravidian languages"}, ["egx"] = {"Egyptian languages"}, ["esx"] = {"Eskimo-Aleut languages"}, ["euq"] = {"Basque (family)"}, ["fiu"] = {"Finno-Ugrian languages"}, ["fox"] = {"Formosan languages"}, ["gem"] = {"Germanic languages"}, ["gme"] = {"East Germanic languages"}, ["gmq"] = {"North Germanic languages"}, ["gmw"] = {"West Germanic languages"}, ["grk"] = {"Greek languages"}, ["hmx"] = {"Hmong-Mien languages"}, ["hok"] = {"Hokan languages"}, ["hyx"] = {"Armenian (family)"}, ["iir"] = {"Indo-Iranian languages"}, ["ijo"] = {"Ijo languages"}, ["inc"] = {"Indic languages"}, ["ine"] = {"Indo-European languages"}, ["ira"] = {"Iranian languages"}, ["iro"] = {"Iroquoian languages"}, ["itc"] = {"Italic languages"}, ["jpx"] = {"Japanese (family)"}, ["kar"] = {"Karen languages"}, ["kdo"] = {"Kordofanian languages"}, ["khi"] = {"Khoisan languages"}, ["kro"] = {"Kru languages"}, ["map"] = {"Austronesian languages"}, ["mkh"] = {"Mon-Khmer languages"}, ["mno"] = {"Manobo languages"}, ["mun"] = {"Munda languages"}, ["myn"] = {"Mayan languages"}, ["nah"] = {"Nahuatl languages"}, ["nai"] = {"North American Indian languages"}, ["ngf"] = {"Trans-New Guinea languages"}, ["nic"] = {"Niger-Kordofanian languages"}, ["nub"] = {"Nubian languages"}, ["omq"] = {"Oto-Manguean languages"}, ["omv"] = {"Omotic languages"}, ["oto"] = {"Otomian languages"}, ["paa"] = {"Papuan languages"}, ["phi"] = {"Philippine languages"}, ["plf"] = {"Central Malayo-Polynesian languages"}, ["poz"] = {"Malayo-Polynesian languages"}, ["pqe"] = {"Eastern Malayo-Polynesian languages"}, ["pqw"] = {"Western Malayo-Polynesian languages"}, ["pra"] = {"Prakrit languages"}, ["qwe"] = {"Quechuan (family)"}, ["roa"] = {"Romance languages"}, ["sai"] = {"South American Indian languages"}, ["sal"] = {"Salishan languages"}, ["sdv"] = {"Eastern Sudanic languages"}, ["sem"] = {"Semitic languages"}, ["sgn"] = {"sign languages"}, ["sio"] = {"Siouan languages"}, ["sit"] = {"Sino-Tibetan languages"}, ["sla"] = {"Slavic languages"}, ["smi"] = {"Sami languages"}, ["son"] = {"Songhai languages"}, ["sqj"] = {"Albanian languages"}, ["ssa"] = {"Nilo-Saharan languages"}, ["syd"] = {"Samoyedic languages"}, ["tai"] = {"Tai languages"}, ["tbq"] = {"Tibeto-Burman languages"}, ["trk"] = {"Turkic languages"}, ["tup"] = {"Tupi languages"}, ["tut"] = {"Altaic languages"}, ["tuw"] = {"Tungus languages"}, ["urj"] = {"Uralic languages"}, ["wak"] = {"Wakashan languages"}, ["wen"] = {"Sorbian languages"}, ["xgn"] = {"Mongolian languages"}, ["xnd"] = {"Na-Dene languages"}, ["ypk"] = {"Yupik languages"}, ["zhx"] = {"Chinese (family)"}, ["zle"] = {"East Slavic languages"}, ["zls"] = {"South Slavic languages"}, ["zlw"] = {"West Slavic languages"}, ["znd"] = {"Zande languages"} } cuy098mavdbzysd78ximwvnfoiwwba5 394553 394552 2026-10-16T14:40:32Z MacTire02 219 MacTire02 moved page [[Module:Language/data/ISO 639-5]] to [[Module:Module:ISO 639 name/ISO 639-5]] 394552 Scribunto text/plain -- File-Date: 2013-02-11 return { ["aav"] = {"Austro-Asiatic languages"}, ["afa"] = {"Afro-Asiatic languages"}, ["alg"] = {"Algonquian languages"}, ["alv"] = {"Atlantic-Congo languages"}, ["apa"] = {"Apache languages"}, ["aqa"] = {"Alacalufan languages"}, ["aql"] = {"Algic languages"}, ["art"] = {"Artificial languages"}, ["ath"] = {"Athapascan languages"}, ["auf"] = {"Arauan languages"}, ["aus"] = {"Australian languages"}, ["awd"] = {"Arawakan languages"}, ["azc"] = {"Uto-Aztecan languages"}, ["bad"] = {"Banda languages"}, ["bai"] = {"Bamileke languages"}, ["bat"] = {"Baltic languages"}, ["ber"] = {"Berber languages"}, ["bih"] = {"Bihari languages"}, ["bnt"] = {"Bantu languages"}, ["btk"] = {"Batak languages"}, ["cai"] = {"Central American Indian languages"}, ["cau"] = {"Caucasian languages"}, ["cba"] = {"Chibchan languages"}, ["ccn"] = {"North Caucasian languages"}, ["ccs"] = {"South Caucasian languages"}, ["cdc"] = {"Chadic languages"}, ["cdd"] = {"Caddoan languages"}, ["cel"] = {"Celtic languages"}, ["cmc"] = {"Chamic languages"}, ["cpe"] = {"Creoles and pidgins, English-based"}, ["cpf"] = {"Creoles and pidgins, French-based"}, ["cpp"] = {"Creoles and pidgins, Portuguese-based"}, ["crp"] = {"Creoles and pidgins"}, ["csu"] = {"Central Sudanic languages"}, ["cus"] = {"Cushitic languages"}, ["day"] = {"Land Dayak languages"}, ["dmn"] = {"Mande languages"}, ["dra"] = {"Dravidian languages"}, ["egx"] = {"Egyptian languages"}, ["esx"] = {"Eskimo-Aleut languages"}, ["euq"] = {"Basque (family)"}, ["fiu"] = {"Finno-Ugrian languages"}, ["fox"] = {"Formosan languages"}, ["gem"] = {"Germanic languages"}, ["gme"] = {"East Germanic languages"}, ["gmq"] = {"North Germanic languages"}, ["gmw"] = {"West Germanic languages"}, ["grk"] = {"Greek languages"}, ["hmx"] = {"Hmong-Mien languages"}, ["hok"] = {"Hokan languages"}, ["hyx"] = {"Armenian (family)"}, ["iir"] = {"Indo-Iranian languages"}, ["ijo"] = {"Ijo languages"}, ["inc"] = {"Indic languages"}, ["ine"] = {"Indo-European languages"}, ["ira"] = {"Iranian languages"}, ["iro"] = {"Iroquoian languages"}, ["itc"] = {"Italic languages"}, ["jpx"] = {"Japanese (family)"}, ["kar"] = {"Karen languages"}, ["kdo"] = {"Kordofanian languages"}, ["khi"] = {"Khoisan languages"}, ["kro"] = {"Kru languages"}, ["map"] = {"Austronesian languages"}, ["mkh"] = {"Mon-Khmer languages"}, ["mno"] = {"Manobo languages"}, ["mun"] = {"Munda languages"}, ["myn"] = {"Mayan languages"}, ["nah"] = {"Nahuatl languages"}, ["nai"] = {"North American Indian languages"}, ["ngf"] = {"Trans-New Guinea languages"}, ["nic"] = {"Niger-Kordofanian languages"}, ["nub"] = {"Nubian languages"}, ["omq"] = {"Oto-Manguean languages"}, ["omv"] = {"Omotic languages"}, ["oto"] = {"Otomian languages"}, ["paa"] = {"Papuan languages"}, ["phi"] = {"Philippine languages"}, ["plf"] = {"Central Malayo-Polynesian languages"}, ["poz"] = {"Malayo-Polynesian languages"}, ["pqe"] = {"Eastern Malayo-Polynesian languages"}, ["pqw"] = {"Western Malayo-Polynesian languages"}, ["pra"] = {"Prakrit languages"}, ["qwe"] = {"Quechuan (family)"}, ["roa"] = {"Romance languages"}, ["sai"] = {"South American Indian languages"}, ["sal"] = {"Salishan languages"}, ["sdv"] = {"Eastern Sudanic languages"}, ["sem"] = {"Semitic languages"}, ["sgn"] = {"sign languages"}, ["sio"] = {"Siouan languages"}, ["sit"] = {"Sino-Tibetan languages"}, ["sla"] = {"Slavic languages"}, ["smi"] = {"Sami languages"}, ["son"] = {"Songhai languages"}, ["sqj"] = {"Albanian languages"}, ["ssa"] = {"Nilo-Saharan languages"}, ["syd"] = {"Samoyedic languages"}, ["tai"] = {"Tai languages"}, ["tbq"] = {"Tibeto-Burman languages"}, ["trk"] = {"Turkic languages"}, ["tup"] = {"Tupi languages"}, ["tut"] = {"Altaic languages"}, ["tuw"] = {"Tungus languages"}, ["urj"] = {"Uralic languages"}, ["wak"] = {"Wakashan languages"}, ["wen"] = {"Sorbian languages"}, ["xgn"] = {"Mongolian languages"}, ["xnd"] = {"Na-Dene languages"}, ["ypk"] = {"Yupik languages"}, ["zhx"] = {"Chinese (family)"}, ["zle"] = {"East Slavic languages"}, ["zls"] = {"South Slavic languages"}, ["zlw"] = {"West Slavic languages"}, ["znd"] = {"Zande languages"} } cuy098mavdbzysd78ximwvnfoiwwba5 394555 394553 2026-10-16T14:41:00Z MacTire02 219 MacTire02 moved page [[Module:Module:ISO 639 name/ISO 639-5]] to [[Module:ISO 639 name/ISO 639-5]] 394552 Scribunto text/plain -- File-Date: 2013-02-11 return { ["aav"] = {"Austro-Asiatic languages"}, ["afa"] = {"Afro-Asiatic languages"}, ["alg"] = {"Algonquian languages"}, ["alv"] = {"Atlantic-Congo languages"}, ["apa"] = {"Apache languages"}, ["aqa"] = {"Alacalufan languages"}, ["aql"] = {"Algic languages"}, ["art"] = {"Artificial languages"}, ["ath"] = {"Athapascan languages"}, ["auf"] = {"Arauan languages"}, ["aus"] = {"Australian languages"}, ["awd"] = {"Arawakan languages"}, ["azc"] = {"Uto-Aztecan languages"}, ["bad"] = {"Banda languages"}, ["bai"] = {"Bamileke languages"}, ["bat"] = {"Baltic languages"}, ["ber"] = {"Berber languages"}, ["bih"] = {"Bihari languages"}, ["bnt"] = {"Bantu languages"}, ["btk"] = {"Batak languages"}, ["cai"] = {"Central American Indian languages"}, ["cau"] = {"Caucasian languages"}, ["cba"] = {"Chibchan languages"}, ["ccn"] = {"North Caucasian languages"}, ["ccs"] = {"South Caucasian languages"}, ["cdc"] = {"Chadic languages"}, ["cdd"] = {"Caddoan languages"}, ["cel"] = {"Celtic languages"}, ["cmc"] = {"Chamic languages"}, ["cpe"] = {"Creoles and pidgins, English-based"}, ["cpf"] = {"Creoles and pidgins, French-based"}, ["cpp"] = {"Creoles and pidgins, Portuguese-based"}, ["crp"] = {"Creoles and pidgins"}, ["csu"] = {"Central Sudanic languages"}, ["cus"] = {"Cushitic languages"}, ["day"] = {"Land Dayak languages"}, ["dmn"] = {"Mande languages"}, ["dra"] = {"Dravidian languages"}, ["egx"] = {"Egyptian languages"}, ["esx"] = {"Eskimo-Aleut languages"}, ["euq"] = {"Basque (family)"}, ["fiu"] = {"Finno-Ugrian languages"}, ["fox"] = {"Formosan languages"}, ["gem"] = {"Germanic languages"}, ["gme"] = {"East Germanic languages"}, ["gmq"] = {"North Germanic languages"}, ["gmw"] = {"West Germanic languages"}, ["grk"] = {"Greek languages"}, ["hmx"] = {"Hmong-Mien languages"}, ["hok"] = {"Hokan languages"}, ["hyx"] = {"Armenian (family)"}, ["iir"] = {"Indo-Iranian languages"}, ["ijo"] = {"Ijo languages"}, ["inc"] = {"Indic languages"}, ["ine"] = {"Indo-European languages"}, ["ira"] = {"Iranian languages"}, ["iro"] = {"Iroquoian languages"}, ["itc"] = {"Italic languages"}, ["jpx"] = {"Japanese (family)"}, ["kar"] = {"Karen languages"}, ["kdo"] = {"Kordofanian languages"}, ["khi"] = {"Khoisan languages"}, ["kro"] = {"Kru languages"}, ["map"] = {"Austronesian languages"}, ["mkh"] = {"Mon-Khmer languages"}, ["mno"] = {"Manobo languages"}, ["mun"] = {"Munda languages"}, ["myn"] = {"Mayan languages"}, ["nah"] = {"Nahuatl languages"}, ["nai"] = {"North American Indian languages"}, ["ngf"] = {"Trans-New Guinea languages"}, ["nic"] = {"Niger-Kordofanian languages"}, ["nub"] = {"Nubian languages"}, ["omq"] = {"Oto-Manguean languages"}, ["omv"] = {"Omotic languages"}, ["oto"] = {"Otomian languages"}, ["paa"] = {"Papuan languages"}, ["phi"] = {"Philippine languages"}, ["plf"] = {"Central Malayo-Polynesian languages"}, ["poz"] = {"Malayo-Polynesian languages"}, ["pqe"] = {"Eastern Malayo-Polynesian languages"}, ["pqw"] = {"Western Malayo-Polynesian languages"}, ["pra"] = {"Prakrit languages"}, ["qwe"] = {"Quechuan (family)"}, ["roa"] = {"Romance languages"}, ["sai"] = {"South American Indian languages"}, ["sal"] = {"Salishan languages"}, ["sdv"] = {"Eastern Sudanic languages"}, ["sem"] = {"Semitic languages"}, ["sgn"] = {"sign languages"}, ["sio"] = {"Siouan languages"}, ["sit"] = {"Sino-Tibetan languages"}, ["sla"] = {"Slavic languages"}, ["smi"] = {"Sami languages"}, ["son"] = {"Songhai languages"}, ["sqj"] = {"Albanian languages"}, ["ssa"] = {"Nilo-Saharan languages"}, ["syd"] = {"Samoyedic languages"}, ["tai"] = {"Tai languages"}, ["tbq"] = {"Tibeto-Burman languages"}, ["trk"] = {"Turkic languages"}, ["tup"] = {"Tupi languages"}, ["tut"] = {"Altaic languages"}, ["tuw"] = {"Tungus languages"}, ["urj"] = {"Uralic languages"}, ["wak"] = {"Wakashan languages"}, ["wen"] = {"Sorbian languages"}, ["xgn"] = {"Mongolian languages"}, ["xnd"] = {"Na-Dene languages"}, ["ypk"] = {"Yupik languages"}, ["zhx"] = {"Chinese (family)"}, ["zle"] = {"East Slavic languages"}, ["zls"] = {"South Slavic languages"}, ["zlw"] = {"West Slavic languages"}, ["znd"] = {"Zande languages"} } cuy098mavdbzysd78ximwvnfoiwwba5 Module:Language/data/ISO 639-5 828 56220 394554 2026-10-16T14:40:32Z MacTire02 219 MacTire02 moved page [[Module:Language/data/ISO 639-5]] to [[Module:Module:ISO 639 name/ISO 639-5]] 394554 Scribunto text/plain return require [[Module:Module:ISO 639 name/ISO 639-5]] g3dbrfjmb1ns7yalmg603tqk6lx76jg 394557 394554 2026-10-16T14:41:31Z MacTire02 219 ++ 394557 Scribunto text/plain return require [[Module:ISO 639 name/ISO 639-5]] 120p8vdv67axgza2rs08glnhdd3110n Module:Module:ISO 639 name/ISO 639-5 828 56221 394556 2026-10-16T14:41:00Z MacTire02 219 MacTire02 moved page [[Module:Module:ISO 639 name/ISO 639-5]] to [[Module:ISO 639 name/ISO 639-5]] 394556 Scribunto text/plain return require [[Module:ISO 639 name/ISO 639-5]] 120p8vdv67axgza2rs08glnhdd3110n Ronney:Artyn lesh teks ayns Wolofish 14 56222 394559 2026-10-16T16:37:57Z MacTire02 219 ronney noa 394559 wikitext text/x-wiki {{Non-Manx-language text category}} ftm4vo8zcojmgp8zf3wygcgvg0ztoi7 Ronney:Geillyn CS1 ayns Wolofish (wo) 14 56223 394560 2026-10-16T16:38:42Z MacTire02 219 ronney noa 394560 wikitext text/x-wiki {{CS1 language sources}} r2upptk2cpczj7nm3zkocg7u05li8il Pooja Hegde 0 56224 394588 2026-10-17T01:42:20Z MacTire02 219 toshiaght art 394588 wikitext text/x-wiki {{WD Kishtey Fys Dooinney | ennym = Pooja Hegde | jalloo = Pooja Hegde at Beast Telugu press meet (1).jpg | fo-heidyl = Hegde 'sy vlein 2022 | date_ruggyr = {{date_ruggyr|df=yes|1990|10|13}} | boayl_ruggyr = [[Mumbai]], Maharashtra, yn Injey }} {{Çhyndaait|1=en|2=Pooja Hegde|lhieggan=1380519562}} She ben-aghteyr Injinagh ee '''Pooja Hegde''' (ruggit er 13 Jerrey Fouyir 1990). Er y chooid smoo, t'ee cloie ayns filmyn [[scannaneaght y Teloogooish|Teloogooish]], [[scannaneaght y Hindish|Hindish]], as [[scannaneaght y Tamilish|Tamilish]]. She nane jeh ny ben-aghteyryn smoo eeckit ayns [[scannaneaght yn Injey Yiass]] t'ee,<ref name="hedgepay" /> as she fowder kiare [[Aundyryn Fillym Eddyrashoonagh yn Injey Yiass|Aundyr SIIMA]] myrane lesh kiare enmyssaght da [[Aundyryn Filmfare Yiass]]. Erreish da ren ee goaill ayrn 'sy tostyl aalid [[I Am She–Miss Universe India|Miss Universe India]] 'sy vlein 2010, ren Hegde e kied çheet-magh 'sy scannaneaght tra chloie ee 'sy fillym Tamilish ''[[Mugamoodi]]'' (2012). Hooar ee enney ayns scannaneaght y Teloogooish lesh e paartyn ayns ''[[Oka Laila Kosam]]'' as ''[[Mukunda]]'' (y daa jeu 'sy vlein 2014), as hooar ee enney s'odjey 'syn aittys jantys ''[[DJ: Duvvada Jagannadham]]'' (2017). Haink e çheet-magh Bollywood tra chloie ee ayns ''[[Mohenjo Daro (fillym)|Mohenjo Daro]]'' (2016) marish [[Hrithik Roshan]], as haink rah traghtee 'syn aittys skimmee ''[[Housefull 4]]'' (2019). Ren Hegde mooar jeh'n ennym eck ayns filmyn Teloogooish rahoil lheid as ''[[Aravinda Sametha Veera Raghava]]'' (2018), ''[[Maharshi (fillym 2019)|Maharshi]]'' (2019), ''[[Ala Vaikunthapurramuloo]]'' (2020), as ''[[Most Eligible Bachelor]]'' (2021). Lurg shen, haink kuse veg dy filmyn neurahoil, agh ren ee feddyn rah reesht 'sy fillym ''[[Retro (fillym)|Retro]]'' (2025). == Imraaghyn == {{reflist}} == Kianglaghyn magh == * {{IMDb name}} * {{Instagram}} * {{Bollywood Hungama person}} {{Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish}} {{Aundyr Chremeyderyn SIIMA da'n Ven-aghteyr Share – Teloogooish}} {{Subject bar |commons = yes |commons-search = Category:Pooja Hegde |q =yes |q-search = Pooja Hegde |d = yes |d-search = Q7228519 }} {{gurneil eaghtyrys}} {{DEFAULTSORT:Hegde, Pooja}} [[Ronney:Ruggyryn 'sy vlein 1990]] [[Ronney:Feallee vio]] [[Ronney:Aghteyryn bwoirrin Tuluagh]] [[Ronney:Aghteyryn bwoirrin Injinagh y 21d eash]] [[Ronney:Cosneyderyn tostyl aalid Injinagh]] [[Ronney:Aghteyryn ass Maharashtra]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Teloogooish]] [[Ronney:Aghteyryn bwoirrin Injinagh]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Tamilish]] [[Ronney:Aghteyryn bwoirrin ayns scanneaght y Hindish]] [[Ronney:Craishteyderyn bwoirrin Injinagh]] [[Ronney:Craishteyderyn ass Maharashtra]] [[Ronney:Feallee ass Mumbai]] [[Ronney:Cosneyderyn aundyr SIIMA]] [[Ronney:Cosneyderyn Aundyryn Teloogooish Zee Cine]] kvv7sse4tv7us8b558cik998rwdcqfr 394589 394588 2026-10-17T01:43:44Z MacTire02 219 ++ 394589 wikitext text/x-wiki {{WD Kishtey Fys Dooinney | ennym = Pooja Hegde | jalloo = Pooja Hegde at Beast Telugu press meet (1).jpg | fo-heidyl = Hegde 'sy vlein 2022 | date_ruggyr = {{date_ruggyr|df=yes|1990|10|13}} | boayl_ruggyr = [[Mumbai]], Maharashtra, yn Injey }} {{Çhyndaait|1=en|2=Pooja Hegde|lhieggan=1380519562}} She ben-aghteyr Injinagh ee '''Pooja Hegde''' (ruggit er 13 Jerrey Fouyir 1990). Er y chooid smoo, t'ee cloie ayns filmyn [[scannaneaght y Teloogooish|Teloogooish]], [[scannaneaght y Hindish|Hindish]], as [[scannaneaght y Tamilish|Tamilish]]. She nane jeh ny ben-aghteyryn smoo eeckit ayns [[scannaneaght yn Injey Yiass]] t'ee,<ref name="hedgepay">{{Cite news |last=Mathur |first=Kajol |date=13 Mean Souree 2022 |title=Nayanthara to Samantha Prabhu: Check out the 10 highest-paid South actresses right now |url=https://www.gqindia.com/entertainment/content/nayanthara-to-samantha-prabhu-check-out-10-highest-paid-south-actresses-right-now |url-status=live |archive-url=https://web.archive.org/web/20230214193137/https://www.gqindia.com/entertainment/content/nayanthara-to-samantha-prabhu-check-out-10-highest-paid-south-actresses-right-now |archive-date=14 Toshiaght Arree 2023 |access-date=19 Mee ny Nollick 2024 |work=[[GQ India]]}}</ref> as she fowder kiare [[Aundyryn Fillym Eddyrashoonagh yn Injey Yiass|Aundyr SIIMA]] myrane lesh kiare enmyssaght da [[Aundyryn Filmfare Yiass]]. Erreish da ren ee goaill ayrn 'sy tostyl aalid [[I Am She–Miss Universe India|Miss Universe India]] 'sy vlein 2010, ren Hegde e kied çheet-magh 'sy scannaneaght tra chloie ee 'sy fillym Tamilish ''[[Mugamoodi]]'' (2012). Hooar ee enney ayns scannaneaght y Teloogooish lesh e paartyn ayns ''[[Oka Laila Kosam]]'' as ''[[Mukunda]]'' (y daa jeu 'sy vlein 2014), as hooar ee enney s'odjey 'syn aittys jantys ''[[DJ: Duvvada Jagannadham]]'' (2017). Haink e çheet-magh Bollywood tra chloie ee ayns ''[[Mohenjo Daro (fillym)|Mohenjo Daro]]'' (2016) marish [[Hrithik Roshan]], as haink rah traghtee 'syn aittys skimmee ''[[Housefull 4]]'' (2019). Ren Hegde mooar jeh'n ennym eck ayns filmyn Teloogooish rahoil lheid as ''[[Aravinda Sametha Veera Raghava]]'' (2018), ''[[Maharshi (fillym 2019)|Maharshi]]'' (2019), ''[[Ala Vaikunthapurramuloo]]'' (2020), as ''[[Most Eligible Bachelor]]'' (2021). Lurg shen, haink kuse veg dy filmyn neurahoil, agh ren ee feddyn rah reesht 'sy fillym ''[[Retro (fillym)|Retro]]'' (2025). == Imraaghyn == {{reflist}} == Kianglaghyn magh == * {{IMDb name}} * {{Instagram}} * {{Bollywood Hungama person}} {{Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish}} {{Aundyr Chremeyderyn SIIMA da'n Ven-aghteyr Share – Teloogooish}} {{Subject bar |commons = yes |commons-search = Category:Pooja Hegde |q =yes |q-search = Pooja Hegde |d = yes |d-search = Q7228519 }} {{gurneil eaghtyrys}} {{DEFAULTSORT:Hegde, Pooja}} [[Ronney:Ruggyryn 'sy vlein 1990]] [[Ronney:Feallee vio]] [[Ronney:Aghteyryn bwoirrin Tuluagh]] [[Ronney:Aghteyryn bwoirrin Injinagh y 21d eash]] [[Ronney:Cosneyderyn tostyl aalid Injinagh]] [[Ronney:Aghteyryn ass Maharashtra]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Teloogooish]] [[Ronney:Aghteyryn bwoirrin Injinagh]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Tamilish]] [[Ronney:Aghteyryn bwoirrin ayns scanneaght y Hindish]] [[Ronney:Craishteyderyn bwoirrin Injinagh]] [[Ronney:Craishteyderyn ass Maharashtra]] [[Ronney:Feallee ass Mumbai]] [[Ronney:Cosneyderyn aundyr SIIMA]] [[Ronney:Cosneyderyn Aundyryn Teloogooish Zee Cine]] 6ridnpq9pixqm00gi5uqr7q717n58zr 394594 394589 2026-10-17T01:49:06Z MacTire02 219 +yrjid 394594 wikitext text/x-wiki {{WD Kishtey Fys Dooinney | ennym = Pooja Hegde | jalloo = Pooja Hegde at Beast Telugu press meet (1).jpg | fo-heidyl = Hegde 'sy vlein 2022 | date_ruggyr = {{date_ruggyr|df=yes|1990|10|13}} | boayl_ruggyr = [[Mumbai]], Maharashtra, yn Injey |yrjid = {{yrjid|m=1.75}} }} {{Çhyndaait|1=en|2=Pooja Hegde|lhieggan=1380519562}} She ben-aghteyr Injinagh ee '''Pooja Hegde''' (ruggit er 13 Jerrey Fouyir 1990). Er y chooid smoo, t'ee cloie ayns filmyn [[scannaneaght y Teloogooish|Teloogooish]], [[scannaneaght y Hindish|Hindish]], as [[scannaneaght y Tamilish|Tamilish]]. She nane jeh ny ben-aghteyryn smoo eeckit ayns [[scannaneaght yn Injey Yiass]] t'ee,<ref name="hedgepay">{{Cite news |last=Mathur |first=Kajol |date=13 Mean Souree 2022 |title=Nayanthara to Samantha Prabhu: Check out the 10 highest-paid South actresses right now |url=https://www.gqindia.com/entertainment/content/nayanthara-to-samantha-prabhu-check-out-10-highest-paid-south-actresses-right-now |url-status=live |archive-url=https://web.archive.org/web/20230214193137/https://www.gqindia.com/entertainment/content/nayanthara-to-samantha-prabhu-check-out-10-highest-paid-south-actresses-right-now |archive-date=14 Toshiaght Arree 2023 |access-date=19 Mee ny Nollick 2024 |work=[[GQ India]]}}</ref> as she fowder kiare [[Aundyryn Fillym Eddyrashoonagh yn Injey Yiass|Aundyr SIIMA]] myrane lesh kiare enmyssaght da [[Aundyryn Filmfare Yiass]]. Erreish da ren ee goaill ayrn 'sy tostyl aalid [[I Am She–Miss Universe India|Miss Universe India]] 'sy vlein 2010, ren Hegde e kied çheet-magh 'sy scannaneaght tra chloie ee 'sy fillym Tamilish ''[[Mugamoodi]]'' (2012). Hooar ee enney ayns scannaneaght y Teloogooish lesh e paartyn ayns ''[[Oka Laila Kosam]]'' as ''[[Mukunda]]'' (y daa jeu 'sy vlein 2014), as hooar ee enney s'odjey 'syn aittys jantys ''[[DJ: Duvvada Jagannadham]]'' (2017). Haink e çheet-magh Bollywood tra chloie ee ayns ''[[Mohenjo Daro (fillym)|Mohenjo Daro]]'' (2016) marish [[Hrithik Roshan]], as haink rah traghtee 'syn aittys skimmee ''[[Housefull 4]]'' (2019). Ren Hegde mooar jeh'n ennym eck ayns filmyn Teloogooish rahoil lheid as ''[[Aravinda Sametha Veera Raghava]]'' (2018), ''[[Maharshi (fillym 2019)|Maharshi]]'' (2019), ''[[Ala Vaikunthapurramuloo]]'' (2020), as ''[[Most Eligible Bachelor]]'' (2021). Lurg shen, haink kuse veg dy filmyn neurahoil, agh ren ee feddyn rah reesht 'sy fillym ''[[Retro (fillym)|Retro]]'' (2025). == Imraaghyn == {{reflist}} == Kianglaghyn magh == * {{IMDb name}} * {{Instagram}} * {{Bollywood Hungama person}} {{Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish}} {{Aundyr Chremeyderyn SIIMA da'n Ven-aghteyr Share – Teloogooish}} {{Subject bar |commons = yes |commons-search = Category:Pooja Hegde |q =yes |q-search = Pooja Hegde |d = yes |d-search = Q7228519 }} {{gurneil eaghtyrys}} {{DEFAULTSORT:Hegde, Pooja}} [[Ronney:Ruggyryn 'sy vlein 1990]] [[Ronney:Feallee vio]] [[Ronney:Aghteyryn bwoirrin Tuluagh]] [[Ronney:Aghteyryn bwoirrin Injinagh y 21d eash]] [[Ronney:Cosneyderyn tostyl aalid Injinagh]] [[Ronney:Aghteyryn ass Maharashtra]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Teloogooish]] [[Ronney:Aghteyryn bwoirrin Injinagh]] [[Ronney:Aghteyryn bwoirrin ayns scannaneaght y Tamilish]] [[Ronney:Aghteyryn bwoirrin ayns scanneaght y Hindish]] [[Ronney:Craishteyderyn bwoirrin Injinagh]] [[Ronney:Craishteyderyn ass Maharashtra]] [[Ronney:Feallee ass Mumbai]] [[Ronney:Cosneyderyn aundyr SIIMA]] [[Ronney:Cosneyderyn Aundyryn Teloogooish Zee Cine]] r83pywlutkcteo9o7fnn4u5t58k0y1m Clowan:Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish 10 56225 394590 2026-10-17T01:44:29Z MacTire02 219 clowan noa 394590 wikitext text/x-wiki {{navbox | name = Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish | title = [[Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish]] | state = {{{state|autocollapse}}} | listclass = hlist | group1 = 2011–2020 | list1 = * [[Nayanthara]] (2011) * [[Shruti Haasan]] (2012) * [[Samantha Ruth Prabhu]] (2013) * [[Shruti Haasan]] (2014) * [[Shruti Haasan]] (2015) * [[Rakul Preet Singh]] (2016) * [[Kajal Aggarwal]] (2017) * [[Keerthy Suresh]] (2018) * [[Samantha Ruth Prabhu]] (2019) * [[Pooja Hegde]] (2020) | group2 = 2021–jiu | list2 = * [[Pooja Hegde]] (2021) * [[Sreeleela]] (2022) * [[Keerthy Suresh]] (2023) * [[Rashmika Mandanna]] (2024) }}<noinclude> {{collapsible option}} [[Category:South Indian International Movie Awards navigational boxes|Telugu Actress]] </noinclude> 23ngwc1bce2g3k88agaqgiyaf46jyz7 394591 394590 2026-10-17T01:44:51Z MacTire02 219 ronney elley 394591 wikitext text/x-wiki {{navbox | name = Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish | title = [[Aundyr SIIMA da'n Ven-aghteyr Share – Teloogooish]] | state = {{{state|autocollapse}}} | listclass = hlist | group1 = 2011–2020 | list1 = * [[Nayanthara]] (2011) * [[Shruti Haasan]] (2012) * [[Samantha Ruth Prabhu]] (2013) * [[Shruti Haasan]] (2014) * [[Shruti Haasan]] (2015) * [[Rakul Preet Singh]] (2016) * [[Kajal Aggarwal]] (2017) * [[Keerthy Suresh]] (2018) * [[Samantha Ruth Prabhu]] (2019) * [[Pooja Hegde]] (2020) | group2 = 2021–jiu | list2 = * [[Pooja Hegde]] (2021) * [[Sreeleela]] (2022) * [[Keerthy Suresh]] (2023) * [[Rashmika Mandanna]] (2024) }}<noinclude> {{collapsible option}} [[Ronney:Kishtaghyn stiuree bentyn rish SIIMA|Teloogooish]] </noinclude> 0faxzo7bjhksqu3vih2im6qdv2leg15 Clowan:Aundyr Chremeyderyn SIIMA da'n Ven-aghteyr Share – Teloogooish 10 56226 394592 2026-10-17T01:46:33Z MacTire02 219 clowan noa 394592 wikitext text/x-wiki {{navbox | name = Aundyr Chremeyderyn SIIMA da'n Ven-aghteyr Share – Teloogooish | title = [[Aundyr Chremeyderyn SIIMA da'n Ven-aghteyr Share – Teloogooish]] | state = {{{state|autocollapse}}} | listclass = hlist | group1 = 2011–2020 | list1 = * [[Hansika Motwani]] (2011) * [[Nayanthara]] (2012) * [[Tamannaah Bhatia]] (2013) * [[Samantha Ruth Prabhu]] (2014) * [[Anushka Shetty]] (2015) * {{ndash}} (2016) * [[Ritika Singh]] (2017) * [[Samantha Ruth Prabhu]] (2018) * [[Rashmika Mandanna]] (2019) * [[Aishwarya Rajesh]] (2020) | group2 = 2021–jiu | list2 = * [[Pooja Hegde]] (2021) * [[Mrunal Thakur]] (2022) * [[Mrunal Thakur]] (2023) * [[Meenakshi Chaudhary]] (2024) * [[Aishwarya Rajesh]] (2025) }}<noinclude> {{collapsible option}} [[Ronney:Kishtaghyn stiuree bentyn rish SIIMA|Chremeyderyn Teloogooish]] </noinclude> 7vkutqojv712f2bujkkreghwc5kxcne Ronney:Artyn lesh teks ayns Creeole Mwirrishagh 14 56227 394614 2026-10-17T03:46:39Z MacTire02 219 ronney noa 394614 wikitext text/x-wiki {{Non-Manx-language text category}} ftm4vo8zcojmgp8zf3wygcgvg0ztoi7 Ronney:Artyn lesh teks ayns Sangoish 14 56228 394618 2026-10-17T04:02:27Z MacTire02 219 ronney noa 394618 wikitext text/x-wiki {{Non-Manx-language text category}} ftm4vo8zcojmgp8zf3wygcgvg0ztoi7 Ronney:Yn Tomaalee 14 56229 394624 2026-10-17T04:44:36Z MacTire02 219 ronney noa 394624 wikitext text/x-wiki {{Commons category|Somaliland|y Tomaalee}} {{DEFAULTSORT:Tomaalee, yn}} [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn Chayrn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Arganeyssyn thallooin y Tomaal]] [[Ronney:Ardjyn De facto yn Tomaal]] 34a7ctvb2uq52uk79mrno0pg3771t0l 394625 394624 2026-10-17T04:45:02Z MacTire02 219 ++ 394625 wikitext text/x-wiki {{Commons category|Somaliland|y Tomaalee}} {{DEFAULTSORT:Tomaalee, yn}} [[Ronney:Çheeraghyn yn Affrick Hiar]] [[Ronney:Çheeraghyn Chayrn yn Affrick]] [[Ronney:Çheeraghyn yn Affrick]] [[Ronney:Arganeyssyn thallooin y Tomaal]] [[Ronney:Ardjyn de facto yn Tomaal]] q3rbkfly2fu2r3uwchyv3bxbvvjnkjf Ronney:Ardjyn de facto yn Tomaal 14 56230 394626 2026-10-17T04:45:34Z MacTire02 219 ronney noa 394626 wikitext text/x-wiki [[Ronney:Ardjyn y Tomaal|*]] iqgxbt54ki85y86qyejuagl9h6i8dix Ronney:Ardjyn y Tomaal 14 56231 394627 2026-10-17T04:46:53Z MacTire02 219 ronney noa 394627 wikitext text/x-wiki {{Commons category|Regions of Somalia|Ardjyn y Tomaal}} {{Cat main|Ardjyn y Tomaal}} [[Ronney:Aarheynnyn y Tomaal]] [[Ronney:Rheynnyn reiragh jeh'n chied cheim rere çheer|Tomaal]] [[Ronney:Ardjyn yn Affrick rere çheer|Tomaal]] dxua6hyri44r8kel1xrehkz5ehpb3vo Ronney:Aarheynnyn y Tomaal 14 56232 394628 2026-10-17T04:48:09Z MacTire02 219 ronney noa 394628 wikitext text/x-wiki {{Commons category|Subdivisions of Somalia|Aarheynnyn y Tomaal}} [[Ronney:Rheynnyn reiragh rere çheer|Tomaal]] [[Ronney:Çheer-oaylleeaght y Tomaal]] [[Ronney:Rheynnyn reiragh 'syn Affrick|Tomaal]] 7qc3i06eg6w3j6t5f0pf88f8kglr7od Ronney:Çheer-oaylleeaght y Tomaal 14 56233 394629 2026-10-17T04:49:35Z MacTire02 219 ronney noa 394629 wikitext text/x-wiki {{Commons cat|Geography of Somalia|Çheer-oaylleeaght y Tomaal}} {{cat main}} {{DEFAULTSORT:Tomaal}} [[Ronney:Yn Tomaal|Cheer-oaylleeaght]] [[Ronney:Çheer-oaylleeaght yn Affrick rere çheer]] [[Ronney:Çheer-oaylleeaght yn Affrick Hiar]] [[Ronney:Çheer-oaylleeaght rere çheer]] 2zmhu9dzx4ftzj0wv7g4bqsulrhvsxt Ronney:Geillyn CS1 ayns Arabish (ar) 14 56234 394634 2026-10-17T05:38:12Z MacTire02 219 ronney noa 394634 wikitext text/x-wiki {{CS1 language sources}} r2upptk2cpczj7nm3zkocg7u05li8il Ronney:Pobblaght Gheynlagh Arabagh y Tahara 14 56235 394636 2026-10-17T05:41:14Z MacTire02 219 ronney noa 394636 wikitext text/x-wiki {{Commons category|Sahrawi Arab Democratic Republic|{{PAGENAME}}}} {{Cat main}} {{DEFAULTSORT:Tahara, Pobblaght Gheynlagh Arabagh}} [[Ronney:Çheeraghyn yn Affrick Hwoaie]] [[Ronney:Yn Sahara Heear| ]] [[Ronney:Çheeraghyn Maghrebagh]] [[Ronney:Pobblaghtyn Arabagh]] [[Ronney:Çheeraghyn-oltey yn Unnaneys Affrickagh]] [[Ronney:Steatyn soshiallagh]] t9o0htj2thexrpwgu7xq2ahbwqzk1qu