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

ADP = 安道爾陪士特||0|1
AED = 阿拉伯聯合大公國迪爾汗
ALL = 阿爾巴尼亞列克||0
AMD = 亞美尼亞德拉姆||0
ANG = 荷屬安地列斯盾
AOA = 安哥拉寬扎
AOK = 安哥拉寬扎 (1977-1990)|||1
AON = 安哥拉新寬扎 (1990-2000)|||1
AOR = 安哥拉新調寬扎 (1995-1999)|||1
ARA = 阿根廷奧斯特納爾|||1
ARP = 阿根廷披索 (1983-1985)|||1
ARS = 阿根廷披索
ATS = 奧地利先令|||1
AUD = 澳幣|AU$
AWG = 阿魯巴盾
AZM = 亞塞拜然馬納特 (1993-2006)|||1
AZN = 亞塞拜然馬納特
BAD = 波士尼亞-黑塞哥維那第納爾|||1
BAM = 波士尼亞-黑塞哥維那可轉換馬克
BBD = 巴貝多元
BEC = 比利時法郎（可轉換）|||1
BEF = 比利時法郎|||1
BEL = 比利時法郎（金融）|||1
BGL = 保加利亞硬列弗|||1
BGN = 保加利亞新列弗
BHD = 巴林第納爾||3
BIF = 蒲隆地法郎||0
BMD = 百慕達幣
BND = 汶萊元
BOB = 玻利維亞貨幣單位
BOP = 玻利維亞披索|||1
BOV = 玻利維亞幕多|||1
BRB = 巴西克魯薩多農瓦 (1967-1986)|||1
BRC = 巴西克魯賽羅 (1986-1989)|||1
BRE = 巴西克魯賽羅 (1990-1993)|||1
BRL = 巴西里拉|R$
BRN = 巴西克如爾達農瓦|||1
BRR = 巴西克魯賽羅|||1
BSD = 巴哈馬元
BTN = 不丹那特倫
BUK = 緬甸基雅特|||1
BWP = 波札那普拉
BYB = 白俄羅斯新盧布 (1994-1999)|||1
BYR = 白俄羅斯盧布||0
BZD = 貝里斯元
CAD = 加幣|CA$
CDF = 剛果法郎
CHE = 歐元 (WIR)|||1
CHW = 法郎 (WIR)|||1
CLF = 卡林油達佛曼跎||0|1
CLP = 智利披索||0
CNY = 人民幣|￥
COP = 哥倫比亞披索||0
CRC = 哥斯大黎加科郎||0
CSD = 舊塞爾維亞第納爾|||1
CSK = 捷克斯洛伐克硬克朗|||1
CUC = 古巴可轉換披索
CUP = 古巴披索
CVE = 維德角埃斯庫多
CYP = 賽普勒斯鎊|||1
CZK = 捷克克朗
DDM = 東德奧斯特馬克|||1
DEM = 德國馬克|||1
DJF = 吉布地法郎||0
DKK = 丹麥克羅納
DOP = 多明尼加披索
DZD = 阿爾及利亞第納爾
ECS = 厄瓜多蘇克雷|||1
ECV = 厄瓜多爾由里達瓦康斯坦 (UVC)|||1
EEK = 愛沙尼亞克朗|||1
EGP = 埃及鎊
ERN = 厄立特里亞納克法
ESA = 西班牙比塞塔（會計單位）|||1
ESB = 西班牙比塞塔（可轉換會計單位）|||1
ESP = 西班牙陪士特||0|1
ETB = 衣索比亞比爾
EUR = 歐元|€
FIM = 芬蘭馬克|||1
FJD = 斐濟元
FKP = 福克蘭群島鎊
FRF = 法國法郎|||1
GBP = 英鎊|UK£
GEK = 喬治庫旁拉里|||1
GEL = 喬治拉里
GHC = 迦納仙蔕 (1979-2007)|||1
GHS = 迦納仙蔕
GIP = 直布羅陀鎊
GMD = 甘比亞達拉西
GNF = 幾內亞法郎||0
GNS = 幾內亞西里|||1
GQE = 赤道幾內亞埃奎勒|||1
GRD = 希臘德拉克馬|||1
GTQ = 瓜地馬拉格查爾
GWE = 葡屬幾內亞埃斯庫多|||1
GWP = 幾內亞比索披索|||1
GYD = 圭亞那元||0
HKD = 港幣|HK$
HNL = 洪都拉斯倫皮拉
HRD = 克羅地亞第納爾|||1
HRK = 克羅地亞庫納
IDR = 印尼盾||0
IEP = 愛爾蘭鎊|||1
ILP = 以色列鎊|||1
ILS = 以色列新謝克爾|₪
INR = 印度盧比|Rs.
IQD = 伊拉克第納爾||0
IRR = 伊朗里亞爾||0
ISK = 冰島克朗||0
ITL = 義大利里拉||0|1
JMD = 牙買加元
JOD = 約旦第納爾||3
JPY = 日圓|JP¥|0
KES = 肯尼亞先令
KGS = 吉爾吉斯索馬
KHR = 柬埔寨瑞爾
KMF = 科摩羅法郎||0
KPW = 北韓圜||0
KRW = 韓圜|￦|0
KWD = 科威特第納爾||3
KYD = 開曼群島美元
KZT = 卡扎克斯坦坦吉
LAK = 寮國基普||0
LBP = 黎巴嫩鎊||0
LKR = 斯里蘭卡盧布
LRD = 賴比瑞亞元
LSL = 賴索托羅蒂
LTL = 立陶宛里塔
LTT = 立陶宛特羅|||1
LUC = 盧森堡可兌換法郎|||1
LUF = 盧森堡法郎||0|1
LUL = 盧森堡金融法郎|||1
LVL = 拉脫維亞拉特銀幣
LVR = 拉脫維亞盧布|||1
LYD = 利比亞第納爾||3
MDL = 摩杜雲列伊
MGA = 馬達加斯加艾瑞爾||0
MGF = 馬達加斯加法郎||0|1
MKD = 馬其頓第納爾
MLF = 馬里法郎|||1
MMK = 緬甸元||0
MNT = 蒙古圖格里克||0
MOP = 澳門元
MRO = 茅利塔尼亞烏吉亞||0
MTL = 馬爾他里拉|||1
MTP = 馬爾他鎊|||1
MUR = 模里西斯盧布||0
MVR = 馬爾地夫海島盧非亞
MWK = 馬拉維克瓦查
MXN = 墨西哥披索|MX$
MXP = 墨西哥銀披索 (1861-1992)|||1
MXV = 墨西哥轉換單位 (UDI)|||1
MYR = 馬來西亞令吉
MZE = 莫三比克埃斯庫多|||1
MZM = 莫三比克梅蒂卡爾|||1
MZN = 莫三比克美提卡
NAD = 納米比亞元
NGN = 奈及利亞奈拉
NIC = 尼加拉瓜科多巴|||1
NLG = 荷蘭盾|||1
NOK = 挪威克羅納
NPR = 尼泊爾盧布
NZD = 紐西蘭幣|NZ$
OMR = 阿曼里奧||3
PAB = 巴拿馬巴波亞
PEI = 祕魯因蒂|||1
PEN = 秘魯新太陽幣
PES = 秘魯太陽幣|||1
PGK = 巴布亞紐幾內亞基那
PHP = 菲律賓披索
PKR = 巴基斯坦盧布||0
PLN = 波蘭茲羅提
PLZ = 波蘭茲羅提 (1950-1995)|||1
PTE = 葡萄牙埃斯庫多|||1
QAR = 卡達爾里亞爾
RHD = 羅德西亞元|||1
ROL = 舊羅馬尼亞列伊|||1
RON = 羅馬尼亞列伊
RSD = 塞爾維亞戴納||0
RUB = 俄羅斯盧布
RUR = 俄羅斯盧布 (1991-1998)|||1
RWF = 盧安達法郎||0
SAR = 沙烏地里雅
SBD = 索羅門群島元
SCR = 塞席爾盧比
SDD = 蘇丹第納爾|||1
SDG = 蘇丹鎊
SDP = 舊蘇丹鎊|||1
SEK = 瑞典克羅納
SGD = 新加坡幣
SHP = 聖赫勒拿鎊
SIT = 斯洛維尼亞托勒|||1
SLL = 獅子山利昂||0
SOS = 索馬利亞先令||0
SRD = 蘇利南元
SRG = 蘇利南基爾|||1
STD = 聖多美島和普林西比島多布拉||0
SUR = 蘇聯盧布|||1
SVC = 薩爾瓦多科郎|||1
SYP = 敘利亞鎊||0
SZL = 史瓦濟蘭里朗吉尼
THB = 泰銖|฿
TJR = 塔吉克盧布|||1
TJS = 塔吉克索莫尼
TMM = 土庫曼馬納特||0|1
TMT = 土庫曼新馬納特
TND = 突尼西亞第納爾||3
TOP = 東加潘加
TPE = 帝汶埃斯庫多|||1
TRL = 土耳其里拉||0|1
TRY = 新土耳其里拉
TTD = 千里達及托巴哥元
TWD = 新臺幣|NT$
TZS = 坦尚尼亞先令||0
UAH = 烏克蘭格里夫那
UAK = 烏克蘭卡本瓦那茲|||1
UGS = 烏干達先令 (1966-1987)|||1
UGX = 烏干達先令||0
USS = 美元（當日）|||1
UYP = 烏拉圭披索 (1975-1993)|||1
UYU = 烏拉圭披索
UZS = 烏茲別克索姆||0
VEB = 委內瑞拉玻利瓦|||1
VEF = 委內瑞拉強勢玻利瓦
VUV = 萬那杜萬杜||0
WST = 西薩摩亞塔拉
XAF = 法郎 (CFA-BEAC)|FCFA|0
XAG = XAG|||1
XAU = 黃金|||1
XBA = 歐洲綜合單位|||1
XBB = 歐洲貨幣單位 (XBB)|||1
XBC = 歐洲會計單位 (XBC)|||1
XBD = 歐洲會計單位 (XBD)|||1
XCD = 格瑞那達元|EC$
XDR = 特殊提款權|||1
XEU = 歐洲貨幣單位 (XEU)|||1
XFO = 法國金法郎|||1
XFU = 法國法郎 (UIC)|||1
XOF = 法郎 (CFA-BCEAO)|CFA|0
XPD = 帕拉狄昂|||1
XPF = 法郎 (CFP)|CFPF|0
XPT = 白金|||1
XTS = XTS|||1
XXX = XXX|||1
YDD = 葉門第納爾|||1
YER = 葉門里雅||0
YUD = 南斯拉夫第納爾硬幣|||1
YUM = 南斯拉夫挪威亞第納爾|||1
YUN = 南斯拉夫 可轉換第納爾|||1
ZAL = 南非蘭特（金融）|||1
ZAR = 南非蘭特
ZMK = 尚比亞克瓦查||0
ZRN = 薩伊新扎伊爾|||1
ZRZ = 薩伊扎伊爾|||1
ZWD = 辛巴威元||0|1
ZWL = 辛巴威元 (2009)|||1
