# Do not edit - generated from Unicode CLDR data
#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag
# If a symbol is not supplied, the currency code will be used
# If # of decimal digits is omitted, 2 is used
# If a currency is not generally used, not-used-flag=1
# Trailing empty fields can be omitted

AED = Laaraw Immaara Margantey Dirham
AOA = Angoola Kwanza|Kz
AUD = Ostraali Dollar|AU$
BHD = Bahareen Dinar|BD|3
BIF = Burundi Fraŋ|FBu|0
BWP = Botswaana Pund
CAD = Kanaada Dollar|CA$
CDF = Kongo Fraŋ
CHF = Swisu Fraŋ
CNY = Sinwa Yuan Renminbi|CN¥
CVE = Kapuver Escudo|CV$
DJF = Jibuuti Fraŋ|Fdj|0
DZD = Alžeeri Dinar|DA
EGP = Misra Pund|EG£
ERN = Eritree Nafka|Nfk
ETB = Ecioopi Birr|Br
EUR = Eero|€
GBP = Britin Pund|UK£
GHC = Gaana Šiidi|₵||1
GMD = Gambi Dalasi
GNS = Ginee Fraŋ|||1
INR = Indu Rupii|Rs.
JPY = Jaapoŋ Yen|JP¥|0
KES = Keeniya Šiiliŋ|Ksh
KMF = Komoor Fraŋ|CF|0
LRD = Liberia Dollar|L$
LSL = Leezoto Loti
LYD = Liibi Dinar|LD|3
MAD = Maarok Dirham
MGA = Malgaaši Fraŋ||0
MRO = Mooritaani Ugiya|UM|0
MUR = Mooris Rupii|MURs|0
MWK = Malaawi Kwaca
MZM = Mozambik Metikal|Mt||1
NAD = Naamibi Dollar|N$
NGN = Naajiriya Neera|₦
RWF = Rwanda Fraŋ||0
SAR = Saudiya Riyal|SR
SCR = Seešel Rupii|SRe
SDG = Suudaŋ Dinar
SDP = Suudaŋ Pund|||1
SHP = Seŋ Helena Fraŋ|SH£
SLL = Leeon|Le|0
SOS = Somaali Šiiliŋ|Ssh|0
STD = Sao Tome nda Prinsipe Dobra|Db|0
SZL = Lilangeni
TND = Tunizi Dinar|DT|3
TZS = Tanzaani Šiiliŋ|TSh|0
UGX = Uganda Šiiliŋ|USh|0
USD = Ameriki Dollar|US$
XAF = CFA Fraŋ (BEAC)|FCFA|0
XOF = CFA Fraŋ (BCEAO)|CFA|0
ZAR = Hawasa Afriki Rand|R
ZMK = Zambi Kwaca|ZK|0
ZWD = Zimbabwe Dollar|Z$|0|1
