# 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 Emira arab ini
AOA = kwanza angole|Kz
AUD = dolar ostralien|AU$
BHD = dinar bahreïn|BD|3
BIF = fran burunde|FBu|0
BWP = pula ya botswane
CAD = dolar kanadien|CA$
CDF = fran kongole
CHF = fran swis
CNY = yuan renminbi sinwa|CN¥
CVE = eskudo kapverdien|CV$
DJF = fran djiboutien|Fdj|0
DZD = dinar alzerien|DA
EGP = liv ezipsien|EG£
ERN = nafka erythreen|Nfk
ETB = birr etiopien|Br
EUR = euro|€
GBP = liv sterlin|UK£
GHC = sedi ganeen|₵||1
GMD = dalasi gambien
GNS = fran gineen|||1
INR = roupi|Rs.
JPY = yen zapone|JP¥|0
KES = shiling kenyan|Ksh
KMF = fran komorien|CF|0
LRD = dolar liberien|L$
LSL = loti lezoto
LYD = dinar libien|LD|3
MAD = dirham marokin
MGA = fran malgas||0
MRO = ouguiya moritanien|UM|0
MUR = roupi morisien|MURs|0
MWK = kwacha malawit
MZM = metikal mozanbikin|Mt||1
NAD = dolar namibien|N$
NGN = naira nizerian|₦
RWF = fran rwande||0
SAR = rial saoudien|SR
SCR = roupi seselwa|SRe
SDG = dinar soudane
SDP = liv soudane|||1
SHP = liv Sainte-Hélène|SH£
SLL = leonn Sierra-Leone|Le|0
SOS = shilingi somalien|Ssh|0
STD = dobra santomeen|Db|0
SZL = lilangeni swazi
TND = dinar tinizien|DT|3
TZS = shiling tanzanien|TSh|0
UGX = shiling ougande|USh|0
USD = dolar amerikin|US$
XAF = fran CFA (BEAC)|FCFA|0
XOF = fran CFA (BCEAO)|CFA|0
ZAR = rand sid-afrikin|R
ZMK = kwacha zanbien|ZK|0
ZWD = dolar zimbawe|Z$|0|1
