# coverageLevels.txt		
# Copyright © 2023 Unicode, Inc.		
# CLDR data files are interpreted according to the		
# LDML specification: http://unicode.org/reports/tr35/		
# For terms of use, see http://www.unicode.org/copyright.html		
#		
# For format and usage information, see:		
# https://cldr.unicode.org/index/cldr-spec/coverage-levels.		
		
		
af ;	modern ;	Afrikaans
ak ;	moderate ;	Akan
am ;	modern ;	Amharic
ar ;	modern ;	Arabic
as ;	modern ;	Assamese
ast ;	basic ;	Asturian
az ;	modern ;	Azerbaijani
bal_Latn ;	moderate ;	Baluchi (Latin)
be ;	modern ;	Belarusian
bg ;	modern ;	Bulgarian
bgc ;	basic ;	Haryanvi
bho ;	basic ;	Bhojpuri
blo ;	basic ;	Anii
bn ;	modern ;	Bangla
br ;	moderate ;	Breton
brx ;	basic ;	Bodo
bs ;	modern ;	Bosnian
bs_Cyrl ;	basic ;	Bosnian (Cyrillic)
ca ;	modern ;	Catalan
ceb ;	moderate ;	Cebuano
chr ;	modern ;	Cherokee
cs ;	modern ;	Czech
csw ;	basic ;	Swampy Cree
cv ;	basic ;	Chuvash
cy ;	modern ;	Welsh
da ;	modern ;	Danish
de ;	modern ;	German
doi ;	basic ;	Dogri
dsb ;	modern ;	Lower Sorbian
ee ;	basic ;	Ewe
el ;	modern ;	Greek
en ;	modern ;	English
eo ;	basic ;	Esperanto
es ;	modern ;	Spanish
et ;	modern ;	Estonian
eu ;	modern ;	Basque
fa ;	modern ;	Persian
ff_Adlm ;	basic ;	Fula (Adlam)
fi ;	modern ;	Finnish
fil ;	modern ;	Filipino
fo ;	moderate ;	Faroese
fr ;	modern ;	French
fy ;	basic ;	Western Frisian
ga ;	modern ;	Irish
gaa ;	basic ;	Ga
gd ;	modern ;	Scottish Gaelic
gl ;	modern ;	Galician
gu ;	modern ;	Gujarati
ha ;	modern ;	Hausa
he ;	modern ;	Hebrew
hi ;	modern ;	Hindi
hi_Latn ;	modern ;	Hindi [Latin]
hr ;	modern ;	Croatian
hsb ;	modern ;	Upper Sorbian
hu ;	modern ;	Hungarian
hy ;	modern ;	Armenian
ia ;	moderate ;	Interlingua
id ;	modern ;	Indonesian
ie ;	basic ;	Interlingue
ig ;	modern ;	Igbo
ii ;	basic ;	Sichuan Yi
is ;	modern ;	Icelandic
it ;	modern ;	Italian
ja ;	modern ;	Japanese
jv ;	modern ;	Javanese
ka ;	modern ;	Georgian
kea ;	basic ;	Kabuverdianu
kgp ;	basic ;	Kaingang
kk ;	modern ;	Kazakh
km ;	modern ;	Khmer
kn ;	modern ;	Kannada
ko ;	modern ;	Korean
kok ;	modern ;	Konkani
kok_Latn ;	basic ;	Konkani (Latin)
ks ;	basic ;	Kashmiri
ks_Deva ;	basic ;	Kashmiri (Devanagari)
ku ;	moderate ;	Kurdish
kxv ;	basic ;	Kuvi
kxv_Deva ;	basic ;	Kuvi (Devanagari)
kxv_Orya ;	basic ;	Kuvi (Odia)
kxv_Telu ;	basic ;	Kuvi (Telugu)
ky ;	modern ;	Kyrgyz
lb ;	basic ;	Luxembourgish
lij ;	basic ;	Ligurian
lmo ;	basic ;	Lombard
lo ;	modern ;	Lao
lt ;	modern ;	Lithuanian
lv ;	modern ;	Latvian
mai ;	basic ;	Maithili
mi ;	moderate ;	Māori
mk ;	modern ;	Macedonian
ml ;	modern ;	Malayalam
mn ;	modern ;	Mongolian
mni ;	basic ;	Manipuri
mr ;	modern ;	Marathi
ms ;	modern ;	Malay
mt ;	basic ;	Maltese
my ;	modern ;	Burmese
nds ;	basic ;	Low German
ne ;	modern ;	Nepali
nl ;	modern ;	Dutch
nn ;	modern ;	Norwegian Nynorsk
no ;	modern ;	Norwegian
nqo ;	basic ;	N’Ko
nso ;	basic ;	Northern Sotho
oc ;	basic ;	Occitan
om ;	basic ;	Oromo
or ;	modern ;	Odia
pa ;	modern ;	Punjabi
pcm ;	modern ;	Nigerian Pidgin
pl ;	modern ;	Polish
prg ;	basic ;	Prussian
ps ;	modern ;	Pashto
pt ;	modern ;	Portuguese
qu ;	moderate ;	Quechua
raj ;	basic ;	Rajasthani
rm ;	basic ;	Romansh
ro ;	modern ;	Romanian
ru ;	modern ;	Russian
rw ;	basic ;	Kinyarwanda
sa ;	basic ;	Sanskrit
sah ;	basic ;	Yakut
sat ;	basic ;	Santali
sc ;	moderate ;	Sardinian
sd ;	modern ;	Sindhi
sd_Deva ;	basic ;	Sindhi (Devanagari)
si ;	modern ;	Sinhala
sk ;	modern ;	Slovak
sl ;	modern ;	Slovenian
so ;	modern ;	Somali
sq ;	modern ;	Albanian
sr ;	modern ;	Serbian
sr_Latn ;	modern ;	Serbian (Latin)
st ;	basic ;	Southern Sotho
su ;	basic ;	Sundanese
sv ;	modern ;	Swedish
sw ;	modern ;	Swahili
syr ;	basic ;	Syriac
szl ;	basic ;	Silesian
ta ;	modern ;	Tamil
te ;	modern ;	Telugu
tg ;	moderate ;	Tajik
th ;	modern ;	Thai
ti ;	modern ;	Tigrinya
tk ;	modern ;	Turkmen
tn ;	basic ;	Tswana
to ;	basic ;	Tongan
tr ;	modern ;	Turkish
tt ;	moderate ;	Tatar
ug ;	basic ;	Uyghur
uk ;	modern ;	Ukrainian
ur ;	modern ;	Urdu
uz ;	modern ;	Uzbek
uz_Cyrl ;	basic ;	Uzbek (Cyrillic)
vec ;	moderate ;	Venetian
vi ;	modern ;	Vietnamese
vmw ;	basic ;	Makhuwa
wo ;	moderate ;	Wolof
xh ;	moderate ;	Xhosa
xnr ;	moderate ;	Kangri
yo ;	modern ;	Yoruba
yrl ;	basic ;	Nheengatu
yue ;	modern ;	Cantonese
yue_Hans ;	modern ;	Cantonese (Simplified)
za ;	basic ;	Zhuang
zh ;	modern ;	Chinese
zh_Hant ;	modern ;	Traditional Chinese
zu ;	modern ;	Zulu
		
#EOF		
