မဝ်ဂျူ:data consistency check
This module checks the validity and internal consistency of the language, language family, and script data used on Wiktionary: the modules in en:Category:Language data modules as well as Module:scripts/data.
Output
ပလေဝ်ဒါန်Discrepancies detected:
- Code:
EL.
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
LL.
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
LL.
. Saw name: Late Latin. Expected name: လပ်တေန်လဇုဲ. - Code:
ML.
. Saw name: Medieval Latin. Expected name: လပ်တေန် ခေတ်လဒေါဝ်. - Code:
ML.
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
VL.
. Saw name: Vulgar Latin. Expected name: လပ်တေန်အရိုင်. - Code:
VL.
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
aa
. Saw name: Afar. Expected name: အဖှာင်. - Code:
aag
. Saw name: Ambrak. Expected name: အာန်ဗရေတ်ခ်. - Code:
aak
. Saw name: Ankave. Expected name: အာန်ခါဝေ. - Code:
aan
. Saw name: Anambé. Expected name: အာန္နာမ်ဗေ. - Code:
aau
. Saw name: Abau. Expected name: အာၜေဴ. - Code:
aav
. Saw name: Austroasiatic. Expected name: အဝ်သတြေဨဃှဳယျာတေတ်. - Code:
aav-khs-pro
. Saw name: Proto-Khasian. Expected name: ခါရှေန်-အခိုက်ကၞာ. - Code:
aav-pro
. Saw name: Proto-Austroasiatic. Expected name: အဝ်သတြေဨချေန်တေတ်-အခိုက်ကၞာ. - Code:
aaz
. Saw name: Amarasi. Expected name: အာန်မာရသဳ. - Code:
ab
. Saw name: Abkhaz. Expected name: အာပ်ဟန်. - Code:
abe
. Saw name: Abenaki. Expected name: အေတ်ဗဒ်နာကဳ. - Code:
abs
. Saw name: Ambonese Malay. Expected name: မလေဝ် အာန်ဗဝ်နေတ်. - Code:
ace
. Saw name: Acehnese. Expected name: အာသံနဳစ်. - Code:
acw
. Saw name: Hijazi Arabic. Expected name: အာရဗဳဟဳဂျာဇြဳ. - Code:
acy
. Saw name: Cypriot Arabic. Expected name: အာရဗဳ သာဲပရေက်. - Code:
ady
. Saw name: Adyghe. Expected name: အာက်ဒေါတ်ကာယ်. - Code:
ae
. Saw name: Avestan. Expected name: အဗါတ်သတေန်. - Code:
aeb
. Saw name: Tunisian Arabic. Expected name: အာရဗဳ တူနဳယှေန်. - Code:
aem
. Saw name: Arem. Expected name: အါန်. - Code:
af
. Saw name: Afrikaans. Expected name: အေက်ဖရိကာန်. - Code:
afa-pro
. Saw name: Proto-Afroasiatic. Expected name: အာက်ပရဝ်အဳသဳယာတေတ်-အခိုက်ကၞာ. - Code:
afb
. Saw name: Gulf Arabic. Expected name: အာရဗဳအထံက်ဂင်. - Code:
agv
. Saw name: Remontado Agta. Expected name: ရောမါန်ဒါဒဝ် အာက်ဂါ. - Code:
aho
. Saw name: Ahom. Expected name: အဟုမ်. - Code:
aii
. Saw name: Assyrian Neo-Aramaic. Expected name: အာက်သဳရိ နဳအဝ်-အာရာမေဣ. - Code:
ain
. Saw name: Ainu. Expected name: အာဲနု. - Code:
aio
. Saw name: Aiton. Expected name: အာဲတောန်. - Code:
aji
. Saw name: Ajië. Expected name: အဂျဳ. - Code:
ajp
. Saw name: South Levantine Arabic. Expected name: အာရဗဳလပ်ဗေန်ထေန်သမၠုင်ကျာ. - Code:
ak
. Saw name: Akan. Expected name: အကာန်. - Code:
akk
. Saw name: Akkadian. Expected name: အခါဒဳယာန်. - Code:
akl
. Saw name: Aklanon. Expected name: အာက်ခလာန်. - Code:
alc
. Saw name: Kawésqar. Expected name: ခါဝေတ်သကာ. - Code:
alj
. Saw name: Alangan. Expected name: အလံင်ဂံင်. - Code:
als
. Saw name: Albanian. Expected name: အလ်ဗနဳယာန်. - Code:
alt
. Saw name: Southern Altai. Expected name: အာန်တာဲ ဒိုဟ်သမၠုင်ကျာ. - Code:
alu
. Saw name: 'Are'are. Expected name: 'အာရေဝ်'အာရာ. - Code:
ami
. Saw name: Amis. Expected name: ဨမေတ်. - Code:
amm
. Saw name: Ama. Expected name: အာမာ. - Code:
ams
. Saw name: Southern Amami Ōshima. Expected name: အမာမဳ-အဝ်ဃှဳမာ လ္ပာ်ဒိုဟ်သမၠုင်ကျာ. - Code:
amu
. Saw name: Guerrero Amuzgo. Expected name: ဂေရေရဝ် အာမတ်သဂဝ်. - Code:
an
. Saw name: Aragonese. Expected name: အာဒါဂေန်. - Code:
ane
. Saw name: Xârâcùù. Expected name: သာရခူ. - Code:
ang
. Saw name: Old English. Expected name: အင်္ဂလိက်တြေံ. - Code:
anq
. Saw name: Jarawa. Expected name: ဂျရာဝါ. - Code:
aot
. Saw name: Atong (India). Expected name: အိန္ဒိ အာတုံ. - Code:
apc
. Saw name: North Levantine Arabic. Expected name: အာရဗဳလပ်ဗေန်ထေန်သၟဝ်ကျာ. - Code:
apw
. Saw name: Western Apache. Expected name: အာဖေန်ချဳ လ္ပာ်ပလိုတ်. - Code:
ar
. Saw name: Arabic. Expected name: အာရဗဳ. - Code:
arc
. Saw name: Aramaic. Expected name: အာရမေအဳ. - Code:
arn
. Saw name: Mapudungun. Expected name: မာၜေအ်ဓုန်ကာန်. - Code:
ary
. Saw name: Moroccan Arabic. Expected name: အာရဗဳ မဝ်ရဝ်ကာန်. - Code:
arz
. Saw name: Egyptian Arabic. Expected name: အာရဗဳ အဳဇေတ်. - Code:
as
. Saw name: Assamese. Expected name: အိသ်ဇြာံမဳ. - Code:
ask
. Saw name: Ashkun. Expected name: အာပ်သကေန်. - Code:
ast
. Saw name: Asturian. Expected name: အေက်သတဝ်ရေန်. - Code:
ath-pro
. Saw name: Proto-Athabaskan. Expected name: အာက်တၜေတ်သကေင်-အခိုက်ကၞာ. - Code:
avu
. Saw name: Avokaya. Expected name: အာတ်ဝါဝ်ခါယျ. - Code:
awg
. Saw name: Anguthimri. Expected name: အာန်ဂူတဳမဳရဳ. - Code:
ay
. Saw name: Aymara. Expected name: အိုင်မာရ. - Code:
ayl
. Saw name: Libyan Arabic. Expected name: အာရဗဳလေတ်ဗျာ. - Code:
az
. Saw name: Azerbaijani. Expected name: အာက်သေတ်ဗါဲဇြေနဳ. - Code:
azc-nah-pro
. Saw name: Proto-Nahuan. Expected name: နာဟာမ်-အခိုက်ကၞာ. - Code:
azc-pro
. Saw name: Proto-Uto-Aztecan. Expected name: ယူတဝ်-အာက်သတေကာန်-အခိုက်ကၞာ. - Code:
ba
. Saw name: Bashkir. Expected name: ဗေတ်ခဳ. - Code:
ban
. Saw name: Balinese. Expected name: ပါလဳနဳ. - Code:
bar
. Saw name: Bavarian. Expected name: ဗာဝါရဳယာန်. - Code:
bat-pro
. Saw name: Proto-Baltic. Expected name: ဗေါဝ်တေတ်-အခိုက်ကၞာ. - Code:
bat-pro
. Saw name: Proto-Balto-Slavic. Expected name: ဗဴတဝ်-သလာဗေတ်-အခိုက်ကၞာ. - Code:
bbn
. Saw name: Uneapa. Expected name: အာန်နဳပါန်. - Code:
bbr
. Saw name: Girawa. Expected name: ဂဳရာဝါ. - Code:
bcl
. Saw name: Bikol Central. Expected name: ၜေဲလ်ဂဝ်လဝ်အဒေါဝ်. - Code:
bdq
. Saw name: Bahnar. Expected name: ဗာနာ. - Code:
be
. Saw name: Belarusian. Expected name: ဗါလာရုဇ်. - Code:
bej
. Saw name: Beja. Expected name: ဗဳဂျာ. - Code:
ber-pro
. Saw name: Proto-Berber. Expected name: ဗေအ်ဗေအ်-အခိုက်ကၞာ. - Code:
beu
. Saw name: Blagar. Expected name: ဗလာဂါ. - Code:
bft
. Saw name: Balti. Expected name: ဗဝ်လ်တဳ. - Code:
bg
. Saw name: Bulgarian. Expected name: ဗူလ်ဂရဳယာန်. - Code:
bi
. Saw name: Bislama. Expected name: ဗဳသလာမာ. - Code:
bkd
. Saw name: Binukid. Expected name: ဗေန်နူကာဒ်. - Code:
bla
. Saw name: Blackfoot. Expected name: ဗလပ်ဖှေက်. - Code:
blr
. Saw name: Blang. Expected name: ဗလင်. - Code:
blt
. Saw name: Tai Dam. Expected name: သေံဓီု. - Code:
bm
. Saw name: Bambara. Expected name: ဗီုဗရာ. - Code:
bmr
. Saw name: Muinane. Expected name: မူအဳနာန်. - Code:
bn
. Saw name: Bengali. Expected name: ဘင်္ဂါလဳ. - Code:
bnn
. Saw name: Bunun. Expected name: ဗုန်ရနာန်. - Code:
bno
. Saw name: Asi. Expected name: အာသဳ. - Code:
bnq
. Saw name: Bantik. Expected name: ဗါန်တေတ်. - Code:
bnt-phu
. Saw name: Phuthi. Expected name: ဖူတ်တဳ. - Code:
bnt-pro
. Saw name: Proto-Bantu. Expected name: ဗာန်တူ-အခိုက်ကၞာ. - Code:
bo
. Saw name: Tibetan. Expected name: တဳဗဝ်. - Code:
bor
. Saw name: Borôro. Expected name: ဗဝ်ဝေဝ်ရဝ်. - Code:
br
. Saw name: Breton. Expected name: ဗရဳတေန်. - Code:
brg
. Saw name: Baure. Expected name: ဗါတ်ရာတ်. - Code:
brh
. Saw name: Brahui. Expected name: ဗရာဝဳ. - Code:
brx
. Saw name: Bodo (India). Expected name: ဗဝ်ဒဝ် (အိန္ဒိယ). - Code:
bsh
. Saw name: Kamkata-viri. Expected name: ကမ်ကတ-ဝဳရိ. - Code:
bsq
. Saw name: Bassa. Expected name: ဗါတ်သာ. - Code:
bug
. Saw name: Buginese. Expected name: ၜေါအ်ဂဳနဳ. - Code:
byn
. Saw name: Blin. Expected name: ဗလေန်. - Code:
bzj
. Saw name: Belizean Creole. Expected name: ဗဳလဳဇေန်ခရဳအဝ်လ် . - Code:
ca
. Saw name: Catalan. Expected name: ကတလာန်. - Code:
car
. Saw name: Kari'na. Expected name: ဂါလဳဗဳကာရေတ်. - Code:
cbk
. Saw name: Chavacano. Expected name: ချာဗာကာနဝ်. - Code:
ccs-pro
. Saw name: Proto-Kartvelian. Expected name: ကောတ်ဗေလဳယာန်-အခိုက်ကၞာ. - Code:
cdm
. Saw name: Chepang. Expected name: ချက်ခ်ဖံင်. - Code:
ce
. Saw name: Chechen. Expected name: ချက်ခ်ချေင်. - Code:
ceb
. Saw name: Cebuano. Expected name: သဲၜေါအ်အာနဝ်. - Code:
cel
. Saw name: Celtic. Expected name: သဲလ်တေတ်. - Code:
cel-bry-pro
. Saw name: Proto-Brythonic. Expected name: ပရေတ်တိုန်နေတ်-အခိုက်ကၞာ. - Code:
cel-gau
. Saw name: Gaulish. Expected name: ဂါလေတ်. - Code:
cel-pro
. Saw name: Proto-Celtic. Expected name: သဲလ်တေတ်-အခိုက်ကၞာ. - Code:
ch
. Saw name: Chamorro. Expected name: ချာမဝ်ရဝ်. - Code:
chg
. Saw name: Chagatai. Expected name: ချာကထိုင်. - Code:
chk
. Saw name: Chuukese. Expected name: ချေူခဳ. - Code:
chl
. Saw name: Cahuilla. Expected name: ခဝ်ဝဳယျာ. - Code:
chn
. Saw name: Chinook Jargon. Expected name: ဃှသ်နေဝ် ဂျာတ်ကေါမ်. - Code:
cho
. Saw name: Choctaw. Expected name: ချံက်ထံက်. - Code:
chp
. Saw name: Chipewyan. Expected name: ချေပ်ပါယ်ဝဳယွာန်. - Code:
chy
. Saw name: Cheyenne. Expected name: သျှေန်အာန်. - Code:
cic
. Saw name: Chickasaw. Expected name: ချဳကာသော. - Code:
cim
. Saw name: Cimbrian. Expected name: သေန်ဗရေန်. - Code:
cja
. Saw name: Western Cham. Expected name: ကျေန်လ္ပာ်ဖာပလိုတ်. - Code:
cjm
. Saw name: Eastern Cham. Expected name: ကျေန်လ္ပာ်ဖာဗၟံက်. - Code:
cjs
. Saw name: Shor. Expected name: သျှိ. - Code:
ckb
. Saw name: Central Kurdish. Expected name: ခဝ်ဒေတ် ဗဟဵု. - Code:
ckv
. Saw name: Kavalan. Expected name: ခါဝါလာန်. - Code:
cmc-pro
. Saw name: Proto-Chamic. Expected name: ချေန်မါတ်-အခိုက်ကၞာ. - Code:
cmn
. Saw name: Mandarin. Expected name: မာန်ဒါရေဝ်. - Code:
cmn-ear
. Saw name: Mandarin. Expected name: မာန်ဒါရေဝ်. - Code:
cnk
. Saw name: Khumi Chin. Expected name: ခူမဳချေင်. - Code:
cnx
. Saw name: Middle Cornish. Expected name: ခမ်နေတ် အဒေါဝ်. - Code:
co
. Saw name: Corsican. Expected name: ခဝ်သဳကာန်. - Code:
crh
. Saw name: Crimean Tatar. Expected name: ခရိုင်မာင်တတာ. - Code:
cro
. Saw name: Crow. Expected name: ခရဝ်. - Code:
cs
. Saw name: Czech. Expected name: ချက်ခ်. - Code:
csb
. Saw name: Kashubian. Expected name: ကသှုဗဳယာန်. - Code:
ctd
. Saw name: Tedim Chin. Expected name: ချေင်တဳတိန်. - Code:
cu
. Saw name: Old Church Slavonic. Expected name: ခရေတ်သလာဗဝ်နေတ်တြေံ. - Code:
cus-pro
. Saw name: Proto-Cushitic. Expected name: ကူဃှဳတေတ်-အခိုက်ကၞာ. - Code:
cv
. Saw name: Chuvash. Expected name: ချူဝါတ်. - Code:
cy
. Saw name: Welsh. Expected name: ဝေလ. - Code:
da
. Saw name: Danish. Expected name: ဒိန်နေတ်. - Code:
dag
. Saw name: Dagbani. Expected name: ဒါဂ်ဗါန်နဳ. - Code:
dak
. Saw name: Dakota. Expected name: ဒါဂဝ်တာ. - Code:
dcr
. Saw name: Negerhollands. Expected name: နောတ်ဂေါတ်ဟဝ်လာန်. - Code:
de
. Saw name: German. Expected name: ဂျာမာန်. - Code:
dhv
. Saw name: Drehu. Expected name: ဒရေဟူ. - Code:
dje
. Saw name: Zarma. Expected name: သာမာ. - Code:
djk
. Saw name: Aukan. Expected name: အဝ်ကာန်. - Code:
dlm
. Saw name: Dalmatian. Expected name: ဒေါန်မေဃှေန်. - Code:
dng
. Saw name: Dungan. Expected name: ဒုန်ကာန်. - Code:
dra-okn
. Saw name: Old Kannada. Expected name: ကာန်နာဒါတြေံ. - Code:
dsb
. Saw name: Lower Sorbian. Expected name: သာဘဳယျာမသဝ်. - Code:
dum
. Saw name: Middle Dutch. Expected name: ဒါတ်အဒေါဝ်. - Code:
duu
. Saw name: Drung. Expected name: ဒျောန်. - Code:
dv
. Saw name: Dhivehi. Expected name: ဒိဝေဟဳ. - Code:
dz
. Saw name: Dzongkha. Expected name: သောင်ခါ. - Code:
ebk
. Saw name: Eastern Bontoc. Expected name: ဗေုန်တေံက် လ္ပာ်ဖာဗၟံက်. - Code:
ee
. Saw name: Ewe. Expected name: အဳဝါ. - Code:
egl
. Saw name: Emilian. Expected name: အဳမဳလဳယာန်. - Code:
egy
. Saw name: Egyptian. Expected name: အဳဂျေပ်. - Code:
el
. Saw name: Greek. Expected name: ဂရေတ်. - Code:
en
. Saw name: English. Expected name: အင်္ဂလိက်. - Code:
enm
. Saw name: Middle English. Expected name: အင်္ဂလိက် အဒေါဝ်. - Code:
eo
. Saw name: Esperanto. Expected name: အေက်သပရေန်တဝ်. - Code:
es
. Saw name: Spanish. Expected name: သပုင်. - Code:
esx-esk-pro
. Saw name: Proto-Eskimo. Expected name: အာက်သကဳမဝ်-အခိုက်ကၞာ. - Code:
esx-inu-pro
. Saw name: Proto-Inuit. Expected name: အိန်ယူအေတ်-အခိုက်ကၞာ. - Code:
et
. Saw name: Estonian. Expected name: အေက်သတဝ်နဳယာန်. - Code:
ett
. Saw name: Etruscan. Expected name: အဳထရေတ်သကာန်. - Code:
eu
. Saw name: Basque. Expected name: ဗက်ခ်. - Code:
euq-pro
. Saw name: Proto-Basque. Expected name: ဗက်ခ်-အခိုက်ကၞာ. - Code:
evn
. Saw name: Evenki. Expected name: အဳပေန်ကဳ. - Code:
ext
. Saw name: Extremaduran. Expected name: အေက်သတရေမဒါဝ်ရာန်. - Code:
fa
. Saw name: Persian. Expected name: ပါရှေန်. - Code:
fab
. Saw name: Annobonese. Expected name: အာန်နဝ်ဗဝ်နေတ်. - Code:
fax
. Saw name: Fala. Expected name: ဖှာင်လာ. - Code:
ff
. Saw name: Fula. Expected name: ဖှောတ်လာ. - Code:
fi
. Saw name: Finnish. Expected name: ဖေန်လာန်. - Code:
fit
. Saw name: Meänkieli. Expected name: မေန်ခဳအာလဳ. - Code:
fiu-pro
. Saw name: Proto-Uralic. Expected name: ယူရာလေတ်-အခိုက်ကၞာ. - Code:
fiu-pro
. Saw name: Proto-Finno-Ugric. Expected name: ဖေန်နဝ်-ဥူဂရေတ်-အခိုက်ကၞာ. - Code:
fj
. Saw name: Fijian. Expected name: ဖရဳဂျိ. - Code:
fkv
. Saw name: Kven. Expected name: ခေဗေါန်. - Code:
fo
. Saw name: Faroese. Expected name: ဖာရဝ်သဳ. - Code:
fr
. Saw name: French. Expected name: ပြင်သေတ်. - Code:
fr-CA
. Saw name: French. Expected name: ပြင်သေတ်. - Code:
frd
. Saw name: Fordata. Expected name: ဖှေန်ဒါတာ. - Code:
frk
. Saw name: Frankish. Expected name: ပြင်ဂေတ်တြေံ. - Code:
frk
. Saw name: Proto-West Germanic. Expected name: ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ. - Code:
frm
. Saw name: Middle French. Expected name: ပြင်သေတ်အဒေါဝ်. - Code:
fro
. Saw name: Old French. Expected name: ပြင်သေတ်တြေံ. - Code:
fro-nor
. Saw name: Old French. Expected name: ပြင်သေတ်တြေံ. - Code:
fro-nor
. Saw name: Old Northern French. Expected name: နဝ်မာံတြေံ. - Code:
frp
. Saw name: Franco-Provençal. Expected name: ဖပြင်ဂဝ်-ဖရဝ်ပေါန်သာဝ်. - Code:
frr
. Saw name: North Frisian. Expected name: ဖရဳယှေန် သၟဝ်ကျာ. - Code:
fur
. Saw name: Friulian. Expected name: ပရိဥူလဳယာန်. - Code:
fy
. Saw name: West Frisian. Expected name: ဖရေဝ်သဳယာန်လက္ကရဴ. - Code:
ga
. Saw name: Irish. Expected name: အာဲယျာလာန်. - Code:
gag
. Saw name: Gagauz. Expected name: ကာဒ်အာက်. - Code:
gcf
. Saw name: Antillean Creole. Expected name: အာန်တဳလဳယာန် ခရဳအဝ်လ်. - Code:
gd
. Saw name: Scottish Gaelic. Expected name: သကတ်ဂဴလိစ်. - Code:
gem
. Saw name: Germanic. Expected name: ဂျာမာန်နေတ်. - Code:
gem-pro
. Saw name: Proto-Germanic. Expected name: ဂျာမာန်-အခိုက်ကၞာ. - Code:
gil
. Saw name: Gilbertese. Expected name: ဂဳလ်ပါတဳ. - Code:
gkm
. Saw name: Ancient Greek. Expected name: ဂရေတ်တြေံ. - Code:
gkm
. Saw name: Byzantine Greek. Expected name: ဂရေတ် ၜါန်သေန်တိုင်. - Code:
gl
. Saw name: Galician. Expected name: ဂလဳသဳယာန်. - Code:
gmh
. Saw name: Middle High German. Expected name: ဂျာမာန်လဒေါဝ်သၠုင်. - Code:
gml
. Saw name: Middle Low German. Expected name: ဂျာမာန်အဒေါဝ်မသဝ်. - Code:
gmq
. Saw name: North Germanic. Expected name: ဂျာမာန်နေတ် သၟဝ်ကျာ. - Code:
gmq-mno
. Saw name: Middle Norwegian. Expected name: နဝ်ဝေ လဒေါဝ်. - Code:
gmq-oda
. Saw name: Old Danish. Expected name: ဒိန်နေတ်တြေံ. - Code:
gmq-osw
. Saw name: Old Swedish. Expected name: သွဳဒေန်တြေံ. - Code:
gmq-pro
. Saw name: Proto-Norse. Expected name: နဳနိုတ်-အခိုက်ကၞာ. - Code:
gmw-cfr
. Saw name: Central Franconian. Expected name: ဖပြၚ်ကိုဝ်နဳယာန် ဗဟဵု. - Code:
gmw-ecg
. Saw name: East Central German. Expected name: ဂျာမာန် လ္ပာ်ဗၟံက်ဗဟဵု. - Code:
gmw-jdt
. Saw name: Jersey Dutch. Expected name: ဒါတ် ဂျာဇြဳ. - Code:
gmw-pro
. Saw name: Proto-West Germanic. Expected name: ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ. - Code:
gmy
. Saw name: Mycenaean Greek. Expected name: ဂရိမာဲသဳနဳယာန်. - Code:
gn
. Saw name: Guaraní. Expected name: ဂူရာန်နဳ. - Code:
goh
. Saw name: Old High German. Expected name: ဂျာမာန်သၠုင်တြေံ. - Code:
got
. Saw name: Gothic. Expected name: ကာဒ်တေတ်. - Code:
grc
. Saw name: Ancient Greek. Expected name: ဂရေတ်တြေံ. - Code:
grk-mar
. Saw name: Mariupol Greek. Expected name: ဂရိ မာရိအုဖန်. - Code:
grk-pro
. Saw name: Proto-Hellenic. Expected name: ဟေဲလာန်နေတ်-အခိုက်ကၞာ. - Code:
grt
. Saw name: Garo. Expected name: ဂရဝ်. - Code:
gsw
. Saw name: Alemannic German. Expected name: အလဳမာန်နေတ် ဂျာမာန်. - Code:
gtu
. Saw name: Aghu Tharrnggala. Expected name: အဂူ တာရိင်ဂါဠာ. - Code:
gu
. Saw name: Gujarati. Expected name: ဂုဂျာရတဳ. - Code:
gug
. Saw name: Paraguayan Guaraní. Expected name: ပါရာကွာင် ကူရာန်နဳ. - Code:
gul
. Saw name: Gullah. Expected name: ဂုန်လာ. - Code:
gur
. Saw name: Farefare. Expected name: ဟူလာဟူလာ. - Code:
guw
. Saw name: Gun. Expected name: ဂါန်. - Code:
gv
. Saw name: Manx. Expected name: မာက်. - Code:
ha
. Saw name: Hausa. Expected name: ဟဴသာ. - Code:
haa
. Saw name: Hän. Expected name: ဟာန်. - Code:
hai
. Saw name: Haida. Expected name: ဟာဲဒါ. - Code:
hal
. Saw name: Halang. Expected name: ဟာလာန်. - Code:
haw
. Saw name: Hawaiian. Expected name: ဟာဝါဲအဳ. - Code:
hch
. Saw name: Huichol. Expected name: ဟုဲဆျဴ. - Code:
he
. Saw name: Hebrew. Expected name: ဟဳဘရဝ်. - Code:
hi
. Saw name: Hindi. Expected name: ဟိန္ဒဳ. - Code:
hid
. Saw name: Hidatsa. Expected name: ဟဳဒေါတ်သ. - Code:
hil
. Saw name: Hiligaynon. Expected name: ဟဳလဳဂါနန်. - Code:
hit
. Saw name: Hittite. Expected name: ဟေတ်ထိုၚ်. - Code:
hmx-pro
. Saw name: Proto-Hmong-Mien. Expected name: မေန်-မဳယာန်-အခိုက်ကၞာ. - Code:
ho
. Saw name: Hiri Motu. Expected name: ဟဳရဳမိုတု. - Code:
hop
. Saw name: Hopi. Expected name: ဟဝ်ပဳ. - Code:
hrx
. Saw name: Hunsrik. Expected name: ဟာန်သဝေတ်. - Code:
hsb
. Saw name: Upper Sorbian. Expected name: သဝ်ဗဳယျာ လ္ပာ်သၠုင်ကျာ. - Code:
ht
. Saw name: Haitian Creole. Expected name: ဟေဲယှေန် ခရေဝ်အဝ်လ်. - Code:
hu
. Saw name: Hungarian. Expected name: ဟာန်ဂါရေဝ်. - Code:
hy
. Saw name: Armenian. Expected name: အာမေနဳယျာ. - Code:
ia
. Saw name: Interlingua. Expected name: အေန်တာလိင်ဂဝ်. - Code:
iba
. Saw name: Iban. Expected name: အဳဗါန်. - Code:
id
. Saw name: Indonesian. Expected name: အိန်ဒဝ်နဳသဳယျာ. - Code:
ie
. Saw name: Interlingue. Expected name: အေန်တာလိင်ဂဝေ. - Code:
ifu
. Saw name: Mayoyao Ifugao. Expected name: မယောယောန် အဖူကာဝ်. - Code:
ig
. Saw name: Igbo. Expected name: အေတ်ဗါဝ်. - Code:
igl
. Saw name: Igala. Expected name: အဳဂါလာ. - Code:
ii
. Saw name: Nuosu. Expected name: သေဲဆိုန်ယဳ. - Code:
iir-pro
. Saw name: Proto-Indo-Iranian. Expected name: အိန်ဒဝ်-အဳရာန်-အခိုက်ကၞာ. - Code:
ik
. Saw name: Inupiaq. Expected name: အဳနုဗဳယာတ်. - Code:
ilo
. Saw name: Ilocano. Expected name: အဳလဝ်ကာနဝ်. - Code:
inc-ash
. Saw name: Ashokan Prakrit. Expected name: အခါန်ကာန် ပရာကရေတ်. - Code:
inc-kho
. Saw name: Kholosi. Expected name: ခိုဝ်လဝ်သဳ. - Code:
inc-oas
. Saw name: Early Assamese. Expected name: အိသ်ဇြာံမဳကၠာအိုတ်. - Code:
ine-bsl-pro
. Saw name: Proto-Balto-Slavic. Expected name: ဗဴတဝ်-သလာဗေတ်-အခိုက်ကၞာ. - Code:
ine-pro
. Saw name: Proto-Indo-European. Expected name: အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ. - Code:
ine-toc-pro
. Saw name: Proto-Tocharian. Expected name: ထေဝ်ခါမ်ရေဝ်ယာန်-အခိုက်ကၞာ. - Code:
io
. Saw name: Ido. Expected name: ဣဒဝ်. - Code:
ira-pro
. Saw name: Proto-Iranian. Expected name: အဳရာန်-အခိုက်ကၞာ. - Code:
is
. Saw name: Icelandic. Expected name: အာက်သလာန်. - Code:
ist
. Saw name: Istriot. Expected name: အေတ်သထရဳအိုတ်. - Code:
it
. Saw name: Italian. Expected name: အဳတခ်လဳ. - Code:
itc-ola
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
itc-pro
. Saw name: Proto-Italic. Expected name: အခိုက်ကၞာ-မလိက်ဒစေင်. - Code:
iu
. Saw name: Inuktitut. Expected name: ဣနုက်တိတုတ်. - Code:
ivb
. Saw name: Ibatan. Expected name: အဳဗါတေန်. - Code:
izh
. Saw name: Ingrian. Expected name: အင်္ဂရေဝ်ယာန်. - Code:
ja
. Saw name: Japanese. Expected name: ဂျပါန်. - Code:
jct
. Saw name: Krymchak. Expected name: ခရေန်သျှောတ်. - Code:
jje
. Saw name: Jeju. Expected name: ချဲဇူ. - Code:
jpx-pro
. Saw name: Proto-Japonic. Expected name: ဂျဖါန်နေတ်-အခိုက်ကၞာ. - Code:
jpx-ryu-pro
. Saw name: Proto-Ryukyuan. Expected name: ရေဝ်ကယူ-အခိုက်ကၞာ. - Code:
jra
. Saw name: Jarai. Expected name: ဂျာရိုင်. - Code:
juc
. Saw name: Jurchen. Expected name: ဂျေန်ချေန်. - Code:
jv
. Saw name: Javanese. Expected name: ဂျာဗာ. - Code:
ka
. Saw name: Georgian. Expected name: ဂျဝ်ဂျဳယျာ. - Code:
kaa
. Saw name: Karakalpak. Expected name: ကာရာကာလပက်. - Code:
kab
. Saw name: Kabyle. Expected name: ကာဗေန်အဝ်. - Code:
kac
. Saw name: Jingpho. Expected name: ကချေင်. - Code:
kam
. Saw name: Kamba. Expected name: ကေန်ဗာ. - Code:
kar-pro
. Saw name: Proto-Karen. Expected name: ကရေင်-အခိုက်ကၞာ. - Code:
kaw
. Saw name: Old Javanese. Expected name: ဂျာဗာတြေံ. - Code:
kbd
. Saw name: Kabardian. Expected name: ခါပါဒဳယာန်. - Code:
kcg
. Saw name: Tyap. Expected name: ထိုင်အာက်. - Code:
kdr
. Saw name: Karaim. Expected name: ကာရေန်. - Code:
kea
. Saw name: Kabuverdianu. Expected name: ခါၜေါအ်အဝ်ဒဳယဴနူ. - Code:
kek
. Saw name: Q'eqchi. Expected name: ခဳ'ချဳ. - Code:
ket
. Saw name: Ket. Expected name: ခေပ်. - Code:
kha
. Saw name: Khasi. Expected name: ခါသဳ. - Code:
khb
. Saw name: Lü. Expected name: သေံလု. - Code:
khi-kun
. Saw name: ǃKung. Expected name: ခါမ်. - Code:
kht
. Saw name: Khamti. Expected name: သေံခဂၞဳ. - Code:
ki
. Saw name: Kikuyu. Expected name: ခဳခူယူ. - Code:
kim
. Saw name: Tofa. Expected name: တဝ်ဖှာ. - Code:
kjh
. Saw name: Khakas. Expected name: ခါခေတ်. - Code:
kk
. Saw name: Kazakh. Expected name: ကဇက်. - Code:
kl
. Saw name: Greenlandic. Expected name: ဂရိန်လာန်. - Code:
kls
. Saw name: Kalasha. Expected name: ကလာချာ. - Code:
klv
. Saw name: Maskelynes. Expected name: မာတ်သခေလေါန်. - Code:
klw
. Saw name: Lindu. Expected name: လေန်ဒူ. - Code:
km
. Saw name: Khmer. Expected name: ခမေန်. - Code:
kmb
. Saw name: Kimbundu. Expected name: ခေင်ဗွိုန်ဒူန်. - Code:
kmc
. Saw name: Southern Kam. Expected name: ကါမ် လ္ပာ်ဒိုဟ်သမၠုင်ကျာ. - Code:
kmk
. Saw name: Limos Kalinga. Expected name: လေန်မဝ်သေန် ကလေန်ဂါ. - Code:
kmr
. Saw name: Northern Kurdish. Expected name: ကာဒ် လ္ပာ်သၟဝ်ကျာ. - Code:
knf
. Saw name: Mankanya. Expected name: မေန်ခမ်ယျာ. - Code:
ko
. Saw name: Korean. Expected name: ကိုဝ်ရဳယျာ. - Code:
kok
. Saw name: Konkani. Expected name: ခေန်ကနဳ. - Code:
kpm
. Saw name: Koho. Expected name: ကိုဝ်ဟဝ်. - Code:
kpv
. Saw name: Komi-Zyrian. Expected name: ခဝ်မဳ-သဳရေဝ်ယာန်. - Code:
kpw
. Saw name: Kobon. Expected name: ကဝ်ဗေန်. - Code:
kr
. Saw name: Kanuri. Expected name: ကနူရဳ. - Code:
kri
. Saw name: Krio. Expected name: ခရိအဝ်. - Code:
krj
. Saw name: Kinaray-a. Expected name: ခဳနာရော-အာ. - Code:
krl
. Saw name: Karelian. Expected name: ခါရေဝ်လဳယာန်. - Code:
ks
. Saw name: Kashmiri. Expected name: ကာဒ်ရှ်မဳယျာ. - Code:
ksd
. Saw name: Tolai. Expected name: တဝ်လာၚ်. - Code:
ksi
. Saw name: Krisa. Expected name: ခရေတ်သ. - Code:
ksw
. Saw name: S'gaw Karen. Expected name: ကရေင်သကဵု. - Code:
kum
. Saw name: Kumyk. Expected name: ခူမာတ်. - Code:
kus
. Saw name: Kusaal. Expected name: ကူသာလ်. - Code:
kw
. Saw name: Cornish. Expected name: ခမ်နေတ်. - Code:
kwk
. Saw name: Kwak'wala. Expected name: ခွါကွာ'ဝလာ. - Code:
kxd
. Saw name: Brunei Malay. Expected name: မလေဝ် ဗရုနာဲ. - Code:
ky
. Saw name: Kyrgyz. Expected name: ကာဇေတ်. - Code:
kzg
. Saw name: Kikai. Expected name: ခဳခါဲ. - Code:
la
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
la-ecc
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
la-lat
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
la-lat
. Saw name: Late Latin. Expected name: လပ်တေန်လဇုဲ. - Code:
la-med
. Saw name: Medieval Latin. Expected name: လပ်တေန် ခေတ်လဒေါဝ်. - Code:
la-med
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
la-vul
. Saw name: Latin. Expected name: လပ်တေန်. - Code:
la-vul
. Saw name: Vulgar Latin. Expected name: လပ်တေန်အရိုင်. - Code:
lac
. Saw name: Lacandon. Expected name: လပ်ခေန်ဒေါန်. - Code:
lad
. Saw name: Ladino. Expected name: လာဒဳနဝ်. - Code:
lb
. Saw name: Luxembourgish. Expected name: လူဇေန်ဘာဂျ်. - Code:
lg
. Saw name: Luganda. Expected name: လုဂန်ဒါ. - Code:
lhu
. Saw name: Lahu. Expected name: လာဟူ. - Code:
li
. Saw name: Limburgish. Expected name: လိမ်ဗူရ်ဂိသ်. - Code:
lic
. Saw name: Hlai. Expected name: လာဲ. - Code:
lif
. Saw name: Limbu. Expected name: လေန်ၜေါအ်. - Code:
lij
. Saw name: Ligurian. Expected name: လဳဂူရေဝ်ယာန်. - Code:
liv
. Saw name: Livonian. Expected name: လဳၜိုနဳယာန်. - Code:
lkt
. Saw name: Lakota. Expected name: လာဂဝ်တ. - Code:
lld
. Saw name: Ladin. Expected name: လာဒေန်. - Code:
lmo
. Saw name: Lombard. Expected name: လံဗာတ်. - Code:
ln
. Saw name: Lingala. Expected name: လေန်ဂါလာ. - Code:
lng
. Saw name: Lombardic. Expected name: လီုဗါဒေါတ်. - Code:
lng
. Saw name: Old High German. Expected name: ဂျာမာန်သၠုင်တြေံ. - Code:
lo
. Saw name: Lao. Expected name: သေံလဴ. - Code:
loj
. Saw name: Lou. Expected name: ဠူ. - Code:
lou
. Saw name: Louisiana Creole. Expected name: ပြင်သေတ် လူဝဳသဳယျာနာ ခရေဝ်အဝ်. - Code:
lsi
. Saw name: Lashi. Expected name: လာယှဳ. - Code:
lt
. Saw name: Lithuanian. Expected name: လေတ်တူယဵုနဳယျာ. - Code:
ltc
. Saw name: Middle Chinese. Expected name: ကြုက်လဒေါဝ်. - Code:
ltg
. Saw name: Latgalian. Expected name: လပ်ဂါလဳယာန်. - Code:
lud
. Saw name: Ludian. Expected name: ဠူဒဳယာန်. - Code:
lus
. Saw name: Mizo. Expected name: မဳသုဝ်. - Code:
lut
. Saw name: Lushootseed. Expected name: ဠူသၠာ်သဳ. - Code:
lv
. Saw name: Latvian. Expected name: လပ်ဗဳယာ. - Code:
lzz
. Saw name: Laz. Expected name: လာတ်. - Code:
mad
. Saw name: Madurese. Expected name: မာဒူရေတ်. - Code:
mag
. Saw name: Magahi. Expected name: မာဂါဟဳ. - Code:
mak
. Saw name: Makasar. Expected name: မကာသာ. - Code:
map-pro
. Saw name: Proto-Austronesian. Expected name: အဝ်သတြေနဳယှေန်-အခိုက်ကၞာ. - Code:
maw
. Saw name: Mampruli. Expected name: မာံပရဝ်လဳ. - Code:
mba
. Saw name: Higaonon. Expected name: ဟဳကာအောန်နန်. - Code:
mbd
. Saw name: Dibabawon Manobo. Expected name: ဒိဗာဗာဝေန် မာနဝ်ဗဝ်. - Code:
mch
. Saw name: Ye'kwana. Expected name: ယျေကွာနာ. - Code:
mdf
. Saw name: Moksha. Expected name: မောက္ခ. - Code:
mdh
. Saw name: Maguindanao. Expected name: မဂေါန်ဒါနာနှဴ. - Code:
mel
. Saw name: Central Melanau. Expected name: မာလာနၞဴ ဗဟဵု. - Code:
men
. Saw name: Mende. Expected name: မါန်ဒဳ. - Code:
mfe
. Saw name: Mauritian Creole. Expected name: မဝ်ရေတ်ဃှေန် ခရဳအဝ်. - Code:
mfh
. Saw name: Matal. Expected name: မာက်ထေန်. - Code:
mg
. Saw name: Malagasy. Expected name: မာလာဂါသဳ. - Code:
mga
. Saw name: Middle Irish. Expected name: အာဲရိစ်အဒေါဝ်. - Code:
mh
. Saw name: Marshallese. Expected name: မာချဲလဳ. - Code:
mhn
. Saw name: Mòcheno. Expected name: မဝ်ချေန်နဝ်. - Code:
mhr
. Saw name: Eastern Mari. Expected name: မာရေဝ် လ္ပာ်ဖာဗၟံက်. - Code:
mhx
. Saw name: Lhao Vo. Expected name: လဴဝါဝ်. - Code:
mi
. Saw name: Maori. Expected name: မဝ်ရဳ. - Code:
mih
. Saw name: Chayuco Mixtec. Expected name: ချာဲယူကိုဝ် မေတ်သတာတ်. - Code:
mk
. Saw name: Macedonian. Expected name: မက်သဳဒဝ်နဳယျာ. - Code:
mkh-ban-pro
. Saw name: Proto-Bahnaric. Expected name: ဗာနာရေတ်-အခိုက်ကၞာ. - Code:
mkh-pro
. Saw name: Proto-Mon-Khmer. Expected name: မန်-ခမေန်-အခိုက်ကၞာ. - Code:
mkh-vie-pro
. Saw name: Proto-Vietic. Expected name: ဗဳယေတ်ဒါသ်-အခိုက်ကၞာ. - Code:
ml
. Saw name: Malayalam. Expected name: မလေဝ်ယျလာမ်. - Code:
mn
. Saw name: Mongolian. Expected name: မန်ဂဝ်လဳယျာ. - Code:
mnc
. Saw name: Manchu. Expected name: မာန်ချူ. - Code:
mnk
. Saw name: Mandinka. Expected name: မာန်ဒေန်ကာ. - Code:
mnw
. Saw name: Mon. Expected name: မန်. - Code:
moa
. Saw name: Mwan. Expected name: မးဝါန်. - Code:
moh
. Saw name: Mohawk. Expected name: မဝ်ဟေတ်. - Code:
mop
. Saw name: Mopan Maya. Expected name: မဝ်ပါန် မာယျာ. - Code:
mos
. Saw name: Moore. Expected name: မွယ်. - Code:
mpg
. Saw name: Marba. Expected name: မာဗ. - Code:
mqs
. Saw name: West Makian. Expected name: မခဳယာန် လ္ပာ်ပလိုတ်. - Code:
mr
. Saw name: Marathi. Expected name: မာရဒဳ. - Code:
mrc
. Saw name: Maricopa. Expected name: မာရိခဝ်ပါ. - Code:
mro
. Saw name: Mru. Expected name: မရုန်သာ. - Code:
mrw
. Saw name: Maranao. Expected name: မာရာနဴ. - Code:
ms
. Saw name: Malay. Expected name: မလေဝ်. - Code:
ms-cla
. Saw name: Classical Malay. Expected name: မလေဝ် ဝင်ဂန္တ. - Code:
ms-cla
. Saw name: Malay. Expected name: မလေဝ်. - Code:
ms-old
. Saw name: Old Malay. Expected name: မလေဝ်တြေံ. - Code:
ms-old
. Saw name: Malay. Expected name: မလေဝ်. - Code:
msn
. Saw name: Vurës. Expected name: ဝူရေတ်. - Code:
mt
. Saw name: Maltese. Expected name: မာလ်တဳ. - Code:
mtq
. Saw name: Muong. Expected name: မေိန်. - Code:
mul
. Saw name: Translingual. Expected name: အရေဝ်ဘာသာတဏဟ်. - Code:
mvi
. Saw name: Miyako. Expected name: မိယျာကအ်. - Code:
mwl
. Saw name: Mirandese. Expected name: မဳရာန်ဒါက်. - Code:
mww
. Saw name: White Hmong. Expected name: ဝေါန်မါန်. - Code:
my
. Saw name: Burmese. Expected name: ဗၟာ. - Code:
myv
. Saw name: Erzya. Expected name: အာဝ်သဳယျာ. - Code:
na
. Saw name: Nauruan. Expected name: နာဥူလောန်. - Code:
nan
. Saw name: Min Nan. Expected name: ကြုက်-မိန်နန်. - Code:
nan-hbl
. Saw name: Hokkien. Expected name: ဟုပ်ကဳယာန်. - Code:
nap
. Saw name: Neapolitan. Expected name: နဳပဝ်လဳတေန်. - Code:
nb
. Saw name: Norwegian Bokmål. Expected name: နဝ်ဝေ ဗော်ခ်မဝ်. - Code:
ncg
. Saw name: Nisga'a. Expected name: နေတ်သကာ. - Code:
nci
. Saw name: Classical Nahuatl. Expected name: နာဝါတ်ဒဝ်ဝင်ဂန္ထ. - Code:
nds
. Saw name: Low German. Expected name: ဂျာမာန်မသဝ်. - Code:
nds-de
. Saw name: German Low German. Expected name: ဂျာမာန်မသဝ်ဂျာမာန်. - Code:
nds-nl
. Saw name: Dutch Low Saxon. Expected name: ဒါတ် လဝ်သက်သာန်. - Code:
ne
. Saw name: Nepali. Expected name: နဳပဝ်. - Code:
nfl
. Saw name: Äiwoo. Expected name: အာဲဝူ. - Code:
nhe
. Saw name: Eastern Huasteca Nahuatl. Expected name: ဝါသတေကာ နာဝါတော လ္ပာ်ဖာဗၟံက်. - Code:
nhx
. Saw name: Mecayapan Nahuatl. Expected name: မကာယျာပါံ နာဝါတဝ်. - Code:
nia
. Saw name: Nias. Expected name: နဳယျာ. - Code:
nio
. Saw name: Nganasan. Expected name: နၞဴနေတ်သာန်. - Code:
niv
. Saw name: Nivkh. Expected name: နိဖှေတ်. - Code:
njz
. Saw name: Nyishi. Expected name: နာ်ယဳဃှဳ. - Code:
nl
. Saw name: Dutch. Expected name: ဒါတ်. - Code:
nn
. Saw name: Norwegian Nynorsk. Expected name: နဝ်ဝေ နဳနိုတ်. - Code:
no
. Saw name: Norwegian. Expected name: နဝ်ဝေ. - Code:
nod
. Saw name: Northern Thai. Expected name: သေံသၟဝ်ကျာ. - Code:
nog
. Saw name: Nogai. Expected name: နဝ်ကာယ်. - Code:
non
. Saw name: Old Norse. Expected name: နဳနိုတ်တြေံ. - Code:
non-oen
. Saw name: Old Norse. Expected name: နဳနိုတ်တြေံ. - Code:
nr
. Saw name: Southern Ndebele. Expected name: အာန်ဒေဗေလေဝ် လ္ပာ်ဒိုဟ်သမၠုင်ကျာ. - Code:
nrf
. Saw name: Norman. Expected name: နဝ်မေံ. - Code:
nrn
. Saw name: Norn. Expected name: နန်. - Code:
ntp
. Saw name: Northern Tepehuan. Expected name: ထေပ်ပုဝ်ဝါန် လ္ပာ်သၟဝ်ကျာ. - Code:
nuk
. Saw name: Nootka. Expected name: နှတ်တက. - Code:
nup
. Saw name: Nupe. Expected name: နူပဳ. - Code:
nus
. Saw name: Nuer. Expected name: နူအေ. - Code:
nut
. Saw name: Nùng. Expected name: နောန်. - Code:
nv
. Saw name: Navajo. Expected name: နာဝါဟဝ်. - Code:
ny
. Saw name: Chichewa. Expected name: ချဳချေန်ဝါ. - Code:
nza
. Saw name: Tigon Mbembe. Expected name: ထိုင်ဂန် အာန်ဗာန်ဗေ. - Code:
nzd
. Saw name: Nzadi. Expected name: နဇာဒဳ. - Code:
obr
. Saw name: Old Burmese. Expected name: ဗၟာတြေံ. - Code:
obt
. Saw name: Old Breton. Expected name: ဗရဳတေန်တြေံ. - Code:
oc
. Saw name: Occitan. Expected name: အောက်စဳတာန်. - Code:
och
. Saw name: Old Chinese. Expected name: ကြုက်တြေံ. - Code:
oco
. Saw name: Old Cornish. Expected name: ခမ်နေတ်တြေံ. - Code:
odt
. Saw name: Old Dutch. Expected name: ဒါတ်တြေံ. - Code:
ofs
. Saw name: Old Frisian. Expected name: ဖရေဝ်သဳယာန်တြေံ. - Code:
oge
. Saw name: Old Georgian. Expected name: ဂျဝ်ဂျဳယျာတြေံ. - Code:
ohu
. Saw name: Old Hungarian. Expected name: ဟာန်ဂါရေဝ်တြေံ. - Code:
oj
. Saw name: Ojibwe. Expected name: အဝ်ဂျဳဗဝေ. - Code:
ojp
. Saw name: Old Japanese. Expected name: ဂျပါန်တြေံ. - Code:
oka
. Saw name: Okanagan. Expected name: အဝ်ခေန်နာဂါမ်. - Code:
okm
. Saw name: Middle Korean. Expected name: ကိုဝ်ရဳယျာအဒေါဝ်. - Code:
okn
. Saw name: Okinoerabu. Expected name: အဝ်ကဳ-နဝ်-အဳရေတ်ၜေအ်. - Code:
oko
. Saw name: Old Korean. Expected name: ကိုဝ်ရဳယျာတြေံ. - Code:
okz
. Saw name: Old Khmer. Expected name: ခမေန်တြေံ. - Code:
okz-ang
. Saw name: Angkorian Old Khmer. Expected name: ခမေန်တြေံ အာန်ခေါဝ်ရဳယာန်. - Code:
okz-ang
. Saw name: Old Khmer. Expected name: ခမေန်တြေံ. - Code:
olo
. Saw name: Livvi. Expected name: လေတ်ဝဳ. - Code:
om
. Saw name: Oromo. Expected name: အဝ်ရဝ်မဝ်. - Code:
omx
. Saw name: Old Mon. Expected name: မန်တြေံ. - Code:
ood
. Saw name: O'odham. Expected name: အဝ်ဟောံတံင်. - Code:
oon
. Saw name: Önge. Expected name: အၚ်္ၚါ. - Code:
orv
. Saw name: Old East Slavic. Expected name: သလာဗေတ်ဗၟံက်တြေံ. - Code:
os
. Saw name: Ossetian. Expected name: အဝ်ဇြဳယာန်. - Code:
osc
. Saw name: Oscan. Expected name: အဝ်သကာန်. - Code:
osp
. Saw name: Old Spanish. Expected name: သပုင်တြေံ. - Code:
osx
. Saw name: Old Saxon. Expected name: သာတ်သိုန်တြေံ. - Code:
ota
. Saw name: Ottoman Turkish. Expected name: တူရကဳအောက်ဒဝ်မာန်. - Code:
otk
. Saw name: Old Turkic. Expected name: တာခ်ကေတ်တြေံ. - Code:
otw
. Saw name: Ottawa. Expected name: အိုတ်တဝါ. - Code:
oui
. Saw name: Old Uyghur. Expected name: ဝဳဂါယ်တြေံ. - Code:
ovd
. Saw name: Elfdalian. Expected name: အာန်လ်ဖလဳယာန်. - Code:
owl
. Saw name: Old Welsh. Expected name: ဝေလတြေံ. - Code:
pa
. Saw name: Punjabi. Expected name: ပါန်ချာပဳ. - Code:
paa-nha-pro
. Saw name: Proto-North Halmahera. Expected name: ဟာဴမာဟေရာ သၟဝ်ကျာ-အခိုက်ကၞာ. - Code:
pac
. Saw name: Pacoh. Expected name: ပခိုဝ်. - Code:
pag
. Saw name: Pangasinan. Expected name: ပါန်ဂါသဳနာန်. - Code:
pal
. Saw name: Middle Persian. Expected name: ဖာသဳအဒေါဝ်. - Code:
pam
. Saw name: Kapampangan. Expected name: ခါပ်ပုံဖေါန်ဂါမ်. - Code:
pap
. Saw name: Papiamentu. Expected name: ပါဲပဳယာန်မာန်တူ. - Code:
pau
. Saw name: Palauan. Expected name: ပါလံင်ဝေတ်. - Code:
pbv
. Saw name: Pnar. Expected name: ဖဳနာ. - Code:
pcc
. Saw name: Bouyei. Expected name: ၜေါအ်ဣ. - Code:
pcm
. Saw name: Nigerian Pidgin. Expected name: နာဲဂျဳရဳယျာ ဖေါန်ဂျေန်. - Code:
pdc
. Saw name: Pennsylvania German. Expected name: ဂျာမာန် ပေန်သဲဗေနဳယျာ. - Code:
pdt
. Saw name: Plautdietsch. Expected name: ဖလာက်ဒဳ. - Code:
pdu
. Saw name: Kayan. Expected name: ကယျာန်. - Code:
peo
. Saw name: Old Persian. Expected name: ဖာသဳတြေံ. - Code:
phi-pro
. Saw name: Proto-Philippine. Expected name: ဖိလေတ်ပိုင်-အခိုက်ကၞာ. - Code:
phk
. Saw name: Phake. Expected name: ဖကာဲ. - Code:
phl
. Saw name: Phalura. Expected name: ဖလူရ. - Code:
phn
. Saw name: Phoenician. Expected name: ဖဳနေတ်ယှေန်. - Code:
pi
. Saw name: Pali. Expected name: ပါဠိ. - Code:
pjt
. Saw name: Pitjantjatjara. Expected name: ဗှေတ်ဂျေန်ကျေတ်ဂျာရာ. - Code:
pkc
. Saw name: Baekje. Expected name: ဘာတ်ဇာ. - Code:
pl
. Saw name: Polish. Expected name: ပဝ်လာန်. - Code:
ple
. Saw name: Palu'e. Expected name: ပါဋ္ဌူအာယ်. - Code:
plv
. Saw name: Southwest Palawano. Expected name: ပါလာဝါနဝ် ဒိုတ်ပလိုတ်သမၠုင်ကျာ. - Code:
plw
. Saw name: Brooke's Point Palawano. Expected name: ပါလာဝါနဝ် ဗရှေတ်ခ်ဗေါန်. - Code:
pml
. Saw name: Sabir. Expected name: သဗဳယျ. - Code:
pms
. Saw name: Piedmontese. Expected name: ဖေတ်မန်တာယ်သောတ်. - Code:
pov
. Saw name: Guinea-Bissau Creole. Expected name: ဂဳနဳ-ဗေတ်သော ခရဳအဝ်လ်. - Code:
pox
. Saw name: Polabian. Expected name: ပဝ်လာဗဳယာန်. - Code:
poz-cet-pro
. Saw name: Proto-Central-Eastern Malayo-Polynesian. Expected name: မလာယဝ်-ပဝ်လဳနဳယှာ ဗဟဵု-လ္ပာ်ဖာဗၟံက်-အခိုက်ကၞာ. - Code:
poz-mcm-pro
. Saw name: Proto-Malayo-Chamic. Expected name: မာလာယဝ်-ချေန်မေတ်-အခိုက်ကၞာ. - Code:
poz-mly-pro
. Saw name: Proto-Malayic. Expected name: မလေဝ်လေတ်-အခိုက်ကၞာ. - Code:
poz-msa-pro
. Saw name: Proto-Malayo-Sumbawan. Expected name: သာန်ပါဝါန်-မလာဲယဝ်-အခိုက်ကၞာ. - Code:
poz-oce-pro
. Saw name: Proto-Oceanic. Expected name: အဝ်ဃှဳယျာနေတ်-အခိုက်ကၞာ. - Code:
poz-pep-pro
. Saw name: Proto-Eastern Polynesian. Expected name: ပဝ်လဳနဳဃှေန် လ္ပာ်ဖာဗၟံက်-အခိုက်ကၞာ. - Code:
poz-pnp-pro
. Saw name: Proto-Nuclear Polynesian. Expected name: နူကလဳယျာ ပဝ်လဳနဳဃှေန်-အခိုက်ကၞာ. - Code:
poz-pol-pro
. Saw name: Proto-Polynesian. Expected name: ပဝ်လဳနဳဃှေန်-အခိုက်ကၞာ. - Code:
poz-pro
. Saw name: Proto-Malayo-Polynesian. Expected name: မာလာယို-ပဝ်လဳနဳယျာ-အခိုက်ကၞာ. - Code:
pqe-pro
. Saw name: Proto-Eastern Malayo-Polynesian. Expected name: မာလာယဝ်-ပဝ်လဳနဳဃှေန် လ္ပာ်ဖာဗၟံက်-အခိုက်ကၞာ. - Code:
pra
. Saw name: Prakrit. Expected name: ပရာကရေတ်. - Code:
prc
. Saw name: Parachi. Expected name: ပါရာချဳ. - Code:
prg
. Saw name: Old Prussian. Expected name: ပရာတ်ဃှေန်တြေံ. - Code:
pro
. Saw name: Old Occitan. Expected name: အောက်စဳတာန်တြေံ. - Code:
ps
. Saw name: Pashto. Expected name: ပါသတုန်. - Code:
pt
. Saw name: Portuguese. Expected name: ပဝ်တူဂြဳ. - Code:
pwn
. Saw name: Paiwan. Expected name: ဖါဲဝါန်. - Code:
qfa-lic-pro
. Saw name: Proto-Hlai. Expected name: လာဲ-အခိုက်ကၞာ. - Code:
qfa-sub
. Saw name: substrate. Expected name: သေပ်သတွေန်. - Code:
qfa-yen-pro
. Saw name: Proto-Yeniseian. Expected name: ယေနဳသဳယာန်-အခိုက်ကၞာ. - Code:
qsb-ibe
. Saw name: Undetermined. Expected name: ပဆုဲလဇလဝ်. - Code:
qu
. Saw name: Quechua. Expected name: ခေန်ချူဝါ. - Code:
quc
. Saw name: K'iche'. Expected name: ခိတ်လ်. - Code:
rap
. Saw name: Rapa Nui. Expected name: ဝါတ်ပါန်နူဝဳ. - Code:
raw
. Saw name: Rawang. Expected name: ရဝါန်. - Code:
rgn
. Saw name: Romagnol. Expected name: ရဝ်မာယာန်. - Code:
rhg
. Saw name: Rohingya. Expected name: ရဝ်ဟေင်ဂျာ. - Code:
rki
. Saw name: Rakhine. Expected name: ရခေင်. - Code:
rm
. Saw name: Romansch. Expected name: ရဝ်မာန်. - Code:
rme
. Saw name: Angloromani. Expected name: အၚ်္ဂဠဝ်ရဝ်မာနဳ. - Code:
rmg
. Saw name: Traveller Norwegian. Expected name: နဝ်ဝေ ထာတ်ပလေန်. - Code:
rmq
. Saw name: Caló. Expected name: ကာလဝ်. - Code:
rmt
. Saw name: Domari. Expected name: ဒဝ်မာရေဝ်. - Code:
rng
. Saw name: Ronga. Expected name: ရံင်ကာ. - Code:
ro
. Saw name: Romanian. Expected name: ရဝ်မေနဳယျာ. - Code:
roa
. Saw name: Romance. Expected name: ရဝ်မာံ. - Code:
roa-brg
. Saw name: Bourguignon. Expected name: ၜေအ်ကဳယာဝ်. - Code:
roa-fcm
. Saw name: Franc-Comtois. Expected name: ဖရာန်အ်-ခါမ်တဝ်. - Code:
roa-gal
. Saw name: Gallo. Expected name: ဂဲဠဝ်. - Code:
roa-leo
. Saw name: Leonese. Expected name: လဳအဝ်နေတ်. - Code:
roa-oca
. Saw name: Old Catalan. Expected name: ကတလာန်တြေံ. - Code:
roa-ole
. Saw name: Old Leonese. Expected name: လဳအဝ်နေတ်တြေံ. - Code:
roa-opt
. Saw name: Old Galician-Portuguese. Expected name: ပဝ်တူဂြဳတြေံ. - Code:
roa-tar
. Saw name: Tarantino. Expected name: ထာရာန်တဳနဝ်. - Code:
rom
. Saw name: Romani. Expected name: ရဝ်မာနဳ. - Code:
roo
. Saw name: Rotokas. Expected name: ရဝ်ထဝ်ကာဒ်. - Code:
rth
. Saw name: Ratahan. Expected name: ရာတ်တာဟာမ်. - Code:
rtm
. Saw name: Rotuman. Expected name: ရဝ်ထူမေန်. - Code:
ru
. Saw name: Russian. Expected name: ရုဿျှာ. - Code:
rue
. Saw name: Carpathian Rusyn. Expected name: ရာတ်သေင်. - Code:
ruo
. Saw name: Istro-Romanian. Expected name: ရဝ်မေနဳယာန်-အေတ်သတဝ်. - Code:
rup
. Saw name: Aromanian. Expected name: အာရဝ်မေနဳယာန်. - Code:
ruq
. Saw name: Megleno-Romanian. Expected name: ရဝ်မေနဳယျာ-မေတ်ဂလဳနဝ်. - Code:
rw
. Saw name: Rwanda-Rundi. Expected name: ရဝမ်ဒါ ရမ်ဒဳ. - Code:
ryn
. Saw name: Northern Amami Ōshima. Expected name: အမာမိ-အဝ်ဃှဳမ လ္ပာ်သၟဝ်ကျာ. - Code:
rys
. Saw name: Yaeyama. Expected name: ယျာအေဲယျာမ. - Code:
ryu
. Saw name: Okinawan. Expected name: အဵုကဳနာဝါ. - Code:
sa
. Saw name: Sanskrit. Expected name: သံသကြိုတ်. - Code:
sa-ved
. Saw name: Sanskrit. Expected name: သံသကြိုတ်. - Code:
sah
. Saw name: Yakut. Expected name: ယျာခုတ်. - Code:
sai-nje-pro
. Saw name: Proto-Northern Jê. Expected name: သၟာ် လ္ပာ်သၟဝ်ကျာ-အခိုက်ကၞာ. - Code:
sat
. Saw name: Santali. Expected name: သာန်တာလဳ. - Code:
sav
. Saw name: Saafi-Saafi. Expected name: သာဖဳ-သာဖဳ. - Code:
sbf
. Saw name: Shabo. Expected name: သျှာဗဝ်. - Code:
sc
. Saw name: Sardinian. Expected name: သာဒဳနဳယာန်. - Code:
scn
. Saw name: Sicilian. Expected name: သဳစဳလဳယာန်. - Code:
sco
. Saw name: Scots. Expected name: သကတ်. - Code:
sd
. Saw name: Sindhi. Expected name: သိန္ဓိ. - Code:
sdc
. Saw name: Sassarese. Expected name: သာက်သွဳ. - Code:
sdn
. Saw name: Gallurese. Expected name: ဂါယ်ဠူရေဝ်သ်. - Code:
se
. Saw name: Northern Sami. Expected name: သာမိ သၟဝ်ကျာ. - Code:
sei
. Saw name: Seri. Expected name: သေဴရေဝ်. - Code:
sem-pro
. Saw name: Proto-Semitic. Expected name: ဆဲလ်မိတိ-အခိုက်ကၞာ. - Code:
sg
. Saw name: Sango. Expected name: သင်ဂဝ်. - Code:
sga
. Saw name: Old Irish. Expected name: အာဲယျာလာန်တြေံ. - Code:
sgs
. Saw name: Samogitian. Expected name: သာမဝ်ကဳထေင်. - Code:
sh
. Saw name: Serbo-Croatian. Expected name: သာဗ်ခြဝ်ဨရှဳယာန်. - Code:
shk
. Saw name: Shilluk. Expected name: သျှိလု. - Code:
shn
. Saw name: Shan. Expected name: သေံဇၞော်. - Code:
si
. Saw name: Sinhalese. Expected name: သိၚ်္ဃဵုရ်. - Code:
sid
. Saw name: Sidamo. Expected name: သေတ်ဒါမဝ်. - Code:
sio-pro
. Saw name: Proto-Siouan. Expected name: သုဝေန်-အခိုက်ကၞာ. - Code:
sit-pro
. Saw name: Proto-Sino-Tibetan. Expected name: ကြုက်-တိဗဝ်-အခိုက်ကၞာ. - Code:
sit-sit
. Saw name: Situ. Expected name: သဳဒူ. - Code:
sit-tan-pro
. Saw name: Proto-Tani. Expected name: တာန်နဳ-အခိုက်ကၞာ. - Code:
sjd
. Saw name: Kildin Sami. Expected name: ခဳယဝ်ဗေန် သာမိ. - Code:
sje
. Saw name: Pite Sami. Expected name: ဖါဲသာမိ. - Code:
sjt
. Saw name: Ter Sami. Expected name: ထရေဝ်သာမိ. - Code:
sju
. Saw name: Ume Sami. Expected name: ဥူမေ သာမိ. - Code:
sk
. Saw name: Slovak. Expected name: သလဝ်ဝေန်နဳယျာ. - Code:
skb
. Saw name: Saek. Expected name: သာပ်. - Code:
sl
. Saw name: Slovene. Expected name: သၠဝ်ဝေနဳ. - Code:
sla
. Saw name: Slavic. Expected name: သလာဗေတ်. - Code:
sla-pro
. Saw name: Proto-Slavic. Expected name: သလာဗေတ်-အခိုက်ကၞာ. - Code:
slr
. Saw name: Salar. Expected name: သလာ. - Code:
sm
. Saw name: Samoan. Expected name: သမဝ်အာန်. - Code:
sma
. Saw name: Southern Sami. Expected name: သာမိ လ္ပာ်ဒိုဟ်သမၠုင်ကျာ. - Code:
smi-pro
. Saw name: Proto-Samic. Expected name: သာမေတ်-အခိုက်ကၞာ. - Code:
smj
. Saw name: Lule Sami. Expected name: ဠူသာမိ. - Code:
smn
. Saw name: Inari Sami. Expected name: အဳနာရိသာမိ. - Code:
sms
. Saw name: Skolt Sami. Expected name: သာမိ သဂဝ်. - Code:
sn
. Saw name: Shona. Expected name: သျှိနာ. - Code:
snf
. Saw name: Noon. Expected name: နူန်. - Code:
so
. Saw name: Somali. Expected name: ဆဝ်မာလဳ. - Code:
sog
. Saw name: Sogdian. Expected name: သတ်ဂျဳယာန်. - Code:
sou
. Saw name: Southern Thai. Expected name: သေံသၠုင်ကျာ. - Code:
sq
. Saw name: Albanian. Expected name: အလ်ဗနဳယာန်. - Code:
sqj-pro
. Saw name: Proto-Albanian. Expected name: အလ်ဗနဳယာန်-အခိုက်ကၞာ. - Code:
squ
. Saw name: Squamish. Expected name: သကေဝ်မောတ်. - Code:
srn
. Saw name: Sranan Tongo. Expected name: သရာနာန် တံင်ဂဝ်. - Code:
srr
. Saw name: Serer. Expected name: သေဴရေ. - Code:
ss
. Saw name: Swazi. Expected name: သဝါဇြဳ. - Code:
ssf
. Saw name: Thao. Expected name: ထော. - Code:
stp
. Saw name: Southeastern Tepehuan. Expected name: ထေပ်ပုဝ်ဝါန် လ္ပာ်ဒိုဟ်သမၠုင်ကျာ. - Code:
stq
. Saw name: Saterland Frisian. Expected name: သာဒလာန် ဖရေဝ်သဳယာန်. - Code:
str
. Saw name: Saanich. Expected name: သာဲနေတ်. - Code:
sux
. Saw name: Sumerian. Expected name: သူမာရေဝ်ယာန်. - Code:
sv
. Saw name: Swedish. Expected name: သွဳဒေန်. - Code:
sw
. Saw name: Swahili. Expected name: သဝါတ်ဟဳလဳ. - Code:
syc
. Saw name: Classical Syriac. Expected name: သဳရဳယျာ အခိုက်ကၞာ. - Code:
szl
. Saw name: Silesian. Expected name: သလဳယှေန်. - Code:
szy
. Saw name: Sakizaya. Expected name: သကဳသက်ယျာ. - Code:
ta
. Saw name: Tamil. Expected name: တမဳလ်. - Code:
tai
. Saw name: Tai. Expected name: သေံ. - Code:
tai-pro
. Saw name: Proto-Tai. Expected name: သေံ-အခိုက်ကၞာ. - Code:
tao
. Saw name: Yami. Expected name: ယျာမိ. - Code:
tbq-bdg-pro
. Saw name: Proto-Bodo-Garo. Expected name: ဗဝ်ဒဝ်-ဂါရဝ်-အခိုက်ကၞာ. - Code:
tbq-kuk-pro
. Saw name: Proto-Kuki-Chin. Expected name: ကူကဳ-ချေန်-အခိုက်ကၞာ. - Code:
tbq-lob-pro
. Saw name: Proto-Lolo-Burmese. Expected name: လဝ်လဝ်ဗၟာ-အခိုက်ကၞာ. - Code:
tby
. Saw name: Tabaru. Expected name: ထေက်ဗရု. - Code:
tcs
. Saw name: Torres Strait Creole. Expected name: အင်္ဂလိက် ဗရဝ်ဂေန်. - Code:
tdd
. Saw name: Tai Nüa. Expected name: သေံတာဲခေါင်. - Code:
te
. Saw name: Telugu. Expected name: တေလုဂု. - Code:
tet
. Saw name: Tetum. Expected name: တေထီု. - Code:
tg
. Saw name: Tajik. Expected name: တာဇိက်. - Code:
th
. Saw name: Thai. Expected name: သေံ. - Code:
ti
. Saw name: Tigrinya. Expected name: တဳဂျရေဝ်ယျာ. - Code:
tio
. Saw name: Teop. Expected name: ထဳအာ်. - Code:
tiy
. Saw name: Tiruray. Expected name: တဳရူရာန်. - Code:
tk
. Saw name: Turkmen. Expected name: တာခ်မေန်. - Code:
tkl
. Saw name: Tokelauan. Expected name: တဝ်ကဲလော. - Code:
tl
. Saw name: Tagalog. Expected name: တာဂါလံက်. - Code:
tli
. Saw name: Tlingit. Expected name: ထလေန်ကေတ်. - Code:
tmh
. Saw name: Tuareg. Expected name: ထူအာ်ရေတ်. - Code:
to
. Saw name: Tongan. Expected name: ထံင်ဂံင်. - Code:
tpi
. Saw name: Tok Pisin. Expected name: တေဝ်ဖါဲသေင်. - Code:
tpw
. Saw name: Old Tupi. Expected name: တူပဳတြေံ. - Code:
tqw
. Saw name: Tonkawa. Expected name: ထံင်ခါဝါ. - Code:
tr
. Saw name: Turkish. Expected name: တူရကဳ. - Code:
trk
. Saw name: Turkic. Expected name: တာခ်. - Code:
trk-cmn
. Saw name: Proto-Turkic. Expected name: တာခ်ကေတ်-အခိုက်ကၞာ. - Code:
trk-cmn
. Saw name: Common Turkic. Expected name: တာခ်ကေတ် သာမည. - Code:
trk-oat
. Saw name: Old Anatolian Turkish. Expected name: တူရကဳ အာန်နာတဝ်လဳယာန်တြေံ. - Code:
trk-pro
. Saw name: Proto-Turkic. Expected name: တာခ်ကေတ်-အခိုက်ကၞာ. - Code:
ts
. Saw name: Tsonga. Expected name: သွေန်ဂါ. - Code:
tsg
. Saw name: Tausug. Expected name: ထာဴသု. - Code:
tt
. Saw name: Tatar. Expected name: တာတာ. - Code:
tts
. Saw name: Isan. Expected name: ဣသင်. - Code:
ttt
. Saw name: Tat. Expected name: ထေပ်. - Code:
tuw-pro
. Saw name: Proto-Tungusic. Expected name: ဌာန်ဂုတ်သေတ်-အခိုက်ကၞာ. - Code:
tuw-sol
. Saw name: Solon. Expected name: ဆဝ်လာန်. - Code:
tvn
. Saw name: Tavoyan. Expected name: ဟဝါဲ. - Code:
tvo
. Saw name: Tidore. Expected name: ထဳဒါဝ်ရေ. - Code:
txb
. Saw name: Tocharian B. Expected name: တဝ်ချာရေဝ်ယာန် ဗဳ. - Code:
txg
. Saw name: Tangut. Expected name: တာန်ဂူ. - Code:
ty
. Saw name: Tahitian. Expected name: တဟဳတဳဃှေန်. - Code:
tyv
. Saw name: Tuvan. Expected name: တူဗါန်. - Code:
tyz
. Saw name: Tày. Expected name: ထာင်. - Code:
tzm
. Saw name: Central Atlas Tamazight. Expected name: အာက်လေတ် ထာမာသေတ် ဗဟဵု. - Code:
tzo
. Saw name: Tzotzil. Expected name: သအ်သေန်. - Code:
ubl
. Saw name: Buhi'non Bikol. Expected name: ၜေအ်ဟဳနန် ဗဳကေန်. - Code:
uby
. Saw name: Ubykh. Expected name: ဥူဗေတ်. - Code:
ude
. Saw name: Udihe. Expected name: ယူဒဳဟဳ. - Code:
ug
. Saw name: Uyghur. Expected name: ဥူဃူရ်. - Code:
ugo
. Saw name: Gong. Expected name: ဂေုန်. - Code:
uk
. Saw name: Ukrainian. Expected name: ယူကရိန်. - Code:
umu
. Saw name: Munsee. Expected name: မာန်သဳ. - Code:
und
. Saw name: Undetermined. Expected name: ပဆုဲလဇလဝ်. - Code:
unm
. Saw name: Unami. Expected name: ဥူနာမဳ. - Code:
ur
. Saw name: Urdu. Expected name: အူရဒူ. - Code:
urj-fin-pro
. Saw name: Proto-Finnic. Expected name: ဖေန်နေတ်-အခိုက်ကၞာ. - Code:
urj-pro
. Saw name: Proto-Uralic. Expected name: ယူရာလေတ်-အခိုက်ကၞာ. - Code:
urk
. Saw name: Urak Lawoi'. Expected name: ဥူရပ်လာဝဵု. - Code:
ush
. Saw name: Ushojo. Expected name: ယူသျှိဂျေန်. - Code:
uz
. Saw name: Uzbek. Expected name: ဥုသဗဝ်. - Code:
vai
. Saw name: Vai. Expected name: ဝါဲ. - Code:
ve
. Saw name: Venda. Expected name: ဗါန်ဒါ. - Code:
vec
. Saw name: Venetan. Expected name: ဝေနေတ်. - Code:
vep
. Saw name: Veps. Expected name: ဝေပ်. - Code:
vi
. Saw name: Vietnamese. Expected name: ဗဳယေတ်နာမ်. - Code:
vo
. Saw name: Volapük. Expected name: ဝဝ်လပုက်. - Code:
vot
. Saw name: Votic. Expected name: ဝေါတေတ်. - Code:
vro
. Saw name: Võro. Expected name: ဝုဝ်ရဝ်. - Code:
wa
. Saw name: Walloon. Expected name: ဝါဠူ. - Code:
wam
. Saw name: Massachusett. Expected name: မာတ်သာချူသာတ်. - Code:
war
. Saw name: Waray-Waray. Expected name: ဝါရေ-ဝါရေ. - Code:
wbl
. Saw name: Wakhi. Expected name: ဝါကဳ. - Code:
win
. Saw name: Winnebago. Expected name: ဝေန်နဳဗာဂဝ်. - Code:
wlm
. Saw name: Middle Welsh. Expected name: ဝေလအဒေါဝ်. - Code:
wo
. Saw name: Wolof. Expected name: ဝဝ်လံက်. - Code:
wym
. Saw name: Vilamovian. Expected name: ဝဳလာဲမုဗဳယာန်. - Code:
xaa
. Saw name: Andalusian Arabic. Expected name: အာရဗဳ အေန်တာလူယှေန်. - Code:
xag
. Saw name: Aghwan. Expected name: အခဝါန်. - Code:
xbm
. Saw name: Middle Breton. Expected name: ဗရဳတာန် အဒေါဝ်. - Code:
xbr
. Saw name: Kambera. Expected name: ခမ်ဗာရာ. - Code:
xcl
. Saw name: Old Armenian. Expected name: အာမေနဳယျာတြေံ. - Code:
xgn
. Saw name: Mongolic. Expected name: မန်ဂဝ်လေတ်. - Code:
xgn-pro
. Saw name: Proto-Mongolic. Expected name: မန်ဂဝ်လဳယျာ-အခိုက်ကၞာ. - Code:
xh
. Saw name: Xhosa. Expected name: ခါဝ်သာ. - Code:
xib
. Saw name: Iberian. Expected name: အာဲဗဝ်ရေဝ်ယျာ. - Code:
xil
. Saw name: Illyrian. Expected name: အဳလိရေန်. - Code:
xno
. Saw name: Anglo-Norman. Expected name: အာန်ဂလဝ်-နဝ်မာန်. - Code:
xno
. Saw name: Old French. Expected name: ပြင်သေတ်တြေံ. - Code:
xpq
. Saw name: Mohegan-Pequot. Expected name: မဝ်ဟဳကေမ်-ဖှဳခွာ. - Code:
xpr
. Saw name: Parthian. Expected name: ပါဗဳယာန်. - Code:
xqa
. Saw name: Karakhanid. Expected name: ခဲတာခါနေတ်. - Code:
xrn
. Saw name: Arin. Expected name: အာရေန်. - Code:
xsl
. Saw name: South Slavey. Expected name: သလေဝ်ဖဳ သမၠုင်ကျာ. - Code:
xss
. Saw name: Assan. Expected name: အာတ်သာန်. - Code:
xsv
. Saw name: Sudovian. Expected name: သူဒဝ်ဝဳယာန်. - Code:
xto
. Saw name: Tocharian A. Expected name: တဝ်ချာရေဝ်ယာန် ဨ. - Code:
xug
. Saw name: Kunigami. Expected name: ခူနဳဂါမဳ. - Code:
xve
. Saw name: Venetic. Expected name: ဝေနေတေတ်. - Code:
yag
. Saw name: Yámana. Expected name: ယျာမာန. - Code:
yai
. Saw name: Yagnobi. Expected name: ယေတ်နဝ်ဗဳ. - Code:
ybe
. Saw name: Western Yugur. Expected name: ယူဂူ လ္ပာ်ပလိုတ်. - Code:
yha
. Saw name: Baha. Expected name: ဗအ်ဟအ်. - Code:
yi
. Saw name: Yiddish. Expected name: ယိဒ်ဒိသ်. - Code:
yka
. Saw name: Yakan. Expected name: ယာတ်ခိုင်. - Code:
yle
. Saw name: Yele. Expected name: ယေလေဝ်. - Code:
yo
. Saw name: Yoruba. Expected name: ရိုရုဗာ. - Code:
yog
. Saw name: Yogad. Expected name: ယဝ်ဂေါတ်. - Code:
yoi
. Saw name: Yonaguni. Expected name: ယဝ်နာဂုနဳ. - Code:
yol
. Saw name: Yola. Expected name: ယဝ်လာ. - Code:
yox
. Saw name: Yoron. Expected name: ယဝ်ရုန်. - Code:
yrk
. Saw name: Tundra Nenets. Expected name: ဌာန်ဓရာနာနေတ်. - Code:
yua
. Saw name: Yucatec Maya. Expected name: ယူခေန်ထေတ် မာယျာ. - Code:
yue
. Saw name: Cantonese. Expected name: ကာန်ဒုန်. - Code:
za
. Saw name: Zhuang. Expected name: ဇြုန်. - Code:
zag
. Saw name: Zaghawa. Expected name: သျာဂါဝါ. - Code:
zea
. Saw name: Zealandic. Expected name: သဳလာမ်ဒေတ်. - Code:
zh
. Saw name: Chinese. Expected name: ကြုက်. - Code:
zhn
. Saw name: Nong Zhuang. Expected name: ဏောင်ကျောန်ယဳ. - Code:
zko
. Saw name: Kott. Expected name: ကတ်. - Code:
zkt
. Saw name: Khitan. Expected name: ခါန်ဒါန်. - Code:
zle-obe
. Saw name: Old Ruthenian. Expected name: ရုတဳနဳယာန်တြေံ. - Code:
zle-ono
. Saw name: Old Novgorodian. Expected name: နဝ်ဂိုဝ်ရဝ်ဒဳယျာတြေံ . - Code:
zls
. Saw name: South Slavic. Expected name: သလာဗေတ် ဒိုဟ်သမၠုင်ကျာ. - Code:
zlw-ocs
. Saw name: Old Czech. Expected name: ချက်ခ်တြေံ. - Code:
zlw-opl
. Saw name: Old Polish. Expected name: ပဝ်လာန်တြေံ. - Code:
zom
. Saw name: Zou. Expected name: ဇြူ. - Code:
zpq
. Saw name: Zoogocho Zapotec. Expected name: သူဂဝ်ချေဝ် သာပဝ်ထေတ်. - Code:
zu
. Saw name: Zulu. Expected name: သြူဠူ. - Code:
zza
. Saw name: Zazaki. Expected name: သာသာကဳ.
- Southern Balochi, the canonical name for the code
bcc
, is wrong; it should be ဗဠူချဳ လ္ပာ်ဒိုဟ်သမၠုင်ကျာ. - The canonical name ဗဠူချဳ လ္ပာ်ဒိုဟ်သမၠုင်ကျာ (
bcc
) is missing. - The canonical name ဗဠူချဳ လ္ပာ်ပလိုတ် (
bgn
) is missing. - Western Balochi, the canonical name for the code
bgn
, is wrong; it should be ဗဠူချဳ လ္ပာ်ပလိုတ်. - Eastern Balochi, the canonical name for the code
bgp
, is wrong; it should be ဗဠူချဳ လ္ပာ်ဖာဗၟံက်. - The canonical name ဗဠူချဳ လ္ပာ်ဖာဗၟံက် (
bgp
) is missing. - The canonical name အဝဟတာ (
inc-aav
) is missing. - Avahattha, the canonical name for the code
inc-aav
, is wrong; it should be အဝဟတာ. - The canonical name ဂူဂျာရာ အာပ်ပါပရာမ်သာ (
inc-agu
) is missing. - Gurjara Apabhramsa, the canonical name for the code
inc-agu
, is wrong; it should be ဂူဂျာရာ အာပ်ပါပရာမ်သာ. - Kasmiri Apabhramsa, the canonical name for the code
inc-aka
, is wrong; it should be ခေပ်သမဳရဳ အာပ်ပါပရာမ်သာ. - The canonical name ခေပ်သမဳရဳ အာပ်ပါပရာမ်သာ (
inc-aka
) is missing. - Maharastri Apabhramsa, the canonical name for the code
inc-ama
, is wrong; it should be မဟာရာတ်သပ်ထရဳ အာပ်ပါပရာမ်သာ. - The canonical name မဟာရာတ်သပ်ထရဳ အာပ်ပါပရာမ်သာ (
inc-ama
) is missing. - The canonical name သဥူရေသဳနဳ အာပ်ပါပရာမ်သာ (
inc-asa
) is missing. - Sauraseni Apabhramsa, the canonical name for the code
inc-asa
, is wrong; it should be သဥူရေသဳနဳ အာပ်ပါပရာမ်သာ. - Takka Apabhramsa, the canonical name for the code
inc-ata
, is wrong; it should be တာကာ အာပ်ပါပရာမ်သာ. - The canonical name တာကာ အာပ်ပါပရာမ်သာ (
inc-ata
) is missing. - The canonical name ဝရာခါဒါ အာပ်ပါပရာမ်သာ (
inc-avr
) is missing. - Vracada Apabhramsa, the canonical name for the code
inc-avr
, is wrong; it should be ဝရာခါဒါ အာပ်ပါပရာမ်သာ. - Mitanni, the canonical name for the code
inc-mit
, is wrong; it should be မဳတာန်နဳ. - The canonical name မဳတာန်နဳ (
inc-mit
) is missing. - Kaniguram, the canonical name for the code
oru-kan
, is wrong; it should be ခေန်နဳပုရာမ်. - The canonical name ခေန်နဳပုရာမ် (
oru-kan
) is missing. - The canonical name ဠဝ်ဂါ (
oru-log
) is missing. - Logar, the canonical name for the code
oru-log
, is wrong; it should be ဠဝ်ဂါ. - The canonical name အဖိရဳ (
pra-abh
) is missing. - Abhiri, the canonical name for the code
pra-abh
, is wrong; it should be အဖိရဳ. - Ardhamagadhi Prakrit, the canonical name for the code
pra-ard
, is wrong; it should be အာတ်ဓမဂါတ်ဒဳ ပရာကရေတ်. - The canonical name အာတ်ဓမဂါတ်ဒဳ ပရာကရေတ် (
pra-ard
) is missing. - The canonical name အဗါန်တဳ (
pra-ava
) is missing. - Avanti, the canonical name for the code
pra-ava
, is wrong; it should be အဗါန်တဳ. - Bahliki, the canonical name for the code
pra-bah
, is wrong; it should be ပါလိကဳ. - The canonical name ပါလိကဳ (
pra-bah
) is missing. - Candali, the canonical name for the code
pra-can
, is wrong; it should be ခေန်ဒါလဳ. - The canonical name ခေန်ဒါလဳ (
pra-can
) is missing. - Daksinatya, the canonical name for the code
pra-dak
, is wrong; it should be ထေတ်သဳနတာယျ. - The canonical name ထေတ်သဳနတာယျ (
pra-dak
) is missing. - The canonical name ဒရာမဳလဳ (
pra-dra
) is missing. - Dramili, the canonical name for the code
pra-dra
, is wrong; it should be ဒရာမဳလဳ. - The canonical name ဟေဠူ ပရာကရေတ် (
pra-hel
) is missing. - Helu Prakrit, the canonical name for the code
pra-hel
, is wrong; it should be ဟေဠူ ပရာကရေတ်. - Magadhi Prakrit, the canonical name for the code
pra-mag
, is wrong; it should be မဂ္ဂဒိ ပရာကရေတ်. - The canonical name မဂ္ဂဒိ ပရာကရေတ် (
pra-mag
) is missing. - Odri, the canonical name for the code
pra-odr
, is wrong; it should be အဝ်ဒရဳ. - The canonical name အဝ်ဒရဳ (
pra-odr
) is missing. - The canonical name ပါအေတ်သာသဳ ပရာကရေတ် (
pra-pai
) is missing. - Paisaci Prakrit, the canonical name for the code
pra-pai
, is wrong; it should be ပါအေတ်သာသဳ ပရာကရေတ်. - Pracya, the canonical name for the code
pra-pra
, is wrong; it should be ပရာသဳယျာ. - The canonical name ပရာသဳယျာ (
pra-pra
) is missing. - The canonical name သာဗါရဳ (
pra-sab
) is missing. - Sabari, the canonical name for the code
pra-sab
, is wrong; it should be သာဗါရဳ. - Sakari, the canonical name for the code
pra-sak
, is wrong; it should be သာကာရဳ. - The canonical name သာကာရဳ (
pra-sak
) is missing.
- Southern Balochi, the canonical name for the code
bcc
, is wrong; it should be ဗဠူချဳ လ္ပာ်ဒိုဟ်သမၠုင်ကျာ. - Western Balochi, the canonical name for the code
bgn
, is wrong; it should be ဗဠူချဳ လ္ပာ်ပလိုတ်. - Eastern Balochi, the canonical name for the code
bgp
, is wrong; it should be ဗဠူချဳ လ္ပာ်ဖာဗၟံက်. - Avahattha, the canonical name for the code
inc-aav
, is wrong; it should be အဝဟတာ. - Gurjara Apabhramsa, the canonical name for the code
inc-agu
, is wrong; it should be ဂူဂျာရာ အာပ်ပါပရာမ်သာ. - Kasmiri Apabhramsa, the canonical name for the code
inc-aka
, is wrong; it should be ခေပ်သမဳရဳ အာပ်ပါပရာမ်သာ. - Maharastri Apabhramsa, the canonical name for the code
inc-ama
, is wrong; it should be မဟာရာတ်သပ်ထရဳ အာပ်ပါပရာမ်သာ. - Sauraseni Apabhramsa, the canonical name for the code
inc-asa
, is wrong; it should be သဥူရေသဳနဳ အာပ်ပါပရာမ်သာ. - Takka Apabhramsa, the canonical name for the code
inc-ata
, is wrong; it should be တာကာ အာပ်ပါပရာမ်သာ. - Vracada Apabhramsa, the canonical name for the code
inc-avr
, is wrong; it should be ဝရာခါဒါ အာပ်ပါပရာမ်သာ. - Mitanni, the canonical name for the code
inc-mit
, is wrong; it should be မဳတာန်နဳ. - Kaniguram, the canonical name for the code
oru-kan
, is wrong; it should be ခေန်နဳပုရာမ်. - Logar, the canonical name for the code
oru-log
, is wrong; it should be ဠဝ်ဂါ. - Abhiri, the canonical name for the code
pra-abh
, is wrong; it should be အဖိရဳ. - Ardhamagadhi Prakrit, the canonical name for the code
pra-ard
, is wrong; it should be အာတ်ဓမဂါတ်ဒဳ ပရာကရေတ်. - Avanti, the canonical name for the code
pra-ava
, is wrong; it should be အဗါန်တဳ. - Bahliki, the canonical name for the code
pra-bah
, is wrong; it should be ပါလိကဳ. - Candali, the canonical name for the code
pra-can
, is wrong; it should be ခေန်ဒါလဳ. - Daksinatya, the canonical name for the code
pra-dak
, is wrong; it should be ထေတ်သဳနတာယျ. - Dramili, the canonical name for the code
pra-dra
, is wrong; it should be ဒရာမဳလဳ. - Helu Prakrit, the canonical name for the code
pra-hel
, is wrong; it should be ဟေဠူ ပရာကရေတ်. - Magadhi Prakrit, the canonical name for the code
pra-mag
, is wrong; it should be မဂ္ဂဒိ ပရာကရေတ်. - Odri, the canonical name for the code
pra-odr
, is wrong; it should be အဝ်ဒရဳ. - Paisaci Prakrit, the canonical name for the code
pra-pai
, is wrong; it should be ပါအေတ်သာသဳ ပရာကရေတ်. - Pracya, the canonical name for the code
pra-pra
, is wrong; it should be ပရာသဳယျာ. - Sabari, the canonical name for the code
pra-sab
, is wrong; it should be သာဗါရဳ. - Sakari, the canonical name for the code
pra-sak
, is wrong; it should be သာကာရဳ.
- The data key
preprocess_links
for ??? (th-new
) is invalid.
- The canonical name အိန်တဝ်-အာရိယာန်တြေံ (
inc-old
) is missing. - Old Indo-Aryan, the canonical name for the code
inc-old
, is wrong; it should be အိန်တဝ်-အာရိယာန်တြေံ. - The code
ira-mid
and the canonical name အဳရာန်အဒေါဝ် should be removed; they are not found in Module:families/data. - The code
ira-old
and the canonical name အဳရာန်တြေံ should be removed; they are not found in Module:families/data.
- Old Indo-Aryan, the canonical name for the code
inc-old
, is wrong; it should be အိန်တဝ်-အာရိယာန်တြေံ. - The code
ira-mid
and the canonical name အဳရာန်အဒေါဝ် should be removed; they are not found in Module:families/data. - The code
ira-old
and the canonical name အဳရာန်တြေံ should be removed; they are not found in Module:families/data.
- ဝေါၚ်သအိန်တဝ်-အာရိယာန်တြေံ (
inc-old
) has no child families or languages.
- The canonical name ဂါဝ်တူဥူ (
aaa
) is missing. - Ghotuo, the canonical name for the code
aaa
, is wrong; it should be ဂါဝ်တူဥူ. - The canonical name အာဠူမူ-ထေတ်သူ (
aab
) is missing. - Alumu-Tesu, the canonical name for the code
aab
, is wrong; it should be အာဠူမူ-ထေတ်သူ. - The canonical name အာရဳ (
aac
) is missing. - Ari, the canonical name for the code
aac
, is wrong; it should be အာရဳ. - Amal, the canonical name for the code
aad
, is wrong; it should be အာမာန်. - The canonical name အာမာန် (
aad
) is missing. - Aranadan, the canonical name for the code
aaf
, is wrong; it should be အာရာနဒါန်. - The canonical name အာရာနဒါန် (
aaf
) is missing. - Ambrak, the canonical name for the code
aag
, is wrong; it should be အာန်ဗရေတ်ခ်. - The canonical name အာန်ဗရေတ်ခ် (
aag
) is missing. - Abu' Arapesh, the canonical name for the code
aah
, is wrong; it should be အာၜေအ်' အာရာဗေါတ်. - The canonical name အာၜေအ်' အာရာဗေါတ် (
aah
) is missing. - The canonical name အာရဳဖှာန်မာ-မဳနဳယျာဖှဳယျာ (
aai
) is missing. - Arifama-Miniafia, the canonical name for the code
aai
, is wrong; it should be အာရဳဖှာန်မာ-မဳနဳယျာဖှဳယျာ. - The canonical name အာန်ခါဝေ (
aak
) is missing. - Ankave, the canonical name for the code
aak
, is wrong; it should be အာန်ခါဝေ. - The canonical name အာဖှာဲဒေ (
aal
) is missing. - Afade, the canonical name for the code
aal
, is wrong; it should be အာဖှာဲဒေ. - Anambé, the canonical name for the code
aan
, is wrong; it should be အာန္နာမ်ဗေ. - The canonical name အာန္နာမ်ဗေ (
aan
) is missing. - Aasax, the canonical name for the code
aas
, is wrong; it should be အောတ်သေတ်. - The canonical name အောတ်သေတ် (
aas
) is missing. - Abau, the canonical name for the code
aau
, is wrong; it should be အာၜေဴ. - The canonical name အာၜေဴ (
aau
) is missing. - Solong, the canonical name for the code
aaw
, is wrong; it should be သဝ်လံန်. - The canonical name သဝ်လံန် (
aaw
) is missing. - The canonical name မာန်ဒဝ်ဗဝ် အာတ်တာပ် (
aax
) is missing. - Mandobo Atas, the canonical name for the code
aax
, is wrong; it should be မာန်ဒဝ်ဗဝ် အာတ်တာပ်. - Amarasi, the canonical name for the code
aaz
, is wrong; it should be အာန်မာရသဳ. - The canonical name အာန်မာရသဳ (
aaz
) is missing. - The canonical name အာပ်ခါဝက် (
akv
) is missing. - Akhvakh, the canonical name for the code
akv
, is wrong; it should be အာပ်ခါဝက်. - The canonical name အာန်ဒဳ (
ani
) is missing. - Andi, the canonical name for the code
ani
, is wrong; it should be အာန်ဒဳ. - Botlikh, the canonical name for the code
bph
, is wrong; it should be ဗေဒ်လိခ်. - The canonical name ဗေဒ်လိခ် (
bph
) is missing. - The canonical name အာန်ဒဳယာန်-အခိုက်ကၞာ (
cau-and-pro
) is missing. - Proto-Andian, the canonical name for the code
cau-and-pro
, is wrong; it should be အာန်ဒဳယာန်-အခိုက်ကၞာ. - Proto-Avaro-Andian, the canonical name for the code
cau-ava-pro
, is wrong; it should be အဝါရဝ်-အာန်ဒဳယာန်-အခိုက်ကၞာ. - The canonical name အဝါရဝ်-အာန်ဒဳယာန်-အခိုက်ကၞာ (
cau-ava-pro
) is missing. - The canonical name ချာမာလာန် (
cji
) is missing. - Chamalal, the canonical name for the code
cji
, is wrong; it should be ချာမာလာန်. - The canonical name ဒဝ်မာအာကိ (
dmk
) is missing. - Domaaki, the canonical name for the code
dmk
, is wrong; it should be ဒဝ်မာအာကိ. - The canonical name ဓာမေလဳ (
dml
) is missing. - Dameli, the canonical name for the code
dml
, is wrong; it should be ဓာမေလဳ. - Godoberi, the canonical name for the code
gdo
, is wrong; it should be ဂါဝ်ဒဝ်ဗဳရေဝ်. - The canonical name ဂါဝ်ဒဝ်ဗဳရေဝ် (
gdo
) is missing. - Middle Norwegian, the canonical name for the code
gmq-mno
, is wrong; it should be နဝ်ဝေ လဒေါဝ်. - The canonical name နဝ်ဝေ လဒေါဝ် (
gmq-mno
) is missing. - Gawar-Bati, the canonical name for the code
gwt
, is wrong; it should be ဂါဝါ-ဗါတဳ. - The canonical name ဂါဝါ-ဗါတဳ (
gwt
) is missing. - Proto-Iranian, the canonical name for the code
ira-pro
, is wrong; it should be အဳရာန်-အခိုက်ကၞာ. - The canonical name သတ်ဓေတ်-အခိုက်ကၞာ (
ira-sgc-pro
) is missing. - Proto-Sogdic, the canonical name for the code
ira-sgc-pro
, is wrong; it should be သတ်ဓေတ်-အခိုက်ကၞာ. - Karata, the canonical name for the code
kpt
, is wrong; it should be ခါရာတ. - The canonical name ခါရာတ (
kpt
) is missing. - The canonical name ဗတ်ဝါဠူ (
kva
) is missing. - Bagvalal, the canonical name for the code
kva
, is wrong; it should be ဗတ်ဝါဠူ. - The canonical name လာပ်သဂေဒဳ (
lsa
) is missing. - Lasgerdi, the canonical name for the code
lsa
, is wrong; it should be လာပ်သဂေဒဳ. - The canonical name ကြုက်လဒေါဝ် (
ltc
) is missing. - ကြုက်အဒေါဝ်, the canonical name for the code
ltc
, is wrong; it should be ကြုက်လဒေါဝ်. - The canonical name အိန်ဒါတ် ခါဝ်ဟေတ်သတာန်နဳ (
mvy
) is missing. - Indus Kohistani, the canonical name for the code
mvy
, is wrong; it should be အိန်ဒါတ် ခါဝ်ဟေတ်သတာန်နဳ. - Ormuri, the canonical name for the code
oru
, is wrong; it should be အာဝ်မူရဳ. - The canonical name အာဝ်မူရဳ (
oru
) is missing. - Parachi, the canonical name for the code
prc
, is wrong; it should be ပါရာချဳ. - The canonical name ပါရာချဳ (
prc
) is missing. - The canonical name သင်္ဂဳသာရဳ (
sgr
) is missing. - Sangisari, the canonical name for the code
sgr
, is wrong; it should be သင်္ဂဳသာရဳ. - The canonical name သာဝ်ခေဝ် (
sqo
) is missing. - Sorkhei, the canonical name for the code
sqo
, is wrong; it should be သာဝ်ခေဝ်. - Shahmirzadi, the canonical name for the code
srz
, is wrong; it should be သျှာမဳဇြာဒဳ. - The canonical name သျှာမဳဇြာဒဳ (
srz
) is missing. - Shumashti, the canonical name for the code
sts
, is wrong; it should be သျှုမာတ်သတဳ. - The canonical name သျှုမာတ်သတဳ (
sts
) is missing. - Tabasaran, the canonical name for the code
tab
, is wrong; it should be တဗါသာရာန်. - The canonical name တဗါသာရာန် (
tab
) is missing. - Eastern Tamang, the canonical name for the code
taj
, is wrong; it should be တမာန် လ္ပာ်ဖာဗၟံက်. - The canonical name တမာန် လ္ပာ်ဖာဗၟံက် (
taj
) is missing. - Taman (Myanmar), the canonical name for the code
tcl
, is wrong; it should be တာမာန် (ဍုင်ဗၟာ). - The canonical name တာမာန် (ဍုင်ဗၟာ) (
tcl
) is missing. - Western Tamang, the canonical name for the code
tdg
, is wrong; it should be တမာန် လ္ပာ်ဖာပလိုတ်. - The canonical name တမာန် လ္ပာ်ဖာပလိုတ် (
tdg
) is missing. - Eastern Gorkha Tamang, the canonical name for the code
tge
, is wrong; it should be ဂေါ်ခါ တာမာန် လ္ပာ်ဖာဗၟံက်. - The canonical name ဂေါ်ခါ တာမာန် လ္ပာ်ဖာဗၟံက် (
tge
) is missing. - Chali, the canonical name for the code
tgf
, is wrong; it should be ချာလဳ. - The canonical name ချာလဳ (
tgf
) is missing. - Tindi, the canonical name for the code
tin
, is wrong; it should be ထေန်ဒဳ. - The canonical name ထေန်ဒဳ (
tin
) is missing. - The canonical name တမာန် လ္ပာ်ဖာဒိုဟ်ပလိုတ်သၟဝ်ကျာ (
tmk
) is missing. - Northwestern Tamang, the canonical name for the code
tmk
, is wrong; it should be တမာန် လ္ပာ်ဖာဒိုဟ်ပလိုတ်သၟဝ်ကျာ. - Taman (Indonesia), the canonical name for the code
tmn
, is wrong; it should be တာမာန် (အိန်ဒဝ်နဳယျာ). - The canonical name တာမာန် (အိန်ဒဝ်နဳယျာ) (
tmn
) is missing. - The canonical name တဳရာဟဳ (
tra
) is missing. - Tirahi, the canonical name for the code
tra
, is wrong; it should be တဳရာဟဳ. - Torwali, the canonical name for the code
trw
, is wrong; it should be တောဝ်ဝါလဳ. - The canonical name တောဝ်ဝါလဳ (
trw
) is missing. - The canonical name သေပ်ခါဝ်နဳယာန် (
tsd
) is missing. - Tsakonian, the canonical name for the code
tsd
, is wrong; it should be သေပ်ခါဝ်နဳယာန်. - The canonical name ချာန်လာ (
tsj
) is missing. - Tshangla, the canonical name for the code
tsj
, is wrong; it should be ချာန်လာ. - Tawang Monpa, the canonical name for the code
twm
, is wrong; it should be တဝါန် မန်ပါ. - The canonical name တဝါန် မန်ပါ (
twm
) is missing. - The canonical name ဝတ္တၜေအ်ရဳ-ကာတာကာလာင် (
wsv
) is missing. - Wotapuri-Katarqalai, the canonical name for the code
wsv
, is wrong; it should be ဝတ္တၜေအ်ရဳ-ကာတာကာလာင်. - Hurrian, the canonical name for the code
xhu
, is wrong; it should be ဟေရဳယာန်. - The canonical name ဟေရဳယာန် (
xhu
) is missing. - Alanic, the canonical name for the code
xln
, is wrong; it should be အလာန်နေတ်. - The canonical name အလာန်နေတ် (
xln
) is missing. - The canonical name သာမာတဳယာန်-အခိုက်ကၞာ (
xsc-sar-pro
) is missing. - Proto-Sarmatian, the canonical name for the code
xsc-sar-pro
, is wrong; it should be သာမာတဳယာန်-အခိုက်ကၞာ. - Yagnobi, the canonical name for the code
yai
, is wrong; it should be ယေတ်နဝ်ဗဳ. - The canonical name ယေတ်နဝ်ဗဳ (
yai
) is missing.
- Akhvakh, the canonical name for the code
akv
, is wrong; it should be အာပ်ခါဝက်. - Andi, the canonical name for the code
ani
, is wrong; it should be အာန်ဒဳ. - Botlikh, the canonical name for the code
bph
, is wrong; it should be ဗေဒ်လိခ်. - Proto-Andian, the canonical name for the code
cau-and-pro
, is wrong; it should be အာန်ဒဳယာန်-အခိုက်ကၞာ. - Proto-Avaro-Andian, the canonical name for the code
cau-ava-pro
, is wrong; it should be အဝါရဝ်-အာန်ဒဳယာန်-အခိုက်ကၞာ. - Chamalal, the canonical name for the code
cji
, is wrong; it should be ချာမာလာန်. - Domaaki, the canonical name for the code
dmk
, is wrong; it should be ဒဝ်မာအာကိ. - Dameli, the canonical name for the code
dml
, is wrong; it should be ဓာမေလဳ. - Godoberi, the canonical name for the code
gdo
, is wrong; it should be ဂါဝ်ဒဝ်ဗဳရေဝ်. - Middle Norwegian, the canonical name for the code
gmq-mno
, is wrong; it should be နဝ်ဝေ လဒေါဝ်. - Gawar-Bati, the canonical name for the code
gwt
, is wrong; it should be ဂါဝါ-ဗါတဳ. - Proto-Iranian, the canonical name for the code
ira-pro
, is wrong; it should be အဳရာန်-အခိုက်ကၞာ. - Proto-Sogdic, the canonical name for the code
ira-sgc-pro
, is wrong; it should be သတ်ဓေတ်-အခိုက်ကၞာ. - Karata, the canonical name for the code
kpt
, is wrong; it should be ခါရာတ. - Bagvalal, the canonical name for the code
kva
, is wrong; it should be ဗတ်ဝါဠူ. - Lasgerdi, the canonical name for the code
lsa
, is wrong; it should be လာပ်သဂေဒဳ. - ကြုက်အဒေါဝ်, the canonical name for the code
ltc
, is wrong; it should be ကြုက်လဒေါဝ်. - Indus Kohistani, the canonical name for the code
mvy
, is wrong; it should be အိန်ဒါတ် ခါဝ်ဟေတ်သတာန်နဳ. - Ormuri, the canonical name for the code
oru
, is wrong; it should be အာဝ်မူရဳ. - Parachi, the canonical name for the code
prc
, is wrong; it should be ပါရာချဳ. - Sangisari, the canonical name for the code
sgr
, is wrong; it should be သင်္ဂဳသာရဳ. - Sorkhei, the canonical name for the code
sqo
, is wrong; it should be သာဝ်ခေဝ်. - Shahmirzadi, the canonical name for the code
srz
, is wrong; it should be သျှာမဳဇြာဒဳ. - Shumashti, the canonical name for the code
sts
, is wrong; it should be သျှုမာတ်သတဳ. - Tabasaran, the canonical name for the code
tab
, is wrong; it should be တဗါသာရာန်. - Eastern Tamang, the canonical name for the code
taj
, is wrong; it should be တမာန် လ္ပာ်ဖာဗၟံက်. - Taman (Myanmar), the canonical name for the code
tcl
, is wrong; it should be တာမာန် (ဍုင်ဗၟာ). - Western Tamang, the canonical name for the code
tdg
, is wrong; it should be တမာန် လ္ပာ်ဖာပလိုတ်. - Eastern Gorkha Tamang, the canonical name for the code
tge
, is wrong; it should be ဂေါ်ခါ တာမာန် လ္ပာ်ဖာဗၟံက်. - Chali, the canonical name for the code
tgf
, is wrong; it should be ချာလဳ. - Tindi, the canonical name for the code
tin
, is wrong; it should be ထေန်ဒဳ. - Northwestern Tamang, the canonical name for the code
tmk
, is wrong; it should be တမာန် လ္ပာ်ဖာဒိုဟ်ပလိုတ်သၟဝ်ကျာ. - Taman (Indonesia), the canonical name for the code
tmn
, is wrong; it should be တာမာန် (အိန်ဒဝ်နဳယျာ). - Tirahi, the canonical name for the code
tra
, is wrong; it should be တဳရာဟဳ. - Torwali, the canonical name for the code
trw
, is wrong; it should be တောဝ်ဝါလဳ. - Tsakonian, the canonical name for the code
tsd
, is wrong; it should be သေပ်ခါဝ်နဳယာန်. - Tshangla, the canonical name for the code
tsj
, is wrong; it should be ချာန်လာ. - Tawang Monpa, the canonical name for the code
twm
, is wrong; it should be တဝါန် မန်ပါ. - Wotapuri-Katarqalai, the canonical name for the code
wsv
, is wrong; it should be ဝတ္တၜေအ်ရဳ-ကာတာကာလာင်. - Hurrian, the canonical name for the code
xhu
, is wrong; it should be ဟေရဳယာန်. - Alanic, the canonical name for the code
xln
, is wrong; it should be အလာန်နေတ်. - Proto-Sarmatian, the canonical name for the code
xsc-sar-pro
, is wrong; it should be သာမာတဳယာန်-အခိုက်ကၞာ. - Yagnobi, the canonical name for the code
yai
, is wrong; it should be ယေတ်နဝ်ဗဳ.
- ဘာသာနဝ်ဝေ ဗော်ခ်မဝ် (
nb
) has ဘာသာနဝ်ဝေ လဒေါဝ် (gmq-mno
) set as an ancestor, but is not in the ဝေါၚ်သWest Scandinavian (gmq-wes
). - ဘာသာနဝ်ဝေ ဗော်ခ်မဝ် (
nb
) has ဘာသာဒိန်နေတ် (da
) set as an ancestor, but is not in the ဝေါၚ်သEast Scandinavian (gmq-eas
).
- ဘာသာအာသူ (
aru
) has a canonical name that is not unique; it is also used by the codeaum
.
- ဘာသာဖါတ်သဳယာန် မေန် (
cpx
) has a canonical name that is not unique; it is also used by the codecsp
.
- ဘာသာခါရေဗဳယာန် ဟိန္ဒူသတေန် (
hns
) has ဘာသာဖေဝ်ၜေါအ်ရေဝ် (bho
) set as an ancestor, but is not in the ဝေါၚ်သBihari (inc-bih
). - ဘာသာခါရေဗဳယာန် ဟိန္ဒူသတေန် (
hns
) has ဘာသာအဝါဒဳ (awa
) set as an ancestor, but is not in the ဝေါၚ်သEastern Hindi (inc-hie
).
- ဘာသာခါရှေန်-အခိုက်ကၞာ (
aav-khs-pro
) does not have the expected name "Proto-Khasian", even though it is the proto-language of the Khasian languages (aav-khs
). - ဘာသာအဝ်သတြေဨချေန်တေတ်-အခိုက်ကၞာ (
aav-pro
) does not have the expected name "Proto-အဝ်သတြေဨဃှဳယျာတေတ်", even though it is the proto-language of the အဝ်သတြေဨဃှဳယျာတေတ် languages (aav
). - ဘာသာအာက်ပရဝ်အဳသဳယာတေတ်-အခိုက်ကၞာ (
afa-pro
) does not have the expected name "Proto-Afroasiatic", even though it is the proto-language of the Afroasiatic languages (afa
). - ဘာသာအဴဂံင်ခဳယာန်-အခိုက်ကၞာ (
alg-pro
) does not have the expected name "Proto-Algonquian", even though it is the proto-language of the Algonquian languages (alg
). - ဘာသာဨဒေခဳရိ-အခိုက်ကၞာ (
alv-edk-pro
) does not have the expected name "Proto-Edekiri", even though it is the proto-language of the Edekiri languages (alv-edk
). - ဘာသာProto-Central Togo (
alv-gtm-pro
) does not have the expected name "Proto-Ghana-Togo Mountain", even though it is the proto-language of the Ghana-Togo Mountain languages (alv-gtm
). - ဘာသာခါန်ဂဝ်-အာတ္တလာန်တေတ်-အခိုက်ကၞာ (
alv-pro
) does not have the expected name "Proto-Atlantic-Congo", even though it is the proto-language of the Atlantic-Congo languages (alv
). - ဘာသာယိုဝ်ရုဗါအ်-အခိုက်ကၞာ (
alv-yor-pro
) does not have the expected name "Proto-Yoruba", even though it is the proto-language of the Yoruba languages (alv-yor
). - ဘာသာယိုဝ်ရုဗေါန်-အခိုက်ကၞာ (
alv-yrd-pro
) does not have the expected name "Proto-Yoruboid", even though it is the proto-language of the Yoruboid languages (alv-yrd
). - ဘာသာအောဂျေစ်-အခိုက်ကၞာ (
aql-pro
) does not have the expected name "Proto-Algic", even though it is the proto-language of the Algic languages (aql
). - ဘာသာအာက်တၜေတ်သကေင်-အခိုက်ကၞာ (
ath-pro
) does not have the expected name "Proto-Athabaskan", even though it is the proto-language of the Athabaskan languages (ath
). - ဘာသာProto-Arawa (
auf-pro
) does not have the expected name "Proto-Arauan", even though it is the proto-language of the Arauan languages (auf
). - ဘာသာနယူနူလာန်-အခိုက်ကၞာ (
aus-nyu-pro
) does not have the expected name "Proto-Nyulnyulan", even though it is the proto-language of the Nyulnyulan languages (aus-nyu
). - ဘာသာပါမာ-နေန်ကာန်-အခိုက်ကၞာ (
aus-pam-pro
) does not have the expected name "Proto-Pama-Nyungan", even though it is the proto-language of the Pama-Nyungan languages (aus-pam
). - ဘာသာProto-Amuesha-Chamicuro (
awd-amc-pro
) has a proto-language code associated with the invalid codeawd-amc
. - ဘာသာProto-Kampa (
awd-kmp-pro
) has a proto-language code associated with the invalid codeawd-kmp
. - ဘာသာProto-Arawak (
awd-pro
) does not have the expected name "Proto-Arawakan", even though it is the proto-language of the Arawakan languages (awd
). - ဘာသာProto-Paresi-Waura (
awd-prw-pro
) has a proto-language code associated with the invalid codeawd-prw
. - ဘာသာProto-Ta-Arawak (
awd-taa-pro
) does not have the expected name "Proto-Ta-Arawakan", even though it is the proto-language of the Ta-Arawakan languages (awd-taa
). - ဘာသာနာဟာမ်-အခိုက်ကၞာ (
azc-nah-pro
) does not have the expected name "Proto-Nahuan", even though it is the proto-language of the Nahuan languages (azc-nah
). - ဘာသာယူတဝ်-အာက်သတေကာန်-အခိုက်ကၞာ (
azc-pro
) does not have the expected name "Proto-Uto-Aztecan", even though it is the proto-language of the Uto-Aztecan languages (azc
). - ဘာသာဗေအ်ဗေအ်-အခိုက်ကၞာ (
ber-pro
) does not have the expected name "Proto-ဗေအ်ဗေအ်", even though it is the proto-language of the ဗေအ်ဗေအ် languages (ber
). - ဘာသာဗာန်တူ-အခိုက်ကၞာ (
bnt-pro
) does not have the expected name "Proto-Bantu", even though it is the proto-language of the Bantu languages (bnt
). - ဘာသာအာတ်ဟာတ်-အဗါတ်သာ-အခိုက်ကၞာ (
cau-abz-pro
) does not have the expected name "Proto-Abkhaz-Abaza", even though it is the proto-language of the Abkhaz-Abaza languages (cau-abz
). - ဘာသာအာန်ဒဳယာန်-အခိုက်ကၞာ (
cau-and-pro
) does not have the expected name "Proto-Andian", even though it is the proto-language of the Andian languages (cau-and
). - ဘာသာအဝါရဝ်-အာန်ဒဳယာန်-အခိုက်ကၞာ (
cau-ava-pro
) does not have the expected name "Proto-Avaro-Andian", even though it is the proto-language of the Avaro-Andian languages (cau-ava
). - ဘာသာသေခါတ်ဃှေန်-အခိုက်ကၞာ (
cau-cir-pro
) does not have the expected name "Proto-Circassian", even though it is the proto-language of the Circassian languages (cau-cir
). - ဘာသာဒါတ်ဂွါ-အခိုက်ကၞာ (
cau-drg-pro
) does not have the expected name "Proto-Dargwa", even though it is the proto-language of the Dargwa languages (cau-drg
). - ဘာသာခါခေန်ယှေန် သၟဝ်ကျာလ္ပာ်ဗၟံက်-အခိုက်ကၞာ (
cau-nec-pro
) does not have the expected name "Proto-Northeast Caucasian", even though it is the proto-language of the Northeast Caucasian languages (cau-nec
). - ဘာသာနေတ်-အခိုက်ကၞာ (
cau-nkh-pro
) does not have the expected name "Proto-Nakh", even though it is the proto-language of the Nakh languages (cau-nkh
). - ဘာသာခါခေန်ယှေန် သၟဝ်ကျာလ္ပာ်ပလိုတ်-အခိုက်ကၞာ (
cau-nwc-pro
) does not have the expected name "Proto-Northwest Caucasian", even though it is the proto-language of the Northwest Caucasian languages (cau-nwc
). - ဘာသာသဲလ်သဳယာန်-အခိုက်ကၞာ (
cau-tsz-pro
) does not have the expected name "Proto-Tsezian", even though it is the proto-language of the Tsezian languages (cau-tsz
). - ဘာသာခါခေန်ယှေန် သၟဝ်ကျာ-အခိုက်ကၞာ (
ccn-pro
) does not have the expected name "Proto-North Caucasian", even though it is the proto-language of the North Caucasian languages (ccn
). - ဘာသာဂျဝ်ဂျဳယျာ-သံ-အခိုက်ကၞာ (
ccs-gzn-pro
) does not have the expected name "Proto-Georgian-Zan", even though it is the proto-language of the Georgian-Zan languages (ccs-gzn
). - ဘာသာကောတ်ဗေလဳယာန်-အခိုက်ကၞာ (
ccs-pro
) does not have the expected name "Proto-Kartvelian", even though it is the proto-language of the Kartvelian languages (ccs
). - ဘာသာပရေတ်တိုန်နေတ်-အခိုက်ကၞာ (
cel-bry-pro
) does not have the expected name "Proto-Brythonic", even though it is the proto-language of the Brythonic languages (cel-bry
). - ဘာသာသဲလ်တေတ်-အခိုက်ကၞာ (
cel-pro
) does not have the expected name "Proto-သဲလ်တေတ်", even though it is the proto-language of the သဲလ်တေတ် languages (cel
). - ဘာသာမာရဳ-အခိုက်ကၞာ (
chm-pro
) does not have the expected name "Proto-Mari", even though it is the proto-language of the Mari languages (chm
). - ဘာသာချေန်မါတ်-အခိုက်ကၞာ (
cmc-pro
) does not have the expected name "Proto-Chamic", even though it is the proto-language of the Chamic languages (cmc
). - ဘာသာကူဃှဳတေတ်-အခိုက်ကၞာ (
cus-pro
) does not have the expected name "Proto-Cushitic", even though it is the proto-language of the Cushitic languages (cus
). - ဘာသာဒေတ်တာဗေတာံ-အခိုက်ကၞာ (
dra-pro
) does not have the expected name "Proto-Dravidian", even though it is the proto-language of the Dravidian languages (dra
). - ဘာသာဒေတ်တာဗေတာံ အာဲ ဒိုဟ်သမၠုၚ်ကျာ-အခိုက်ကၞာ (
dra-sdo-pro
) does not have the expected name "Proto-South Dravidian I", even though it is the proto-language of the South Dravidian I languages (dra-sdo
). - ဘာသာဒေတ်တာဗေတာံ ထူ ဒိုဟ်သမၠုၚ်ကျာ-အခိုက်ကၞာ (
dra-sdt-pro
) does not have the expected name "Proto-South Dravidian II", even though it is the proto-language of the South Dravidian II languages (dra-sdt
). - ဘာသာဒေတ်တာဗေတာံ ဒိုဟ်သမၠုၚ်ကျာ-အခိုက်ကၞာ (
dra-sou-pro
) does not have the expected name "Proto-South Dravidian", even though it is the proto-language of the South Dravidian languages (dra-sou
). - ဘာသာရုခါဲ-အခိုက်ကၞာ (
dru-pro
) has a proto-language code associated with ရုခါဲ (dru
), which is not a family. - ဘာသာအာက်သကဳမဝ်-အခိုက်ကၞာ (
esx-esk-pro
) does not have the expected name "Proto-Eskimo", even though it is the proto-language of the Eskimo languages (esx-esk
). - ဘာသာအိန်ယူအေတ်-အခိုက်ကၞာ (
esx-inu-pro
) does not have the expected name "Proto-Inuit", even though it is the proto-language of the Inuit languages (esx-inu
). - ဘာသာဗက်ခ်-အခိုက်ကၞာ (
euq-pro
) does not have the expected name "Proto-Vasconic", even though it is the proto-language of the Vasconic languages (euq
). - ဘာသာဂျာမာန်-အခိုက်ကၞာ (
gem-pro
) does not have the expected name "Proto-ဂျာမာန်နေတ်", even though it is the proto-language of the ဂျာမာန်နေတ် languages (gem
). - ဘာသာနဳနိုတ်-အခိုက်ကၞာ (
gmq-pro
) does not have the expected name "Proto-ဂျာမာန်နေတ် သၟဝ်ကျာ", even though it is the proto-language of the ဂျာမာန်နေတ် သၟဝ်ကျာ languages (gmq
). - ဘာသာဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ (
gmw-pro
) does not have the expected name "Proto-ဂျာမာန်နေတ် လ္ပာ်ပလိုတ်", even though it is the proto-language of the ဂျာမာန်နေတ် လ္ပာ်ပလိုတ် languages (gmw
). - ဘာသာဟေဲလာန်နေတ်-အခိုက်ကၞာ (
grk-pro
) does not have the expected name "Proto-Hellenic", even though it is the proto-language of the Hellenic languages (grk
). - ဘာသာမဳယာန်-အခိုက်ကၞာ (
hmx-mie-pro
) does not have the expected name "Proto-Mien", even though it is the proto-language of the Mien languages (hmx-mie
). - ဘာသာမေန်-မဳယာန်-အခိုက်ကၞာ (
hmx-pro
) does not have the expected name "Proto-Hmong-Mien", even though it is the proto-language of the Hmong-Mien languages (hmx
). - ဘာသာအာမေနဳယာန်-အခိုက်ကၞာ (
hyx-pro
) does not have the expected name "Proto-Armenian", even though it is the proto-language of the Armenian languages (hyx
). - ဘာသာနူရေတ်သတေန်နဳ-အခိုက်ကၞာ (
iir-nur-pro
) does not have the expected name "Proto-နူရေတ်သတန်နေတ်", even though it is the proto-language of the နူရေတ်သတန်နေတ် languages (iir-nur
). - ဘာသာအိန်ဒဝ်-အဳရာန်-အခိုက်ကၞာ (
iir-pro
) does not have the expected name "Proto-Indo-Iranian", even though it is the proto-language of the Indo-Iranian languages (iir
). - ဘာသာProto-Kamta (
inc-krn-pro
) does not have the expected name "Proto-KRNB lects", even though it is the proto-language of the KRNB lects (inc-krn
). - ဘာသာအိန်ဒဝ်-အာရိယာန်-အခိုက်ကၞာ (
inc-pro
) does not have the expected name "Proto-Indo-Aryan", even though it is the proto-language of the Indo-Aryan languages (inc
). - ဘာသာအာန်နာတဝ်လဳယာန်-အခိုက်ကၞာ (
ine-ana-pro
) does not have the expected name "Proto-Anatolian", even though it is the proto-language of the Anatolian languages (ine-ana
). - ဘာသာဗဴတဝ်-သလာဗေတ်-အခိုက်ကၞာ (
ine-bsl-pro
) does not have the expected name "Proto-Balto-Slavic", even though it is the proto-language of the Balto-Slavic languages (ine-bsl
). - ဘာသာအိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ (
ine-pro
) does not have the expected name "Proto-Indo-European", even though it is the proto-language of the Indo-European languages (ine
). - ဘာသာထေဝ်ခါမ်ရေဝ်ယာန်-အခိုက်ကၞာ (
ine-toc-pro
) does not have the expected name "Proto-Tocharian", even though it is the proto-language of the Tocharian languages (ine-toc
). - ဘာသာအဳရာန်-အခိုက်ကၞာ (
ira-kms-pro
) does not have the expected name "Proto-Komisenian", even though it is the proto-language of the Komisenian languages (ira-kms
). - ဘာသာအဳရာန်-အခိုက်ကၞာ (
ira-pro
) does not have the expected name "Proto-အဳရာန်", even though it is the proto-language of the အဳရာန် languages (ira
). - ဘာသာအဳရာန်-အခိုက်ကၞာ (
ira-pro
) has a canonical name that is not unique; it is also used by the codeira-kms-pro
. - ဘာသာသတ်ဓေတ်-အခိုက်ကၞာ (
ira-sgc-pro
) does not have the expected name "Proto-Sogdic", even though it is the proto-language of the Sogdic languages (ira-sgc
). - ဘာသာအခိုက်ကၞာ-မလိက်ဒစေင် (
itc-pro
) does not have the expected name "Proto-Italic", even though it is the proto-language of the Italic languages (itc
). - ဘာသာဂျဖါန်နေတ်-အခိုက်ကၞာ (
jpx-pro
) does not have the expected name "Proto-Japonic", even though it is the proto-language of the Japonic languages (jpx
). - ဘာသာရေဝ်ကယူ-အခိုက်ကၞာ (
jpx-ryu-pro
) does not have the expected name "Proto-Ryukyuan", even though it is the proto-language of the Ryukyuan languages (jpx-ryu
). - ဘာသာကရေင်-အခိုက်ကၞာ (
kar-pro
) does not have the expected name "Proto-Karen", even though it is the proto-language of the Karen languages (kar
). - ဘာသာခန်တဳ-အခိုက်ကၞာ (
kca-pro
) does not have the expected name "Proto-Khanty", even though it is the proto-language of the Khanty languages (kca
). - ဘာသာခဝ်-အခိုက်ကၞာ (
khi-kho-pro
) does not have the expected name "Proto-Khoe", even though it is the proto-language of the Khoe languages (khi-kho
). - ဘာသာအဝ်သတြေနဳယှေန်-အခိုက်ကၞာ (
map-pro
) does not have the expected name "Proto-Austronesian", even though it is the proto-language of the Austronesian languages (map
). - Kelantan Peranakan Hokkien, the canonical name for
mis-hkl
, is repeated in the table ofaliases
. - ဘာသာဗာနာရေတ်-အခိုက်ကၞာ (
mkh-ban-pro
) does not have the expected name "Proto-Bahnaric", even though it is the proto-language of the Bahnaric languages (mkh-ban
). - ဘာသာကာထူအေတ်-အခိုက်ကၞာ (
mkh-kat-pro
) does not have the expected name "Proto-Katuic", even though it is the proto-language of the Katuic languages (mkh-kat
). - ဘာသာမန်နေတ်-အခိုက်ကၞာ (
mkh-mnc-pro
) does not have the expected name "Proto-Monic", even though it is the proto-language of the Monic languages (mkh-mnc
). - ဘာသာပလံင်ဂျေတ်-အခိုက်ကၞာ (
mkh-pal-pro
) does not have the expected name "Proto-Palaungic", even though it is the proto-language of the Palaungic languages (mkh-pal
). - ဘာသာမန်-ခမေန်-အခိုက်ကၞာ (
mkh-pro
) does not have the expected name "Proto-Mon-Khmer", even though it is the proto-language of the Mon-Khmer languages (mkh
). - ဘာသာဗဳယေတ်ဒါသ်-အခိုက်ကၞာ (
mkh-vie-pro
) does not have the expected name "Proto-Vietic", even though it is the proto-language of the Vietic languages (mkh-vie
). - ဘာသာမာန်သဳ-အခိုက်ကၞာ (
mns-pro
) does not have the expected name "Proto-Mansi", even though it is the proto-language of the Mansi languages (mns
). - Mymr, Latn, the Wikidata item id for ပါဠိမန် (
mnw-pi
), is not a string in the correct format or a positive integer. - ဘာသာမုန်ဒါ-အခိုက်ကၞာ (
mun-pro
) does not have the expected name "Proto-Munda", even though it is the proto-language of the Munda languages (mun
). - ဘာသာProto-Chumash (
nai-chu-pro
) does not have the expected name "Proto-Chumashan", even though it is the proto-language of the Chumashan languages (nai-chu
). - ဘာသာProto-Maidun (
nai-mdu-pro
) does not have the expected name "Proto-Maiduan", even though it is the proto-language of the Maiduan languages (nai-mdu
). - ဘာသာProto-Mixe-Zoque (
nai-miz-pro
) does not have the expected name "Proto-Mixe-Zoquean", even though it is the proto-language of the Mixe-Zoquean languages (nai-miz
). - ဘာသာမေတ်သခါဝ်ဂျဳယာန်-အခိုက်ကၞာ (
nai-mus-pro
) does not have the expected name "Proto-Muskogean", even though it is the proto-language of the Muskogean languages (nai-mus
). - ဘာသာProto-Pomo (
nai-pom-pro
) does not have the expected name "Proto-Pomoan", even though it is the proto-language of the Pomoan languages (nai-pom
). - ဘာသာခါန်ဂဝ်-ဗောအ်နူ-အခိုက်ကၞာ (
nic-bco-pro
) does not have the expected name "Proto-Benue-Congo", even though it is the proto-language of the Benue-Congo languages (nic-bco
). - ဘာသာနုဗဳယာန်-အခိုက်ကၞာ (
nub-pro
) does not have the expected name "Proto-Nubian", even though it is the proto-language of the Nubian languages (nub
). - ဘာသာProto-Mazatec (
omq-maz-pro
) does not have the expected name "Proto-Mazatecan", even though it is the proto-language of the Mazatecan languages (omq-maz
). - ဘာသာမေတ်သတာတ်-အခိုက်ကၞာ (
omq-mxt-pro
) does not have the expected name "Proto-Mixtec", even though it is the proto-language of the Mixtec languages (omq-mxt
). - ဘာသာအဝ်ဇြဳတေတ်-အခိုက်ကၞာ (
os-pro
) has a proto-language code associated with အဝ်ဇြဳယာန် (os
), which is not a family. - ဘာသာဟာဴမာဟေရာ သၟဝ်ကျာ-အခိုက်ကၞာ (
paa-nha-pro
) does not have the expected name "Proto-North Halmahera", even though it is the proto-language of the North Halmahera languages (paa-nha
). - ဘာသာဖိလေတ်ပိုင်-အခိုက်ကၞာ (
phi-pro
) does not have the expected name "Proto-Philippine", even though it is the proto-language of the Philippine languages (phi
). - ဘာသာမလာယဝ်-ပဝ်လဳနဳယှာ ဗဟဵု-လ္ပာ်ဖာဗၟံက်-အခိုက်ကၞာ (
poz-cet-pro
) does not have the expected name "Proto-Central-Eastern Malayo-Polynesian", even though it is the proto-language of the Central-Eastern Malayo-Polynesian languages (poz-cet
). - ဘာသာဟဴမာဟေရာ-သေန်ဒရာဝါသဳ-အခိုက်ကၞာ (
poz-hce-pro
) does not have the expected name "Proto-Halmahera-Cenderawasih", even though it is the proto-language of the Halmahera-Cenderawasih languages (poz-hce
). - ဘာသာမာလာယဝ်-ချေန်မေတ်-အခိုက်ကၞာ (
poz-mcm-pro
) does not have the expected name "Proto-Malayo-Chamic", even though it is the proto-language of the Malayo-Chamic languages (poz-mcm
). - ဘာသာမလေဝ်လေတ်-အခိုက်ကၞာ (
poz-mly-pro
) does not have the expected name "Proto-Malayic", even though it is the proto-language of the Malayic languages (poz-mly
). - ဘာသာသာန်ပါဝါန်-မလာဲယဝ်-အခိုက်ကၞာ (
poz-msa-pro
) does not have the expected name "Proto-Malayo-Sumbawan", even though it is the proto-language of the Malayo-Sumbawan languages (poz-msa
). - ဘာသာအဝ်ဃှဳယျာနေတ်-အခိုက်ကၞာ (
poz-oce-pro
) does not have the expected name "Proto-Oceanic", even though it is the proto-language of the Oceanic languages (poz-oce
). - ဘာသာပဝ်လဳနဳဃှေန် လ္ပာ်ဖာဗၟံက်-အခိုက်ကၞာ (
poz-pep-pro
) does not have the expected name "Proto-Eastern Polynesian", even though it is the proto-language of the Eastern Polynesian languages (poz-pep
). - ဘာသာနူကလဳယျာ ပဝ်လဳနဳဃှေန်-အခိုက်ကၞာ (
poz-pnp-pro
) does not have the expected name "Proto-Nuclear Polynesian", even though it is the proto-language of the Nuclear Polynesian languages (poz-pnp
). - ဘာသာပဝ်လဳနဳဃှေန်-အခိုက်ကၞာ (
poz-pol-pro
) does not have the expected name "Proto-Polynesian", even though it is the proto-language of the Polynesian languages (poz-pol
). - ဘာသာမာလာယို-ပဝ်လဳနဳယျာ-အခိုက်ကၞာ (
poz-pro
) does not have the expected name "Proto-Malayo-Polynesian", even though it is the proto-language of the Malayo-Polynesian languages (poz
). - ဘာသာသူလာဝေသဳ သမၠုင်ကျာ-အခိုက်ကၞာ (
poz-ssw-pro
) does not have the expected name "Proto-South Sulawesi", even though it is the proto-language of the South Sulawesi languages (poz-ssw
). - ဘာသာသူလာဝေသဳ-သုဒါ-အခိုက်ကၞာ (
poz-sus-pro
) does not have the expected name "Proto-Sunda-Sulawesi", even though it is the proto-language of the Sunda-Sulawesi languages (poz-sus
). - ဘာသာသာဒါဝါတ် သၟဝ်ကျာ-အခိုက်ကၞာ (
poz-swa-pro
) does not have the expected name "Proto-North Sarawakan", even though it is the proto-language of the North Sarawakan languages (poz-swa
). - ဘာသာမာလာယဝ်-ပဝ်လဳနဳဃှေန် လ္ပာ်ဖာဗၟံက်-အခိုက်ကၞာ (
pqe-pro
) does not have the expected name "Proto-Eastern Malayo-Polynesian", even though it is the proto-language of the Eastern Malayo-Polynesian languages (pqe
). - ဘာသာဂရေတ် အာန်ဒါမာအ်နဳ-အခိုက်ကၞာ (
qfa-adm-pro
) does not have the expected name "Proto-Great Andamanese", even though it is the proto-language of the Great Andamanese languages (qfa-adm
). - ဘာသာကိုဝ်ရဳယျာ-အခိုက်ကၞာ (
qfa-kor-pro
) does not have the expected name "Proto-Koreanic", even though it is the proto-language of the Koreanic languages (qfa-kor
). - ဘာသာခရာပ်-အခိုက်ကၞာ (
qfa-kra-pro
) does not have the expected name "Proto-Kra", even though it is the proto-language of the Kra languages (qfa-kra
). - ဘာသာလာဲ-အခိုက်ကၞာ (
qfa-lic-pro
) does not have the expected name "Proto-Hlai", even though it is the proto-language of the Hlai languages (qfa-lic
). - ဘာသာခရာပ်-ဒိုင်-အခိုက်ကၞာ (
qfa-tak-pro
) does not have the expected name "Proto-Kra-Dai", even though it is the proto-language of the Kra-Dai languages (qfa-tak
). - ဘာသာယေနဳသဳယာန်-အခိုက်ကၞာ (
qfa-yen-pro
) does not have the expected name "Proto-Yeniseian", even though it is the proto-language of the Yeniseian languages (qfa-yen
). - ဘာသာယူကဟဳ--အခိုက်ကၞာ (
qfa-yuk-pro
) does not have the expected name "Proto-Yukaghir", even though it is the proto-language of the Yukaghir languages (qfa-yuk
). - ဘာသာကာရေတ်ၜေန်-အခိုက်ကၞာ (
sai-car-pro
) does not have the expected name "Proto-Cariban", even though it is the proto-language of the Cariban languages (sai-car
). - ဘာသာသၟာ်-အခိုက်ကၞာ (
sai-jee-pro
) does not have the expected name "Proto-Jê", even though it is the proto-language of the Jê languages (sai-jee
). - ဘာသာသၟာ် လ္ပာ်သၟဝ်ကျာ-အခိုက်ကၞာ (
sai-nje-pro
) does not have the expected name "Proto-Northern Jê", even though it is the proto-language of the Northern Jê languages (sai-nje
). - ဘာသာသာလိ-အခိုက်ကၞာ (
sal-pro
) does not have the expected name "Proto-Salishan", even though it is the proto-language of the Salishan languages (sal
). - ဘာသာဆဲလ်မိတိ-အခိုက်ကၞာ (
sem-pro
) does not have the expected name "Proto-သဲမေတ်တေတ်", even though it is the proto-language of the သဲမေတ်တေတ် languages (sem
). - ဘာသာဆဲလ်မိတိ လ္ပာ်ပလိုတ်-အခိုက်ကၞာ (
sem-wes-pro
) does not have the expected name "Proto-West Semitic", even though it is the proto-language of the West Semitic languages (sem-wes
). - ဘာသာသုဝေန်-အခိုက်ကၞာ (
sio-pro
) does not have the expected name "Proto-Siouan", even though it is the proto-language of the Siouan languages (sio
). - ဘာသာကြုက်-တိဗဝ်-အခိုက်ကၞာ (
sit-pro
) does not have the expected name "Proto-Sino-Tibetan", even though it is the proto-language of the Sino-Tibetan languages (sit
). - ဘာသာတာန်နဳ-အခိုက်ကၞာ (
sit-tan-pro
) does not have the expected name "Proto-Tani", even though it is the proto-language of the Tani languages (sit-tan
). - ဘာသာသလာဗေတ်-အခိုက်ကၞာ (
sla-pro
) does not have the expected name "Proto-သလာဗေတ်", even though it is the proto-language of the သလာဗေတ် languages (sla
). - ဘာသာသာမေတ်-အခိုက်ကၞာ (
smi-pro
) does not have the expected name "Proto-Sami", even though it is the proto-language of the Sami languages (smi
). - ဘာသာအလ်ဗနဳယာန်-အခိုက်ကၞာ (
sqj-pro
) does not have the expected name "Proto-Albanian", even though it is the proto-language of the Albanian languages (sqj
). - ဘာသာကိုဝ်မာန်-အခိုက်ကၞာ (
ssa-kom-pro
) does not have the expected name "Proto-Koman", even though it is the proto-language of the Koman languages (ssa-kom
). - ဘာသာသာမဝ်ယေတ်ဒေတ်-အခိုက်ကၞာ (
syd-pro
) does not have the expected name "Proto-Samoyedic", even though it is the proto-language of the Samoyedic languages (syd
). - ဘာသာသေံ-အခိုက်ကၞာ (
tai-pro
) does not have the expected name "Proto-သေံ", even though it is the proto-language of the သေံ languages (tai
). - ဘာသာသေံဒိုဟ်ပလိုတ်သမၠုင်ကျာ-အခိုက်ကၞာ (
tai-swe-pro
) does not have the expected name "Proto-Southwestern Tai", even though it is the proto-language of the Southwestern Tai languages (tai-swe
). - ဘာသာဗဝ်ဒဝ်-ဂါရဝ်-အခိုက်ကၞာ (
tbq-bdg-pro
) does not have the expected name "Proto-Bodo-Garo", even though it is the proto-language of the Bodo-Garo languages (tbq-bdg
). - ဘာသာကူကဳ-ချေန်-အခိုက်ကၞာ (
tbq-kuk-pro
) does not have the expected name "Proto-Kukish", even though it is the proto-language of the Kukish languages (tbq-kuk
). - ဘာသာလာဠဝ်-အခိုက်ကၞာ (
tbq-lal-pro
) does not have the expected name "Proto-Lalo", even though it is the proto-language of the Lalo languages (tbq-lal
). - ဘာသာလဝ်လဝ်ဗၟာ-အခိုက်ကၞာ (
tbq-lob-pro
) does not have the expected name "Proto-Lolo-Burmese", even though it is the proto-language of the Lolo-Burmese languages (tbq-lob
). - ဘာသာတာခ်ကေတ်-အခိုက်ကၞာ (
trk-pro
) does not have the expected name "Proto-တာခ်", even though it is the proto-language of the တာခ် languages (trk
). - ဘာသာတူပဳ-ဂွာန်ရာနဳ-အခိုက်ကၞာ (
tup-gua-pro
) does not have the expected name "Proto-Tupi-Guarani", even though it is the proto-language of the Tupi-Guarani languages (tup-gua
). - ဘာသာတူပဳယာန်-အခိုက်ကၞာ (
tup-pro
) does not have the expected name "Proto-Tupian", even though it is the proto-language of the Tupian languages (tup
). - ဘာသာဌာန်ဂုတ်သေတ်-အခိုက်ကၞာ (
tuw-pro
) does not have the expected name "Proto-Tungusic", even though it is the proto-language of the Tungusic languages (tuw
). - ဘာသာဖေန်နေတ်-အခိုက်ကၞာ (
urj-fin-pro
) does not have the expected name "Proto-ဖှေန်နေတ်", even though it is the proto-language of the ဖှေန်နေတ် languages (urj-fin
). - ဘာသာပါမေတ်ဗေတ်နေတ်-အခိုက်ကၞာ (
urj-mdv-pro
) does not have the expected name "Proto-Mordvinic", even though it is the proto-language of the Mordvinic languages (urj-mdv
). - ဘာသာပါမေတ်-အခိုက်ကၞာ (
urj-prm-pro
) does not have the expected name "Proto-Permic", even though it is the proto-language of the Permic languages (urj-prm
). - ဘာသာယူရာလေတ်-အခိုက်ကၞာ (
urj-pro
) does not have the expected name "Proto-Uralic", even though it is the proto-language of the Uralic languages (urj
). - ဘာသာဥူဂရေတ်-အခိုက်ကၞာ (
urj-ugr-pro
) does not have the expected name "Proto-Ugric", even though it is the proto-language of the Ugric languages (urj-ugr
). - ဘာသာမန်ဂဝ်လဳယျာ-အခိုက်ကၞာ (
xgn-pro
) does not have the expected name "Proto-မန်ဂဝ်လေတ်", even though it is the proto-language of the မန်ဂဝ်လေတ် languages (xgn
). - ဘာသာတေတ်တေတ်-အခိုက်ကၞာ (
xme-ttc-pro
) does not have the expected name "Proto-Tatic", even though it is the proto-language of the Tatic languages (xme-ttc
). - ဘာသာသေတ်တဳယာန်-အခိုက်ကၞာ (
xsc-pro
) does not have the expected name "Proto-Scythian", even though it is the proto-language of the Scythian languages (xsc
). - ဘာသာသကာ-အခိုက်ကၞာ (
xsc-sak-pro
) does not have the expected name "Proto-Sakan", even though it is the proto-language of the Sakan languages (xsc-sak
). - ဘာသာသာမာတဳယာန်-အခိုက်ကၞာ (
xsc-sar-pro
) has a proto-language code associated with the invalid codexsc-sar
. - ဘာသာသကာ-ဝါကဳ-အခိုက်ကၞာ (
xsc-skw-pro
) does not have the expected name "Proto-Saka-Wakhi", even though it is the proto-language of the Saka-Wakhi languages (xsc-skw
).
- ဘာသာပါဠိမန် (
mnw-pi
) has data in မဝ်ဂျူ:languages/data/exceptional, but does not have corresponding data in မဝ်ဂျူ:languages/data/exceptional/extra. - Language code
nan-hnm
is not found in Module:languages/data/exceptional, and should be removed from Module:languages/data/exceptional/extra. - Language code
nan-luh
is not found in Module:languages/data/exceptional, and should be removed from Module:languages/data/exceptional/extra.
apc
is set as an ISO 639-3 code on multiple items:Q56593
ကေုာံQ22809485
.kjv
is set as an ISO 639-3 code on multiple items:Q838165
ကေုာံQ31199873
.msn
is set as an ISO 639-3 code on multiple items:Q3331111
ကေုာံQ3563857
.ttt
is set as an ISO 639-3 code on multiple items:Q56489
ကေုာံQ123964178
.
- အက္ခရ်Blissymbols (
Blis
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်Cypro-Minoan (
Cpmn
) is not used by any language. - အက္ခရ်ဟဳရာဂါနာ (
Hira
) is not used by any language. - အက္ခရ်ကာနာ (
Hrkt
) is not used by any language. - အက္ခရ်Image-rendered (
Image
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်ဂကောံအက္ခရ်ဗွဟ်ရမျာင် (
Ipach
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်Moon (
Moon
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်ကုဒ်မောဝ် (
Morse
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်သင်္ကေတကြိယျာဂဳတ (
Music
) is not used by any language. - အက္ခရ်Unspecified (
None
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်Rongorongo (
Roro
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်ဂၞန်သင်္ချာရုမဳ (
Rumin
) is not used by any language. - flag semaphore (
Semap
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်Visible Speech (
Visp
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်သင်္ချာလ္ပာ်သက်ခရက်သမ္တီလဝ် (
Zmth
) is not used by any language. - အက္ခရ်သင်္ကေတ (
Zsym
) is not used by any language. - အက္ခရ်undetermined (
Zyyy
) is not used by any language and has no characters listed for auto-detection. - အက္ခရ်uncoded (
Zzzz
) is not used by any language and has no characters listed for auto-detection. - The codes
fa-Arab
,ug-Arab
,ks-Arab
,ps-Arab
,ur-Arab
,tt-Arab
,ota-Arab
,ku-Arab
,mzn-Arab
andsd-Arab
are currently alias codes. Only one code should be used in the data. - The codes
ms-Arab
andkk-Arab
are currently alias codes. Only one code should be used in the data. - The data key
sort_by_scraping
for အက္ခရ်ဂျပါန် (Jpan
) is invalid.
Checks performed
ပလေဝ်ဒါန်For multiple data modules:
- Codes for languages, families and etymology-only languages must be unique and cannot clash with one another.
- Canonical names for languages, families, and etymology-only languages must not be found in the list of other names.
- Each name in the list of other names must appear only once.
otherNames
, if present, must be an array.- Wikidata item IDs must be a positive integer or a string starting with
Q
and ending with decimal digits.
The following must be true of the data used by Module:languages:
- Each code must be defined in the correct submodule according to whether it is two-letter, three-letter or exceptional.
- The canonical name (field
1
) must be present and must not be the same as the canonical name of another language. - If field
2
is notnil
, it must a valid Wikidata item ID. - If field
3
orfamily
is given and notnil
, it must be a valid family code. - If field
4
orscripts
is given and notnil
, it must be an array, and each string in the array must be a valid script code. - If
ancestors
is given, it must be an array, and each string in the array must be a valid language or etymology language code. - If
family
is given, it must be a valid family code. - If
type
is given, it must be one of the recognised values (regular
,reconstructed
,appendix-constructed
). - If
entry_name
is given, it must be a table that contains either two arrays (from
andto
) or a string (remove_diacritics
) or both. - If
sort_key
is given, it may either be a string, or at table that in turn contains either two arrays (from
andto
) or a string (remove_diacritics
). - If
entry_name
orsort_key
is given, thefrom
array must be longer or equal in length to theto
array. - If
standardChars
is given, it must form a valid Lua string pattern when placed between square brackets with^
before it ("[^...]
). (It should match all characters regularly used in the language, but that cannot be tested.) - If
override_translit
is set,translit
must also be set, because there must be a transliteration module that can override manual transliteration. - If
link_tr
is present, it must betrue
. - Have no data keys besides these:
1, 2, 3, "entry_name", "sort_key", "display", "otherNames", "aliases", "varieties", "type", "scripts", "ancestors", "wikimedia_codes", "wikipedia_article", "standardChars", "translit", "override_translit", "link_tr"
.
Checks not performed:
- If
translit
is present, it should be the name of a module, and this module should contain atr
function that takes a pagename (and optionally a language code and script code) as arguments. - If
sort_key
is a string, it should be the name of a module, and this module should contain amakeSortKey
function that takes a pagename (and optionally a language code and script code) as arguments. - If
entry_name
orsort_key
is a table and contains a fieldremove_diacritics
, the value of the field should be a string that forms a valid Lua pattern when it is placed inside negated set notation ([^...]
).
These are not checked here, because module errors will quickly crop up in entries if these conditions are not met, assuming that Module:utilities attempts to generate a sortkey for a category pertaining to the language in question, or full_link
attempts to use the transliteration module.
Module:languages/code to canonical name and Module:languages/canonical names must contain all the codes and canonical names found in the data submodules of Module:languages, and no more.
The following must be true of the data used by Module:etymology languages:
canonicalName
must be given.parent
must be given must be a valid language, family or etymology-only language code.- If
ancestors
is given, it must be an array, and each string in the array must be a valid language or etymology language code. The etymology language should also be listed as the ancestor of a regular language. - Have no data keys besides these:
"canonicalName", "otherNames", "parent", "ancestors", "wikipedia_article", "wikidata_item"
.
Codes in Module:families data must:
- Have
canonicalName
, which must not be the same as the canonical name of another family. - If
family
is given, it must be a valid family code. - Have at least one language or subfamily belonging to it.
- Have no data keys besides these:
"canonicalName", "otherNames", "family", "protoLanguage", "wikidata_item"
.
Codes in Module:scripts data must:
- Have
canonicalName
. - Have at least one language that lists it as one of its scripts.
- Have a
characters
pattern for script autodetection, and this must form a valid Lua string pattern when placed between square brackets ("[...]"
). (It should match all characters in the script, but that cannot be tested.) - Have no data keys besides these:
"canonicalName", "otherNames", "parent", "systems", "wikipedia_article", "characters", "direction"
.
-- TODO:
-- ietf_subtag field used with a 2/3-letter langauge/family code except qaa-qtz, or a 4-letter script code.
-- Check against files containing up-to-date ISO data, to cross-check validity.
local m_languages = require("Module:languages")
local m_language_data = require("Module:languages/data/all")
local m_language_codes = require("Module:languages/code to canonical name")
local m_language_canonical_names = require("Module:languages/canonical names")
local m_etym_language_data = require("Module:etymology languages/data")
local m_etym_language_codes = require("Module:etymology languages/code to canonical name")
local m_etym_language_canonical_names = require("Module:etymology languages/canonical names")
local m_family_data = require("Module:families/data")
local m_family_codes = require("Module:families/code to canonical name")
local m_family_canonical_names = require("Module:families/canonical names")
local m_scripts = require("Module:scripts")
local m_script_data = require("Module:scripts/data")
local m_links = require("Module:links")
local m_script_utils = require("Module:script utilities")
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local Array = require("Module:array")
local codepoint = m_str_utils.codepoint
local concat = table.concat
local dump = mw.dumpObject
local gcodepoint = m_str_utils.gcodepoint
local get_lang = m_languages.getByCode
local insert = table.insert
local list_to_text = mw.text.listToText
local new_title = mw.title.new
local split = m_str_utils.split
local ugmatch = m_str_utils.gmatch
local umatch = m_str_utils.match
local export = {}
local messages
local function discrepancy(modname, ...)
local ok, result = pcall(function(...) messages[modname]:insert(string.format(...)) end, ...)
if not ok then
mw.log(result, ...)
end
end
local all_codes = {}
local language_names = {}
local etym_language_names = {}
local family_names = {}
local script_names = {}
local nonempty_families = {}
local allowed_empty_families = {tbq = true}
local nonempty_scripts = {}
do
local function link_lang(name)
if name:find("[Ll]anguage$") then
return "[[:Category:" .. name .. "|" .. name .. "]]"
else
return "[[:Category:ဘာသာ" .. name .. "|ဘာသာ" .. name .. "]]"
end
end
local function link_etym_lang(name)
if name:find("[Ll]anguage$") then
return name
else
return name .. "ဘာသာ"
end
end
local function link_family(name)
if name:match("[Ll]anguages$") or name:match("[Ll]ects$") then
return "[[:Category:" .. name .. "|ဝေါၚ်သ" .. name .. "]]"
else
return "[[:Category:ဘာသာ" .. name .. "|ဝေါၚ်သ" .. name .. "]]"
end
end
function export.link(data)
if not data[1] then
return "???"
end
local type = data.type
return type:match("etymology%-only") and link_etym_lang(data[1]) or
type:match("family") and link_family(data[1]) or
link_lang(data[1])
end
end
local link = export.link
local function link_script(name)
if not name then
return "???"
elseif name:find("[Cc]ode$") or name:find("[Ss]emaphore$") then
return "[[:Category:" .. name:gsub("^%l", string.upper) .. "|" .. name .. "]]"
else
return "[[:Category:အက္ခရ်" .. name .. "|အက္ခရ်" .. name .. "]]"
end
end
local function invalid_keys_message(modname, code, data, invalid_keys, is_script)
local plural = #invalid_keys ~= 1
discrepancy(modname, "The data key%s %s for %s (<code>%s</code>) %s invalid.",
plural and "s" or "",
invalid_keys
:map(
function(key)
return "<code>" .. key .. "</code>"
end)
:concat(", "),
(is_script and link_script or link)(data[1]),
code,
plural and "are" or "is")
end
local function check_data_keys(valid_keys, is_script)
valid_keys = Array(valid_keys):to_set()
return function (modname, code, data)
local invalid_keys
for k in pairs(data) do
if not valid_keys[k] then
invalid_keys = invalid_keys or Array()
invalid_keys:insert(k)
end
end
if invalid_keys then
invalid_keys_message(modname, code, data, invalid_keys, is_script)
end
end
end
-- Modification of isArray in [[Module:table]].
-- This assumes all keys are either integers or non-numbers.
-- If there are fractional numbers, the results might be incorrect.
-- For instance, find_gap{"a", "b", [0.5] = true} evaluates to 3, but there
-- isn't a gap at 3 in the sense of there being an integer key greater than 3.
local function find_gap(t, can_contain_non_number_keys)
local i = 0
for k in pairs(t) do
if not (can_contain_non_number_keys and type(k) ~= "number") then
i = i + 1
if t[i] == nil then
return i
end
end
end
end
local function check_true_or_string_or_nil(modname, code, data, field_name)
local field = data[field_name]
if not (field == nil or field == true or type(field) == "string") then
discrepancy(modname,
"%s (<code>%s</code>) has an <code>%s</code> value that is not <code>nil</code>, <code>true</code> or a string: <code>%s</code>",
link(data), code, field_name,
dump(data[field_name])
)
end
end
local function check_array(modname, code, canonical_name, data, array_name, subarray_name, can_contain_non_number_keys)
local subtable = data
if subarray_name then
subtable = assert(data[subarray_name], subarray_name)
end
local array_type = type(subtable[array_name])
if array_type == "table" then
local gap = find_gap(subtable[array_name], can_contain_non_number_keys)
if gap then
discrepancy(modname, "The %s array in %sthe data table for %s (<code>%s</code>) has a gap at index %d.",
array_name,
subarray_name and "the " .. subarray_name .. " field in " or "",
canonical_name,
code, gap)
else
return true
end
else
discrepancy(modname, "The %s field in %sthe data table for %s (<code>%s</code>) should be an array (table) but is %s.",
array_name,
subarray_name and "the " .. subarray_name .. " field in " or "",
canonical_name,
code,
array_type == "nil" and "nil" or "a " .. array_type)
end
end
local function check_no_alias_codes(modname, mod_data)
local lookup, discrepancies = {}, {}
for k, v in pairs(mod_data) do
local check = lookup[v]
if check then
discrepancies[check] = discrepancies[check] or {"<code>" .. check .. "</code>"}
insert(discrepancies[check], "<code>" .. k .. "</code>")
else
lookup[v] = k
end
end
for _, v in pairs(discrepancies) do
discrepancy(modname, "The codes " .. list_to_text(v, ", ", " and ") .. " are currently alias codes. Only one code should be used in the data.")
end
end
local function check_wikidata_item(modname, code, data, key)
local data_item = data[key]
if data_item == nil then
return
elseif type(data_item) == "number" then
if not require "Module:table".isPositiveInteger(data_item) then
discrepancy(modname, "%g, the Wikidata item id for %s (<code>%s</code>), is not a positive integer or a string in the correct format.",
data_item, data[1], code)
end
elseif type(data_item) == "string" then
if not data_item:find "^Q%d+$" then
discrepancy(modname, "%s, the Wikidata item id for %s (<code>%s</code>), is not a string in the correct format or a positive integer.",
data_item, data[1], code)
end
end
end
local function check_other_names_or_aliases(modname, code, canonical_name, data, data_key, allow_nested)
local array = data[data_key]
if not array then
return
end
check_array(modname, code, canonical_name, data, data_key, nil, true)
local names = {}
local function check_other_name(other_name)
if other_name == canonical_name then
discrepancy(modname,
"%s, the canonical name for <code>%s</code>, is repeated in the table of <code>%s</code>.",
canonical_name, code, data_key)
end
if names[other_name] then
discrepancy(modname,
"The name %s is found twice or more in the list of <code>%s</code> for %s (<code>%s</code>).",
other_name, data_key, canonical_name, code)
end
names[other_name] = true
end
for _, other_name in ipairs(array) do
if type(other_name) == "table" then
if not allow_nested then
discrepancy(modname,
"A nested table is found in the list of <code>%s</code> for %s (<code>%s</code>), but isn't allowed.",
data_key, canonical_name, code)
else
for _, on in ipairs(other_name) do
check_other_name(on)
end
end
else
check_other_name(other_name)
end
end
end
local function check_other_names_aliases_varieties(modname, code, canonical_name, data)
if data.otherNames then
check_other_names_or_aliases(modname, code, canonical_name, data, "otherNames")
end
if data.aliases then
check_other_names_or_aliases(modname, code, canonical_name, data, "aliases")
end
if data.varieties then
check_other_names_or_aliases(modname, code, canonical_name, data, "varieties", true)
end
end
local function validate_pattern(pattern, modname, code, data, standardChars)
if type(pattern) ~= "string" then
discrepancy(modname, "\"%s\", the %spattern for %s (<code>%s</code>), is not a string.",
pattern, standardChars and "standard character " or "", code, data[1])
end
local ranges
for lower, higher in ugmatch(pattern, "(.)%-%%?(.)") do
if codepoint(lower) >= codepoint(higher) then
ranges = ranges or Array()
insert(ranges, { lower, higher })
end
end
if ranges and ranges[1] then
local plural = #ranges ~= 1 and "s" or ""
discrepancy(modname, "%s (<code>%s</code>) specifies an invalid pattern " ..
"for %scharacter detection: <code>\"%s\"</code>. The first codepoint%s " ..
"in the range%s %s %s must be less than the second.",
link(data), code, standardChars and "standard " or "", pattern, plural, plural,
ranges
:map(
function(range)
return range[1] .. "-" .. range[2] .. (" (U+%X, U+%X)")
:format(codepoint(range[1]), codepoint(range[2]))
end)
:concat(", "),
#ranges ~= 1 and "are" or "is")
end
if not pcall(umatch, "", "[" .. pattern .. "]") then
discrepancy(modname, "%s (<code>%s</code>) specifies an invalid pattern for " ..
(standardChars and "standard" or "") .. " character detection: <code>\"%s\"</code>",
link(data), code, pattern)
end
end
local remove_exceptions_addition = 0xF0000
local maximum_code_point = 0x10FFFF
local remove_exceptions_maximum_code_point = maximum_code_point - remove_exceptions_addition
local function check_entry_name_or_sortkey(modname, code, data, replacements_name)
local canonical_name = data[1]
local replacements = data[replacements_name]
if type(replacements) == "string" then
if not (replacements_name == "sort_key" or replacements_name == "entry_name") then
discrepancy(modname, "The %s field in the data table for %s (<code>%s</code>) must be a table.",
replacements_name, canonical_name, code)
end
return
end
if (replacements.from ~= nil) ~= (replacements.to ~= nil) then
discrepancy(modname,
"The <code>from</code> and <code>to</code> arrays in the <code>%s</code> table for %s (<code>%s</code>) are not both defined or both undefined.",
replacements_name, canonical_name, code)
elseif replacements.from then
for _, key in ipairs { "from", "to" } do
check_array(modname, code, canonical_name, data, key, replacements_name)
end
end
if replacements.remove_diacritics and type(replacements.remove_diacritics) ~= "string" then
discrepancy(modname,
"The <code>remove_diacritics</code> field in the <code>%s</code> table for %s (<code>%s</code>) table must be a string.",
replacements_name, canonical_name, code)
end
if replacements.remove_exceptions then
if check_array(modname, code, canonical_name, data, "remove_exceptions", replacements_name) then
for sequence_i, sequence in ipairs(replacements.remove_exceptions) do
local code_point_i = 0
for code_point in gcodepoint(sequence) do
code_point_i = code_point_i + 1
if code_point > remove_exceptions_maximum_code_point then
discrepancy(modname,
"Code point #%d (0x%04X) in field #%d of the <code>remove_exceptions</code> array for %s (<code>%s</code>) is over U+%04X.",
code_point_i, code_point, sequence_i, canonical_name, code, remove_exceptions_maximum_code_point)
end
end
end
end
end
if replacements.from and replacements.to
and m_table.length(replacements.to) > m_table.length(replacements.from) then
discrepancy(modname,
"The <code>from</code> array in the <code>%s</code> table for %s (<code>%s</code>) must be shorter or the same length as the <code>to</code> array.",
replacements_name, canonical_name, code)
end
end
do
local function has_ancestor(lang, code)
for _, anc in ipairs(lang:getAncestors()) do
if code == anc:getCode() or has_ancestor(anc, code) then
return true
end
end
end
local function get_default_ancestors(lang)
if lang:hasType("etymology-only") then
local parent = lang:getParent()
if not has_ancestor(parent, lang:getCode()) then
return parent:getAncestorCodes()
end
end
local fam_code, def_anc = lang:getFamilyCode()
while fam_code and fam_code ~= "qfa-not" do
local fam = m_family_data[fam_code]
def_anc = fam.protoLanguage or
m_language_data[fam_code .. "-pro"] and fam_code .. "-pro" or
m_etym_language_data[fam_code .. "-pro"] and fam_code .. "-pro"
if def_anc and def_anc ~= lang:getCode() then
return {def_anc}
end
fam_code = fam[3]
end
end
local function iterate_ancestor(code, data, modname, anc_code, lang)
local anc = get_lang(anc_code, nil, true)
if not anc then
discrepancy(modname,
"%s (<code>%s</code>) lists the invalid language code <code>%s</code> as its ancestor.",
link(data), code, anc_code)
return
end
local anc_fam = anc:getFamily()
if not anc_fam then
discrepancy(modname,
"%s has no family.",
anc_code)
return
end
local anc_fam_code = anc_fam:getCode()
local def_ancs = get_default_ancestors(lang)
if def_ancs then
for _, def_anc in ipairs(def_ancs) do
def_anc = get_lang(def_anc, nil, true)
if def_anc and (
anc_code == def_anc:getCode() or
has_ancestor(def_anc, anc_code) or
def_anc:hasParent(anc_code) and not has_ancestor(anc, def_anc:getCode())
) then
discrepancy(modname,
"%s (<code>%s</code>) has the %s (<code>%s</code>) listed in its ancestor field, which is redundant, since it is determined to be ancestral automatically.",
link(data), code,
link(anc:getRawData()), anc_code)
end
end
end
if not lang:inFamily(anc_fam_code) then
discrepancy(modname,
"%s (<code>%s</code>) has %s (<code>%s</code>) set as an ancestor, but is not in the %s (<code>%s</code>).",
link(data), code,
link(anc:getRawData()), anc_code,
link(anc_fam:getRawData()), anc_fam_code)
end
local fam, proto = lang
repeat
fam = fam:getFamily()
proto = fam and fam:getProtoLanguage()
until proto or not fam or fam:getCode() == "qfa-not"
if proto and not (
proto:getCode() == anc:getCode() or
proto:hasAncestor(anc:getCode()) or
anc:hasAncestor(proto:getCode())
) then
local fam = lang:getFamily()
discrepancy(modname,
"%s (<code>%s</code>) is in the %s (<code>%s</code>) and has %s (<code>%s</code>) set as an ancestor, but it is not possible to form an ancestral chain between them.",
link(data), code,
link(fam:getRawData()), fam:getCode(),
link(anc:getRawData()), anc_code)
end
end
function export.check_ancestors(code, data, modname)
local ancestors = data.ancestors
if not ancestors then
return
elseif type(ancestors) == "string" then
ancestors = split(ancestors, "%s*,%s*", true)
end
local lang = get_lang(code, nil, true)
for _, anc in ipairs(ancestors) do
iterate_ancestor(code, data, modname, anc, lang)
end
end
end
local function check_code_to_name_and_name_to_code_maps(
source_module_type,
source_module_description,
code_to_module_map, name_to_code_map,
code_to_name_modname, code_to_name_module,
name_to_code_modname, name_to_code_module)
local aliases = require("Module:languages/data").aliases
local function check_code_and_name(modname, code, canonical_name)
-- Check the code is in code_to_module_map and that it didn't originate from the wrong data module.
local check_mod = code_to_module_map[code] or code_to_module_map[aliases[code]]
if not (check_mod and check_mod:match("^" .. source_module_type .. "/data")) then
if not name_to_code_map[canonical_name] then
discrepancy(modname,
"The code <code>%s</code> and the canonical name %s should be removed; they are not found in %s.",
code, canonical_name, source_module_description)
else
discrepancy(modname,
"<code>%s</code>, the code for the canonical name %s, is wrong; it should be <code>%s</code>.",
code, canonical_name, name_to_code_map[canonical_name])
end
elseif not name_to_code_map[canonical_name] then
local data_table = require("မဝ်ဂျူ:" .. code_to_module_map[code])[code]
discrepancy(modname,
"%s, the canonical name for the code <code>%s</code>, is wrong; it should be %s.",
canonical_name, code, data_table[1])
end
end
for code, canonical_name in pairs(code_to_name_module) do
check_code_and_name(code_to_name_modname, code, canonical_name)
end
for canonical_name, code in pairs(name_to_code_module) do
check_code_and_name(name_to_code_modname, code, canonical_name)
end
end
local function check_extraneous_extra_data(
data_modname, data_module, extra_data_modname, extra_data_module)
for code, _ in pairs(extra_data_module) do
if not data_module[code] then
discrepancy(extra_data_modname,
"Language code <code>%s</code> is not found in [[Module:%s]], and should be removed from [[Module:%s]].",
code, data_modname, extra_data_modname
)
end
end
end
-- Just trying to not have a module error when someone puts a script code
-- in the position of a language code.
local function show_family_code(code)
if type(code) == "string" then
return "<code>" .. code .. "</code>"
else
return require("Module:debug").highlight_dump(code)
end
end
local function check_languages()
local check_language_data_keys = check_data_keys{
1, 2, 3, 4, -- canonical name, wikidata item, family, scripts
"display_text", "generate_forms", "entry_name", "sort_key",
"otherNames", "aliases", "varieties", "ietf_subtag",
"type", "ancestors",
"wikimedia_codes", "wikipedia_article", "standardChars",
"translit", "override_translit", "link_tr",
"dotted_dotless_i"
}
local function check_language(modname, code, data, mainData, extraData)
local canonical_name, lang_type = data[1], data.type
check_language_data_keys(modname, code, data)
if all_codes[code] then
discrepancy(modname, "Code <code>%s</code> is not unique; it is also defined in [[Module:%s]].", code, all_codes[code])
else
if not m_language_codes[code] then
discrepancy("languages/code to canonical name", "The code <code>%s</code> (%s) is missing.", code, canonical_name)
end
all_codes[code] = modname
end
if code:sub(-4) == "-pro" then
local fam_code = code:sub(1, -5)
local fam = get_lang(fam_code, nil, true, true)
if not fam then
discrepancy(modname,
"%s (<code>%s</code>) has a proto-language code associated with the invalid code <code>%s</code>.",
link(data), code, fam_code)
elseif not fam:hasType("family") then
discrepancy(modname,
"%s (<code>%s</code>) has a proto-language code associated with %s (<code>%s</code>), which is not a family.",
link(data), code, fam:getCanonicalName(), fam_code)
else
local expected_name = "Proto-" .. fam:getCanonicalName()
if canonical_name ~= expected_name then
discrepancy(modname,
"%s (<code>%s</code>) does not have the expected name \"%s\", even though it is the proto-language of the %s (<code>%s</code>).",
link(data), code, expected_name, fam:getCategoryName(), fam_code)
end
end
end
if not canonical_name then
discrepancy(modname, "Code <code>%s</code> has no canonical name specified.", code)
elseif language_names[canonical_name] then
discrepancy(modname,
"%s (<code>%s</code>) has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link(data), code, language_names[canonical_name])
else
if not m_language_canonical_names[canonical_name] then
discrepancy("languages/canonical names", "The canonical name %s (<code>%s</code>) is missing.", canonical_name, code)
end
language_names[canonical_name] = code
end
check_wikidata_item(modname, code, data, 2)
if extraData then
check_other_names_aliases_varieties(modname, code, canonical_name, extraData)
end
if lang_type and not (lang_type == "regular" or lang_type == "reconstructed" or lang_type == "appendix-constructed") then
discrepancy(modname, "%s (<code>%s</code>) is of an invalid type <code>%s</code>.", link(data), code, data.type)
end
if mainData.aliases then
discrepancy(modname, "%s (<code>%s</code>) has the <code>aliases</code> key. This must be moved to [[မဝ်ဂျူ:" .. modname .. "/extra]].", link(data), code)
end
if mainData.varieties then
discrepancy(modname, "%s (<code>%s</code>) has the <code>varieties</code> key. This must be moved to [[Module:" .. modname .. "/extra]].", link(data), code)
end
if mainData.otherNames then
discrepancy(modname, "%s (<code>%s</code>) has the <code>otherNames</code> key. This must be moved to [[မဝ်ဂျူ:" .. modname .. "/extra]].", link(data), code)
end
if not extraData then
discrepancy(modname .. "/extra", "%s (<code>%s</code>) has data in [[မဝ်ဂျူ:" .. modname .. "]], but does not have corresponding data in [[မဝ်ဂျူ:" .. modname .. "/extra]].", link(data), code)
--elseif extraData.otherNames then
-- discrepancy(modname .. "/extra", "%s (<code>%s</code>) has <code>otherNames</code> key, but these should be changed to either <code>aliases</code> or <code>varieties</code>.", link(data), code)
end
local sc = data[4]
if sc then
if type(sc) == "string" then
sc = split(sc, "%s*,%s*", true)
end
if type(sc) == "table" then
if not sc[1] then
discrepancy(modname, "%s (<code>%s</code>) has no scripts listed.", link(data), code)
else
for _, sccode in ipairs(sc) do
local cur_sc = m_script_data[sccode]
if not (cur_sc or sccode == "All" or sccode == "Hants") then
discrepancy(modname,
"%s (<code>%s</code>) lists the invalid script code <code>%s</code>.",
link(data), code, sccode)
-- elseif not cur_sc.characters then
-- discrepancy(modname,
-- "%s (<code>%s</code>) lists a script without characters <code>%s</code> (%s).",
-- link(data), code, sccode, cur_sc[1])
end
nonempty_scripts[sccode] = true
end
end
else
discrepancy(modname,
"The %s field for %s (<code>%s</code>) must be a table or string.",
4, link(data), code)
end
end
if data.ancestors then
export.check_ancestors(code, data, modname)
end
if data[3] then
local family = data[3]
if not m_family_data[family] then
discrepancy(modname,
"%s (<code>%s</code>) has the invalid family code %s.",
link(data), code, show_family_code(family))
end
nonempty_families[family] = true
end
if data.sort_key then
check_entry_name_or_sortkey(modname, code, data, "sort_key")
end
if data.entry_name then
check_entry_name_or_sortkey(modname, code, data, "entry_name")
end
if data.display then
check_entry_name_or_sortkey(modname, code, data, "display")
end
if data.standardChars then
if type(data.standardChars) == "table" then
local sccodes = {}
for _, sccode in ipairs(sc) do
sccodes[sccode] = true
end
for sccode in pairs(data.standardChars) do
if not (sccodes[sccode] or sccode == 1) then
discrepancy(modname, "The field %s in the standardChars table for %s (<code>%s</code>) does not match any script for that language.",
sccode, link(data), code)
end
end
elseif data.standardChars and type(data.standardChars) ~= "string" then
discrepancy(modname, "The standardChars field in the data table for %s (<code>%s</code>) must be a string or table.",
link(data), code)
end
end
check_true_or_string_or_nil(modname, code, data, "override_translit")
check_true_or_string_or_nil(modname, code, data, "link_tr")
if data.override_translit and not data.translit then
discrepancy(modname,
"%s (<code>%s</code>) has <code>override_translit</code> set, but no transliteration module",
link(data), code)
end
end
local function check_module(modname, test)
local mod_data = mw.loadData("မဝ်ဂျူ:" .. modname)
local extra_modname = modname .. "/extra"
local extra_mod_data = mw.loadData("မဝ်ဂျူ:" .. extra_modname)
for code, data in pairs(mod_data) do
test(modname, code, data)
check_language(modname, code, data, mod_data[code], extra_mod_data[code])
end
check_no_alias_codes(modname, mod_data)
check_no_alias_codes(extra_modname, extra_mod_data)
check_extraneous_extra_data(modname, mod_data, extra_modname, extra_mod_data)
end
-- Check two-letter codes
check_module(
"languages/data/2",
function(modname, code, data)
if not code:find("^[a-z][a-z]$") then
discrepancy(modname, "%s (<code>%s</code>) does not have a two-letter code.", link(data), code)
end
end
)
-- Check three-letter codes
for i = 0x61, 0x7A do -- a to z
local letter = string.char(i)
check_module(
"languages/data/3/" .. letter,
function(modname, code, data)
if not code:find("^" .. letter .. "[a-z][a-z]$") then
discrepancy(modname,
"%s (<code>%s</code>) does not have a three-letter code starting with \"<code>%s</code>\".",
link(data), code, letter)
end
end
)
end
-- Check exceptional codes
check_module(
"languages/data/exceptional",
function(modname, code, data)
if code:find("^[a-z][a-z][a-z]?$") then
discrepancy(modname, "%s (<code>%s</code>) has a two- or three-letter code.", link(data), code)
end
end
)
-- These checks must be done while all_codes only contains language codes:
-- that is, after language data modules have been processed, but before
-- etymology languages, families, and scripts have.
check_code_to_name_and_name_to_code_maps(
"languages",
"a submodule of [[Module:languages]]",
all_codes, language_names,
"languages/code to canonical name", m_language_codes,
"languages/canonical names", m_language_canonical_names
)
-- Check [[Template:langname-lite]]
local frame = mw.getCurrentFrame()
local content = new_title("Template:langname-lite"):getContent()
content = content:gsub("%<%!%-%-.-%-%-%>", "") -- remove comments
local match = ugmatch(content, "\n\t*|#*([^\n]+)=([^\n]*)")
while true do
local code, name = match()
if not code then return "OK" end
if code:len() > 1 and code ~= "default" then
for _, code in pairs(split(code, "|", true)) do
local lang = get_lang(code, nil, true, true)
if name:match("etymcode") then
local nonEtym_name = frame:preprocess(name)
local nonEtym_real_name = lang:getFullName()
if nonEtym_name ~= nonEtym_real_name then
discrepancy("Template:langname-lite", "Code: <code>" .. code .. "</code>. Saw name: " .. nonEtym_name .. ". Expected name: " .. nonEtym_real_name .. ".")
end
name = frame:preprocess(name:gsub("{{{allow etym|}}}", "1"))
elseif name:match("familycode") then
name = name:match("familycode|(.-)|")
else
name = name
end
if not lang then
discrepancy("Template:langname-lite", "Code: <code>" .. code .. "</code>. Saw name: " .. name .. ". Language not present in data.")
else
local real_name = lang:getCanonicalName()
if name ~= real_name then
discrepancy("Template:langname-lite", "Code: <code>" .. code .. "</code>. Saw name: " .. name .. ". Expected name: " .. real_name .. ".")
end
end
end
end
end
end
local function check_etym_languages()
local modname = "etymology languages/data"
local check_etymology_language_data_keys = check_data_keys{
1, 2, 3, 4, 5, -- canonical name, wikidata item, family, scripts, parent
"display_text", "generate_forms", "entry_name", "sort_key",
"otherNames", "aliases", "varieties", "ietf_subtag",
"type", "main_code", "ancestors",
"wikimedia_codes", "wikipedia_article", "standardChars",
"translit", "override_translit", "link_tr",
"dotted_dotless_i"
}
for code, data in pairs(m_etym_language_data) do
local canonical_name, parent =
data[1], data[5]
check_etymology_language_data_keys(modname, code, data)
if all_codes[code] then
discrepancy(modname, "Code <code>%s</code> is not unique; it is also defined in [[Module:%s]].", code, all_codes[code])
else
if not m_etym_language_codes[code] then
discrepancy("etymology languages/code to canonical name", "The code <code>%s</code> (%s) is missing.", code, canonical_name)
end
all_codes[code] = modname
end
if not canonical_name then
discrepancy(modname, "Code <code>%s</code> has no canonical name specified.", code)
elseif language_names[canonical_name] then
local m_canonical_lang = m_languages.getByCanonicalName(canonical_name, nil, true)
if not m_canonical_lang then
discrepancy(modname, "%s (<code>%s</code>) has a canonical name that cannot be looked up.",
link(data), code)
elseif data.main_code ~= m_canonical_lang:getCode() then
discrepancy(modname,
"%s (<code>%s</code>) has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link(data), code, language_names[canonical_name])
end
else
if not m_etym_language_canonical_names[canonical_name] then
discrepancy("etymology languages/canonical names", "The canonical name %s (<code>%s</code>) is missing.", canonical_name, code)
end
etym_language_names[canonical_name] = code
end
check_other_names_aliases_varieties(modname, code, canonical_name, data)
if parent then
if type(parent) ~= "string" then
discrepancy(modname,
"Etymology-only %s (<code>%s</code>) has a parent language or family code that is %s rather than a string.",
link(data), code, parent == nil and "nil" or "a " .. type(parent))
elseif not (m_language_data[parent] or m_family_data[parent] or m_etym_language_data[parent]) then
discrepancy(modname,
"Etymology-only %s (<code>%s</code>) has invalid parent language or family code <code>%s</code>.",
link(data), code, parent)
end
nonempty_families[parent] = true
else
discrepancy(modname,
"Etymology-only %s (<code>%s</code>) has no parent language or family code.",
link(data), code)
end
if data.ancestors then
export.check_ancestors(code, data, modname)
end
if data[3] then
local family = data[3]
if not m_family_data[family] then
discrepancy(modname,
"%s (<code>%s</code>) has the invalid family code %s.",
link(data), code, show_family_code(family))
end
nonempty_families[family] = true
end
check_wikidata_item(modname, code, data, 2)
end
local checked = {}
for code, data in pairs(m_etym_language_data) do
local stack = {}
while data do
if checked[data] then
break
end
if stack[data] then
discrepancy(modname, "%s (<code>%s</code>) has a cyclic parental relationship to %s (<code>%s</code>)",
link(data), code,
link(m_etym_language_data[data[5]]), data.parent or data[5]
)
break
end
stack[data] = true
code, data = data[5], data[5] and m_etym_language_data[data[5]]
end
for data in pairs(stack) do
checked[data] = true
end
end
check_no_alias_codes(modname, m_etym_language_data)
check_code_to_name_and_name_to_code_maps(
"etymology languages",
"[[Module:etymology languages/data]]",
all_codes, etym_language_names,
"etymology languages/code to canonical name", m_etym_language_codes,
"etymology languages/canonical names", m_etym_language_canonical_names)
end
local function check_families()
local modname = "families/data"
local check_family_data_keys = check_data_keys{
1, 2, 3, -- canonical name, wikidata item, (parent) family
"type", "ietf_subtag",
"protoLanguage", "otherNames", "aliases", "varieties",
}
for code, data in pairs(m_family_data) do
check_family_data_keys(modname, code, data)
local canonical_name, family, protolang = data[1], data[3], data.protoLanguage
if all_codes[code] then
discrepancy(modname, "Code <code>%s</code> is not unique; it is also defined in [[Module:%s]].", code, all_codes[code])
else
if not m_family_codes[code] then
discrepancy("families/code to canonical name", "The code <code>%s</code> (%s) is missing.", code, canonical_name)
end
all_codes[code] = modname
end
if not canonical_name then
discrepancy(modname, "Code <code>%s</code> has no canonical name specified.", code)
elseif family_names[canonical_name] then
discrepancy(modname,
"%s (<code>%s</code>) has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link(data), code, family_names[canonical_name])
else
if not m_family_canonical_names[canonical_name] then
discrepancy("families/canonical names", "The canonical name %s (<code>%s</code>) is missing.", canonical_name, code)
end
family_names[canonical_name] = code
end
if data[2] and type(data[2]) ~= "number" then
discrepancy(modname, "%s (<code>%s</code>) has a wikidata item value that is not a number or <code>nil</code>: %s", link(data), code, dump(data[2]))
end
check_other_names_aliases_varieties(modname, code, canonical_name, data)
if family then
if family == code and code ~= "qfa-not" then
discrepancy(modname,
"%s (<code>%s</code>) has itself as its family.",
link(data), code)
elseif not m_family_data[family] then
discrepancy(modname,
"%s (<code>%s</code>) has the invalid parent family code %s.",
link(data), code, show_family_code(family))
end
nonempty_families[family] = true
end
if protolang then
local protolang_obj = get_lang(protolang, nil, true)
if not protolang_obj then
discrepancy(modname,
"%s (<code>%s</code>) has the invalid proto-language code <code>%s</code>.",
canonical_name, code, protolang)
elseif protolang == code .. "-pro" then
discrepancy(modname,
"%s (<code>%s</code>) has %s (<code>%s</code>) listed as its proto-language, which is redundant, since it is determined to be the proto-language automatically.",
canonical_name, code,
protolang_obj:getCanonicalName(), protolang)
elseif protolang:sub(-4) == "-pro" then
discrepancy(modname,
"%s (<code>%s</code>) has %s (<code>%s</code>) listed as its proto-language, which is supposed to be the proto-language for the family <code>%s</code>.",
canonical_name, code,
protolang_obj:getCanonicalName(), protolang, protolang:sub(1, -5))
end
end
check_wikidata_item(modname, code, data, 2)
end
for code, data in pairs(m_family_data) do
if not (nonempty_families[code] or allowed_empty_families[code]) then
discrepancy(modname, "%s (<code>%s</code>) has no child families or languages.", link(data), code)
end
end
local checked = { ["qfa-not"] = true }
for code, data in pairs(m_family_data) do
local stack = {}
while data do
if checked[code] then
break
end
if stack[code] then
discrepancy(modname, "%s (<code>%s</code>) has a cyclic parental relationship to %s (<code>%s</code>)",
link(data), code,
link(m_family_data[data[3]]), data[3]
)
break
end
stack[code] = true
code, data = data[3], m_family_data[data[3]]
end
for code in pairs(stack) do
checked[code] = true
end
end
check_no_alias_codes(modname, m_family_data)
check_code_to_name_and_name_to_code_maps(
"families",
"[[Module:families/data]]",
all_codes, family_names,
"families/code to canonical name", m_family_codes,
"families/canonical names", m_family_canonical_names)
end
local function check_scripts()
local modname = "scripts/data"
local check_script_data_keys = check_data_keys({
1, 2, -- canonical name, writing systems
"canonicalName", "otherNames", "aliases", "varieties", "parent", "ietf_subtag",
"wikipedia_article", "ranges", "characters", "spaces", "capitalized", "translit", "direction",
"character_category", "normalizationFixes"
}, true)
local m_script_codes = require("Module:scripts/code to canonical name")
local m_script_canonical_names = require("Module:scripts/by name")
-- Just to satisfy requirements of check_code_to_name_and_name_to_code_maps.
local script_code_to_module_map = {}
for code, data in pairs(m_script_data) do
local canonical_name = data[1]
if not m_script_codes[code] and #code == 4 then
discrepancy("scripts/code to canonical name", "<code>%s</code> (%s) is missing", code, canonical_name)
end
check_script_data_keys(modname, code, data)
if not canonical_name then
discrepancy(modname, "Code <code>%s</code> has no canonical name specified.", code)
elseif script_names[canonical_name] then
--[=[
discrepancy(modname,
"%s (<code>%s</code>) has a canonical name that is not unique; it is also used by the code <code>%s</code>.",
link_script(data.names[1]), code, script_names[data.names[1]])
--]=]
else
if not m_script_canonical_names[canonical_name] and #code == 4 then
discrepancy("scripts/by name", "%s (<code>%s</code>) is missing", canonical_name, code)
end
script_names[canonical_name] = code
end
check_other_names_aliases_varieties(modname, code, canonical_name, data)
if not nonempty_scripts[code] then
discrepancy(modname,
"%s (<code>%s</code>) is not used by any language%s.",
link_script(canonical_name), code, data.characters and ""
or " and has no characters listed for auto-detection")
--[[
elseif not data.characters then
discrepancy(modname, "%s (<code>%s</code>) has no characters listed for auto-detection.", link_script(canonical_name), code)
--]]
end
if data.characters then
validate_pattern(data.characters, modname, code, data, false)
end
script_code_to_module_map[code] = modname
end
check_no_alias_codes(modname, m_script_data)
check_code_to_name_and_name_to_code_maps(
"scripts",
"a submodule of [[Module:scripts]]",
script_code_to_module_map, script_names,
"scripts/code to canonical name", m_script_codes,
"scripts/by name", m_script_canonical_names)
end
-- FIXME: this is quite messy.
local function check_wikidata_languages()
local data = mw.text.jsonDecode(new_title("Module:languages/data/wikidata.json"):getContent())
local seen = {{}, {}, {}, [5] = {}}
for _, item in ipairs(data) do
local id = item.id
for k, v in pairs(item) do
if k ~= "id" then
local _seen = seen[k]
for i, code in ipairs(v) do
local _code = code[1]
local _type = type(_seen[_code])
if _type == "table" then
insert(_seen[_code], id)
elseif _type == "string" then
_seen[_code] = {_seen[_code], id}
else
_seen[_code] = id
end
end
end
end
end
for k, v in pairs(seen) do
for code, ids in pairs(v) do
if type(ids) == "table" then
local t = {}
for i, id in ipairs(ids) do
t[i] = ("<code>[[d:%s|%s]]</code>"):format(id, id)
end
discrepancy("languages/data/wikidata.json", "<code>%s</code> is set as an ISO 639-%d code on multiple items: %s.",
code, k, list_to_text(t))
end
end
end
end
local function check_labels()
local check_label_data_keys = check_data_keys{
"display", "Wikipedia", "glossary",
"plain_categories", "topical_categories", "pos_categories", "regional_categories", "sense_categories",
"omit_preComma", "omit_postComma", "omit_preSpace",
"deprecated", "track"
}
local function check_label(modname, code, data)
local _type = type(data)
if _type == "table" then
check_label_data_keys(modname, code, data)
elseif _type ~= "string" then
discrepancy(modname,
"The data for label <code>%s</code> is a %s; only tables and strings are allowed.",
code, _type)
end
end
for _, module in ipairs{"", "/regional", "/topical"} do
local modname = "Module:labels/data" .. module
module = require(modname)
for label, data in pairs(module) do
check_label(modname, label, data)
end
end
for code in pairs(m_language_codes) do
local modname = "Module:labels/data/lang/" .. code
local ok, module = pcall(require, modname)
if ok then
for label, data in pairs(module) do
check_label(modname, label, data)
end
end
end
end
local function check_zh_trad_simp()
local m_ts = require("Module:zh/data/ts")
local m_st = require("Module:zh/data/st")
local ruby = require("Module:ja-ruby").ruby_auto
local lang = get_lang("zh")
local Hant = m_scripts.getByCode("Hant")
local Hans = m_scripts.getByCode("Hans")
local data = {[0] = m_st, m_ts}
local mod = {[0] = "st", "ts"}
local var = {[0] = "Simp.", "Trad."}
local sc = {[0] = Hans, Hant}
local function find_stable_loop(chars, other, j)
local display = ruby({["markup"] = "[" .. other .. "](" .. var[(j+1)%2] .. ")"})
display = m_links.language_link{term = other, alt = display, lang = lang, sc = sc[(j+1)%2], tr = "-"}
insert(chars, display)
if data[(j+1)%2][other] == other then
insert(chars, other)
return chars, 1
elseif not data[(j+1)%2][other] then
insert(chars, "not found")
return chars, 2
elseif data[j%2][data[(j+1)%2][other]] ~= other then
return find_stable_loop(chars, data[(j+1)%2][other], j + 1)
else
local display = ruby({["markup"] = "[" .. data[(j+1)%2][other] .. "](" .. var[j%2] .. ")"})
display = m_links.language_link{term = data[(j+1)%2][other], alt = display, lang = lang, sc = sc[j%2], tr = "-"}
insert(chars, display .. " (")
display = ruby({["markup"] = "[" .. data[j%2][data[(j+1)%2][other]] .. "](" .. var[(j+1)%2] .. ")"})
display = m_links.language_link{term = data[j%2][data[(j+1)%2][other]], alt = display, lang = lang, sc = sc[(j+1)%2], tr = "-"}
insert(chars, display .. " etc.)")
return chars, 3
end
return chars
end
for i = 0, 1, 1 do
for char, other in pairs(data[i]) do
if data[(i+1)%2][other] ~= char then
local chars, issue = {}
local display = ruby({["markup"] = "[" .. char .. "](" .. var[i] .. ")"})
display = m_links.language_link{term = char, alt = display, lang = lang, sc = sc[i], tr = "-"}
insert(chars, display)
chars, issue = find_stable_loop(chars, other, i)
if issue == 1 or issue == 2 then
local sc_this, mod_this, j = {}
if chars[#chars-1]:match(var[(i+1)%2]) then
j = 1
else
j = 0
end
mod_this = mod[(i+j)%2]
sc_this = {[0] = sc[(i+j)%2], sc[(i+j+1)%2]}
for k, char in ipairs(chars) do
chars[k] = m_script_utils.tag_text(char, lang, sc_this[k%2], "term")
end
if issue == 1 then
discrepancy("zh/data/" .. mod_this, "character references itself: " .. concat(chars, " → "))
elseif issue == 2 then
discrepancy("zh/data/" .. mod_this, "missing character: " .. concat(chars, " → "))
end
elseif issue == 3 then
for j, char in ipairs(chars) do
chars[j] = m_script_utils.tag_text(char, lang, sc[(i+j)%2], "term")
end
discrepancy("zh/data/" .. mod[i], "possible mismatched character: " .. concat(chars, " → "))
end
end
end
end
end
local function check_serialization(modname)
local serializers = {
["Hani-sortkey/data/serialized"] = "Hani-sortkey/serializer",
}
if not serializers[modname] then
return nil
end
local serializer = serializers[modname]
local current_data = require("မဝ်ဂျူ:" .. serializer).main(true)
local stored_data = require("မဝ်ဂျူ:" .. modname)
if current_data ~= stored_data then
discrepancy(modname, "<strong><u>Important!</u> Serialized data is out of sync. Use [[Module: ".. serializer .. "]] to update it. If you have made any changes to the underlying data, the serialized data <u>must</u> be updated before these changes will take effect.</strong>")
end
end
-- Warning: cannot be called twice in the same module invocation because
-- some module-global variables are not reset between calls.
function export.do_checks(modules)
messages = setmetatable({}, {
__index = function (self, k)
local val = Array()
self[k] = val
return val
end
})
if modules["zh/data/ts"] or modules["zh/data/st"] then
check_zh_trad_simp()
end
check_languages()
check_etym_languages()
-- families and scripts must be checked AFTER languages; languages checks fill out
-- the nonempty_families and nonempty_scripts tables, used for testing if a family/script
-- is ever used in the data
check_families()
check_scripts()
check_wikidata_languages()
if modules["labels/data"] then
check_labels()
end
for module in pairs(modules) do
check_serialization(module)
end
setmetatable(messages, nil)
local function find_code(message)
return string.match(message, "<code>([^<]+)</code>")
end
find_code = require("Module:fun").memoize(find_code)
local function comp(message1, message2)
local code1, code2 = find_code(message1), find_code(message2)
if code1 and code2 then
return code1 < code2
else
return message1 < message2
end
end
for _, msglist in pairs(messages) do
msglist:sort(comp)
end
local ret = messages
messages = nil
return ret
end
function export.format_message(modname, msglist)
local header; if modname:match("^မဝ်ဂျူ:") or modname:match("^ထာမ်ပလိက်:") then
header = "===[[" .. modname .. "]]==="
else
header = "===[[မဝ်ဂျူ:" .. modname .. "]]==="
end
return header
.. msglist
:map(
function(msg)
return "\n* " .. msg
end)
:concat()
end
function export.check_modules(args)
local modules = {}
for _, arg in ipairs(args) do
modules[arg] = true
end
local ret = Array()
local messages = export.do_checks(modules)
for _, module in ipairs(args) do
local msglist = messages[module]
if msglist then
ret:insert(export.format_message(module, msglist))
end
end
return ret:concat("\n")
end
function export.check_modules_t(frame)
local args = m_table.shallowcopy(frame.args)
return export.check_modules(args)
end
function export.perform(frame)
local messages = export.do_checks({})
-- Format the messages
local ret = Array()
for modname, msglist in m_table.sortedPairs(messages) do
ret:insert(export.format_message(modname, msglist))
end
-- Are there any messages?
if i == 1 then
return "<b class=\"success\">Glory to Arstotzka.</b>"
else
ret:insert(1, "<b class=\"warning\">Discrepancies detected:</b>")
return ret:concat("\n")
end
end
return export