# 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 andorska||0|1
AED = dirham arabski
AFA = afgani (1927-2002)|||1
AFN = afgani|Af|0
ALL = lek albański||0
AMD = dram armeński||0
ANG = gulden Antyle Holenderskie|NAf.
AOA = kwanza angolańska|Kz
AOK = kwanza angolańska (1977-1990)|||1
AON = nowa kwanza angolańska (1990-2000)|||1
AOR = kwanza angolańska Reajustado (1995-1999)|||1
ARA = austral argentyński|₳||1
ARP = peso argentyńskie (1983-1985)|||1
ARS = peso argentyńskie|AR$
ATS = szyling austriacki |||1
AUD = dolar australijski|AU$
AWG = gulden arubski|Afl.
AZM = manat azerbejdżański|||1
AZN = manat azerski|man.
BAD = dinar Bośni i Hercegowiny|||1
BAM = marka konwertybilna Bośni i Hercegowiny|KM
BBD = dolar Barbadosu|Bds$
BDT = taka bengalska|Tk
BEC = frank belgijski (zamienny)|||1
BEF = frank belgijski|BF||1
BEL = frank belgijski (finansowy)|||1
BGL = lew bułgarski|||1
BGN = nowy lew bułgarski
BHD = dinar bahrański|BD|3
BIF = frank burundyjski|FBu|0
BMD = dolar bermudzki|BD$
BND = dolar brunejski|BN$
BOB = boliviano|Bs
BOP = peso boliwijskie|$b.||1
BOV = mvdol boliwijski|||1
BRB = cruzeiro novo brazylijskie (1967-1986)|||1
BRC = cruzado brazylijskie|||1
BRE = cruzeiro brazylijskie (1990-1993)|||1
BRL = real brazylijski|R$
BRN = nowe cruzado brazylijskie|||1
BRR = cruzeiro brazylijskie|||1
BSD = dolar bahamski|BS$
BTN = ngultrum Bhutanu|Nu.
BUK = kyat birmański|||1
BWP = pula
BYB = rubel białoruski (1994-1999)|||1
BYR = rubel białoruski||0
BZD = dolar belizeński|BZ$
CAD = dolar kanadyjski|CA$
CDF = frank kongijski
CHF = frank szwajcarski
CLP = peso chilijskie|CL$|0
CNY = juan renminbi|CN¥
COP = peso kolumbijskie|CO$|0
CRC = colon kostarykański|₡|0
CSD = stary dinar serbski|||1
CSK = korona czechosłowacka|||1
CUC = peso kubańskie wymienialne|CUC$
CUP = peso kubańskie|CU$
CVE = escudo Zielonego Przylądka|CV$
CYP = funt cypryjski|CY£||1
CZK = korona czeska|Kč
DDM = wschodnia marka wschodnioniemiecka|||1
DEM = marka niemiecka|DM||1
DJF = frank Dżibuti|Fdj|0
DKK = korona duńska|Dkr
DOP = peso dominikańskie|RD$
DZD = dinar algierski|DA
ECS = sucre ekwadorski|||1
EEK = korona estońska|Ekr
EGP = funt egipski|EG£
ERN = nakfa erytrejska|Nfk
ESA = peseta hiszpańska (Konto A)|||1
ESB = peseta hiszpańska (konto wymienne)|||1
ESP = peseta hiszpańska|Pts|0|1
ETB = birr etiopski|Br
EUR = euro|€
FIM = marka fińska|mk||1
FJD = dolar fidżi|FJ$
FKP = funt Wysp Falklandzkich|FK£
FRF = frank francuski |₣||1
GBP = funt szterling|UK£
GEK = kupon gruziński larit|||1
GEL = lari gruzińskie
GHC = cedi ghańskie|₵||1
GHS = cedi Ghany|GH₵
GIP = funt gibraltarski|GI£
GMD = dalasi gambijskie
GNF = frank gwinejski|FG|0
GNS = syli gwinejskie|||1
GQE = ekwele gwinejskie Gwinei Równikowej|||1
GRD = drachma grecka|₯||1
GTQ = quetzal gwatemalski
GWE = escudo Gwinea Portugalska|||1
GWP = peso Guinea-Bissau|||1
GYD = dolar gujański|GY$|0
HKD = dolar hongkoński|HK$
HNL = lempira Hondurasu
HRD = dinar chorwacki|||1
HRK = kuna chorwacka|kn
HTG = gourde haitańskie
HUF = forint węgierski |Ft|0
IDR = rupia indonezyjska|Rp|0
IEP = funt irlandzki|IR£||1
ILP = funt izraelski|I£||1
ILS = nowy szekel izraelski|₪
INR = rupia indyjska|Rs.
IQD = dinar iracki||0
IRR = rial irański||0
ISK = korona islandzka|Ikr|0
ITL = lir włoski|IT₤|0|1
JMD = dolar jamajski|J$
JOD = dinar jordański|JD|3
JPY = jen japoński|JP¥|0
KES = szyling kenijski|Ksh
KGS = som kirgiski
KHR = riel kambodżański
KMF = frank komoryjski|CF|0
KPW = won północnokoreański||0
KRW = won południowokoreański|₩|0
KWD = dinar kuwejcki|KD|3
KYD = dolar kajmański|KY$
KZT = tenge kazachskie
LAK = kip laotański|₭|0
LBP = funt libański|LB£|0
LKR = rupia lankijska|SLRs
LRD = dolar liberyjski|L$
LSL = loti Lesoto
LTL = lit litewski|Lt
LTT = talon litewski|||1
LUF = frank luksemburski||0|1
LVL = łat łotewski|Ls
LVR = rubel łotewski|||1
LYD = dinar libijski|LD|3
MAD = dirham marokański
MAF = frank marokański|||1
MDL = lej mołdawski
MGA = ariar malgaski||0
MGF = frank malgaski||0|1
MKD = denar macedoński
MLF = frank malijski|||1
MMK = kyat Myanmar||0
MNT = tugrik mongolski|₮|0
MOP = pataka Macao|MOP$
MRO = ouguiya mauterańska|UM|0
MTL = lira maltańska|Lm||1
MTP = funt maltański|MT£||1
MUR = rupia Mauritius|MURs|0
MVR = rufiyaa malediwska
MWK = kwacha malawska
MXN = peso meksykańskie|MX$
MXP = peso srebrne meksykańskie (1861-1992)|||1
MYR = ringgit malezyjski|RM
MZE = escudo mozambickie|||1
MZM = metical Mozambik|Mt||1
MZN = metical Mozambiku|MTn
NAD = dolar namibijski|N$
NGN = naira nigeryjska|₦
NIC = cordoba nikaraguańska|||1
NIO = cordoba oro nikaraguańska|C$
NLG = gulden holenderski |fl||1
NOK = korona norweska|Nkr
NPR = rupia nepalska|NPRs
NZD = dolar nowozelandzki|NZ$
OMR = rial Omanu||3
PAB = balboa panamski|B/.
PEI = inti peruwiański|I/.||1
PEN = nowy sol peruwiański|S/.
PES = sol peruwiański|||1
PGK = kina Papua Nowa Gwinea
PHP = peso filipińskie|Php
PKR = rupia pakistańska|PKRs|0
PLN = złoty polski|zł
PLZ = złoty polski (1950-1995)|||1
PTE = escudo portugalskie|Esc||1
PYG = guarani paragwajskie|₲|0
QAR = rial katarski|QR
RHD = dolar rodezyjski|RH$||1
ROL = lej rumuński|||1
RON = nowa leja rumuńska
RSD = dinar serbski|din.|0
RUB = rubel rosyjski
RUR = rubel rosyjski (1991-1998)|||1
RWF = frank ruandyjski||0
SAR = rial saudyjski|SR
SBD = dolar Wysp Salomona|SI$
SCR = rupia seszelska|SRe
SDD = dinar sudański|LSd||1
SDG = funt sudański
SDP = stary funt sudański|||1
SEK = korona szwedzka|Skr
SGD = dolar singapurski|S$
SHP = funt Wyspy Świętej Heleny|SH£
SIT = tolar słoweński|||1
SKK = korona słowacka|Sk||1
SLL = leone Sierra Leone|Le|0
SOS = szyling somalijski|Ssh|0
SRD = dolar surinamski|SR$
SRG = gulden surinamski|Sf||1
STD = dobra Wysp Świętego Tomasza i Książęcej|Db|0
SUR = rubel radziecki|||1
SVC = colon salwadorski|SV₡||1
SYP = funt syryjski|SY£|0
SZL = lilangeni Suazi
THB = baht tajski|฿
TJR = rubel tadżycki|||1
TJS = somoni tadżyckie
TMM = manat turkmeński||0|1
TMT = nowy mandat turkmeński
TND = dinar tunezyjski|DT|3
TOP = paʻanga Tonga|T$
TPE = escudo timorskie|||1
TRL = lir turecki||0|1
TRY = nowa lira turecka|TL
TTD = dolar Trynidadu i Tobago|TT$
TWD = nowy dolar tajwański|NT$
TZS = szyling tanzański|TSh|0
UAH = hrywna ukraińska
UAK = karbowaniec ukraiński|||1
UGS = szyling ugandyjski (1966-1987)|||1
UGX = szyling ugandyjski|USh|0
USD = dolar amerykański |US$
UYP = peso urugwajskie (1975-1993)|||1
UYU = peso urugwajskie|$U
UZS = som uzbecki||0
VEB = boliwar wenezuelski|||1
VEF = boliwar fuerte|Bs.F.
VND = dong wietnamski|₫|0
VUV = vatu Vanuatu|VT|0
WST = tala samoańska|WS$
XAF = frank CFA BEAC|FCFA|0
XAG = srebro|||1
XAU = złoto|||1
XBA = Jednostka Emisji Euroobligacji|||1
XBB = Europejska Jednostka Monetarna|||1
XBC = Europejska Jednostka Rozrachunkowa (XBC)|||1
XBD = Europejska Jednostka Rozrachunkowa (XBD)|||1
XCD = dolar wschodniokaraibski|EC$
XDR = specjalne prawa ciągnienia|||1
XEU = ECU|||1
XFO = frank złoty francuski|||1
XFU = UIC-frank francuski|||1
XOF = frank CFA|CFA|0
XPD = pallad|||1
XPF = frank CFP|CFPF|0
XPT = platyna|||1
XTS = testowy kod waluty|||1
XXX = nieznana/nieprawidłowa waluta|||1
YDD = dinar jemeński|||1
YER = rial jemeński|YR|0
YUM = nowy dinar jugosławiański|||1
YUN = dinar jugosławiański wymienny|||1
ZAL = rand południowoafrykański (finansowy)|||1
ZAR = rand południowoafrykański|R
ZMK = kwacha zambijska|ZK|0
ZRN = nowy zair zairski|NZ||1
ZRZ = zair zairski|||1
ZWD = dolar Zimbabwe|Z$|0|1
ZWL = dolar Zimbabwe (2009)|||1
