﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/zh_Hant_HK.xml
// *
// ***************************************************************************
zh_Hant_HK{
    Currencies{
        AED{
            "AED",
            "阿拉伯聯合酋長國迪爾汗",
        }
        AUD{
            "AU$",
            "澳元",
        }
        AWG{
            "AWG",
            "阿魯巴盾",
        }
        AZN{
            "AZN",
            "亞塞拜疆馬納特",
        }
        BAD{
            "BAD",
            "波斯尼亞-赫塞哥維納第納爾",
        }
        BAM{
            "BAM",
            "波斯尼亞-赫塞哥維納可轉換馬克",
        }
        BBD{
            "BBD",
            "巴巴多斯元",
        }
        BIF{
            "BIF",
            "布隆迪法郎",
        }
        BWP{
            "BWP",
            "博茨瓦納普拉",
        }
        BZD{
            "BZD",
            "伯利茲元",
        }
        CAD{
            "CA$",
            "加拿大元",
        }
        CRC{
            "CRC",
            "哥斯達黎加科郎",
        }
        CVE{
            "CVE",
            "佛得角埃斯庫多",
        }
        DJF{
            "DJF",
            "吉布提法郎",
        }
        DOP{
            "DOP",
            "多米尼加披索",
        }
        ETB{
            "ETB",
            "埃塞俄比亞比爾",
        }
        GEL{
            "GEL",
            "格魯吉亞拉里",
        }
        GHS{
            "GHS",
            "加納塞地",
        }
        GMD{
            "GMD",
            "岡比亞達拉西",
        }
        GTQ{
            "GTQ",
            "危地馬拉格查爾",
        }
        HKD{
            "HK$",
            "港元",
        }
        HRK{
            "HRK",
            "克羅地亞庫納",
        }
        ITL{
            "ITL",
            "意大利里拉",
        }
        KES{
            "KES",
            "肯雅先令",
        }
        KHR{
            "KHR",
            "柬埔寨里爾",
        }
        KPW{
            "KPW",
            "北韓圜",
        }
        KRW{
            "₩",
            "韓圓",
        }
        KZT{
            "KZT",
            "哈薩克坦吉",
        }
        LAK{
            "LAK",
            "老撾基普",
        }
        LRD{
            "LRD",
            "利比利亞元",
        }
        MDL{
            "MDL",
            "摩爾多瓦列伊",
        }
        MRO{
            "MRO",
            "毛里塔尼亞烏吉亞",
        }
        MUR{
            "MUR",
            "毛里裘斯盧布",
        }
        MVR{
            "MVR",
            "馬爾代夫盧非亞",
        }
        MZN{
            "MZN",
            "莫桑比克梅蒂卡爾",
        }
        NGN{
            "NGN",
            "尼日利亞奈拉",
        }
        NZD{
            "NZ$",
            "紐西蘭元",
        }
        OMR{
            "OMR",
            "阿曼里奧",
        }
        PGK{
            "PGK",
            "巴布亞新幾內亞基那",
        }
        QAR{
            "QAR",
            "卡塔爾里亞爾",
        }
        RSD{
            "RSD",
            "塞爾維亞第納爾",
        }
        RWF{
            "RWF",
            "盧旺達法郎",
        }
        SAR{
            "SAR",
            "沙特阿拉伯里亞爾",
        }
        SBD{
            "SBD",
            "所羅門群島元",
        }
        SCR{
            "SCR",
            "塞舌爾盧比",
        }
        SGD{
            "SGD",
            "新加坡元",
        }
        SLL{
            "SLL",
            "塞拉利昂利昂",
        }
        SOS{
            "SOS",
            "索馬里先令",
        }
        SRD{
            "SRD",
            "蘇里南元",
        }
        STD{
            "STD",
            "聖多美和普林西比多布拉",
        }
        SZL{
            "SZL",
            "斯威士蘭里朗吉尼",
        }
        TOP{
            "TOP",
            "湯加潘加",
        }
        TTD{
            "TTD",
            "千里達和多巴哥元",
        }
        TWD{
            "NT$",
            "新台幣",
        }
        TZS{
            "TZS",
            "坦桑尼亞先令",
        }
        VUV{
            "VUV",
            "瓦努阿圖瓦圖",
        }
        XAF{
            "FCFA",
            "中非法郎",
        }
        XCD{
            "EC$",
            "東加勒比元",
        }
        XOF{
            "CFA",
            "多哥非洲共同體法郎",
        }
        XPF{
            "CFPF",
            "太平洋法郎",
        }
        YER{
            "YER",
            "也門里雅",
        }
        ZMW{
            "ZMW",
            "贊比亞克瓦查",
        }
    }
    CurrencyPlurals{
        AED{
            other{"阿拉伯聯合酋長國迪爾汗"}
        }
        AUD{
            other{"澳元"}
        }
        AWG{
            other{"阿魯巴盾"}
        }
        AZN{
            other{"亞塞拜疆馬納特"}
        }
        BAM{
            other{"波斯尼亞-赫塞哥維納可轉換馬克"}
        }
        BBD{
            other{"巴巴多斯元"}
        }
        BIF{
            other{"布隆迪法郎"}
        }
        BWP{
            other{"博茨瓦納普拉"}
        }
        BZD{
            other{"伯利茲元"}
        }
        CAD{
            other{"加拿大元"}
        }
        CRC{
            other{"哥斯達黎加科郎"}
        }
        CVE{
            other{"佛得角埃斯庫多"}
        }
        DJF{
            other{"吉布提法郎"}
        }
        DKK{
            other{"丹麥克羅納"}
        }
        DOP{
            other{"多米尼加披索"}
        }
        ETB{
            other{"埃塞俄比亞比爾"}
        }
        GEL{
            other{"格魯吉亞拉里"}
        }
        GHS{
            other{"加納塞地"}
        }
        GMD{
            other{"岡比亞達拉西"}
        }
        GTQ{
            other{"危地馬拉格查爾"}
        }
        HKD{
            other{"港元"}
        }
        HRK{
            other{"克羅地亞庫納"}
        }
        KES{
            other{"肯雅先令"}
        }
        KHR{
            other{"柬埔寨里爾"}
        }
        KPW{
            other{"北韓圜"}
        }
        KYD{
            other{"開曼群島美元"}
        }
        KZT{
            other{"哈薩克坦吉"}
        }
        LAK{
            other{"老撾基普"}
        }
        LRD{
            other{"利比利亞元"}
        }
        LTL{
            other{"立陶宛里塔"}
        }
        MDL{
            other{"摩爾多瓦列伊"}
        }
        MRO{
            other{"毛里塔尼亞烏吉亞"}
        }
        MUR{
            other{"毛里裘斯盧布"}
        }
        MVR{
            other{"馬爾代夫盧非亞"}
        }
        MZN{
            other{"莫桑比克梅蒂卡爾"}
        }
        NGN{
            other{"尼日利亞奈拉"}
        }
        NOK{
            other{"挪威克羅納"}
        }
        NZD{
            other{"紐西蘭元"}
        }
        OMR{
            other{"阿曼里奧"}
        }
        PGK{
            other{"巴布亞新幾內亞基那"}
        }
        QAR{
            other{"卡塔爾里亞爾"}
        }
        RSD{
            other{"塞爾維亞第納爾"}
        }
        RWF{
            other{"盧旺達法郎"}
        }
        SAR{
            other{"沙特阿拉伯里亞爾"}
        }
        SBD{
            other{"所羅門群島元"}
        }
        SCR{
            other{"塞舌爾盧比"}
        }
        SEK{
            other{"瑞典克羅納"}
        }
        SGD{
            other{"新加坡元"}
        }
        SLL{
            other{"塞拉利昂利昂"}
        }
        SOS{
            other{"索馬里先令"}
        }
        SRD{
            other{"蘇里南元"}
        }
        STD{
            other{"聖多美和普林西比多布拉"}
        }
        SZL{
            other{"斯威士蘭里朗吉尼"}
        }
        TOP{
            other{"湯加潘加"}
        }
        TTD{
            other{"千里達和多巴哥元"}
        }
        TZS{
            other{"坦桑尼亞先令"}
        }
        VUV{
            other{"瓦努阿圖瓦圖"}
        }
        XAF{
            other{"中非法郎"}
        }
        XCD{
            other{"東加勒比元"}
        }
        XOF{
            other{"西非法郎"}
        }
        XPF{
            other{"太平洋法郎"}
        }
        YER{
            other{"也門里雅"}
        }
        ZMW{
            other{"贊比亞克瓦查"}
        }
    }
    Version{"2.1.19.94"}
}
