# 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 = Dirham za Buharabu
AOA = Kwanza ya Angora|Kz
AUD = Doora ya Austureeriya|AU$
BHD = Dinari ya Bahareni|BD|3
BIF = Faranga ya Burundi|FBu|0
BWP = Pura ya Botswana
CAD = Doora ya Kanada|CA$
CDF = Faranga ya Kongo
CHF = Faranga ya Swisi
CNY = Yuan Renminbi ya China|CN¥
CVE = Eskudo ya Kepuvede|CV$
DJF = Faranga ya Gyibuti|Fdj|0
DZD = Dinari ya Arigyeriya|DA
EGP = Paundi ya Misiri|EG£
ERN = Nakfa ya Eritireya|Nfk
ETB = Birr ya Ethiopiya|Br
EUR = Yuro|€
GBP = Paundi ya Bungyereza|UK£
GHC = Cedi ya Ghana|₵||1
GMD = Dalasi ya Gambia
GNS = Faranga ya Guinea|||1
INR = Rupiya ya India|Rs.
JPY = Yeni ya Japaani|JP¥|0
KES = Shiringi ya Kenya|Ksh
KMF = Faranga ya Komoro|CF|0
LRD = Doora ya Liberia|L$
LSL = Loti ya Lesoto
LYD = Dinari ya Libya|LD|3
MAD = Dirram ya Moroko
MGA = Ariari ya Maragariita||0
MRO = Ougwiya ya Mouriteeniya|UM|0
MUR = Rupiiha ya Mauritiasi|MURs|0
MWK = Kwaca ya Malawi
MZM = Metikari ya Mozambikwi|Mt||1
NAD = Doora ya Namibiya|N$
NGN = Naira ya Naigyeriya|₦
RWF = Faranga ya Rwanda||0
SAR = Riya ya Saudi|SR
SCR = Rupiiha ya Sherisheri|SRe
SDG = Dinari ya Sudani
SDP = Paundi ya Sudan|||1
SHP = Paundi ya Senti Herena|SH£
SLL = Leone|Le|0
SOS = Eshiringi ya Somalia|Ssh|0
STD = Dobra ya Sao Tome na Purinsipo|Db|0
TND = Dinari ya Tunisia|DT|3
TZS = Eshiringi ya Tanzania|TSh|0
UGX = Eshiringi ya Uganda|USh|0
USD = Doora ya America|US$
XAF = Faranga ya CFA BEAC|FCFA|0
XOF = Faranga ya CFA BCEAO|CFA|0
ZAR = Randi ya Sausi Afirika|R
ZMK = Kwacha ya Zambia|ZK|0
ZWD = Doora ya Zimbabwe|Z$|0|1
