# 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 Emiraati Araab Dentuɗi
AOA = Kwansaa Anngolaa|Kz
AUD = Dolaar Ostaraalii|AU$
BHD = Dinaar Bahrayn|BD|3
BIF = Mbuuɗu Burunndi|FBu|0
BWP = Pulaa Botwanaa
CAD = Dolaar Kandaaa|CA$
CDF = Faraa Konngo
CHF = Faraa Suwiis
CNY = Yuam Siin|CN¥
CVE = Eskudoo Kap Weer|CV$
DJF = Faraa Jibutii|Fdj|0
DZD = Dinaar Alaseri|DA
EGP = Liibar Ejipt|EG£
ERN = Nafka Eriteree|Nfk
ETB = Biir Ecoppi|Br
EUR = Oroo|€
GBP = Liibar Sterling|UK£
GHC = Sedi Ganaa|₵||1
GMD = Dalasi Gammbi
GNS = Faraa Gine|||1
INR = Rupii Enndo|Rs.
JPY = Yen Sapoo|JP¥|0
KES = Siling Keñaa|Ksh
KMF = Faraa Komoor|CF|0
LRD = Dolaar Liberiyaa|L$
LSL = Loti Lesotoo
LYD = Dinaar Libi|LD|3
MAD = Diraham Maruk
MGA = Ariyari Madagaskaar||0
MRO = Ugiyya Muritani|UM|0
MUR = Rupii Moriis|MURs|0
MWK = Kuwacca Malaawi
MZM = Metikal Mosammbik|Mt||1
NAD = Dolaar Namibii|N$
NGN = Nayraa Nijeriyaa|₦
RWF = Faraa Ruwanndaa||0
SAR = Riyaal Arabi Sawdit|SR
SCR = Rupii Seysel|SRe
SDG = Liibar Sudaan
SHP = Liibar Sent Helen|SH£
SLL = Lewoon Seraa Liyon|Le|0
SOS = Siling Soomali|Ssh|0
STD = Dobra Sawo Tome e Prensipe|Db|0
SZL = Lilangeni Swaasilannda
TND = Dinaar Tunisii|DT|3
TZS = Siling Tansanii|TSh|0
UGX = Siling Uganndaa|USh|0
USD = Dolaar Dowlaaji Dentuɗi|US$
XAF = Mbuuɗi Seefaa BEAC|FCFA|0
XOF = Mbuuɗu Seefaa BCEAO|CFA|0
ZAR = Rannda Afrik Bŋ Worgo|R
ZMK = Kuwacca Sammbi|ZK|0
ZWD = Dolaar Simbaabuwe|Z$|0|1
