text: Category:Northern Puebla Nahuatl multiword terms


text: Category:Proto-Chatino multiword terms

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Category:Proto-Chatino multiword terms


text: Category:Proto-Norse feminine nouns

title: Category:Proto-Norse feminine nouns


text: Category:San Miguel el Grande Mixtec multiword terms


text: Category:West Frisian nouns with multiple genders


text: Category:Alemannic German nouns with multiple genders


text: Category:Blackfoot multiword terms

title: Category:Blackfoot multiword terms


text: Category:Breton neuter nouns

title: Category:Breton neuter nouns


text: Category:Chicahuaxtla Triqui multiword terms


text: Category:Chuukese multiword terms

title: Category:Chuukese multiword terms


text: Category:Dakota multiword terms

title: Category:Dakota multiword terms


text: Category:Dena'ina multiword terms

title: Category:Dena'ina multiword terms


text: Category:Dolgan multiword terms

title: Category:Dolgan multiword terms


text: Category:Gwich'in multiword terms

title: Category:Gwich'in multiword terms


text: Category:Hausa nouns with multiple genders


text: Category:Ingush class vb nouns

title: Category:Ingush class vb nouns


text: Category:Jamamadí multiword terms

title: Category:Jamamadí multiword terms


text: Category:Kagayanen multiword terms

title: Category:Kagayanen multiword terms


text: Category:Kichwa multiword terms

title: Category:Kichwa multiword terms


text: Category:Low German multiword terms

title: Category:Low German multiword terms


text:
Hoatschlach

Noun

 * 1) heart attack, heart failure, cardiac arrest

title: Hoatschlach


text: Category:Khoekhoe masculine nouns

title: Category:Khoekhoe masculine nouns


text: Category:Old Occitan multiword terms

title: Category:Old Occitan multiword terms


text: Category:Plains Cree multiword terms

title: Category:Plains Cree multiword terms


text: Category:Proto-Celtic nouns with multiple genders


text: Category:Proto-Germanic nouns with multiple genders


text: Category:Proto-Nubian multiword terms

title: Category:Proto-Nubian multiword terms


text: Category:Santali multiword terms

title: Category:Santali multiword terms


text: Category:Serbo-Croatian biaspectual verbs


text: Category:Slovincian nouns by gender

title: Category:Slovincian nouns by gender


text: Category:Southeastern Tepehuan multiword terms


text: Category:Totontepec Mixe multiword terms


text: Category:ain:Colors

title: Category:ain:Colors


text: Category:Abinomn multiword terms

title: Category:Abinomn multiword terms


text: Category:Acehnese multiword terms

title: Category:Acehnese multiword terms


text: Category:Assamese neuter nouns

title: Category:Assamese neuter nouns


text: Category:Bilaspuri adjectives

title: Category:Bilaspuri adjectives


text: Category:Bilaspuri adverbs

title: Category:Bilaspuri adverbs


text:
szczanie

Etymology
From.

title: szczanie


text: Category:Bilaspuri terms derived from Khasa Prakrit


text: Category:Bilaspuri terms derived from Proto-Indo-Aryan


text: Category:Bilaspuri terms derived from Proto-Indo-European


text: Category:Bilaspuri terms derived from Proto-Indo-Iranian


text: Category:Bilaspuri terms inherited from Khasa Prakrit


text: Category:Bilaspuri terms inherited from Proto-Indo-Aryan


text: Category:Bilaspuri terms inherited from Proto-Indo-European


text: Category:Bilaspuri terms inherited from Proto-Indo-Iranian


text: Category:Bouyei multiword terms

title: Category:Bouyei multiword terms


text: Category:Breton nouns with multiple genders


text: Category:Catawba multiword terms

title: Category:Catawba multiword terms


text: Category:Central Melanau multiword terms


text: Category:Chakma nouns by gender

title: Category:Chakma nouns by gender


text: Category:Chimwiini nouns by class

title: Category:Chimwiini nouns by class


text: Category:Coast Miwok multiword terms

title: Category:Coast Miwok multiword terms


text: Category:Comanche multiword terms

title: Category:Comanche multiword terms


text: Category:Desano masculine nouns

title: Category:Desano masculine nouns


text: Category:Eastern Mari multiword terms

title: Category:Eastern Mari multiword terms


text: Category:English terms borrowed from Central Kurdish


text: Category:Gallurese nouns by gender

title: Category:Gallurese nouns by gender


text: Category:Gutnish feminine nouns

title: Category:Gutnish feminine nouns


text: Category:Hebrew given names from Afroasiatic languages


text: Category:Huave multiword terms

title: Category:Huave multiword terms


text: Category:Indonesian feminine nouns

title: Category:Indonesian feminine nouns


text: Category:Ingush class jb nouns

title: Category:Ingush class jb nouns


text: Category:Isthmus Mixe multiword terms

title: Category:Isthmus Mixe multiword terms


text: Category:Kadiwéu nouns by gender

title: Category:Kadiwéu nouns by gender


text: Category:Kamba class 4 nouns

title: Category:Kamba class 4 nouns


text: Category:Kamba class 7 nouns

title: Category:Kamba class 7 nouns


text: Category:Kamba class 9 nouns

title: Category:Kamba class 9 nouns


text: Category:Kannada diacritical marks

title: Category:Kannada diacritical marks


text: Category:Klingon multiword terms

title: Category:Klingon multiword terms


text: Category:Kom (Cameroon) multiword terms

title: Category:Kom (Cameroon) multiword terms


text: Category:Komi-Permyak multiword terms

title: Category:Komi-Permyak multiword terms


text: Category:Komi-Zyrian multiword terms

title: Category:Komi-Zyrian multiword terms


text: Category:Krio multiword terms

title: Category:Krio multiword terms


text: Category:got:Condiments

title: Category:got:Condiments


text: Category:Laboya multiword terms

title: Category:Laboya multiword terms


text:
siknięcie

Etymology
From.

title: siknięcie


text: Category:Lacandon multiword terms

title: Category:Lacandon multiword terms


text: Category:Latvian nouns with multiple genders


text: Category:Ligurian pluralia tantum

title: Category:Ligurian pluralia tantum


text: Category:Limos Kalinga multiword terms

title: Category:Limos Kalinga multiword terms


text: Category:Luxembourgish nouns with multiple genders


text: Category:Malay feminine nouns

title: Category:Malay feminine nouns


text: Category:Maltese nouns with multiple genders


text: Category:Marathi nouns with multiple genders


text: Category:Mecayapan Nahuatl multiword terms


text: Category:Michif feminine nouns

title: Category:Michif feminine nouns


text: Category:Middle Armenian multiword terms


text: Category:Middle Low German nouns with multiple genders


text: Category:Middle Welsh nouns with multiple genders


text: Category:Miskito multiword terms

title: Category:Miskito multiword terms


text: Category:Mwani class 10 nouns

title: Category:Mwani class 10 nouns


text: Category:Norman nouns with multiple genders


text:
Hocklinkj

Noun

 * 1) heifer

title: Hocklinkj


text: Category:Northern Kurdish given names from Indo-Iranian languages


text: Category:Northern Kurdish nouns with multiple genders


text: Category:Northern Tepehuan multiword terms


text: Category:Old High German nouns with multiple genders


text: Category:Old Lithuanian nouns by gender

title: Category:Old Lithuanian nouns by gender


text: Category:Old Marathi nouns with multiple genders


text: Category:Old Norse nouns with multiple genders


text: Category:Old Occitan nouns with multiple genders


text: Category:Old Polish pluralia tantum

title: Category:Old Polish pluralia tantum


text: Category:Old Saxon nouns with multiple genders


text: Category:Pangwali nouns by gender

title: Category:Pangwali nouns by gender


text: Category:Pontic Greek neuter nouns

title: Category:Pontic Greek neuter nouns


text: Category:Proto-Scythian neuter nouns

title: Category:Proto-Scythian neuter nouns


text: Category:Proto-Shughni-Yazghulami-Munji masculine nouns


text: Category:Proto-Ta-Arawak multiword terms


text: Category:Proto-Yeniseian entries without References header


text: Category:Proto-Yeniseian entries without References or Further reading header


text:
wszczęcie

Etymology
From.

title: wszczęcie


text: Category:Proto-Yeniseian pronouns

title: Category:Proto-Yeniseian pronouns


text: Category:Sabu multiword terms

title: Category:Sabu multiword terms


text: Category:Saurashtra terms inherited from Sanskrit


text: Category:Saurashtra terms inherited from Sauraseni Prakrit


text: Category:Saraiki nouns by gender

title: Category:Saraiki nouns by gender


text: Category:Silesian imperfective verbs

title: Category:Silesian imperfective verbs


text: Category:South Levantine Arabic masculine nouns


text: Category:Tachawit feminine nouns

title: Category:Tachawit feminine nouns


text: Category:Talossan nouns by gender

title: Category:Talossan nouns by gender


text: Category:Tangam terms by etymology

title: Category:Tangam terms by etymology


text:
Hofkje

Noun

 * 1) hawk

title: Hofkje


text: Category:Teribe multiword terms

title: Category:Teribe multiword terms


text: Category:Tetelcingo Nahuatl multiword terms


text: Category:Ugaritic multiword terms

title: Category:Ugaritic multiword terms


text: Category:Urdu nouns with multiple genders


text: Category:Wari' feminine nouns

title: Category:Wari' feminine nouns


text: Category:Wari' masculine nouns

title: Category:Wari' masculine nouns


text:
wszczynanie

Etymology
From.

title: wszczynanie


text: Category:ar:Vladimir Oblast

title: Category:ar:Vladimir Oblast


text: Category:co:Phonology

title: Category:co:Phonology


text: Category:en:Towns in Sverdlovsk Oblast

title: Category:en:Towns in Sverdlovsk Oblast


text: Category:gor:Sciences

title: Category:gor:Sciences


text: Category:ja:Nephrology

title: Category:ja:Nephrology


text: Category:mos:Political subdivisions

title: Category:mos:Political subdivisions


text: Category:phl:Anatomy

title: Category:phl:Anatomy


text: Category:sit-tgm:Sciences

title: Category:sit-tgm:Sciences


text: Category:th:Vladimir Oblast

title: Category:th:Vladimir Oblast


text:
ଦୀର୍ଘ

Etymology
From Sanskrit दीर्घ.

Adjective

 * 1) long (in time)
 * 2) tall
 * 3) high, lofty
 * 4) excessive
 * 5) extensive, spacious
 * 6) heavy
 * 7) great, large, big
 * 8) deep
 * 9) long vowel
 * 10) the names of the 4th, 6th, 7th, and 8th, signs of the zodiac (lion, virgin, balance and scorpion.)
 * 11) camel
 * 12) distant future, the end, the long run
 * 13) length

