# 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 = de vereineschte arraabesche Emiraate ier Dirham
AFN = Afjahni|Af|0
ALL = albaanesche Lek||0
ANG = neederlängsch antillesche Jullde|NAf.
ARS = ajentiinesche Peeso|AR$
AUD = austraalesche Dollaa|AU$
AWG = arubesche Florin|Afl.
BBD = Barbados-Dollaa|Bds$
BGN = buljaaresche Lev
BIF = burundesche Franke|FBu|0
BMD = Bermuuda-Dollaa|BD$
BND = Brunei-Dollaaa|BN$
BOB = Bollivijano|Bs
BRL = Real|R$
BSD = bahama'sche Dollaa|BS$
BYR = wiißrußesche Rubel||0
CAD = kannaadesche Dollaa|CA$
CDF = kongjoleesesche Frang
CHF = schweijzer Fränkli
CLP = schileenesche Peesos|CL$|0
CNY = schineesesche Yuan Renminbi|CN¥
COP = kolumbesche Pesos|CO$|0
CUP = kubaanesche Peeso|CU$
CVE = kapverdesche Eskuudos|CV$
CZK = tschäschesche Kruhne|Kč
DKK = dänesche Kruhne|Dkr
DZD = aljeresche Denaa|DA
EEK = Äßnesche Kruhne|Ekr
EGP = äjiptesche Pongk|EG£
EUR = Euro|€
GBP = brittesche £|UK£
GIP = jibraltaa'sche Pongk|GI£
HKD = Hong Kong Dollar|HK$
HUF = Forint|Ft|0
IDR = indoneesesche Ruupije|Rp|0
INR = indesche Ruupije|Rs.
IQD = iraakesche Denaa||0
IRR = persesche Rial||0
ISK = ißländesche Kruhne|Ikr|0
JMD = jamaikaanesche Dollaa|J$
JOD = Jordaanesche Dollaa|JD|3
JPY = japaanesche Jen|JP¥|0
KES = Kenjaanesche Schillinge|Ksh
KMF = kommooresche Frangke|CF|0
KWD = kuwaitesche Denaa|KD|3
KYD = Kaimann-Dollaa|KY$
LBP = Libaneesesche Pongk|LB£|0
LKR = schri-lankesche Ruupije|SLRs
LRD = liberijaanesche Dollaa|L$
LYD = libesche Denaa|LD|3
MAD = marrokaanesche Dirhamm
MKD = mazedoonesche Denaa
MUR = maurizjahnesche Ruupije|MURs|0
MXN = mexekaanesche Peeso|MX$
NAD = namiibesche Dollaa|N$
NOK = Norrweejesche Kruhne|Nkr
NPR = nepaleesesche Ruupije|NPRs
NZD = neuseeländesche Dollaa|NZ$
OMR = ommaanesche Rijal||3
PHP = fillipiinesche Pseos|Php
PKR = pakestaanesche Ruupije|PKRs|0
PLN = Zloti|zł
QAR = Kataaresche Rijal|QR
RSD = särbesche Denaare|din.|0
RUB = russesche Ruubel
RWF = ruandesche Frang||0
SAR = saudesche Rijal|SR
SCR = seischellesche Ruupije|SRe
SDG = sudaneesesche Pongk
SEK = schweedesche Kruhne|Skr
SGD = singjapurejaanesche Dollaa|S$
SKK = ßlovaakesche Kruhne|Sk||1
SOS = somaalesche Schillenge|Ssh|0
SRD = Sürinameesesche Dollaa|SR$
SYP = süüresche Pund|SY£|0
THB = tailändesche Baht|฿
TND = tuneesesche Denaa|DT|3
TRY = törkesche Liire|TL
TWD = neu taiwaneesesche Dollaa|NT$
TZS = tansaanesche Schillenge|TSh|0
UGX = ujandesche Schillenge|USh|0
USD = US$|US$
UYU = urrujuwaische Peeso|$U
XAG = Sellver|||1
XAU = Jold|||1
XCD = oß-karribbesche Dollaa|EC$
XXX = xxx|||1
YER = jemenitesche Rijal|YR|0
ZAR = Rand|R
ZWD = simbabwesche Dollaa|Z$|0|1
