# 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 Kiarabu
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 Kijapani|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 = Ariary 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 = Pauni ya Sudani
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