title: ଦୀର୍ଘ


text: Category:zh:Vladimir Oblast

title: Category:zh:Vladimir Oblast


text: Category:Aasax multiword terms

title: Category:Aasax multiword terms


text: Category:Abenaki animate nouns

title: Category:Abenaki animate nouns


text: Category:Aequian nouns by gender

title: Category:Aequian nouns by gender


text: Category:Äiwoo multiword terms

title: Category:Äiwoo multiword terms


text: Category:Akkadian multiword terms

title: Category:Akkadian multiword terms


text: Category:Alviri-Vidari feminine nouns

title: Category:Alviri-Vidari feminine nouns


text: Category:Andalusian Arabic feminine nouns


text: Category:Angika nouns by gender

title: Category:Angika nouns by gender


text: Category:Arabic given names from Russian


text: Category:Arabic male given names from Slavic languages


text: Category:Assan multiword terms

title: Category:Assan multiword terms


text: Category:Assyrian Neo-Aramaic terms borrowed from Northern Kurdish


text: Category:Assyrian Neo-Aramaic terms derived from Northern Kurdish


text: Category:Avestan nouns with multiple genders


text: Category:Babole class 6 nouns

title: Category:Babole class 6 nouns


text: Category:Baharna Arabic masculine nouns

title: Category:Baharna Arabic masculine nouns


text: Category:Balinese templates

title: Category:Balinese templates


text: Category:Balinese terms infixed with -el-


text: Category:Burmbar multiword terms

title: Category:Burmbar multiword terms


text: Category:Banjarese multiword terms

title: Category:Banjarese multiword terms


text: Category:Barasana multiword terms

title: Category:Barasana multiword terms


text: Category:Basque terms attributed to a specific source


text: Category:Bats class dd nouns

title: Category:Bats class dd nouns


text: Category:Beja nouns by gender

title: Category:Beja nouns by gender


text: Category:Bemba nouns by class

title: Category:Bemba nouns by class


text: Category:Bende class 1 nouns

title: Category:Bende class 1 nouns


text: Category:Bende class 3 nouns

title: Category:Bende class 3 nouns


text: Category:Bende class 5 nouns

title: Category:Bende class 5 nouns


text: Category:Bende class 9 nouns

title: Category:Bende class 9 nouns


text: Category:Bidiyo pluralia tantum

title: Category:Bidiyo pluralia tantum


text: Category:Bilaspuri nouns

title: Category:Bilaspuri nouns


text: Category:Bodo (India) masculine nouns

title: Category:Bodo (India) masculine nouns


text: Category:Braj nouns with multiple genders


text: Category:Bribri nouns by gender

title: Category:Bribri nouns by gender


text: Category:Burushaski multiword terms

title: Category:Burushaski multiword terms


text: Category:Cappadocian Greek masculine nouns


text: Category:Cèmuhî multiword terms

title: Category:Cèmuhî multiword terms


text: Category:Central Atlas Tamazight multiword terms


text: Category:Central Franconian nouns with multiple genders


text: Category:Chagatai multiword terms

title: Category:Chagatai multiword terms


text:
Category:Chechen class 6 nouns

Also known as class bd.

title: Category:Chechen class 6 nouns


text: Category:Chechen class dj nouns

title: Category:Chechen class dj nouns


text: Category:Cheyenne multiword terms

title: Category:Cheyenne multiword terms


text: Category:Chinali terms derived from Sanskrit


text: Category:Chinese terms attributed to a specific source


text: Category:Chiquihuitlán Mazatec multiword terms


text: Category:Chukchi multiword terms

title: Category:Chukchi multiword terms


text: Category:Cia-Cia multiword terms

title: Category:Cia-Cia multiword terms


text: Category:Cinta Larga multiword terms

title: Category:Cinta Larga multiword terms


text: Category:Coatlán Mixe multiword terms

title: Category:Coatlán Mixe multiword terms


text:
śmierdzenie

Etymology
From.

title: śmierdzenie


text: Category:Comox multiword terms

title: Category:Comox multiword terms


text: Category:Coptic nouns with multiple genders


text: Category:Crimean Gothic pluralia tantum

title: Category:Crimean Gothic pluralia tantum


text: Category:Dalmatian pluralia tantum

title: Category:Dalmatian pluralia tantum


text: Category:Danish terms attributed to a specific source


text: Category:Danish terms borrowed from Middle English


text: Category:Dixon Reef multiword terms

title: Category:Dixon Reef multiword terms


text: Category:Dutch Low Saxon pluralia tantum


text: Category:Dutch terms borrowed from Belarusian


text: Category:Eastern Huasteca Nahuatl multiword terms


text: Category:Eblaite nouns by gender

title: Category:Eblaite nouns by gender


text: Category:Egyptian nouns with multiple genders


text: Category:Egyptian terms prefixed with j-


text: Category:English terms borrowed from Caribbean Hindustani


text: Category:English terms derived from Caribbean Hindustani


text: Category:English terms derived from the Proto-Indo-European word *péh₂wr̥


text: Category:English terms prefixed with coxa-


text: Category:English terms prefixed with noxa-


text: Category:Eshtehardi nouns by gender

title: Category:Eshtehardi nouns by gender


text: Category:Estonian terms attributed to a specific source


text: Category:Extremaduran multiword terms

title: Category:Extremaduran multiword terms


text: Category:Farefare terms derived from Atlantic-Congo languages


text: Category:Farefare terms derived from Oti-Volta languages


text: Category:Farefare terms derived from Semitic languages


text: Category:Faroese terms derived from Northern Kurdish


text: Category:Fijian multiword terms

title: Category:Fijian multiword terms


text: Category:Finnish terms derived from substrate languages


text: Category:Francisco León Zoque multiword terms


text: Category:French learned borrowings from Medieval Latin


text: Category:French terms derived from the Proto-Indo-European root *h₂eǵ-


text: Category:French terms prefixed with réticul-


text: Category:Galician letters

title: Category:Galician letters


text: Category:Galician particles

title: Category:Galician particles


text: Category:Georgian surnames from Kartvelian languages


text: Category:Georgian terms derived from Georgian


text: Category:German Low German nouns with multiple genders


text: Category:German terms borrowed from Central Kurdish


text: Category:German terms derived from Central Kurdish


text:
bujanie

Etymology
From.

title: bujanie


text: Category:Gujarati learned borrowings from Pali


text: Category:Gulf Arabic nouns with multiple genders


text: Category:Gullah terms derived from Volta-Niger languages


text: Category:Haryanvi nouns by gender

title: Category:Haryanvi nouns by gender


text: Category:Haya class 6 nouns

title: Category:Haya class 6 nouns


text: Category:Hebrew terms attributed to a specific source


text: Category:Hebrew terms derived from Old Norse


text: Category:Herero class 6 nouns

title: Category:Herero class 6 nouns


text:
bujnięcie

Etymology
From.

title: bujnięcie


text: Category:Hindi terms attributed to a specific source


text: Category:Hittite masculine nouns

title: Category:Hittite masculine nouns


text: Category:Hulaulá nouns by gender

title: Category:Hulaulá nouns by gender


text: Category:Hutterisch nouns by gender

title: Category:Hutterisch nouns by gender


text: Category:Icelandic terms attributed to a specific source


text: Category:Ilocano multiword terms

title: Category:Ilocano multiword terms


text: Category:Inari Sami multiword terms

title: Category:Inari Sami multiword terms


text: Category:Indonesian learned borrowings from New Latin


text: Category:Indonesian masculine nouns

title: Category:Indonesian masculine nouns


text: Category:Indonesian terms attributed to a specific source


text: Category:Indonesian terms borrowed from New Latin


text: Category:Indonesian terms derived from Koine Greek


text: Category:Indonesian terms derived from the Proto-Indo-European root *seh₁-


text: Category:Ingush class d nouns

title: Category:Ingush class d nouns


text: Category:Ingush class jj nouns

title: Category:Ingush class jj nouns


text: Category:Iraqi Arabic multiword terms

title: Category:Iraqi Arabic multiword terms


text: Category:Irish terms derived from Northern Kurdish


text: Category:Isthmus Zapotec multiword terms


text: Category:Jakaltek multiword terms

title: Category:Jakaltek multiword terms


text:
bzyczenie

Etymology
From.

title: bzyczenie


text: Category:Jamaican Creole terms derived from Ta-Arawakan languages


text:
Howenoabeida

Noun

 * 1) longshoreman

title: Howenoabeida


text: Category:Jamamadí feminine nouns

title: Category:Jamamadí feminine nouns


text: Category:Japanese kanji read as されぼね

title: Category:Japanese kanji read as されぼね


text: Category:Japanese kanji read as ちゃお

title: Category:Japanese kanji read as ちゃお


text: Category:Japanese kanji with historical reading くゑい


text: Category:Japanese kanji with on reading ちゃお


text:
bzykanie

Etymology
From.

title: bzykanie


text: Category:Japanese terms spelled with 撈

title: Category:Japanese terms spelled with 撈


text: 持枪权

title: 持枪权


text: 拥枪权

title: 拥枪权


text:
User:Earslap

I am parsing English Wiktionary to create a comprehensive machine readable dictionary of sorts. While doing so, I'm trying to (manually) fix the actionable template / heading mistakes as my software trips over / reports the unexpected.

Find me at https://earslap.com if needed.

title: User:Earslap


text: Category:Japanese terms spelled with 鏑

title: Category:Japanese terms spelled with 鏑


text: Category:Jassic multiword terms

title: Category:Jassic multiword terms


text: Category:Jaunsari appendices

title: Category:Jaunsari appendices


text: Category:Javanese terms derived from Prakrit languages


text: Category:Jersey Dutch nouns by gender

title: Category:Jersey Dutch nouns by gender


text: Category:Jersey Dutch terms derived from Frankish


text:
ruchanie

Etymology
From.

title: ruchanie


text: Category:Judeo-Italian nouns by gender

title: Category:Judeo-Italian nouns by gender


text: Category:Jutish common-gender nouns

title: Category:Jutish common-gender nouns


text: Category:K'iche' multiword terms

title: Category:K'iche' multiword terms


text: Category:Kabyle multiword terms

title: Category:Kabyle multiword terms


text: Category:Kaingang adjectives

title: Category:Kaingang adjectives


text: Category:Kamba multiword terms

title: Category:Kamba multiword terms


text: Category:Kamkata-viri feminine nouns

title: Category:Kamkata-viri feminine nouns


text: Category:Kanakanabu multiword terms

title: Category:Kanakanabu multiword terms


text: Category:Kaqchikel multiword terms

title: Category:Kaqchikel multiword terms


text: Category:Kasem terms derived from Kwa languages


text: Category:Ket feminine nouns

title: Category:Ket feminine nouns


text: Category:Ket masculine nouns

