# 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 = Diraamu eya Emireeti
AOA = Kwanza y'Angola|Kz
AUD = Doola y'Awusiturelya|AU$
BHD = Dinaali ya Baareeni|BD|3
BIF = Faranga ya burundi|FBu|0
BWP = Pula ya Botiswana
CAD = Doola ya Kanada|CA$
CDF = Faranga ya Kongo
CHF = Faranga ey'eSwitizirandi
CNY = Yuwani Reniminibi ya Cayina|CN¥
CVE = Esikudo ya Keepu Veredi|CV$
DJF = Faranga ya Jjibuti|Fdj|0
DZD = Dinaali y'Aligerya|DA
EGP = Pawunda ya Misiri|EG£
ERN = Nakifa ya Eritureya|Nfk
ETB = Biiru ya Esyopya|Br
EUR = Yuro|€
GBP = Pawunda ya Bungereza|UK£
GHC = Sedi ya Gana|₵||1
GMD = Dalasi ya Gambya
GNS = Faranga ya Gini|||1
INR = Rupiya ya Buyindi|Rs.
JPY = Yeni ya Japani|JP¥|0
KES = Silingi ya Kenya|Ksh
KMF = Faranga ya Komoro|CF|0
LRD = Doola ya Liberya|L$
LSL = Loti ya Lesoso
LYD = Dinaali ya Libya|LD|3
MAD = Diraamu ey'eMoroko
MGA = Faranga ey'eMalagase||0
MRO = Wugwiya ey'eMawritenya|UM|0
MUR = Rupiya ey'eMawurisyasi|MURs|0
MWK = Kwaca ey'eMalawi
MZM = Metikaali ey'eMozambiiki|Mt||1
NGN = Nayira ey'eNayijerya|₦
RWF = Faranga ey'eRwanda||0
SAR = Riyaali ey'eBuwarabu|SR
SCR = Rupiya ey'eSesere|SRe
SDG = Dinaali ey'eSudaani
SDP = Pawunda ey'eSudaani|||1
SHP = Pawunda ey'eSenti Herena|SH£
SLL = Lewone|Le|0
SOS = Silingi ey'eSomaliya|Ssh|0
STD = Dobura ey'eSantome ne Purincipe|Db|0
SZL = Lilangeni
TND = Dinaali ey'eTunizya|DT|3
TZS = Silingi ey'eTanzaniya|TSh|0
UGX = Silingi eya Yuganda|USh|0
USD = Doola ey'Amerika|US$
XAF = Faranga yamu Afirika ya wakati|FCFA|0
XOF = Faranga yamu Afirika ya bugwanjuba|CFA|0
ZAR = Randi ey'eSawusafirika|R
ZMK = Kwaca ey'eZambya|ZK|0
ZWD = Doola ey'eZimbabwe|Z$|0|1
