# 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 ya Falme za Chiarabu
AOA = Kwanza ya Angola|Kz
AUD = Dola ya Australia|AU$
BHD = Dinari ya Bahareni|BD|3
BIF = Faranga ya Burundi|FBu|0
BWP = Pula ya Botswana
CAD = Dola ya Kanada|CA$
CDF = Faranga ya Kongo
CHF = Faranga ya Uswisi
CNY = Yuan Renminbi ya China|CN¥
CVE = Eskudo ya Kepuvede|CV$
DJF = Faranga ya Jibuti|Fdj|0
DZD = Dinari ya Aljeria|DA
EGP = Pauni ya Misri|EG£
ERN = Nakfa ya Eritrea|Nfk
ETB = Bir ya Uhabeshi|Br
EUR = Yuro|€
GBP = Pauni ya Uingereza|UK£
GHC = Sedi ya Ghana|₵||1
GMD = Dalasi ya Gambia
GNS = Faranga ya Gine|||1
INR = Rupia ya India|Rs.
JPY = Sarafu ya Chijapani|JP¥|0
KES = Shilingi ya Kenya|Ksh
KMF = Faranga ya Komoro|CF|0
LRD = Dola ya Liberia|L$
LSL = Loti ya Lesoto
LYD = Dinari ya Libya|LD|3
MAD = Dirham ya Moroko
MGA = Faranga ya Bukini||0
MRO = Ugwiya ya Moritania|UM|0
MUR = Rupia ya Morisi|MURs|0
MWK = Kwacha ya Malawi
MZM = Metikali ya Msumbiji|Mt||1
NAD = Dola ya Namibia|N$
NGN = Naira ya Nijeria|₦
RWF = Faranga ya Rwanda||0
SAR = Riyal ya Saudia|SR
SCR = Rupia ya Shelisheli|SRe
SDG = Dinari ya Sudani
SDP = Pauni ya Sudani|||1
SHP = Pauni ya Santahelena|SH£
SLL = Leoni|Le|0
SOS = Shilingi ya Somalia|Ssh|0
STD = Dobra ya Sao Tome na Principe|Db|0
SZL = Lilangeni
TND = Dinari ya Tunisia|DT|3
TZS = Shilingi ya Tanzania|TSh|0
UGX = Shilingi ya Uganda|USh|0
USD = Dola ya Marekani|US$
XAF = Faranga CFA BEAC|FCFA|0
XOF = Faranga CFA BCEAO|CFA|0
ZAR = Randi ya Afrika Kusini|R
ZMK = Kwacha ya Zambia|ZK|0
ZWD = Dola ya Zimbabwe|Z$|0|1
