# Copyright 2012 Google Inc.
# 
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
# 
# http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag|rounding
# 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
# If a currency should be rounded to a multiple of of the least significant
#   digit, rounding will be present
# Trailing empty fields can be omitted

# DO NOT EDIT - GENERATED FROM CLDR DATA
AED = Arabiar Emirerri Batuetako dirhama
AFN = Afganistango afghania||0
ALL = Albaniako leka||0
AMD = Armeniako drama
ANG = Holandarren Antilletako guilderra
AOA = Angolako kwanza
ARS = Argentinako pesoa
AUD = Australiako dolarra|A$
AWG = Arubako florina
AZN = Azerbaijango manata
BAM = Bosnia-Herzegovinako marko trukakorra
BBD = Barbadosetako dolarra
BDT = Bangladesheko taka
BGN = Bulgariako leva
BHD = Bahraingo dinarra||3
BIF = Burundiko frankoa||0
BMD = Bermudetako dolarra
BND = Bruneiko dolarra
BOB = Boliviako bolivianoa
BRL = Brasilgo erreala|R$
BSD = Bahametako dolarra
BTN = Bhutango ngultruma
BWP = Bosniako pula
BYN = Bielorrusiako errubloa
BYR = Bielorrusiako errubloa (2000–2016)||0|1
BZD = Belizeko dolarra
CAD = Kanadako dolarra|CA$
CDF = Kongoko frankoa
CHF = Suitzako frankoa
CLP = Txileko pesoa||0
CNH = yuan txinatar (itsasoz haraindikoa)|||1
CNY = Txinako yuana|CN¥
COP = Kolonbiako pesoa
CRC = Costa Ricako colona
CUC = Kubako peso trukakorra
CUP = Kubako pesoa
CVE = Cabo Verdeko ezkutua
CZK = Txekiar Errepublikako koroa
DJF = Djibutiko frankoa||0
DKK = Danimarkako koroa
DOP = Dominikar Errepublikako pesoa
DZD = Aljeriako dinarra
EGP = Egiptoko libera
ERN = Eritreako nakfa
ESP = ESP|₧|0|1
ETB = Etiopiako birra
EUR = euroa|€
FJD = Fijiko dolarra
FKP = Falkland uharteetako libera
GBP = Libera esterlina|£
GEL = Georgiako laria
GHS = Ghanako cedia
GIP = Gibraltarreko libera
GMD = Ganbiako dalasia
GNF = Gineako frankoa||0
GTQ = Guatemalako quetzala
GYD = Guyanako dolarra
HKD = Hong Kongeko dolarra|HK$
HNL = Hondurasko lempira
HRK = Kroaziako kuna
HTG = Haitiko gourdea
HUF = Hungariako florina
IDR = Indonesiako errupia
ILS = Israelgo shekel berria|₪
INR = Indiako errupia|₹
IQD = Irakeko dinarra||0
IRR = Irango riala||0
ISK = Islandiako koroa||0
JMD = Jamaikako dolarra
JOD = Jordaniako dinarra||3
JPY = Japoniako yena|JP¥|0
KES = Kenyako txelina
KGS = Kirgizistango soma
KHR = Kanbodiako riela
KMF = Komoreetako frankoa||0
KPW = Ipar Koreako wona||0
KRW = Hego Koreako wona|₩|0
KWD = Kuwaiteko dinarra||3
KYD = Kaiman uharteetako dolarra
KZT = Kazakhstango tengea
LAK = Laoseko kipa||0
LBP = Libanoko libera||0
LKR = Sri Lankako errupia
LRD = Liberiako dolarra
LSL = Lesothoko lotia
LTL = Lituaniako litasa|||1
LVL = Letoniako latsa|||1
LYD = Libiako dinarra||3
MAD = Marokoko dirhama
MDL = Moldaviako leua
MGA = Madagaskarreko ariarya||0
MKD = Mazedoniako dinarra
MMK = Myanmarreko kyata||0
MNT = Mongoliako tugrika
MOP = Macanako pataca
MRO = Mauritaniako ouguiya (1973–2017)||0|1
MRU = Mauritaniako ouguiya
MUR = Maurizio uharteetako errupia
MVR = Maldivetako rufiyaa
MWK = Malawiko kwacha
MXN = Mexikoko pesoa|MX$
MYR = Malaysiako ringgita
MZN = Mozambikeko metikala
NAD = Namibiako dolarra
NGN = Nigeriako naira
NIO = Nikaraguako cordoba
NOK = Norvegiako koroa
NPR = Nepalgo errupia
NZD = Zeelanda Berriko dolarra|NZ$
OMR = Omango riala||3
PAB = Panamako balboa
PEN = Peruko sol
PGK = Papua Ginea Berriko kina
PHP = Filipinetako pesoa
PKR = Pakistango errupia
PLN = Poloniako zlotya
PYG = Paraguaiko guarania||0
QAR = Qatarreko riala
RON = Errumaniako leua
RSD = Serbiako dinarra||0
RUB = Errusiako errubloa
RWF = Ruandako frankoa||0
SAR = Arabia Saudiko riala
SBD = Salomon uharteetako dolarra
SCR = Seychelleetako errupia
SDG = Sudango libera
SEK = Suediako koroa
SGD = Singapurreko dolarra
SHP = Santa Helenako libera
SLL = Sierra Leonako leona||0
SOS = Somaliako txelina||0
SRD = Surinameko dolarra
SSP = Hego Sudango libera
STD = Sao Tomeko eta Principeko dobra (1977–2017)||0|1
STN = Sao Tome eta Principeko dobra
SYP = Siriako libera||0
SZL = Swazilandiako lilangenia
THB = Thailandiako bahta|฿
TJS = Tajikistango somonia
TMT = Turkmenistango manata
TND = Tunisiako dinarra||3
TOP = Tongako Paʻanga
TRY = Turkiako lira|TL
TTD = Trinidad eta Tobagoko dolarra
TWD = Taiwango dolar berria|NT$
TZS = Tanzaniako txelina
UAH = Ukrainako hryvnia
UGX = Ugandako txelina||0
USD = AEBko dolarra|US$
UYU = Uruguaiko pesoa
UZS = Uzbekistango soma
VEF = Venezuelako bolivarra (2008–2018)|||1
VES = Venezuelako bolivarra
VND = Vietnameko donga|₫|0
VUV = Vanuatuko vatua||0
WST = Samoko tala
XAF = Afrika erdialdeko CFA frankoa|FCFA|0
XCD = Karibe ekialdeko dolarra|EC$
XOF = Afrika mendebaldeko CFA frankoa|CFA|0
XPF = CFP frankoa|CFPF|0
XXX = Moneta ezezaguna|¤||1
YER = Yemengo riala||0
ZAR = Hegoafrikako randa
ZMK = Zambiako kwacha (1968–2012)||0|1
ZMW = Zambiako kwacha