title: Category:Ket masculine nouns


text: Category:Ket multiword terms

title: Category:Ket multiword terms


text: Category:Ket nouns by gender

title: Category:Ket nouns by gender


text: Category:Kiliwa multiword terms

title: Category:Kiliwa multiword terms


text: Category:Kongo nouns by class

title: Category:Kongo nouns by class


text: Category:Konkani terms derived from the Proto-Indo-European root *h₃reǵ-


text: Category:Korean terms derived from Khitan


text: Category:Kwanyama class 6 nouns

title: Category:Kwanyama class 6 nouns


text: Category:Lahu multiword terms

title: Category:Lahu multiword terms


text: Category:Lak class 4 nouns

title: Category:Lak class 4 nouns


text: Category:Lak nouns by class

title: Category:Lak nouns by class


text: Category:Lambadi masculine nouns

title: Category:Lambadi masculine nouns


text: Category:Latgalian nouns with multiple genders


text:
Ofkot

Noun

 * 1) attorney, lawyer, barrister

title: Ofkot


text: Category:Latin terms attributed to a specific source


text: Category:Latvian terms attributed to a specific source


text: Category:Laz multiword terms

title: Category:Laz multiword terms


text: Category:Lepontic masculine nouns

title: Category:Lepontic masculine nouns


text:
wpierdolenie

Etymology
From.

title: wpierdolenie


text: Category:Lithuanian common-gender nouns

title: Category:Lithuanian common-gender nouns


text: Category:Logooli nouns by class

title: Category:Logooli nouns by class


text: Category:Lotud multiword terms

title: Category:Lotud multiword terms


text: Category:Lubuagan Kalinga multiword terms


text: Category:Luganda class 11 nouns

title: Category:Luganda class 11 nouns


text: Category:Luganda class 7 nouns

title: Category:Luganda class 7 nouns


text: Category:Luhya class 6 nouns

title: Category:Luhya class 6 nouns


text: Category:Luwian nouns by gender

title: Category:Luwian nouns by gender


text:
wpierdalanie

Etymology
From.

title: wpierdalanie


text: Category:Malay terms infixed with -em-

title: Category:Malay terms infixed with -em-


text: Category:Manao multiword terms

title: Category:Manao multiword terms


text: Category:Marathi terms derived from the Proto-Indo-European root *h₃reǵ-


text: Category:Masaba nouns by class

title: Category:Masaba nouns by class


text: Category:Masaba pluralia tantum

title: Category:Masaba pluralia tantum


text: Category:Miami animate nouns

title: Category:Miami animate nouns


text: Category:Michif nouns by gender

title: Category:Michif nouns by gender


text: Category:Middle English nouns by gender

title: Category:Middle English nouns by gender


text: Category:Middle Irish nouns with multiple genders


text:
wpieprzenie

Etymology
From.

title: wpieprzenie


text: Category:Mingrelian multiword terms

title: Category:Mingrelian multiword terms


text: Category:Mogholi terms derived from Indo-European languages


text: Category:Moore terms derived from Afroasiatic languages


text: Category:Moore terms derived from Italic languages


text: Category:Moore terms derived from West Semitic languages


text: Category:Mycenaean Greek names

title: Category:Mycenaean Greek names


text:
wpieprzanie

Etymology
From.

title: wpieprzanie


text: Category:Nambya class 9 nouns

title: Category:Nambya class 9 nouns


text: Category:Navarro-Aragonese feminine nouns


text: Category:Ndoe multiword terms

title: Category:Ndoe multiword terms


text: Category:Newar nouns by gender

title: Category:Newar nouns by gender


text: Category:Northern Kurdish male given names from Indo-European languages


text: Category:Northern Kurdish pluralia tantum


text: Category:Northern Kurdish pro-forms

title: Category:Northern Kurdish pro-forms


text: Category:Northern Paiute multiword terms


text: Category:Northern Sotho class 7 nouns

title: Category:Northern Sotho class 7 nouns


text: Category:Northern Sotho class 8 nouns

title: Category:Northern Sotho class 8 nouns


text: Category:Okinawan kanji read as たい

title: Category:Okinawan kanji read as たい


text: Category:Okinawan kanji read as っちゅ

title: Category:Okinawan kanji read as っちゅ


text: Category:Okinawan kanji read as にん

title: Category:Okinawan kanji read as にん


text: Category:Okinawan kanji read as ぴとぅ

title: Category:Okinawan kanji read as ぴとぅ


text: Category:Okinawan kanji with on reading そー


text: Category:Okinawan terms spelled with 白

title: Category:Okinawan terms spelled with 白


text: Category:Old Catalan nouns by gender

title: Category:Old Catalan nouns by gender


text: Category:Old English diacritical marks

title: Category:Old English diacritical marks


text: Category:Old Frisian auxiliary verbs

title: Category:Old Frisian auxiliary verbs


text: Category:Old Frisian enclitics

title: Category:Old Frisian enclitics


text: Category:Old Frisian indefinite pro-forms


text: Category:Old Frisian interrogative pro-forms


text: Category:Old Frisian noun plural forms

title: Category:Old Frisian noun plural forms


text: Category:Old Leonese feminine nouns

title: Category:Old Leonese feminine nouns


text: Category:Old Median masculine nouns

title: Category:Old Median masculine nouns


text: Category:Old Novgorodian feminine nouns

title: Category:Old Novgorodian feminine nouns


text: Category:Old Novgorodian neuter nouns

title: Category:Old Novgorodian neuter nouns


text: Category:Old Novgorodian nouns by gender


text: Category:Old Persian multiword terms

title: Category:Old Persian multiword terms


text: Category:Old Persian terms derived from Sanskrit


text: Category:Old Polish personal nouns

title: Category:Old Polish personal nouns


text: Category:Omani Arabic feminine nouns

title: Category:Omani Arabic feminine nouns


text: Category:Omani Arabic masculine nouns

title: Category:Omani Arabic masculine nouns


text: Category:Ottoman Turkish terms attributed to a specific source


text: Category:Bailang terms derived from Sino-Tibetan languages


text: Category:Palikur nouns with multiple genders


text: Category:Pangasinan multiword terms

title: Category:Pangasinan multiword terms


text: Category:Pangutaran Sama multiword terms


text: Category:Pangwali neuter nouns

title: Category:Pangwali neuter nouns


text: Category:Papantla Totonac animate nouns

title: Category:Papantla Totonac animate nouns


text: Category:Phoenician multiword terms

title: Category:Phoenician multiword terms


text: Category:Piedmontese nouns with multiple genders


text: Category:Portuguese terms derived from Northern Kurdish


text: Category:Proto-Algonquian inanimate nouns


text: Category:Proto-Berber nouns by gender

title: Category:Proto-Berber nouns by gender


text: Category:Proto-Brythonic multiword terms


text: Category:Proto-Brythonic neuter nouns

title: Category:Proto-Brythonic neuter nouns


text: しゅうじがく

title: しゅうじがく


text: Category:Proto-Brythonic nouns with multiple genders


text: Category:Proto-Celtic multiword terms

title: Category:Proto-Celtic multiword terms


text: Category:Proto-Hellenic nouns with multiple genders


text: Category:Proto-Indo-Iranian nouns with multiple genders


text: Category:Proto-Italic nouns with multiple genders


text: Category:Proto-Nuristani masculine nouns


text:
Leemstrikja

Noun

 * 1) potter

title: Leemstrikja


text: Category:Proto-Nuristani nouns by gender


text: Category:Proto-Saka-Wakhi masculine nouns


text: Category:Proto-Semitic nouns with multiple genders


text: Category:Proto-Shughni-Roshani masculine nouns


text: Category:Proto-Shughni-Yazghulami masculine nouns


text: Category:Proto-Siouan multiword terms

title: Category:Proto-Siouan multiword terms


text: Category:Proto-Slavic biaspectual verbs

title: Category:Proto-Slavic biaspectual verbs


text: Category:Pumpokol multiword terms

title: Category:Pumpokol multiword terms


text: Category:Punjabi nouns with multiple genders


text: Category:Rayón Zoque multiword terms

title: Category:Rayón Zoque multiword terms


text: Category:Requests for native script for Tangut terms


text: Category:Rhine Franconian feminine nouns


text: Category:Sabir terms derived from Oïl languages


text: Category:Sanskrit terms derived from the Proto-Indo-European root *dʰeyǵʰ-


text: Category:Scottish Gaelic terms derived from Frankish


text: Category:Semi-learned borrowings from Spanish by language


text: Category:Seychellois Creole multiword terms


text: Category:Shughni nouns by gender

title: Category:Shughni nouns by gender


text: Category:Silesian perfective verbs

title: Category:Silesian perfective verbs


text: Category:Southern East Cree animate nouns


text: Category:Southern East Cree inanimate nouns


text: Category:Suburbs in Ceredigion, Wales

title: Category:Suburbs in Ceredigion, Wales


text: Category:Suburbs in Gwynedd, Wales

title: Category:Suburbs in Gwynedd, Wales


text: Category:Suburbs in Powys, Wales

title: Category:Suburbs in Powys, Wales


text:
桑葉它它

Noun

 * 1)  fruit of the mulberry an herb used in traditional Chinese medicine to treat yin deficiency

title: 桑葉它它


text: Category:Sudanese Arabic masculine nouns


text: Category:Svan multiword terms

title: Category:Svan multiword terms


text: Category:Swabian feminine nouns

title: Category:Swabian feminine nouns


text: Category:Swabian nouns by gender

title: Category:Swabian nouns by gender


text: Category:Sylheti multiword terms

title: Category:Sylheti multiword terms


text: Category:Tachawit nouns by gender

title: Category:Tachawit nouns by gender


text: Category:Tagal Murut multiword terms

title: Category:Tagal Murut multiword terms


text: Category:Tangam terms derived from Germanic languages


text: Category:Tangam terms derived from other languages


text: Category:Taíno terms with quotations

title: Category:Taíno terms with quotations


text: Category:Terms borrowed from Coastal Kadazan


text: Category:Ternate multiword terms

title: Category:Ternate multiword terms


text: Category:Thai given names from Russian

title: Category:Thai given names from Russian


text: Category:Thai male given names from Slavic languages


text: Category:Thai terms prefixed with ประ

title: Category:Thai terms prefixed with ประ


text: Category:Timugon Murut multiword terms

title: Category:Timugon Murut multiword terms


text: Category:Toba Batak templates

title: Category:Toba Batak templates


text: Category:Tsafiki multiword terms

title: Category:Tsafiki multiword terms


text: Category:Tswana class 1a nouns

title: Category:Tswana class 1a nouns


text: Category:Tuareg feminine nouns

title: Category:Tuareg feminine nouns


text: Category:Tuareg nouns by gender

title: Category:Tuareg nouns by gender


