# 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

ADP = Peseta andorrská||0|1
AED = Dirham SAE
AFA = Afghán (1927-2002)|||1
AFN = Afghán|Af|0
ALL = Lek||0
AMD = Dram arménský||0
ANG = Zlatý Nizozemských Antil|NAf.
AOA = Kwanza|Kz
AOK = Kwanza (1977-1990)|||1
AON = Kwanza nová (1990-2000)|||1
AOR = Kwanza reajustado (1995-1999)|||1
ARA = Austral|₳||1
ARP = Peso argentinské (1983-1985)|||1
ARS = Peso argentinské|AR$
ATS = Šilink|||1
AUD = Dolar australský|AU$
AWG = Zlatý arubský|Afl.
AZM = Manat ázerbajdžánský (1993-2006)|||1
AZN = Manat ázerbajdžánský|man.
BAD = Dinár Bosny a Hercegoviny|||1
BAM = Marka konvertibilní|KM
BBD = Dolar barbadoský|Bds$
BDT = Taka|Tk
BEC = Frank konvertibilní belgický|||1
BEF = Frank belgický|BF||1
BEL = Frank finanční belgický|||1
BGL = Lev|||1
BGN = Lev Bulharský
BHD = Dinár bahrajnský|BD|3
BIF = Frank burundský|FBu|0
BMD = Dolar bermudský|BD$
BND = Dolar brunejský|BN$
BOB = Boliviano|Bs
BOP = Peso|$b.||1
BOV = Mvdol|||1
BRB = Cruzeiro (1967-1986)|||1
BRC = Cruzado|||1
BRE = Cruzeiro (1990-1993)|||1
BRL = Real brazilský|R$
BRN = Cruzado nové|||1
BRR = Cruzeiro real|||1
BSD = Dolar bahamský|BS$
BTN = Ngultrum|Nu.
BUK = Kyat barmský|||1
BWP = Pula
BYB = Rubl nový běloruský (1994-1999)|||1
BYR = Rubl běloruský||0
BZD = Dolar belizský|BZ$
CAD = Dolar kanadský|CA$
CDF = Frank konžský
CHF = Frank švýcarský
CLF = Unidades de fomento||0|1
CLP = Peso chilské|CL$|0
CNY = Juan renminbi|CN¥
COP = Peso kolumbijské|CO$|0
CRC = Colón kostarický|₡|0
CSK = Koruna československá|||1
CUP = Peso kubánské|CU$
CVE = Escudo kapverdské|CV$
CYP = Libra kyperská|CY£||1
CZK = Koruna česká|Kč
DDM = Marka NDR|||1
DEM = Marka německá|DM||1
DJF = Frank džibutský|Fdj|0
DKK = Koruna dánská|Dkr
DOP = Peso dominikánské|RD$
DZD = Dinár alžírský|DA
ECS = Sucre ekvádorský|||1
ECV = Ecuador Unidad de Valor Constante (UVC)|||1
EEK = Kroon|Ekr
EGP = Libra egyptská|EG£
ERN = Nakfa|Nfk
ESA = Peseta španělská („A“ účet)|||1
ESB = Peseta španělská (konvertibilní účet)|||1
ESP = Peseta španělská|Pts|0|1
ETB = Birr etiopský|Br
EUR = Euro|€
FIM = Markka|mk||1
FJD = Dolar fidžijský|FJ$
FKP = Libra falklandská|FK£
FRF = Frank francouzský|₣||1
GBP = Libra šterlinků|UK£
GEK = Georgian Kupon Larit|||1
GEL = Lari
GHC = Cedi (1979-2007)|₵||1
GHS = Cedi|GH₵
GIP = Libra gibraltarská|GI£
GMD = Dalasi
GNF = Frank guinejský|FG|0
GNS = Guinea Syli|||1
GQE = Equatorial Guinea Ekwele Guineana|||1
GRD = Drachma|₯||1
GTQ = Quetzal
GWE = Escudo guinejské|||1
GWP = Peso Guinnea-Bissau|||1
GYD = Dolar guyanský|GY$|0
HKD = Dolar hongkongský|HK$
HNL = Lempira
HRD = Dinar chorvatský|||1
HRK = Kuna chorvatská|kn
HTG = Gourde
HUF = Forint|Ft|0
IDR = Rupie indonézská|Rp|0
IEP = Libra irská|IR£||1
ILP = Libra izraelská|I£||1
ILS = Šekel nový izraelský|₪
INR = Rupie indická|Rs.
IQD = Dinár irácký||0
IRR = Rijál íránský||0
ISK = Koruna islandská|Ikr|0
ITL = Lira italská|IT₤|0|1
JMD = Dolar jamajský|J$
JOD = Dinár jordánský|JD|3
JPY = Jen|JP¥|0
KES = Šilink keňský|Ksh
KGS = Som
KHR = Riel
KMF = Frank komorský|CF|0
KPW = Won severokorejský||0
KRW = Won jihokorejský|₩|0
KWD = Dinár kuvajtský|KD|3
KYD = Dolar Kajmanských ostrovů|KY$
KZT = Tenge
LAK = Kip|₭|0
LBP = Libra libanonská|LB£|0
LKR = Rupie srílanská|SLRs
LRD = Dolar liberijský|L$
LSL = Loti
LTL = Litus litevský|Lt
LTT = Talon|||1
LUC = Frank konvertibilní lucemburský|||1
LUF = Frank lucemburský||0|1
LUL = Frank finanční lucemburský|||1
LVL = Lat lotyšský|Ls
LVR = Rubl lotyšský|||1
LYD = Dinár lybijský|LD|3
MAD = Dirham marocký
MAF = Frank marocký|||1
MDL = Leu moldavský
MGA = Ariary madagaskarský||0
MGF = Frank madagaskarský||0|1
MKD = Denár
MLF = Frank malijský|||1
MMK = Kyat||0
MNT = Tugrik|₮|0
MOP = Pataca|MOP$
MRO = Ouguiya|UM|0
MTL = Lira maltská|Lm||1
MTP = Libra maltská|MT£||1
MUR = Rupie mauricijská|MURs|0
MVR = Rufiyaa
MWK = Kwacha malawská
MXN = Peso mexické|MX$
MXP = Peso stříbrné mexické (1861-1992)|||1
MXV = Mexican Unidad de Inversion (UDI)|||1
MYR = Ringgit malajskijský|RM
MZE = Escudo Mosambiku|||1
MZM = Metical|Mt||1
NAD = Dolar namibijský|N$
NGN = Naira|₦
NIC = Cordoba|||1
NIO = Cordoba oro|C$
NLG = Zlatý holandský|fl||1
NOK = Koruna norská|Nkr
NPR = Rupie nepálská|NPRs
NZD = Dolar novozélandský|NZ$
OMR = Rijál ománský||3
PAB = Balboa|B/.
PEI = Inti|I/.||1
PEN = Nuevo sol|S/.
PES = Sol|||1
PGK = Kina
PHP = Peso filipínské|Php
PKR = Rupie pákistánská|PKRs|0
PLN = Zlotý|zł
PLZ = Zlotý (1950-1995)|||1
PTE = Escudo portugalské|Esc||1
PYG = Guarani|₲|0
QAR = Rijál katarský|QR
ROL = Lei|||1
RON = Leu nové
RSD = Dinár srbský|din.|0
RUB = Rubl ruský
RUR = Rubl ruský (1991-1998)|||1
RWF = Frank rwandský||0
SAR = Rijál saudský|SR
SBD = Dolar Šalamounových ostrovů|SI$
SCR = Rupie seychelská|SRe
SDD = Dinár súdánský|LSd||1
SDG = Libra súdánská
SDP = Libra súdánská (1957-1998)|||1
SEK = Koruna švédská|Skr
SGD = Dolar singapurský|S$
SHP = Libra Svaté Heleny|SH£
SIT = Tolar|||1
SKK = Koruna slovenská|Sk||1
SLL = Leone|Le|0
SOS = Šilink somálský|Ssh|0
SRD = Dolar surinamský|SR$
SRG = Zlatý surinamský|Sf||1
STD = Dobra|Db|0
SUR = Rubl|||1
SVC = Colon salvadorský|SV₡||1
SYP = Libra syrská|SY£|0
SZL = Lilangeni
THB = Baht|฿
TJR = Tajikistan Ruble|||1
TJS = Somoni
TMM = Manat||0|1
TND = Dinár tuniský|DT|3
TOP = Paʻanga|T$
TPE = Escudo timorské|||1
TRL = Lira turecká||0|1
TRY = Lira nová turecká|TL
TTD = Dolar Trinidad a Tobago|TT$
TWD = Dolar tchajvanský nový|NT$
TZS = Šilink tanzanský|TSh|0
UAH = Hřivna
UAK = Karbovanec|||1
UGS = Šilink ugandský (1966-1987)|||1
UGX = Šilink ugandský|USh|0
USD = Dolar americký|US$
USN = Dolar americký (příští den)|||1
USS = Dolar americký (týž den)|||1
UYP = Peso uruguayské (1975-1993)|||1
UYU = Peso uruguayské|$U
UZS = Sum uzbecký||0
VEB = Bolivar|||1
VEF = Bolivar fuerte|Bs.F.
VND = Dong vietnamský|₫|0
VUV = Vatu|VT|0
WST = Tala|WS$
XAF = Frank BEAC/CFA|FCFA|0
XAG = Stříbro|||1
XAU = Zlato|||1
XBA = Evropská smíšená jednotka|||1
XBB = Evropská peněžní jednotka|||1
XBC = Evropská jednotka účtu 9 (XBC)|||1
XBD = Evropská jednotka účtu 17 (XBD)|||1
XCD = Dolar východokaribský|EC$
XDR = SDR|||1
XEU = Evropská měnová jednotka|||1
XFO = Frank zlatý|||1
XFU = Frank UIC|||1
XOF = Frank BCEAO/CFA|CFA|0
XPD = Paladium|||1
XPF = Frank CFP|CFPF|0
XPT = Platina|||1
XRE = Kód fondů RINET|||1
XTS = Kód vyhrazený pro testovací účely|||1
XXX = Neznámá nebo neplatná měna|||1
YDD = Dinár jemenský|||1
YER = Rijál jemenský|YR|0
YUD = Dinár jugoslávský nový [YUD]|||1
YUM = Dinár jugoslávský nový [YUM]|||1
YUN = Dinár jugoslávský konvertibilní|||1
ZAL = Rand finanční|||1
ZAR = Rand|R
ZMK = Kwacha zambijská|ZK|0
ZRN = Zaire nový|NZ||1
ZRZ = Zaire|||1
ZWD = Dolar zimbabwský|Z$|0|1
