# 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 Andóra||0|1
AED = Dirham Aontas na nÉimíríochtaí Arabacha
AFA = Afgainí (1927-2002)|||1
AFN = Afgainí|Af|0
ALL = Lek Albánach||0
AMD = Dram Airméanach||0
ANG = Guilder na nAntillí Ísiltíreach|AÍ f.
AOA = Kwanza Angólach|Kz
AOK = Kwanza Angólach (1977-1990)|||1
AON = Kwanza Nua Angólach (1990-2000)|||1
AOR = Kwanza Reajustado Angólach (1995-1999)|||1
ARA = Austral Airgintíneach|₳||1
ARP = Peso na Airgintíne (1983-1985)|||1
ARS = Peso na Airgintíne|AR$
ATS = Scilling Ostarach|||1
AUD = Dollar Astrálach|AU$
AWG = Guilder Aruba|Afl.
AZM = Manat Asarbaiseánach|||1
BAD = Dínear Bhoisnia-Heirseagaivéin|||1
BAM = Marc Inathraithe Bhoisnia-Heirseagaivéin|KM
BBD = Dollar Bharbadóis|Bds$
BDT = Taka Bhanglaidéiseach|Tk
BEC = Franc Beilgeach (inathraithe)|||1
BEF = Franc Beilgeach|BF||1
BEL = Franc Beilgeach (airgeadúil)|||1
BGL = Lev Bulgárach Crua|||1
BGN = Lev Nua Bulgárach
BHD = Dínear na Bairéine|BD|3
BIF = Franc na Burúine|FBu|0
BMD = Dollar Bheirmiúda|BD$
BND = Dollar Bhrúiné|BN$
BOB = Boliviano|Bs
BOP = Peso na Bolaive|$b.||1
BOV = Mvdol Bolavach|||1
BRB = Cruzeiro Novo Brasaíleach (1967-1986)|||1
BRC = Cruzado Brasaíleach|||1
BRE = Cruzeiro Brasaíleach (1990-1993)|||1
BRL = Real Brasaíleach|R$
BRN = Cruzado Novo Brasaíleach|||1
BRR = Cruzeiro Brasaíleach|||1
BSD = Dollar na mBahámaí|BS$
BTN = Ngultrum Bútánach|Nu.
BUK = Kyat Burmach|||1
BWP = Pula Botsuánach
BYB = Rúbal Nua Béalarúiseach (1994-1999)|||1
BYR = Rúbal Béalarúiseach||0
BZD = Dollar na Beilíse|BZ$
CAD = Dollar Ceanada|CA$
CDF = Franc Congolais an Chongó
CHF = Franc na hEilvéise
CLF = Unidades de Fomento na Sile||0|1
CLP = Peso na Sile|CL$|0
CNY = Yuan Renminbi Síneach|CN¥
COP = Peso na Colóime|CO$|0
CRC = Colon Chósta Ríce|₡|0
CSK = Koruna Crua na Seicslóvaice|||1
CUP = Peso Cúba|CU$
CVE = Escudo na Rinne Verde|CV$
CYP = Punt na Cipire|CY£||1
CZK = Koruna Phoblacht na Seice|Kč
DDM = Ostmark na hOirGhearmáine|||1
DEM = Deutsche Mark|DM||1
DJF = Franc Djibouti|Fdj|0
DKK = Krone Danmhargach|Dkr
DOP = Peso Doimineacach|RD$
DZD = Dínear na hAilgéire|DA
ECS = Sucre Eacuadóir|||1
ECV = Unidad de Valor Constante (UVC) Eacuadóir|||1
EEK = Kroon na hEastóine|Ekr
EGP = Punt na hÉigipte|EG£
ESP = Peseta Spáinneach|Pts|0|1
ETB = Birr na hAetóipe|Br
EUR = Euro|€
FIM = Markka Fionnlannach|mk||1
FJD = Dollar Fhidsí|FJ$
FKP = Punt Oileáin Fháclainne|FK£
FRF = Franc Francach|₣||1
GBP = Punt Steirling|UK£
GEK = Kupon Larit na Grúise|||1
GEL = Lari na Grúise
GHC = Cedi Ghána|₵||1
GIP = Punt Ghiobráltair|GI£
GMD = Dalasi Gaimbia
GNF = Franc Guine|FG|0
GNS = Syli Guine|||1
GQE = Ekwele Guineana na Guine Meánchriosaí|||1
GRD = Drachma Gréagach|₯||1
GTQ = Quetzal Guatamala
GWE = Escudo na Guine Portaingéalaí|||1
GWP = Peso Guine-Bhissau|||1
GYD = Dollar na Guáine|GY$|0
HKD = Dollar Hong Cong|HK$
HNL = Lempira Hondúrais
HRD = Dínear na Cróite|||1
HRK = Kuna Crótach|kn
HTG = Gourde Háití
HUF = Forint Ungárach|Ft|0
IDR = Rupiah Indinéiseach|Rp|0
IEP = Punt Éireannach|IR£||1
ILP = Punt Iosraelach|I£||1
ILS = Sheqel Nua Iosraelach|₪
INR = Rúipí India|Rs.
IQD = Dínear Irácach||0
IRR = Rial Iaránach||0
ISK = Krona Íoslannach|Ikr|0
ITL = Lira Iodálach|IT₤|0|1
JMD = Dollar Iamácach|J$
JOD = Dínear Iordánach|JD|3
JPY = Yen Seapánach|JP¥|0
KES = Scilling Céiniach|Ksh
KGS = Som na Cirgeastáine
KHR = Riel na Cambóide
KMF = Franc Chomóra|CF|0
KPW = Won na Cóiré Thuaidh||0
KRW = Won na Cóiré Theas|₩|0
KWD = Dínear Cuátach|KD|3
KYD = Dollar Oileáin Cayman|KY$
KZT = Tenge Casacstánach
LAK = Kip Laosach|₭|0
LBP = Punt na Liobáine|LB£|0
LKR = Rúipí Srí Lanca|SLRs
LRD = Dollar na Libéire|L$
LSL = Loti Leosóta
LTL = Lita Liotuánach|Lt
LTT = Talonas Liotuánach|||1
LUF = Franc Lucsamburg||0|1
LVL = Lats Laitviach|Ls
LVR = Rúbal Laitviach|||1
LYD = Dínear Libia|LD|3
MAD = Dirham Mharacó
MAF = Franc Mharacó|||1
MDL = Leu Moldóvach
MGA = Ariary Madagascar||0
MGF = Franc Madagascar||0|1
MKD = Denar na Macadóine
MLF = Franc Mhailí|||1
MMK = Kyat Mhaenmar||0
MNT = Tugrik Mongólach|₮|0
MOP = Pataca Macao|MOP$
MRO = Ouguiya na Maratáine|UM|0
MTL = Lira Maltach|Lm||1
MTP = Punt Maltach|MT£||1
MUR = Rúipí Oileán Mhuirís|MURs|0
MVR = Maldive Islands Rufiyaa
MWK = Kwacha na Maláive
MXN = Peso Meicsiceo|MX$
MXP = Peso Airgid Meicsiceo (1861-1992)|||1
MXV = Unidad de Inversion (UDI) Meicsiceo|||1
MYR = Ringgit Malaeisia|RM
MZE = Escudo Mósaimbíce|||1
MZM = Metical Mósaimbíce|Mt||1
NAD = Dollar na Namaibe|N$
NGN = Naira Nígéarach|₦
NIC = Cordoba Nicearagua|||1
NIO = Cordoba Oro Nicearagua|C$
NLG = Guilder Ísiltíreach|fl||1
NOK = Krone Ioruach|Nkr
NPR = Rúipí Neipeáil|NPRs
NZD = Dollar na Nua-Shéalainne|NZ$
OMR = Rial Omain||3
PAB = Balboa Panamach|B/.
PEI = Inti Pheiriú|I/.||1
PEN = Sol Nuevo Pheiriú|S/.
PES = Sol Pheiriú|||1
PGK = Kina Nua-Ghuine Phapua
PHP = Peso Filipíneach|Php
PKR = Rúipí na Pacastáine|PKRs|0
PLN = Zloty Polannach|zł
PLZ = Zloty Polannach (1950-1995)|||1
PTE = Escudo Portaingélach|Esc||1
PYG = Guarani Pharagua|₲|0
QAR = Rial Catarach|QR
ROL = Leu Rómánach|||1
RUB = Rúbal Rúiseach
RUR = Rúbal Rúiseach (1991-1998)|||1
RWF = Franc Ruanda||0
SAR = Riyal Sádach|SR
SBD = Dollar Oileáin Solomon|SI$
SCR = Rúipí na Séiséil|SRe
SDD = Dínear na Súdáine|LSd||1
SDP = Punt na Súdáine|||1
SEK = Krona Sualannach|Skr
SGD = Dollar Singeapóir|S$
SHP = Punt San Héilin|SH£
SIT = Tolar Slóvénach|||1
SKK = Koruna na Slóvaice|Sk||1
SLL = Leone Shiarra Leon|Le|0
SOS = Scilling na Sómáile|Ssh|0
SRG = Guilder Shuranaim|Sf||1
STD = Dobra Sao Tome agus Principe|Db|0
SUR = Rúbal Sóvéadach|||1
SVC = Colon na Salvadóire|SV₡||1
SYP = Punt Siria|SY£|0
SZL = Lilangeni na Suasalainne
THB = Baht na Téalainne|฿
TJR = Rúbal na Táidsíceastáine|||1
TJS = Somoni na Táidsíceastáine
TMM = Manat na An Tuircméanastáine||0|1
TND = Dínear na Túinéise|DT|3
TOP = Paʻanga Tonga|T$
TPE = Escudo Tíomóir|||1
TRL = Lira Turcach||0|1
TTD = Dollar Oileáin na Tríonóide agus Tobága|TT$
TWD = Dollar Nua na Téaváine|NT$
TZS = Scilling na Tansáine|TSh|0
UAH = Hryvnia Úcránach
UAK = Karbovanetz Úcránach|||1
UGS = Scilling Uganda (1966-1987)|||1
UGX = Scilling Uganda|USh|0
USD = Dollar S.A.M.|US$
USN = Dollar S.A.M. (an chéad lá eile)|||1
USS = Dollar S.A.M. (an la céanna)|||1
UYP = Peso Uragua (1975-1993)|||1
UYU = Peso Uruguayo Uragua|$U
UZS = Sum na hÚisbéiceastáine||0
VEB = Bolivar Veiniséala|||1
VND = Dong Vítneamach|₫|0
VUV = Vatu Vanuatú|VT|0
WST = Tala Samó Thiar|WS$
XAF = CFA Franc BEAC|FCFA|0
XAU = Ór|||1
XBA = Aonad Ilchodach Eorpach|||1
XBB = Aonad Airgeadaíochta Eorpach|||1
XBC = Aonad Cuntais Eorpach (XBC)|||1
XBD = Aonad Cuntais Eorpach (XBD)|||1
XCD = Dollar Oirthear na Cairibe|EC$
XDR = Cearta Speisialta Tarraingthe|||1
XEU = Aonad Airgeadra Eorpach|||1
XFO = Franc Ór Francach|||1
XFU = UIC-Franc Francach|||1
XOF = CFA Franc BCEAO|CFA|0
XPF = CFP Franc|CFPF|0
XXX = Airgeadra Anaithnid nó Neamhbhailí|||1
YDD = Dínear Éimin|||1
YER = Rial Éimin|YR|0
YUD = Dínear Crua Iúgslavach|||1
YUM = Noviy Dinar Iúgslavach|||1
YUN = Dínear Inathraithe Iúgslavach|||1
ZAL = Rand na hAfraice Theas (airgeadúil)|||1
ZAR = Rand na hAfraice Theas|R
ZMK = Kwacha Saimbiach|ZK|0
ZRN = Zaire Nua Sáíreach|NZ||1
ZRZ = Zaire Sáíreach|||1
ZWD = Dollar Siombábach|Z$|0|1
