# 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:
#  cldrVersion=21.0
#  number=$Revision: 6546 Google $
#  date=$Date: 2012-02-07 13:32:35 -0500 (Tue, 07 Feb 2012) $
#  type=root

AED = Điram UAE
AFN = Đồng afghani của Afghanistan||0
ALL = Đồng lek của Albani||0
AMD = Đồng dram của Armenia||0
ANG = Đồng guilder của Antille thuộc Hà Lan
AOA = Đồng kwanza của Angola
ARS = Đồng peso của Argentina
AUD = Đồng đô la của Úc|AU$
AWG = Đồng florin của Aruba
AZN = Đồng manat của Azerbaijan
BAM = Đồng mác có thể chuyển đổi của Bosnia-Herzegovina
BBD = Đồng đô la của Barbadia
BDT = Đồng taka của Bangladesh
BGN = Lép Bungari
BHD = Đồng dinar của Bahrain||3
BIF = Đồng franc của Burundi||0
BMD = Đồng đô la Bermuda
BND = Đồng đô la của Brunei
BOB = Đồng boliviano của Bolivia
BRL = Real Braxin|R$
BSD = Đồng đô la của Bahamia
BTN = Đồng ngultrum của Bhutan
BWP = Đồng pula của Botswana
BYR = Đồng rúp của Belarus||0
BZD = Đồng đô la của Belize
CAD = Đồng đô la của Canada|CA$
CDF = Đồng franc của Congo
CHF = Franc Thụy sĩ||||5
CLP = Đồng Peso của Chile||0
CNY = Yuan Trung Quốc|CN¥
COP = Đồng Peso của Colombia||0
CRC = Đồng colón của Costa Rica||0
CUC = Đồng peso có thể chuyển đổi của Cuba
CUP = Đồng peso của Cu Ba
CVE = Đồng escudo của Cape Verde
CZK = Đồng curon của cộng hòa Séc
DJF = Đồng franc của Djibouti||0
DKK = Đồng curon của Đan Mạch
DOP = Đồng peso của Dominica
DZD = Đồng dina của Algeri
EEK = Crun Extônia|||1
EGP = Đồng bảng của Ai Cập
ERN = Đồng nakfa của Eritrea
ETB = Đồng birr của Ethiopia
EUR = Euro|€
FJD = Đô-la Fi-ji
FKP = Đồng bảng của quần đảo Falkland
FRF = Franc Pháp|||1
GBP = Bảng Anh|UK£
GEL = Lari Georgia
GHC = Cedi Ghana (1979-2007)|||1
GHS = Cedi Ghana
GIP = Pao Gibraltar
GMD = Đồng dalasi của Gambia
GNF = Franc Guinea||0
GNS = Syli Guinea|||1
GRD = Drachma Hy Lạp|||1
GTQ = Quetzal Guatemala
GWP = Peso Guinea-Bissau|||1
GYD = Đô-la Guyana||0
HKD = Đô-la Hồng Kông|HK$
HNL = Honduras Lempira
HRK = Đồng kuna của Croatia
HTG = Gourde Haiti
HUF = Phôrin Hungari||0
IDR = Rupia Inđônêxia||0
IEP = Pao Ai-len|||1
ILP = Pao Ixraen|||1
ILS = Sêken Ixraen|₪
INR = Rupi Ấn Độ|Rs.
IQD = Dinar I-rắc||0
IRR = Rial I-ran||0
ISK = Đồng curon của Iceland||0
ITL = Lia Ý||0|1
JMD = Đô la Jamaica
JOD = Dinar Jordan||3
JPY = Yên Nhật|JP¥|0
KES = Si-ling Kê-ny-a
KGS = Đồng som của Kyrgystan
KHR = Riên Campuchia
KMF = Đồng franc của Comoros||0
KPW = Đồng Won Triều Tiên||0
KRW = Won Hàn Quốc|₩|0
KWD = Đồng dina của Kuwait||3
KYD = Đô la Quần đảo Cayman
KZT = Kazakhstan Tenge
LAK = Đồng kíp của Lào||0
LBP = Đồng bảng của Li Băng||0
LKR = Đồng rupi của Sri Lanka
LRD = Đô la Liberia
LSL = Đồng loti của Lesotho
LTL = Litat Lituani
LVL = Đồng lats của Latvia
LYD = Đồng dinar của Libi||3
MAD = Điaham Marốc
MDL = Đồng leu của Moldova
MGA = Đồng Ariary của Malagasy||0
MKD = Đồng dena của Macedonia
MMK = Đồng kyat của Myanma||0
MNT = Đồng tugrik của Mông Cổ||0
MOP = Đồng pataca của Ma Cao
MRO = Đồng ouguiya của Mauritania||0
MTL = Lia xứ Man-tơ|||1
MUR = Đồng rupi của Mauritius||0
MVR = Đồng rufiyaa của Maldives
MWK = Đồng kwacha của Malawi
MXN = Peso Mêhicô|MX$
MYR = Rinhgit Malaixia
NAD = Đồng đô la của Namibia
NGN = Đồng naira của Nigeria
NIO = Đồng córdoba của Nicaragua
NOK = Curon Na Uy
NPR = Đồng rupi của Nepal
NZD = Đô-la New Zealand|NZ$
OMR = Đồng rial của Oman||3
PAB = Đồng balboa của Panama
PEN = Nuevo Sol Pêru
PGK = Đồng kina của Papua New Guinean
PHP = Peso Philíppin
PKR = Rupi Pakistan||0
PLN = Zloty Ba Lan
PYG = Đồng guarani của Paraguay||0
QAR = Đồng rial của Qatari
RON = Lây Rumani
RSD = Đina Xéc-bi||0
RUB = Rúp Nga
RWF = Đồng franc của Rwanda||0
SAR = Rian Ả rập Xêút
SBD = Đô la quần đảo Solomon
SCR = Đồng rupi của Seychelles
SDG = Đồng bảng của Sudan
SEK = Cua-ron Thuỵ Điển
SGD = Đô-la Singapore
SHP = Đồng bảng của Saint Helena
SIT = Tôla Xlôvênia|||1
SKK = Cuaron Xlôvác|||1
SLL = Đồng leone của Sierra Leone||0
SOS = Đồng shilling của Somali||0
SRD = Đồng đô la của Suriname
STD = Đồng dobra của São Tomé và Príncipe||0
SYP = Đồng bảng của Syria||0
SZL = Đồng Lilangeni của Swazi
THB = Bạt Thái Lan|฿
TJS = Đồng somoni của Tajikistan
TMT = Đồng manat của Turkmenistan
TND = Đồng dinar của Tunisia||3
TOP = Đồng paʻanga của Tonga
TRL = Lia Thổ Nhĩ Kỳ||0|1
TRY = Lia Thổ Nhĩ Kỳ Mới
TTD = Đồng đô la của Trinidad và Tobago
TWD = Đô-la Đài Loan|NT$
TZS = Đồng shilling của Tanzania||0
UAH = Rúp U-crai-na
UGX = Đồng shilling của Uganda||0
USD = Đô-la Mỹ|US$
UYU = Đồng peso của Uruguay
UZS = Đồng som của Uzbekistan||0
VEB = Bôliva Vênêduêla|||1
VEF = Đồng bolívar của Venezuela
VND = Đồng|₫|0
VUV = Đồng vatu của Vanuatu||0
WST = Đồng tala của Samoa
XAF = Đồng CFA Franc BEAC|FCFA|0
XAU = Vàng|||1
XCD = Đồng đô là của phía đông Caribê|EC$
XOF = Franc CFA BCEAO|CFA|0
XPF = Đồng Franc Thái Bình Dương|CFPF|0
XXX = Tiền tệ chưa biết hoặc không hợp lệ|||1
YER = Đồng rial của Yemen||0
ZAR = Ran Nam Phi
ZMK = Đồng kwacha của Zambia||0
