# 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 = Verenigde Arabiese Emirate dirham
AFN = Afgaanse afgani||0
ALL = Albanese lek||0
AMD = Armeense dram
ANG = Nederlands-Antilliaanse gulde
AOA = Angolese kwanza
ARS = Argentynse peso
AUD = Australiese dollar|A$
AWG = Arubaanse floryn
AZN = Azerbeidjaanse manat
BAM = Bosnies-Herzegowiniese omskakelbare marka
BBD = Barbados-dollar
BDT = Bangladesjiese taka
BGN = Bulgaarse lev
BHD = Bahreinse dinar||3
BIF = Burundiese frank||0
BMD = Bermuda-dollar
BND = Broeneise dollar
BOB = Boliviaanse boliviano
BRL = Brasilliaanse reaal|R$
BSD = Bahamiaanse dollar
BTN = Bhoetanese ngoeltroem
BWP = Botswana pula
BYN = Belo-Russiese roebel
BYR = Belo-Russiese roebel (2000–2016)||0|1
BZD = Beliziese dollar
CAD = Kanadese dollar|CA$
CDF = Kongolese frank
CHF = Switserse frank
CLP = Chileense peso||0
CNH = Chinese joean|||1
CNY = Sjinese joean renminbi|CN¥
COP = Colombiaanse peso
CRC = Costa Ricaanse colón
CUC = Kubaanse omskakelbare peso
CUP = Kubaanse peso
CVE = Kaap Verdiese escudo
CZK = Tsjeggiese kroon
DJF = Djiboeti frank||0
DKK = Deense kroon
DOP = Dominikaanse peso
DZD = Algeriese dinar
EGP = Egiptiese pond
ERN = Eritrese nakfa
ETB = Etiopiese birr
EUR = euro|€
FJD = Fidjiaanse dollar
FKP = Falkland-eilande pond
GBP = Britse pond|£
GEL = Georgiese lari|₾
GHC = Ghanese cedi (1979–2007)|||1
GHS = Ghanese cedi
GIP = Gibraltarese pond
GMD = Gambiese dalasi
GNF = Guinese frank||0
GNS = Guinese syli|||1
GTQ = Guatemalaanse quetzal
GYD = Guyanese dollar
HKD = Hong Kong dollar|HK$
HNL = Hondurese lempira
HRK = Kroatiese kuna
HTG = Haïtiaanse gourde
HUF = Hongaarse florint
IDR = Indonesiese roepia
ILS = Israeliese nuwe sikkel|₪
INR = Indiese roepee|₹
IQD = Irakse dinar||0
IRR = Iranse rial||0
ISK = Yslandse kroon||0
ITL = Italiaanse lier||0|1
JMD = Jamaikaanse dollar
JOD = Jordaniese dinar||3
JPY = Japannese jen|JP¥|0
KES = Keniaanse sjieling
KGS = Kirgisiese som
KHR = Kambodjaanse riel
KMF = Comoraanse frank||0
KPW = Noord-Koreaanse won||0
KRW = Suid-Koreaanse won|₩|0
KWD = Koeweitse dinar||3
KYD = Cayman-eilande dollar
KZT = Kazakse tenge
LAK = Laosiaanse kip||0
LBP = Lebanese pond||0
LKR = Sri Lankaanse roepee
LRD = Liberiese dollar
LSL = Lesotho loti
LTL = Litause litas|||1
LVL = Lettiese lats|||1
LYD = Libiese dinar||3
MAD = Marokkaanse dirham
MDL = Moldowiese leu
MGA = Malgassiese ariary||0
MKD = Macedoniese denar
MMK = Mianmese kyat||0
MNT = Mongoolse toegrik
MOP = Macaose pataca
MRO = Mauritaniese ouguiya (1973–2017)||0|1
MRU = Mauritaniese ouguiya
MUR = Mauritiaanse rupee
MVR = Malediviese rufia
MWK = Malawiese kwacha
MXN = Meksikaanse peso
MYR = Maleisiese ringgit
MZM = Mosambiekse metical (1980–2006)|||1
MZN = Mosambiekse metical
NAD = Namibiese dollar
NGN = Nigeriese naira
NIO = Nicaraguaanse córdoba
NOK = Noorse kroon
NPR = Nepalese roepee
NZD = Nieu-Seeland dollar|NZ$
OMR = Omaanse rial||3
PAB = Panamese balboa
PEN = Peruaanse sol
PGK = Papoea-Nieu-Guinese kina
PHP = Filippynse peso
PKR = Pakistanse roepee
PLN = Poolse zloty
PYG = Paraguaanse guarani||0
QAR = Katarrese rial
RON = Roemeense leu
RSD = Serbiese dinar||0
RUB = Russiese roebel|₽
RWF = Rwandiese frank||0
SAR = Saoedi-Arabiese riyal
SBD = Salomonseilande dollar
SCR = Seychellese rupee
SDG = Soedannese pond
SDP = Soedannese pond (1957–1998)|||1
SEK = Sweedse kroon
SGD = Singapoer dollar
SHP = Sint Helena pond
SLL = Sierra Leoniese leone||0
SOS = Somaliese sjieling||0
SRD = Surinaamse dollar
SSP = Suid-Soedanese pond
STD = São Tomé en Príncipe dobra (1977–2017)||0|1
STN = São Tomé en Príncipe dobra
SYP = Siriese pond||0
SZL = Swazilandse lilangeni
THB = Thaise baht|฿
TJS = Tadjikse roebel
TMT = Turkmeense manat
TND = Tunisiese dinar||3
TOP = Tongaanse pa’anga
TRL = Turkse lier (1922–2005)||0|1
TRY = Turkse lier|TL
TTD = Trinidad en Tobago dollar
TWD = Nuwe Taiwanese dollar|NT$
TZS = Tanzaniese sjieling
UAH = Oekraïnse hriwna
UGX = Ugandese sjieling||0
USD = Amerikaanse dollar|US$
UYU = Uruguaanse peso
UZS = Oezbekiese som
VEF = Venezolaanse bolivar|||1
VES = Venezolaanse Bolívar
VND = Viëtnamese dong|₫|0
VUV = Vanuatuse vatu||0
WST = Samoaanse tala
XAF = CFA frank BEAC|FCFA|0
XCD = Oos-Karibbiese dollar|EC$
XOF = CFA frank BCEAO|CFA|0
XPF = CFP-frank|CFPF|0
XXX = onbekende geldeenheid|¤||1
YER = Jemenitiese rial||0
ZAR = Suid-Afrikaanse rand|R
ZMK = Zambiese kwacha (1968–2012)||0|1
ZMW = Zambiese kwacha
ZWD = Zimbabwiese dollar||0|1