text: Category:Northern Saharan Berber nouns by gender


text: Category:Turkish terms attributed to a specific source


text: Category:Ugaritic feminine nouns

title: Category:Ugaritic feminine nouns


text:
Kjinjamutta

Noun

 * 1) nanny

title: Kjinjamutta


text: Category:Umbrian feminine nouns

title: Category:Umbrian feminine nouns


text: Category:Umbundu class 6 nouns

title: Category:Umbundu class 6 nouns


text: 桑叶它它

title: 桑叶它它


text: Category:Urdu terms derived from Dravidian languages


text: Category:Northeast Malakula multiword terms


text: Category:Volscian nouns by gender

title: Category:Volscian nouns by gender


text: Category:Welsh Romani nouns with multiple genders


text: Category:Welsh terms attributed to a specific source


text: Category:Western Apache multiword terms

title: Category:Western Apache multiword terms


text: Category:Western Highland Chatino multiword terms


text: Category:Yaqui multiword terms

title: Category:Yaqui multiword terms


text:
Jesazjäwa

Noun

 * 1) legislator

title: Jesazjäwa


text: Category:Yug term requests

title: Category:Yug term requests


text: Category:Yuki multiword terms

title: Category:Yuki multiword terms


text: Category:Zacatlán-Ahuacatlán-Tepetzintla Nahuatl multiword terms


text: Category:azz:Foods

title: Category:azz:Foods


text: Category:bbc:Transport

title: Category:bbc:Transport


text: Category:ca:Photography

title: Category:ca:Photography


text: Category:cel-pro:Carnivores

title: Category:cel-pro:Carnivores


text: Category:co:Advertising

title: Category:co:Advertising


text: Category:co:Law

title: Category:co:Law


text: Category:co:Parts of speech

title: Category:co:Parts of speech


text: Category:cy:Countries in Central America


text: Category:eu:Salmonids

title: Category:eu:Salmonids


text: Category:fr:Moscow Oblast

title: Category:fr:Moscow Oblast


text: Category:fr:Places in Moscow Oblast

title: Category:fr:Places in Moscow Oblast


text: Category:gmq-osw:Chordates

title: Category:gmq-osw:Chordates


text: Category:gur:Nature

title: Category:gur:Nature


text: Category:jam:Disease

title: Category:jam:Disease


text: Category:jam:Economics

title: Category:jam:Economics


text: Category:kmr:Art

title: Category:kmr:Art


text: Category:kmr:Sports

title: Category:kmr:Sports


text: Category:kw:Neuroscience

title: Category:kw:Neuroscience


text: Category:mnw:Commelinids

title: Category:mnw:Commelinids


text: Category:mnw:Timekeeping

title: Category:mnw:Timekeeping


text: Category:mos:All topics

title: Category:mos:All topics


text: Category:mos:Earth

title: Category:mos:Earth


text: Category:odt:Chordates

title: Category:odt:Chordates


text: Category:ofs:Fowls

title: Category:ofs:Fowls


text: Category:ofs:Geology

title: Category:ofs:Geology


text: Category:ofs:Limbs

title: Category:ofs:Limbs


text: Category:ofs:Male

title: Category:ofs:Male


text: Category:ofs:Male family members

title: Category:ofs:Male family members


text: Category:ofs:Poultry

title: Category:ofs:Poultry


text: Category:ofs:Skeleton

title: Category:ofs:Skeleton


text: Category:ojp:Transport

title: Category:ojp:Transport


text: Category:okn:Anatomy

title: Category:okn:Anatomy


text: Category:sit-tgm:All topics

title: Category:sit-tgm:All topics


text: Category:sit-tgm:Animals

title: Category:sit-tgm:Animals


text: Category:sit-tgm:Human

title: Category:sit-tgm:Human


text:
Armeejung

Noun

 * 1) soldier

title: Armeejung


text: Category:xmf:Africa

title: Category:xmf:Africa


text: Category:yo:National capitals

title: Category:yo:National capitals


text: Category:yox:Transport

title: Category:yox:Transport


text:
Häaj

Noun

 * 1) joy, happiness

title: Häaj


text:
Häakj

Noun

 * 1) pike (type of fish)

title: Häakj


text:
喪夫

Noun

 * 1)  person that carries the bier

title: 喪夫


text: 丧夫

title: 丧夫


text:
Hakesän

Noun

 * 1) hamstring

title: Hakesän


text:
Appendix:Variations of "hacek"

The word “hacek” appears in many languages with many variations in the use of capitalization, punctuation, and diacritics.

Capitalization and punctuation

 * hacek
 * Hacek
 * HACEK

Diacritics

 * haček
 * haĉek
 * haċek
 * hac̬ek
 * hácek
 * háček, Háček

title: Appendix:Variations of "hacek"


text:
파라ᄒᆞ다

Etymology
Formed as a compound of the root *pA/E/Ur- ("blue-green") (eg. ) +.

Adjective

 * 1) to be blue
 * 2) to be green

title: 파라ᄒᆞ다


text:
ymlusgo

Verb

 * 1) to crawl, to creep

title: ymlusgo


text:
兩次三番

Idiom

 * 1) again and again; time and again

title: 兩次三番


text: 两次三番

title: 两次三番


text:
三番兩次

Idiom

 * 1) again and again; time and again

title: 三番兩次


text: 三番两次

title: 三番两次


text:
Module:User:Benwing2/category tree/poscatboiler/data/terms by etymology

local labels = {} local raw_categories = {} local handlers = {} local raw_handlers = {}

- --                                                                        -- --                                  LABELS                                 -- --                                                                        -- -

labels["terms by etymology"] = { description = " terms categorized by their etymologies.", umbrella_parents = "Fundamental", parents = , }

labels["AABB-type reduplications"] = { description = " terms that underwent reduplication in an AABB pattern.", parents = {"reduplications"}, }

labels["alliterative compounds"] = { description = " noun phrases composed of two or more stems that alliterate.", umbrella_parents = "Types of compound words by language", parents = {"compound words", "alliterative phrases"}, }

labels["antonymous compounds"] = { description = " compounds in which one part is an antonym of the other.", umbrella_parents = "Types of compound words by language", parents = {"dvandva compounds", sort = "antonym"}, }

labels["back-formations"] = { description = " words formed by reversing a supposed regular formation, removing part of an older term.", parents = {"terms by etymology"}, }

labels["bahuvrihi compounds"] = { description = " compounds in which the first part (A) modifies the second (B), and whose meaning follows a metonymic pattern: “ having a B that is A.”", umbrella_parents = "Types of compound words by language", parents = {"compound words", "exocentric compounds"}, }

labels["blends"] = { description = " words formed by combinations of other words.", parents = {"terms by etymology"}, }

labels["borrowed terms"] = { description = " terms that are loanwords, i.e. words that were directly incorporated from another language.", parents = {"terms by etymology"}, }

labels["calques"] = { description = " calques, i.e. terms formed by piece-by-piece translations of terms from other languages.", parents = {"terms by etymology"}, }

labels["catachreses"] = { description = " terms derived from misuses or misapplications of other terms.", parents = {"terms by etymology"}, }

labels["coinages"] = { description = " terms coined by an identifiable person, organization or other such entity.", parents = {"terms attributed to a specific source"}, umbrella_parents = {name = "terms attributed to a specific source", is_label = true, sort = " "}, }

-- Add "compound POS" categories for various parts of speech.

local compound_poses = { "adjectives", "adverbs", "conjunctions", "determiners", "interjections", "nouns", "numerals", "particles", "postpositions", "prefixes", "prepositions", "pronouns", "proper nouns", "suffixes", "verbs", }

for _, pos in ipairs(compound_poses) do labels["compound " .. pos] = { description = " " .. pos .. " composed of two or more stems.", umbrella_parents = "Types of compound words by language", parents = {{name = "compound words", sort = " "}, pos}, } end

labels["compound determinatives"] = { description = " determinatives composed of two or more stems.", parents = {"compound words", "determiners"}, }

labels["compound words"] = { description = " words composed of two or more stems.", parents = {"terms by etymology"}, }

labels["coordinated pairs"] = { description = "Terms in consisting of a pair of terms joined by a coordinating conjunction.", parents = {"terms by etymology"}, }

labels["coordinated triples"] = { -- Avoid saying "a coordinating conjunction" or "coordinating conjunctions" -- because there can be either one or two conjunctions. description = "Terms in consisting of three terms joined by coordinating conjunction.", parents = {"terms by etymology"}, }

labels["denominals"] = { description = " terms derived from a noun.", parents = {"terms by etymology"}, }

labels["deverbals"] = { description = " terms derived from a verb.", parents = {"terms by etymology"}, }

labels["doublets"] = { description = " terms that trace their etymology from ultimately the same source as other terms in the same language, but by different routes, and often with subtly or substantially different meanings.", parents = {"terms by etymology"}, }

labels["dvandva compounds"] = { description = " words composed of two or more stems whose stems could be connected by an 'and'.", umbrella_parents = "Types of compound words by language", parents = {"compound words"}, }

labels["elongated forms"] = { description = " terms where one or more letters or sounds is repeated for emphasis or effect.", parents = {"terms by etymology"}, }

labels["endocentric compounds"] = { description = " words composed of two or more stems, one of which is the head of that compound.", umbrella_parents = "Types of compound words by language", parents = {"compound words"}, }

labels["endocentric noun-noun compounds"] = { description = " words composed of two or more stems, one of which is the head of that compound.", umbrella_parents = "Types of compound words by language", parents = {"endocentric compounds", "compound words"}, }

labels["endocentric verb-noun compounds"] = { description = " compounds in which the first element is a verbal stem, the second a nominal stem and the head of the compound.", umbrella_parents = "Types of compound words by language", parents = {"endocentric compounds", "verb-noun compounds"}, }

labels["eponyms"] = { description = " terms derived from names of real or fictitious people.", parents = {"terms by etymology"}, }

labels["exocentric compounds"] = { description = " words composed of two or more stems, none of which is the head of that compound.", umbrella_parents = "Types of compound words by language", parents = {"compound words"}, }

labels["exocentric verb-noun compounds"] = { description = " compounds in which the first element is a transitive verb, the second a noun functioning as its direct object, and whose referent is the person or thing doing the action.", umbrella_parents = "Types of compound words by language", parents = {"exocentric compounds", "verb-noun compounds"}, }

labels["genericized trademarks"] = { description = " terms that originate from trademarks, brands and company names which have become genericized; that is, fallen into common usage in the target market's vernacular, even when referring to other competing brands.", parents = {"terms by etymology"}, }

labels["ghost words"] = { description = " terms that were originally erroneous or fictitious, published in a reference work as if they were genuine as a result of typographical error, misreading, misinterpretation or another process.", parents = {"terms by etymology"}, }

