# 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 = Dirém dos Emirados Árabes Unidos
AOA = Cuanza angolano|Kz
AUD = Dólar australiano|AU$
BHD = Dinar bareinita|BD|3
BIF = Franco do Burundi|FBu|0
BWP = Pula botsuanesa
CAD = Dólar canadense|CA$
CDF = Franco congolês
CHF = Franco suíço
CNY = Yuan Renminbi chinês|CN¥
CVE = Escudo cabo-verdiano|CV$
DJF = Franco do Djibuti|Fdj|0
DZD = Dinar argelino|DA
EGP = Libra egípcia|EG£
ERN = Nakfa da Eritréia|Nfk
ETB = Birr etíope|Br
EUR = Euro|€
GBP = Libra esterlina britânica|UK£
GHC = Cedi de Gana (1979-2007)|₵||1
GMD = Dalasi de Gâmbia
GNS = Syli da Guiné|||1
INR = Rúpia indiana|Rs.
JPY = Iene japonês|JP¥|0
KES = Xelim queniano|Ksh
KMF = Franco de Comores|CF|0
LRD = Dólar liberiano|L$
LSL = Loti do Lesoto
LYD = Dinar líbio|LD|3
MAD = Dirém marroquino
MGA = Franco de Madagascar||0
MRO = Ouguiya da Mauritânia|UM|0
MUR = Rupia de Maurício|MURs|0
MWK = Cuacha do Maláui
MZM = Metical antigo de Moçambique|Mt||1
NAD = Dólar da Namíbia|N$
NGN = Naira nigeriana|₦
RWF = Franco ruandês||0
SAR = Rial saudita|SR
SCR = Rupia das Seychelles|SRe
SDG = Dinar sudanês
SDP = Libra sudanesa antiga|||1
SHP = Libra de Santa Helena|SH£
SLL = Leone de Serra Leoa|Le|0
SOS = Xelim somali|Ssh|0
STD = Dobra de São Tomé e Príncipe|Db|0
SZL = Lilangeni da Suazilândia
TND = Dinar tunisiano|DT|3
TZS = Xelim da Tanzânia|TSh|0
UGX = Xelim ugandense (1966-1987)|USh|0
USD = Dólar norte-americano|US$
XAF = Franco CFA BEAC|FCFA|0
XOF = Franco CFA BCEAO|CFA|0
ZAR = Rand sul-africano|R
ZMK = Cuacha zambiano|ZK|0
ZWD = Dólar do Zimbábue|Z$|0|1
