# 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 = Sirinji 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 = Sirinji ya Tanzania|TSh|0
UGX = Sirinji 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