labels["karmadharaya compounds"] = { description = " words composed of two or more stems in which the main stem determines the case endings.", umbrella_parents = "Types of compound words by language", parents = {"tatpurusa compounds"}, }

labels["haplological forms"] = { description = " terms that underwent haplology: thus, their origin involved a loss or omission of a repeated sequence of sounds.", parents = {"terms by etymology"}, }

labels["homophonic translations"] = { description = " terms that were borrowed by matching the etymon phonetically, without regard for the sense; compare phono-semantic matching and Hobson-Jobson.", parents = {"terms by etymology"} }

labels["hybridisms"] = { description = " words formed by elements of different linguistic origins.", parents = {"terms by etymology"}, }

labels["inherited terms"] = { description = " terms that were inherited from an earlier stage of the language.", parents = {"terms by etymology"}, }

labels["itaretara dvandva compounds"] = { description = " words composed of two or more stems whose stems could be connected by an 'and'.", umbrella_parents = "Types of compound words by language", parents = {"dvandva compounds"}, }

labels["learned borrowings"] = { description = " terms that are learned loanwords, that is, words that were directly incorporated from another language instead of through normal language contact.", parents = {"borrowed terms"}, }

labels["legal doublets"] = { description = " legal doublets – a legal doublet is a standardized phrase commonly use in legal documents, proceedings etc which includes two words that are near synonyms.", parents = {"coordinated pairs"}, }

labels["merisms"] = { description = " merisms – terms that are coordinates that, combined, are a synonym for a totality.", parents = {"coordinated pairs"}, }

labels["metonyms"] = { description = " terms whose origin involves calling a thing or concept not by its own name, but by the name of something intimately associated with that thing or concept.", parents = {"terms by etymology"}, }

labels["neologisms"] = { description = " terms that have been only recently acknowledged.", parents = {"terms by etymology"}, }

labels["nonce terms"] = { description = " terms that have been invented for a single occasion.", parents = {"terms by etymology"}, }

labels["onomatopoeias"] = { description = " words that were coined to sound like what they represent.", parents = {"terms by etymology"}, }

labels["orthographic borrowings"] = { description = " orthographic loans, i.e. terms that were borrowed in their script forms, not their pronunciations.", parents = {"borrowed terms"}, }

labels["partial calques"] = { description = " partial calques, i.e. terms formed partly by piece-by-piece translations of terms from other languages and partly by direct borrowing.", parents = {"terms by etymology"}, }

labels["phono-semantic matchings"] = { description = " terms that were borrowed by matching the etymon phonetically and semantically.", parents = {"borrowed terms"}, }

labels["piecewise doublets"] = { description = " terms that are piecewise doublets.", parents = {"terms by etymology"}, }

labels["pseudo-loans"] = { description = " terms that are pseudo-loans.", parents = {"terms by etymology"}, }

for _, ism_and_langname in ipairs({	{"anglicisms", "English"},	{"Gallicisms", "French"},	{"Germanisms", "German"},	{"Hispanisms", "Spanish"},	{"Italianisms", "Italian"},	{"Latinisms", "Latin"}, }) do	local ism, langname = unpack(ism_and_langname) labels["pseudo-" .. ism] = { description = " terms that appear to be " .. langname .. ", but are not used or have a different meaning in " .. langname .. " itself.", parents = {"pseudo-loans"}, umbrella_parents = {name = "pseudo-loans", is_label = true, sort = " "}, } end

labels["rebracketings"] = { description = " terms that have interacted with another word in such a way that the boundary between the words has been modified.", parents = {"terms by etymology"} }

labels["reconstructed terms"] = { description = " terms that are not directly attested, but have been reconstructed through other evidence.", parents = {"terms by etymology"} }

labels["reduplicated coordinated pairs"] = { description = " reduplicated coordinated pairs.", parents = {"coordinated pairs", "reduplications"}, }

labels["reduplicated coordinated triples"] = { description = " reduplicated coordinated triples.", parents = {"coordinated triples", "reduplications"}, }

labels["reduplications"] = { description = " terms that underwent reduplication, so their origin involved a repetition of roots or stems.", parents = {"terms by etymology"}, }

labels["retronyms"] = { description = " terms that serve as new unique names for older objects or concepts whose previous names became ambiguous.", parents = {"terms by etymology"}, }

labels["rhyming compounds"] = { description = " noun phrases composed of two or more stems that rhyme.", umbrella_parents = "Types of compound words by language", parents = {"compound words", "rhyming phrases"}, }

labels["roots"] = { description = "Basic morphemes from which words are formed.", parents = {"morphemes"}, }

labels["roots by shape"] = { description = " roots categorized by their shape.", parents = , }

labels["samahara dvandva compounds"] = { description = " words composed of two or more stems whose stems could be connected by an 'and'.", umbrella_parents = "Types of compound words by language", parents = {"dvandva compounds"}, }

labels["semantic loans"] = { description = " terms one or more of whose definitions was borrowed from a term in another language.", parents = {"terms by etymology"}, }

labels["semi-learned borrowings"] = { description = " terms that are semi-learned loanwords, that is, words borrowed from a classical language into a modern language and partly reshaped based on later sound changes or by analogy with inherited words in the language.", parents = {"borrowed terms"}, }

labels["spelled-out initialisms"] = { description = " initialisms in which the letter names are spelled out.", parents = {"terms by etymology"}, }

labels["spelling pronunciations"] = { description = " terms whose pronunciation was historically or presently affected by their spelling.", parents = {"terms by etymology"}, }

labels["spoonerisms"] = { description = " terms in which the initial sounds of component parts have been exchanged, as in \"crook and nanny\" for \"nook and cranny\".", parents = {"terms by etymology"}, }

labels["synonymous compounds"] = { description = " compounds in which one part is a synonym of the other.", umbrella_parents = "Types of compound words by language", parents = {"dvandva compounds", sort = "synonym"}, }

labels["tatpurusa compounds"] = { description = " words composed of two or more stems", umbrella_parents = "Types of compound words by language", parents = {"compound words"}, }

labels["terms attributed to a specific source"] = { description = " terms coined by an identifiable person or deriving from a known work.", parents = {"terms by etymology"}, }

labels["terms derived from area codes"] = { description = " terms derived from area codes.", parents = {"terms by etymology"}, }

labels["terms derived from the shape of letters"] = { description = " terms derived from the shape of letters. This can include terms derived from the shape of any letter in any alphabet.", parents = {"terms by etymology"}, }

labels["terms by Proto-Indo-European word"] = { description = " terms categorized by the Proto-Indo-European word they originate from.", parents = {"terms by etymology", "terms derived from Proto-Indo-European"}, }

labels["terms by root"] = { description = " terms categorized by the root they originate from.", parents = {"terms by etymology", {name = "roots", sort = " "}}, }

labels["terms derived from fiction"] = { description = " terms that originate from works of fiction.", parents = {"terms attributed to a specific source"}, }

for _, source_and_desc in ipairs({	{"DC Comics", "DC Comics"},	{"Duckburg and Mouseton", "Disney's Duckburg and Mouseton universe"},	{"Harry Potter", "the Harry Potter series"},	{"Nineteen Eighty-Four", "George Orwell's Nineteen Eighty-Four"},	{"Star Trek", "Star Trek"},	{"Star Wars", "Star Wars"},	{"The Simpsons", "The Simpsons"},	{"Tolkien's legendarium", "the legendarium of J. R. R. Tolkien"}, }) do	local source, desc = unpack(source_and_desc) labels["terms derived from " .. source] = { description = " terms that originate from " .. desc .. ".",		parents = {"terms derived from fiction"}, } end

labels["terms derived from occupations"] = { description = " terms derived from names of occupations.", parents = {"terms by etymology"}, }

labels["terms derived from other languages"] = { description = " terms that originate from other languages.", parents = {"terms by etymology"}, }

labels["terms derived from the Bible"] = { description = " terms that originate from the Bible.", parents = {"terms attributed to a specific source"}, }

labels["terms derived from toponyms"] = { description = " terms derived from names of real or fictitious places.", parents = {"terms by etymology"}, }

labels["terms making reference to character shapes"] = { description = " terms making reference to character shapes.", parents = {"terms by etymology"}, }

labels["terms with Indo-Aryan extensions"] = { description = " terms extended with particular Indo-Aryan pleonastic affixes.", parents = {"terms by etymology"}, }

labels["terms with lemma and non-lemma form etymologies"] = { description = " terms consisting of both a lemma and non-lemma form, of different origins.", breadcrumb = "lemma and non-lemma form", parents = {"terms with multiple etymologies"}, }

labels["terms with multiple etymologies"] = { description = " terms that are derived from multiple origins.", parents = {"terms by etymology"}, }

labels["terms with multiple lemma etymologies"] = { description = " lemmas that are derived from multiple origins.", breadcrumb = "multiple lemmas", parents = {"terms with multiple etymologies"}, }

labels["terms with multiple non-lemma form etymologies"] = { description = " non-lemma forms that are derived from multiple origins.", breadcrumb = "multiple non-lemma forms", parents = {"terms with multiple etymologies"}, }

labels["terms with unknown etymologies"] = { description = " terms whose etymologies have not yet been established.", parents = , }

labels["twice-borrowed terms"] = { description = " terms that were borrowed from another language that originally borrowed the term from .", parents = {"terms by etymology", "borrowed terms"}, }

labels["unadapted borrowings"] = { description = " loanwords that have not been conformed to the morpho-syntactic, phonological and/or phonotactical rules of the target language.", parents = {"borrowed terms"}, }

labels["univerbations"] = { description = " terms that result from the agglutination of two or more words.", parents = {"terms by etymology"}, }

labels["verb-noun compounds"] = { description = " compounds in which the first element is a transitive verb, the second a noun functioning as its direct object, and whose referent is the person or thing doing the action.", umbrella_parents = "Types of compound words by language", parents = {"compound nouns"}, }

labels["vyadhikarana compounds"] = { description = " words composed of two or more stems in which the non-main stem determines the case endings.", umbrella_parents = "Types of compound words by language", parents = {"tatpurusa compounds"}, }

labels["words derived through metathesis"] = { description = " words that were created through metathesis from another word.", parents = , }

for _, fixtype in ipairs({"circumfix", "infix", "interfix", "prefix", "suffix",}) do labels["words by " .. fixtype] = { description = " words categorized by their " .. fixtype .. "es.", parents = {{name = "terms by etymology", sort = fixtype}, fixtype .. "es"}, } end

-- Add 'umbrella_parents' key if not already present. for key, data in pairs(labels) do	if not data.umbrella_parents then data.umbrella_parents = "Terms by etymology subcategories by language" end end

- --                                                                        -- --                              RAW CATEGORIES                             -- --                                                                        -- -

