# Copyright 1999-2006 Gentoo Foundation.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/desc/linguas.desc,v 1.46 2010/02/04 21:19:56 abcd Exp $

# This file contains descriptions of LINGUAS USE_EXPAND flags.

# Keep it sorted.

af - Afrikaans locale
am - Amharic locale
ar - Arabic locale
as - Assamese locale
as_IN - Assamese locale for India
ast - Asturian locale
az - Azeri locale
be - Belarusian locale
be_BY - Belarusian locale
bg - Bulgarian locale
bn - Bengali locale
bn_BD - Bengalie locale for Bangladesh
bn_IN - Bengali locale for India
bo - Tibetan locale
br - Breton locale
brx - Bodo locale for India
bs - Bosnian locale
ca - Catalan locale
ca@valencia - Catalan locale (Valencia)
crh - Crimean Tatar (Crimean Turkish) locale
cs - Czech locale
csb - Kashubian locale
cy - Welsh locale
da - Danish locale
de - German locale
de_FR - German locale for France
dgo - Dogri locale for India
dz - Dzongkha locale
el - Greek locale
en - English locale
en_CA - English locale for Canada
en_GB - English locale for Britain
en_US - English locale
en_ZA - English locale for South Africa
eo - Esperanto locale
es - Spanish locale
es_AR - Spanish locale for Argentina
es_CL - Spanish locale for Chile
es_CR - Spanish locale for Costa Rica
es_ES - Spanish locale for Spain
es_LA - Spanish locale for Latin America
es_MX - Spanish locale for Mexico
et - Estonian locale
et_EE - Estonian locale
eu - Basque locale
fa - Persian locale
fi - Finnish locale
fo -  Faroese locale
fr - French locale
fr_CA - French locale for Canada
fy - Frisian locale
fy_NL - Frisian language locale for the Netherlands
ga - Irish locale
ga_IE - Irish locale for Ireland
gl - Galician locale
gu - Gujarati locale
gu_IN - Gujarati locale for India
he - Hebrew locale
hi - Hindi locale
hi_IN - Hindi locale
hne - Chhattisgarhi locale
hr - Croatian locale
hsb - Upper Sorbian locale
hu - Hungarian locale
hy - Armenian locale
id - Indonesian locale
is - Icelandic locale
it - Italian locale
ja - Japanese locale
ka - Georgian locale
kk - Kazakh locale
km - Khmer locale
kn - Kannada locale
kn_IN - Kannada locale for India
ko - Korean locale
ko_KR - Korean locale
kok - Konkani locale
ks - Kashmiri locale
ku - Kurdish (latin) locale
la - Latin2 locale
lb - Luxembourgish locale
lo - Lao locale
lt - Lithuanian locale
lv - Latvian locale
mai - Maithili locale
mk - Macedonian locale
ml - Malayalam locale
ml_IN - Malayalam locale for India
mn - Mongolian locale
mni - Manipuri locale
mr - Marathi locale
mr_IN - Marathi locale for India
ms - Malay locale
mt - Maltese locale
my - Burmese locale
nb - Norwegian (Bokmal) locale
nb_NO - Norwegian (Bokmal) locale for Norway
nds - Low Saxon locale
ne - Nepali locale
nl - Dutch locale
nn - Nynorsk locale
nn_NO - Nynorsk locale for Norway
no - Norwegian locale
nr - Ndebele (South) locale
ns - Northern Sotho locale
nso - Northern Sotho locale
oc - Occitan locale
om - Oromo locale
or - Oriya locale
or_IN - Oriya locale for India
pa - Punjabi locale for India
pa_IN - Punjabi locale for India
pl - Polish locale
pt - Portuguese locale
pt_BR - Portuguese locale for Brasil
pt_PT - Portuguese locale for Portugal
rm - Romansh locale
ro - Romanian locale
ru - Russian locale
rw - Kinyarwanda locale
sa_IN - Sanskrit locale
sat - Santali locale
sd - Sindhi locale
se - Northern Saami locale
sh - Serbo-Croatian locale
sh_YU - Serbo-Croatian locale
si - Sinhala locale
sk - Slovak locale
sl - Slovenian locale
sq - Albanian locale
sr - Serbian locale
sr@latin - Serbian (latin) locale
sr@Latn - Serbian (latin) locale
sr_CS - Serbian locale
ss - Swati locale
st - Southern Sotho locale
sv - Swedish locale
sv_SE - Swedish locale for Sweden
sw - Swahili locale
sw_TZ - Swahili locale for Tanzania
ta - Tamil locale
ta_IN - Tamil locale
ta_LK - Tamil locale for Sri Lanka
te - Telugu locale
te_IN - Telugu locale for India
tg - Tajik locale
th - Thai locale
ti_ER - Tigrinya locale for Eritrea
tk - Turkmen locale
tl - Tagalog locale
tn - Tswana locale
tr - Turkish locale
ts - Tsonga locale
ug - Uighur locale
uk - Ukrainian locale
ur_IN - Urdu locale for India
ur_PK - Urdu language locale for Pakistan
uz - Uzbek locale
uz@cyrillic - Uzbek (cyrillic) locale
ve - Venda locale
vi - Vietnamese locale
wa - Walloon locale
xh - Xhosa locale
zh - Chinese locale
zh_CN - Chinese locale for Peoples Republic of China
zh_HK - Chinese locale for Hong Kong
zh_TW - Chinese locale for Taiwan
zu - Zulu locale
