# Do not edit - generated from Unicode CLDR data
#   main/sv.xml - r4178 2009-06-14 23:46:26 -0400 (Sun, 14 Jun 2009)
#
# 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 = andorransk peseta||0|1
AED = Förenade Arabemiratens dirham
AFA = afghani (1927-2002)|||1
AFN = afghani||0
ALK = albansk lek (-1992)|||1
ALL = albansk lek||0
AMD = armenisk dram||0
ANG = Nederländska Antillernas gulden|NAf.
AOA = angolansk kwanza
AOK = angolansk kwanza (1977-1990)|||1
AON = angolansk ny kwanza (1990-2000)|||1
AOR = angolansk kwanza reajustado (1995-1999)|||1
ARA = argentinsk austral|||1
ARL = ARL|||1
ARM = ARM|||1
ARP = argentinsk peso (1983-1985)|||1
ARS = argentinsk peso
ATS = österrikisk schilling|||1
AUD = australisk dollar|AU$
AWG = Aruba-gulden
AZM = azerbajdzjansk manat (1993-2006)|||1
AZN = azerbajdzjansk manat
BAD = bosnisk-hercegovinsk dinar|||1
BAM = bosnisk-hercegovinsk mark (konvertibel)
BBD = Barbados-dollar|Bds$
BDT = bangladeshisk taka|Tk
BEC = belgisk franc (konvertibel)
BEF = belgisk franc|||1
BEL = belgisk franc (finansiell)
BGL = bulgarisk lev (1962–1999)|||1
BGM = bulgarisk lev (1952–1962)|||1
BGN = bulgarisk ny lev
BHD = Bahrain-dinar||3
BIF = burundisk franc||0
BMD = Bermuda-dollar
BND = Brunei-dollar
BOB = boliviano
BOP = boliviansk peso|||1
BOV = boliviansk mvdol
BRB = brasiliansk cruzeiro (1967-1986)|||1
BRC = brasiliansk cruzado|||1
BRE = brasiliansk cruzeiro (1990-1993)|||1
BRL = brasiliansk real
BRN = brasiliansk cruzado novo|||1
BRR = brasiliansk cruzeiro|||1
BRZ = BRZ|||1
BSD = Bahamas-dollar
BTN = bhutanesisk ngultrum
BUK = burmesisk kyat|||1
BWP = botswansk pula
BYB = vitrysk ny rubel (1994-1999)|||1
BYR = vitrysk rubel||0
BZD = belizisk dollar
CAD = kanadensisk dollar
CDF = kongolesisk franc
CHE = euro (konvertibelt konto, WIR Bank, Schweiz)
CHF = schweizisk franc
CHW = schweizisk franc (konvertibelt konto, WIR Bank)
CLE = CLE|||1
CLF = chilensk unidad de fomento||0
CLP = chilensk peso||0
CNX = kinesisk dollar
CNY = kinesisk yuan renminbi
COP = colombiansk peso||0
COU = colombiansk unidad de valor real
CRC = costarikansk colón||0
CSD = jugoslavisk dinar|||1
CSK = tjeckoslovakisk koruna|||1
CUC = CUC
CUP = kubansk peso
CVE = kapverdisk escudo
CYP = cypriotiskt pund|||1
CZK = tjeckisk koruna
DDM = östtysk mark|||1
DEM = tysk mark|DM||1
DJF = djiboutisk franc||0
DKK = dansk krona
DOP = dominikansk peso
DZD = algerisk dinar
ECS = ecuadoriansk sucre|||1
ECV = ecuadoriansk unidad de valor constante
EEK = estnisk krona|Ekr
EGP = egyptiskt pund
EQE = EQE|||1
ERN = eritreansk nakfa
ESA = spansk peseta (konto)
ESB = spansk peseta (konvertibelt konto)
ESP = spansk peseta||0|1
ETB = etiopisk birr
EUR = euro|€
FIM = finsk mark|||1
FJD = Fiji-dollar
FKP = Falklandsöarnas pund
FRF = fransk franc|||1
GBP = brittiskt pund sterling|£
GEK = georgisk kupon larit|||1
GEL = georgisk lari
GHC = ghanansk cedi (1979-2007)|||1
GHS = ghanansk cedi
GIP = gibraltiskt pund
GMD = gambisk dalasi
GNF = guineansk franc||0
GNS = guineansk syli|||1
GQE = ekvatorialguineansk ekwele|||1
GRD = grekisk drachma|||1
GTQ = guatemalansk quetzal
GWE = Portugisiska Guinea-escudo|||1
GWP = Guinea-Bissau-peso
GYD = Guyana-dollar||0
HKD = Hongkong-dollar|HK$
HNL = honduransk lempira
HRD = kroatisk dinar|||1
HRK = kroatisk kuna
HTG = haitisk gourde
HUF = ungersk forint||0
IDR = indonesisk rupiah||0
IEP = irländskt pund|||1
ILP = israeliskt pund|||1
ILR = israelisk gammal shekel|||1
ILS = israelisk ny shekel|₪
INR = indisk rupie
IQD = irakisk dinar||0
IRR = iransk rial||0
ISJ = isländsk gammal krona|||1
ISK = isländsk krona||0
ITL = italiensk lira||0|1
JMD = Jamaica-dollar
JOD = jordansk dinar||3
JPY = japansk yen|JP¥|0
KES = kenyansk shilling
KGS = kirgizisk som
KHR = kambodjansk riel
KMF = komorisk franc||0
KPW = nordkoreansk won||0
KRW = sydkoreansk won|₩|0
KWD = kuwaitisk dinar||3
KYD = Cayman-dollar
KZT = kazakisk tenge
LAK = laotisk kip||0
LBP = libanesiskt pund||0
LKR = srilankesisk rupie
LRD = Liberia-dollar
LSL = lesothisk loti
LSM = LSM|||1
LTL = litauisk litas
LTT = litauisk talonas|||1
LUC = luxemburgsk franc (konvertibel)
LUF = luxemburgsk franc||0|1
LUL = luxemburgsk franc (finansiell)
LVL = lettisk lats|Ls
LVR = lettisk rubel|||1
LYD = libysk dinar||3
MAD = marockansk dirham
MAF = marockansk franc|||1
MDL = moldavisk leu
MGA = madagaskisk ariary||0
MGF = madagaskisk franc||0|1
MKD = makedonisk denar
MLF = malisk franc|||1
MMK = myanmarisk kyat||0
MNT = mongolisk tugrik||0
MOP = Macao-pataca
MRO = mauretansk ouguiya||0
MTL = maltesisk lire|||1
MTP = maltesiskt pund|||1
MUR = mauritisk rupie||0
MVR = maldivisk rufiyaa
MWK = malawisk kwacha
MXN = mexikansk peso
MXP = mexikansk silverpeso (1861-1992)|||1
MXV = mexikansk unidad de inversion
MYR = malaysisk ringgit
MZE = moçambikisk escudo|||1
MZM = gammal moçambikisk metical|||1
MZN = moçambikisk metical
NAD = Namibia-dollar
NGN = nigeriansk naira
NIC = nicaraguansk córdoba|||1
NIO = nicaraguansk córdoba oro
NLG = nederländsk gulden|||1
NOK = norsk krona|NKr
NPR = nepalesisk rupie
NZD = nyzeeländsk dollar
OMR = omansk rial||3
PAB = panamansk balboa
PEI = peruansk inti|||1
PEN = peruansk sol nuevo
PES = PES|||1
PGK = papuansk kina
PHP = filippinsk peso
PKR = pakistansk rupie||0
PLN = polsk zloty
PLZ = polsk zloty (1950-1995)|||1
PTE = portugisisk escudo|||1
PYG = paraguaysk guarani||0
QAR = qatarisk rial
RHD = rhodesisk dollar|||1
ROL = gammal rumänsk leu|||1
RON = rumänsk leu
RSD = serbisk dinar||0
RUB = rysk rubel
RUR = rysk rubel (1991-1998)|||1
RWF = rwandisk franc||0
SAR = saudisk riyal
SBD = Salomon-dollar
SCR = seychellisk rupie
SDD = sudanesisk dinar|||1
SDG = sudanesiskt pund
SDP = sudanskt pund (1916-1992)|||1
SEK = svensk krona|kr
SGD = Singapore-dollar
SHP = S:t Helena-pund
SIT = slovensk tolar|||1
SKK = slovakisk koruna|||1
SLL = sierraleonsk leone||0
SOS = somalisk shilling||0
SRD = Surinam-dollar
SRG = surinamesisk gulden|||1
STD = São Tomé och Príncipe-dobra||0
SUR = sovjetisk rubel|||1
SVC = salvadoransk colón|||1
SYP = syriskt pund||0
SZL = swaziländsk lilangeni
THB = thailändsk baht|฿
TJR = tadzjikisk rubel|||1
TJS = tadzjikisk somoni
TMM = turkmensk manat||0|1
TND = tunisisk dinar||3
TOP = tongansk paʻanga
TPE = timoriansk escudo|||1
TRL = turkisk lire (-2004)||0|1
TRY = ny turkisk lira
TTD = Trinidad ochTobago-dollar
TWD = taiwanesisk ny dollar
TZS = tanzanisk shilling||0
UAH = ukrainsk hryvnia
UAK = ukrainsk karbovanetz|||1
UGS = ugandisk shilling (1966-1987)|||1
UGX = ugandisk shilling||0
USD = US-dollar|US$
USN = US-dollar (nästa dag)
USS = US-dollar (samma dag)
UYI = uruguayansk peso en unidades indexadas
UYP = uruguayansk peso (1975-1993)|||1
UYU = uruguayansk peso
UZS = uzbekisk sum||0
VEB = venezuelansk bolivar|||1
VEF = venezuelansk bolivar fuerte
VND = vietnamesisk dong||0
VUV = vanuatisk vatu||0
WST = västsamoansk tala
XAF = CFA Franc BEAC||0
XAG = uns silver
XAU = guld
XBA = europeisk kompositenhet
XBB = europeisk monetär enhet
XBC = europeisk kontoenhet (XBC)
XBD = europeisk kontoenhet (XBD)
XCD = östkaribisk dollar
XDR = IMF särskild dragningsrätt
XEU = europeisk valutaenhet
XFO = fransk guldfranc
XFU = internationella järnvägsunionens franc
XOF = CFA Franc BCEAO|CFA|0
XPD = uns palladium
XPF = CFP-franc||0
XPT = platina
XRE = RINET-fond
XTS = test-valutakod
XXX = (okänd valuta)
YDD = jemenitisk dinar|||1
YER = jemenitisk rial||0
YUD = jugoslavisk hård dinar|||1
YUM = jugoslavisk ny dinar|||1
YUN = jugoslavisk dinar (konvertibel)|||1
ZAL = sydafrikansk rand (finansiell)
ZAR = sydafrikansk rand
ZMK = zambisk kwacha||0
ZRN = zaïrisk ny zaïre|||1
ZRZ = zairisk zaire|||1
ZWD = Zimbabwe-dollar|Z$|0|1