raw_categories["Terms by etymology subcategories by language"] = { description = "Umbrella categories covering topics related to terms categorized by their etymologies, such as types of compounds or borrowings.", additional = "", parents = { "Umbrella metacategories", {name = "terms by etymology", is_label = true, sort = " "}, }, }

raw_categories["Borrowed terms subcategories by language"] = { description = "Umbrella categories covering topics related to borrowed terms.", additional = "", parents = { "Umbrella metacategories", {name = "borrowed terms", is_label = true, sort = " "}, {name = "Terms by etymology subcategories by language", sort = " "}, }, }

raw_categories["Inherited terms subcategories by language"] = { description = "Umbrella categories covering topics related to inherited terms.", additional = "", parents = { "Umbrella metacategories", {name = "inherited terms", is_label = true, sort = " "}, {name = "Terms by etymology subcategories by language", sort = " "}, }, }

raw_categories["Indo-Aryan extensions"] = { description = "Umbrella categories covering terms extended with particular Indo-Aryan pleonastic affixes.", additional = "", parents = { "Umbrella metacategories", {name = "Terms by etymology subcategories by language", sort = " "}, }, }

raw_categories["Multiple etymology subcategories by language"] = { description = "Umbrella categories covering topics related to terms with multiple etymologies.", additional = "", parents = { "Umbrella metacategories", {name = "Terms by etymology subcategories by language", sort = " "}, }, }

raw_categories["Types of compound words by language"] = { description = "Umbrella categories covering topics related to types of compound words.", additional = "", parents = { "Umbrella metacategories", {name = "compound words", is_label = true, sort = " "}, {name = "Terms by etymology subcategories by language", sort = " "}, }, }

- --                                                                        -- --                                 HANDLERS                                -- --                                                                        -- -

- --- Root handlers --- -

-- Handlers for 'terms derived from the SOURCE root ROOT' must go *BEFORE* the -- more general 'terms derived from SOURCE' handler.

local function get_source_and_type_desc(source, term_type) if source:getCode == "ine-pro" and term_type:find("^roots?$") then return "Proto-Indo-European " .. term_type .. "" else return "" .. source:getCanonicalName .. " " .. term_type end end

-- Handler for e.g. Category:Yola terms derived from the Proto-Indo-European root *h₂el- (grow) and -- Category:Russian terms derived from the Proto-Indo-European word *swé, and corresponding umbrella -- categories Category:Terms derived from the Proto-Indo-European root *h₂el- (grow) and -- Category:Terms derived from the Proto-Indo-European word *swé. Replaces the former -- Module:category tree/PIE root cat, Module:category tree/root cat and Template:PIE word cat. table.insert(handlers, function(data)	local source_name, term_type, term_and_id = data.label:match("^terms derived from the (.+) (root) (.+)$")	if not source_name then		source_name, term_type, term_and_id = data.label:match("^terms derived from the (.+) (word) (.+)$")	end	if not source_name then		source_name, term_type, term_and_id = data.label:match("^terms derived from the (.+) (term) (.+)$")	end

if source_name then local term, id = term_and_id:match("^(.+) %((.-)%)$") term = term or term_and_id local source = require("Module:languages").getByCanonicalName(source_name, true, "allow etym langs")

local parents = { { name = "terms by " .. source_name .. " " .. term_type, sort = source:makeSortKey(term) } }		local umbrella_parents = { { name = "Terms derived from " .. source_name .. " " .. term_type .. "s", sort = source:makeSortKey(term) } }		if id then table.insert(parents, { name = "terms derived from the " .. source_name .. " " .. term_type .. " " .. term, sort = " "}) table.insert(umbrella_parents, { name = "terms derived from the " .. source_name .. " " .. term_type .. " " .. term, is_label = true, sort = " "}) end -- Italicize the root/word in the title. local function displaytitle(title, lang) return require("Module:string").plain_gsub(title, term, require("Module:script utilities").tag_text(term, source, nil, "term")) end local breadcrumb = require("Module:script utilities").tag_text(term, source, nil, "term") .. (id and " (" .. id .. ")" or "") return { description = " terms that originate ultimately from the " .. get_source_and_type_desc(source, term_type) .. " " ..				require("Module:links").full_link({ term = term, lang = source, gloss = id, id = id }, "term") .. ".",			displaytitle = displaytitle, breadcrumb = breadcrumb, parents = parents, umbrella = { no_by_language = true, displaytitle = displaytitle, breadcrumb = breadcrumb, parents = umbrella_parents, }		}	end end)

table.insert(handlers, function(data)	local root_and_id = data.label:match("^terms belonging to the root (.+)$")	if root_and_id then		local root, id = root_and_id:match("^(.+) %((.-)%)$")		root = root or root_and_id

-- See if the language is Semitic. local fam = data.lang local is_semitic = false while true do			if not fam then break end if fam:getCode == "qfa-not" then -- qfa-not is "not a family" and is its own parent break end if fam:getCode == "sem" then is_semitic = true break end fam = fam:getFamily end local root_desc = is_semitic and "root" or "root" local parents = local separators = "־ %-" local separator_c = "[" .. separators .. "]"		local not_separator_c = "[^" .. separators .. "]"		-- remove any leading or trailing separators (e.g. in PIE-style roots) local root_no_prefix_suffix = mw.ustring.gsub(mw.ustring.gsub(root, separator_c .. "$", ""), "^" .. separator_c, "") local num_sep = mw.ustring.len(mw.ustring.gsub(root_no_prefix_suffix, not_separator_c, "")) local linked_root = data.lang and require("Module:links").full_link({ term = root, lang = data.lang, gloss = id, id = id }, "term") or root if num_sep > 0 then table.insert(parents, {name = "" .. (num_sep + 1) .. "-letter roots", sort = root_and_id}) end -- Italicize the root/word in the title. local function displaytitle(title, lang) return require("Module:string").plain_gsub(title, root, require("Module:script utilities").tag_text(root, lang, nil, "term")) end local breadcrumb = require("Module:script utilities").tag_text(root, data.lang, nil, "term") .. (id and " (" .. id .. ")" or "") return { description = " terms that belong to the " .. root_desc .. " " .. linked_root .. ".",			displaytitle = displaytitle, breadcrumb = breadcrumb, parents = parents, umbrella = false, }	end end)

table.insert(handlers, function(data)	local num_letters = data.label:match("^([0-9]+)-letter roots$")	if num_letters then		return {			description = " roots with " .. num_letters .. " letters in them.",			parents = ,			umbrella_parents = "Terms by etymology subcategories by language",		}	end end)

