# 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 = Kuɗin Haɗaɗɗiyar Daular Larabawa
AOA = Kuɗin Angola|Kz
AUD = Dalar Ostareliya|AU$
BHD = Kuɗin Baharan|BD|3
BIF = Kuɗin Burundi|FBu|0
BWP = Kuɗin Baswana
CAD = Dalar Kanada|CA$
CDF = Kuɗin Kongo
CHF = Kuɗin Suwizalan
CNY = Kuɗin Caina/Sin|CN¥
CVE = Kuɗin  Tsibiran Kap Barde|CV$
DJF = Kuɗin Jibuti|Fdj|0
DZD = Kuɗin Aljeriya|DA
EGP = Fam kin Masar|EG£
ERN = Kuɗin Eritireya|Nfk
ETB = Kuɗin Habasha|Br
EUR = Yuro|€
GBP = Fam kin Ingila|UK£
GHC = Cedi|₵||1
GMD = Kuɗin Gambiya
GNS = Kuɗin Gini|||1
INR = Kuɗin Indiya|Rs.
JPY = Kuɗin Japan|JP¥|0
KES = Sulen Kenya|Ksh
KMF = Kuɗin Kwamoras|CF|0
LRD = Dalar Laberiya|L$
LSL = Kuɗin Lesoto
LYD = Kuɗin Libiya|LD|3
MAD = Kuɗin Maroko
MGA = Kuɗin Madagaskar||0
MRO = Kuɗin Moritaniya|UM|0
MUR = Kuɗin Moritus|MURs|0
MWK = Kuɗin Malawi
MZM = Kuɗin Mozambik|Mt||1
NAD = Dalar Namibiya|N$
NGN = Naira|₦
RWF = Kuɗin Ruwanda||0
SAR = Riyal|SR
SCR = Kuɗin Saishal|SRe
SDG = Fam kin Sudan
SHP = Fam kin San Helena|SH£
SLL = Kuɗin Salewo|Le|0
SOS = Sulen Somaliya|Ssh|0
STD = Kuɗin Sawo Tome da Paransip|Db|0
SZL = Kuɗin Lilangeni
TND = Kuɗin Tunisiya|DT|3
TZS = Sulen Tanzaniya|TSh|0
UGX = Sule Yuganda|USh|0
USD = Dalar Amurka|US$
XAF = Kuɗin Sefa na Afirka Ta Tsakiya|FCFA|0
XOF = Kuɗin Sefa na Afirka Ta Yamma|CFA|0
ZAR = Kuɗin Afirka Ta Kudu|R
ZMK = Kuɗin Zambiya|ZK|0
ZWD = Dalar zimbabuwe|Z$|0|1