table.insert(handlers, function(data)	local source_name = data.label:match("^terms by (.+) root$")	if source_name then		local source = require("Module:languages").getByCanonicalName(source_name, true, "allow etym langs")		local parents = {"terms by etymology"}		-- In Category:Proto-Indo-Iranian terms by Proto-Indo-Iranian root,		-- don't add parent Category:Proto-Indo-Iranian terms derived from Proto-Indo-Iranian.		if not data.lang or data.lang:getCode ~= source:getCode then			table.insert(parents, "terms derived from " .. source_name)		end		return {			description = " terms categorized by the " .. get_source_and_type_desc(source, "root") .. " they originate from.",			parents = parents,			umbrella_parents = "Terms by etymology subcategories by language",		}	end end)

table.insert(handlers, function(data)	local root_shape = data.label:match("^(.+)-shape roots$")	if root_shape then		local description = " roots with the shape " .. root_shape .. "."		local additional		if data.lang and data.lang:getCode == "ine-pro" then			additional = [=[		end		return {			description = description,			additional = additional,			breadcrumb = root_shape,			parents = ,			umbrella = false,		}	end end)
 * e stands for the vowel of the root.
 * C stands for any stop or s.
 * R stands for any resonant.
 * H stands for any laryngeal.
 * M stands for m or w, when followed by a resonant.
 * s stands for s, when next to a stop.]=]

- Derived/inherited/borrowed handlers -

-- Handler for categories of the form "LANG terms derived from SOURCE", where SOURCE is a language, etymology language -- or family (e.g. "Indo-European languages"), along with corresponding umbrella categories of the form -- "Terms derived from SOURCE". table.insert(handlers, function(data)	local source_name = data.label:match("^terms derived from (.+)$")	if source_name then		-- FIXME, should we allow 'terms derived from taxonomic names' when mul-tax has canonical name		-- 'taxonomic name'? This is equivalent to what Module:category tree/derived cat did.		-- Maybe fix mul-tax instead.		local source = require("Module:languages").getByCanonicalName(source_name, true, "allow etym langs", "allow families")		local source_desc = source:makeCategoryLink

-- Compute description. local desc = " terms that originate from " .. source_desc .. "."		local additional if source:getType == "family" then additional = "This category should, ideally, contain only other categories. Entries can be categorized here, too, when the proper subcategory is unclear. " .. "If you know the exact language from which an entry categorized here is derived, please edit its respective entry." end -- Compute parents. local derived_from_subvariety_of_self = false local parent local sortkey = source:getDisplayForm if source:getType == "etymology language" then local parcode = source:getParentCode if parcode and parcode ~= "qfa-iso" and parcode ~= "qfa-not" and parcode ~= "qfa-und" then if data.lang and parcode == data.lang:getCode then derived_from_subvariety_of_self = true parent = data.lang:getFamily:getDisplayForm else -- Etymology language parent may be regular language, etymology language, -- or family parent = require("Module:languages").getByCode(parcode, true,						"allow etym langs", "allow families"):getDisplayForm end end else -- regular language or family local fam = source:getFamily if fam and fam:getCode ~= "qfa-iso" and fam:getCode ~= "qfa-not" then parent = fam:getDisplayForm end end parent = parent and "terms derived from " .. parent or "terms derived from other languages" local parents = if derived_from_subvariety_of_self then table.insert(parents, "Category:Categories for terms in a language derived from a term in a subvariety of that language") end

-- Compute umbrella parents. local umbrella_parents = { source:getType == "family" and {name = source:getCategoryName, raw = true, sort = " "} or source:getType == "etymology language" and {name = "Category:" .. mw.getContentLanguage:ucfirst(source:getCategoryName), sort = "terms derived from"} or			{name = source:getCategoryName, raw = true, sort = "terms derived from"} }

return { description = desc, additional = additional, breadcrumb = source_name, parents = parents, umbrella = { no_by_language = true, description = "Categories with terms that originate from " .. source_desc .. ".",				parents = umbrella_parents, },		}	end end)

local function get_source_and_source_desc(source_name) local source = require("Module:languages").getByCanonicalName(source_name, true, "allow etym langs", "allow families") local source_desc = source:makeCategoryLink if source:getType == "family" then source_desc = "unknown " .. source_desc end return source, source_desc end

-- Handler for categories of the form "LANG terms inherited/borrowed from SOURCE", where SOURCE is a language, -- etymology language or family (e.g. "Indo-European languages"). Also handles umbrella categories of the form -- "Terms inherited/borrowed from SOURCE". local function inherited_borrowed_handler(etymtype) return function(data) local source_name = data.label:match("^terms " .. etymtype .. " from (.+)$") if source_name then local source, source_desc = get_source_and_source_desc(source_name) return { description = " terms " .. etymtype .. " from " .. source_desc .. ".",				breadcrumb = source_name, parents = { { name = etymtype .. " terms", sort = source_name }, { name = "terms derived from " .. source_name, sort = " "}, },				umbrella = { no_by_language = true, parents = { { name = "terms derived from " .. source_name, is_label = true, sort = " " }, etymtype == "inherited" and { name = "Inherited terms subcategories by language", sort = source_name } -- There are several types of borrowings mixed into the following holding category, -- so keep these ones sorted under 'Terms borrowed from SOURCE_NAME' instead of just -- 'SOURCE_NAME'. or "Borrowed terms subcategories by language", }				},			}		end end end

table.insert(handlers, inherited_borrowed_handler("borrowed")) table.insert(handlers, inherited_borrowed_handler("inherited"))

- Borrowing subtype handlers - -

local function borrowing_subtype_handler(source_name, parent_cat, desc, no_by_language) local source, source_desc = get_source_and_source_desc(source_name) return { description = " " .. desc:gsub("SOURCE", source_desc), breadcrumb = source_name, parents = { { name = parent_cat, sort = source_name }, { name = "terms borrowed from " .. source_name, sort = " " }, },		umbrella = { no_by_language = no_by_language, parents = { { name = "terms borrowed from " .. source_name, is_label = true, sort = " " }, "Borrowed terms subcategories by language", }		},	} end

local borrowing_descriptions = { ["learned borrowings"] = "terms that are learned loanwords from SOURCE, that is, words that were directly incorporated from SOURCE instead of through normal language contact.", ["semi-learned borrowings"] = "terms that are semi-learned loanwords from SOURCE, that is, words borrowed from SOURCE (a classical language) into the target language (a modern language) and partly reshaped based on later sound changes or by analogy with inherited words in the language.", ["orthographic borrowings"]	= "terms that are orthographic loans from SOURCE, i.e. words that were borrowed from SOURCE in their script forms, not their pronunciations.", ["unadapted borrowings"] = "loanwords from SOURCE that have not been conformed to the morpho-syntactic, phonological and/or phonotactical rules of the target language.", }

table.insert(handlers, function(data)	local borrowing_type, source_name = data.label:match("^(.+ borrowings) from (.+)$")	if borrowing_type then		return borrowing_subtype_handler(source_name, borrowing_type, borrowing_descriptions[borrowing_type])	end end)

table.insert(handlers, function(data)	local source_name = data.label:match("^semantic loans from (.+)$")	if source_name then		return borrowing_subtype_handler(source_name, "semantic loans", "terms that are semantic loans from SOURCE.", "no by language")	end end)

table.insert(handlers, function(data)	local source_name = data.label:match("^terms partially calqued from (.+)$")	if source_name then		return borrowing_subtype_handler(source_name, "partial calques", "terms that were partially calqued from SOURCE.", "no by language")	end end)

table.insert(handlers, function(data)	local source_name = data.label:match("^terms calqued from (.+)$")	if source_name then		return borrowing_subtype_handler(source_name, "calques", "terms that were calqued from SOURCE.", "no by language")	end end)

table.insert(handlers, function(data)	local source_name = data.label:match("^phono%-semantic matchings from (.+)$")	if source_name then		return borrowing_subtype_handler(source_name, "phono-semantic matchings", "terms that are phono-semantic matchings from SOURCE.", "no by language")	end end)

- -- Affix handlers --- -

table.insert(handlers, function(data)	local labelpref, pos, affixtype, term_and_id = data.label:match("^(([a-z -]+) ([a-z]+fix)ed with )(.+)$")	if affixtype then		local term, id = term_and_id:match("^(.+) %(([^]+)%)$")		term = term or term_and_id

-- Convert term/alt into affixes if needed local desc = { ["prefix"]		= "beginning with the prefix", ["suffix"]		= "ending with the suffix", ["circumfix"]	= "bookended with the circumfix", ["infix"]		= "spliced with the infix", ["interfix"]	= "joined with the interfix", ["transfix"]	= "patterned with the transfix", }		if not desc[affixtype] then return nil end

local params = { ["alt"] = {}, ["sc"] = {}, ["sort"] = {}, ["tr"] = {}, }		local args = require("Module:parameters").process(data.args, params) local sc = data.sc or args.sc and require("Module:scripts").getByCode(args.sc, "sc") or nil local m_compound = require("Module:compound") term = m_compound.make_affix(term, data.lang, sc, affixtype) alt = m_compound.make_affix(args.alt, data.lang, sc, affixtype) local tr = m_compound.make_affix(args.tr, data.lang, require("Module:scripts").getByCode("Latn"), affixtype) local m_script_utilities = require("Module:script utilities") local id_text = id and " (" .. id .. ")" or ""

-- Compute parents. local parents = {} if id then if pos == "words" then table.insert(parents, {name = labelpref .. term, sort = id, args = args}) else table.insert(parents, {name = "words " .. affixtype .. "ed with " .. term_and_id, sort = id .. ", " .. pos, args = args}) table.insert(parents, {name = labelpref .. term, sort = id, args = args}) end elseif pos ~= "words" then table.insert(parents, {name = "words " .. affixtype .. "ed with " .. term, sort = pos, args = args}) end table.insert(parents, {name = "words by " .. affixtype, sort = data.lang:makeSortKey(data.lang:makeEntryName(args.sort or term))})

return { description = " " .. pos .. " " .. desc[affixtype] .. " " .. require("Module:links").full_link({				lang = data.lang, term = term, alt = alt, sc = sc, id = id, tr = tr}, "term") .. ".",			breadcrumb = pos == "words" and m_script_utilities.tag_text(alt or term, data.lang, sc, "term") .. id_text or pos, displaytitle = " " .. labelpref .. m_script_utilities.tag_text(term, data.lang, sc, "term") .. id_text, parents = parents, umbrella = false, }, true -- true = args handled end end)

- -- Indo-Aryan extension handlers -

table.insert(handlers, function(data)	local labelpref, extension = data.label:match("^(terms extended with Indo%-Aryan )(.+)$")	if extension then		local lang_inc_ash = require("Module:languages").getByCode("inc-ash")		local linked_term = require("Module:links").full_link({lang = lang_inc_ash, term = extension}, "term")		local tagged_term = require("Module:script utilities").tag_text(extension, lang_inc_ash, nil, "term")		return {			description = " terms extended with the Indo-Aryan pleonastic affix " .. linked_term .. ".",			displaytitle = " " .. labelpref .. tagged_term,			breadcrumb = tagged_term,			parents = ,			umbrella = {				no_by_language = true,				parents = "Indo-Aryan extensions",				displaytitle = "Terms extended with Indo-Aryan " .. tagged_term,			}		}	end end)

- Coined-by handlers - -

table.insert(handlers, function(data)	local coiner = data.label:match("^terms coined by (.+)$")	if coiner then		-- Sort by last name per request from User:Metaknowledge		local last_name = coiner:match(".* ([^ ]+)$")		return {			description = " terms coined by " .. coiner .. ".",			breadcrumb = coiner,			parents = ,			umbrella = false,		}	end end)

- Multiple etymology handlers -

table.insert(handlers, function(data)	local pos = data.label:match("^terms with multiple (.+) etymologies$")	if pos and pos ~= "lemma" and pos ~= "non-lemma form" then		local plpos = require("Module:string utilities").pluralize(pos)		local postype = require("Module:headword").pos_lemma_or_nonlemma(plpos, "guess")		return {			description = " " .. plpos .. " that are derived from multiple origins.",			umbrella_parents = "Multiple etymology subcategories by language",			breadcrumb = "multiple " .. plpos,			parents = ,		}	end end)

table.insert(handlers, function(data)	local pos1, pos2 = data.label:match("^terms with (.+) and (.+) etymologies$")	if pos1 and pos1 ~= "lemma" and pos2 ~= "non-lemma form" then		local m_strutil = require("Module:string utilities")		local m_headword = require("Module:headword")		local plpos1 = m_strutil.pluralize(pos1)		local plpos2 = m_strutil.pluralize(pos2)		local pos1type = m_headword.pos_lemma_or_nonlemma(plpos1, "guess")		local pos2type = m_headword.pos_lemma_or_nonlemma(plpos2, "guess")		local a_pos1 = m_strutil.add_indefinite_article(pos1)		local a_pos2 = m_strutil.add_indefinite_article(pos2)		return {			description = " terms consisting of " .. a_pos1 .." of one origin and " ..				a_pos2 .. " of a different origin.",			umbrella_parents = "Multiple etymology subcategories by language",			breadcrumb = pos1 .. " and " .. pos2,			parents = ,		}	end end)

- --                                                                        -- --                                RAW HANDLERS                             -- --                                                                        -- -

-- Handler for umbrella metacategories of the form e.g. Category:Terms derived from Proto-Indo-Iranian roots -- and Category:Terms derived from Proto-Indo-European words. Replaces the former -- Module:category tree/PIE root cat, Module:category tree/root cat and Template:PIE word cat. table.insert(raw_handlers, function(data)	local source_name, terms_type = data.category:match("^Terms derived from (.+) (roots)$")	if not source_name then		source_name, terms_type = data.category:match("^Terms derived from (.+) (words)$")	end	if not source_name then		source_name, terms_type = data.category:match("^Terms derived from (.+) (terms)$")	end	if source_name then		local source = require("Module:languages").getByCanonicalName(source_name, true, "allow etym langs")

return { description = "Umbrella categories covering terms derived from particular " .. get_source_and_type_desc(source, terms_type) .. ".",			additional = "", parents = { "Umbrella metacategories", { name = terms_type == "roots" and "roots" or "lemmas", is_label = true, lang = source:getCode, sort = " " }, { name = "terms derived from " .. source_name, is_label = true, sort = " " .. terms_type }, },		}	end end)

return {LABELS = labels, RAW_CATEGORIES = raw_categories, HANDLERS = handlers, RAW_HANDLERS = raw_handlers}


text:
Module:User:Benwing2/category tree

local export = {}

local m_utilities = require("Module:utilities") local category_tree_module = "Module:User:Benwing2/category tree" local submodule_prefix = category_tree_module .. "/" local inFundamental = mw.loadData(submodule_prefix .. "data")

local show_error, check_name, link_box, show_catfix, show_categories, show_topright, show_editlink, show_pagelist, show_breadcrumbs, show_description, show_appendix, show_children, show_TOC

-- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local template = frame.args["template"] if not template or template == "" then error("The \"template\" parameter was not specified.") end if mw.title.getCurrentTitle.nsText == "Template" then local text = {} table.insert(text, "This template should be used on pages in the Category: namespace, ") table.insert(text, "and automatically generates descriptions and categorization for categories of a recognized type (see below).") table.insert(text, " It is implemented by " .. category_tree_module .. " and its submodule " .. submodule_prefix .. "/")		table.insert(text, template .. ".") if frame.args["useautocat"] then table.insert(text, " It is preferable not to invoke this template directly, but to simply use ") table.insert(text, require("Module:template link").format_link({"auto cat"})) table.insert(text, " (with no parameters), which will automatically invoke this template on appropriately-named category pages.") end return table.concat(text) elseif mw.title.getCurrentTitle.nsText ~= "Category" then error("This template/module can only be used on pages in the Category: namespace.") end local submodule = require(submodule_prefix .. template) -- Get all the parameters and the label data local current if submodule.new_main then current = submodule.new_main(frame) else local info = {} for key, val in pairs(frame.args) do			if val ~= "" and key ~= "useautocat" then info[key] = val end end info.template = nil current = submodule.new(info, true) end local functions = { "getBreadcrumbName", "getDataModule", "canBeEmpty", "getDescription", "getParents", "getChildren", "getUmbrella", "getAppendix", "getTOCTemplateName", }	if current then for i, functionName in pairs(functions) do			if type(current[functionName]) ~= "function" then require("Module:debug").track{ "category tree/missing function", "category tree/missing function/" .. functionName } end end end

local boxes = {} local display = {} local categories = {}

if template == "topic cat" then table.insert(categories, "") end -- Check if the category is empty local isEmpty = mw.site.stats.pagesInCategory(mw.title.getCurrentTitle.text, "all") == 0 -- Are the parameters valid? if not current then table.insert(categories, "") table.insert(categories, isEmpty and "" or nil) table.insert(display, show_error( "The label given to the " .. require("Module:template link").format_link{template} .. " template is not valid. You may have mistyped it, or it simply has not been created yet. " .. "To add a new label, please consult the documentation of the template.")) -- Exit here, as all code beyond here relies on current not being nil return table.concat(categories, "") .. table.concat(display, "\n\n") end -- Does the category have the correct name? if mw.title.getCurrentTitle.text ~= current:getCategoryName then table.insert(categories, "") table.insert(display, show_error( "Based on the parameters given to the " .. require("Module:template link").format_link{template} .. " template, this category should be called Category:" .. current:getCategoryName .. ".")) end -- Add cleanup category for empty categories local canBeEmpty = current:canBeEmpty if isEmpty and not canBeEmpty then table.insert(categories, "") end if current:isHidden then table.insert(categories, "__HIDDENCAT__") end

if canBeEmpty then table.insert(categories, " __EXPECTUNUSEDCATEGORY__") end

-- Put all the float-right stuff into a that does not clear, so that float-left stuff like the breadcrumbs and -- description can go opposite the float-right stuff without vertical space. table.insert(boxes, "") table.insert(boxes, show_topright(current)) table.insert(boxes, show_editlink(current)) table.insert(boxes, show_related_changes) table.insert(boxes, show_pagelist(current)) table.insert(boxes, " ") -- Generate the displayed information table.insert(display, show_breadcrumbs(current)) table.insert(display, show_description(current)) table.insert(display, show_appendix(current)) table.insert(display, show_children(current)) table.insert(display, show_TOC(current)) table.insert(display, show_catfix(current)) table.insert(display, '') show_categories(current, categories) return table.concat(boxes, "\n") .. "\n" .. table.concat(display, "\n\n") .. table.concat(categories, "") end

function show_error(text) return mw.getCurrentFrame:expandTemplate{title = "maintenance box", args = { "red", image = "", title = "The automatically-generated contents of this category has errors.", text = text, }} end

-- Check the name of the current page, and return an error if it's not right. function check_name(current, template, info) local errortext = nil local category = nil if not current then errortext = "The label \"" .. (info.label or "") .. "\" given to the " .. require("Module:template link").format_link{template} .. " template is not valid. " .. "You may have mistyped it, or it simply has not been created yet. To add a new label, please consult the documentation of the template." category = "" else end if errortext then return (category or "") .. show_error(errortext) else return nil end end

local function get_catfix_info(current) local lang, sc	if current.getCatfixInfo then lang, sc = current:getCatfixInfo elseif not (current._info and current._info.no_catfix) then -- FIXME: This is hacky and should be removed. lang = current._lang sc = current._info and current._info.sc and require("Module:scripts").getByCode(current._info.sc) or nil end return lang, sc end

-- Show the "catfix" that adds language attributes and script classes to the page. function show_catfix(current) local lang, sc = get_catfix_info(current) if lang then return m_utilities.catfix(lang, sc) else return nil end end

-- Show the parent categories that the current category should be placed in. function show_categories(current, categories) local parents = current:getParents if not parents then return end for _, parent in ipairs(parents) do		if type(parent.name) == "string" then table.insert(categories, "" .. parent.sort .. "") else table.insert(categories, "") end end -- Also put the category in its corresponding "umbrella" or "by language" category. local umbrella = current:getUmbrella if umbrella then local sort if current._lang then sort = current._lang:getCanonicalName else sort = current:getCategoryName end if type(umbrella) == "string" then table.insert(categories, "" .. sort .. "") else table.insert(categories, "") end end end

function link_box(content) return "" .. content .. " " end

function show_related_changes local title = mw.title.getCurrentTitle.fullText return link_box(		"["		.. tostring(mw.uri.fullUrl("Special:RecentChangesLinked", {			target = title,			showlinkedto = 0,		}))		.. ' Recent changes ]') end

function show_editlink(current) return link_box(		"[" .. tostring(mw.uri.fullUrl(current:getDataModule, "action=edit"))		.. " Edit category data]") end

function show_pagelist(current) local namespace = "" local info = current:getInfo local lang_code = info.code if info.label == "citations" or info.label == "citations of undefined terms" then namespace = "Citations" elseif lang_code then local lang = require("Module:languages").getByCode(lang_code) if lang then -- Proto-Norse (gmq-pro) is the probably language with a code ending in -pro -- that's intended to have mostly non-reconstructed entries. if (lang_code:find("%-pro$") and lang_code ~= "gmq-pro") or lang:hasType("reconstructed") then namespace = "Reconstruction" elseif lang:hasType("appendix-constructed") then namespace = "Appendix" end end end local recent = mw.getCurrentFrame:callParserFunction{ name = "#tag", args = { "DynamicPageList", "category=" .. mw.title.getCurrentTitle.text .. "\n" .. "namespace=" .. namespace .. "\n" .. "count=10\n" .. "mode=ordered\n" .. "ordermethod=categoryadd\n" .. "order=descending" }	}	local oldest = mw.getCurrentFrame:callParserFunction{ name = "#tag", args = { "DynamicPageList", "category=" .. mw.title.getCurrentTitle.text .. "\n" .. "namespace=" .. namespace .. "\n" .. "count=10\n" .. "mode=ordered\n" .. "ordermethod=lastedit\n" .. "order=ascending" }	}	return [=[ end

-- Show navigational "breadcrumbs" at the top of the page. function show_breadcrumbs(current) local steps = {} -- Start at the current label and move our way up the "chain" from child to parent, until we can't go further. while current do		local category = nil local display_name = nil local nocap = nil if type(current) == "string" then category = current display_name = current:gsub("^Category:", "") else category = "Category:" .. current:getCategoryName display_name, nocap = current:getBreadcrumbName end

if not nocap then display_name = mw.getContentLanguage:ucfirst(display_name) end table.insert(steps, 1, "" .. display_name .. "") -- Move up the "chain" by one level. if type(current) == "string" then current = nil else current = current:getParents end if current then current = current[1].name elseif inFundamental[category] then current = "Category:Fundamental" end end steps = table.concat(steps, " » ") return " " .. steps .. " " end

-- Show the text that goes at the very top right of the page. function show_topright(current) return (current.getTopright and current:getTopright or "") end

-- Show a short description text for the category. function show_description(current) return (current:getDescription or "") end

function show_appendix(current) local appendix if current.getAppendix then appendix = current:getAppendix end if appendix then return "For more information, see " .. appendix .. "." else return nil end end

-- Show a list of child categories. function show_children(current) local children = current:getChildren if not children then return nil end table.sort(children, function(first, second) return mw.ustring.upper(first.sort) < mw.ustring.upper(second.sort) end) local children_list = {} for _, child in ipairs(children) do		local child_pagetitle if type(child.name) == "string" then child_pagetitle = child.name else child_pagetitle = "Category:" .. child.name:getCategoryName end local child_page = mw.title.new(child_pagetitle) if child_page.exists then local child_description = child.description or type(child.name) == "string" and child.name:gsub("^Category:", "") .. "." or				child.name:getDescription("child") table.insert(children_list, "* " .. child_pagetitle .. ": " .. child_description) end end return table.concat(children_list, "\n") end

-- Show a table of contents with links to each letter in the language's script. function show_TOC(current) local titleText = mw.title.getCurrentTitle.text local inCategoryPages = mw.site.stats.pagesInCategory(titleText, "pages") local inCategorySubcats = mw.site.stats.pagesInCategory(titleText, "subcats")

local TOC_type

-- Compute type of table of contents required. if inCategoryPages > 2500 or inCategorySubcats > 2500 then TOC_type = "full" elseif inCategoryPages > 200 or inCategorySubcats > 200 then TOC_type = "normal" else -- No (usual) need for a TOC if all pages or subcategories can fit on one page; -- but allow this to be overridden by a custom TOC handler. TOC_type = "none" end

if current.getTOC then local TOC_text = current:getTOC(TOC_type) if TOC_text ~= true then return TOC_text end end

if TOC_type ~= "none" then local templatename = current:getTOCTemplateName

local TOC_template if TOC_type == "full" then -- This category is very large, see if there is a "full" version of the TOC. local TOC_template_full = mw.title.new(templatename .. "/full") if TOC_template_full.exists then TOC_template = TOC_template_full end end

if not TOC_template then local TOC_template_normal = mw.title.new(templatename) if TOC_template_normal.exists then TOC_template = TOC_template_normal end end

if TOC_template then return mw.getCurrentFrame:expandTemplate{title = TOC_template.text, args = {}} end end

return nil end

function export.test(frame) local template = frame.args[1] local submodule = require(submodule_prefix .. template) if submodule.new_main then current = submodule.new_main(frame) else local info = {} for key, val in pairs(frame.args) do			info[key] = val; if info[key] == "" then info[key] = nil end end info.template = nil current = submodule.new(info, true) end end

return export

title: Module:User:Benwing2/category tree