﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/seh.xml
// *
// ***************************************************************************
seh{
    Currencies{
        AED{
            "AED",
            "Dirém dos Emirados Árabes Unidos",
        }
        AOA{
            "AOA",
            "Cuanza angolano",
        }
        AUD{
            "A$",
            "Dólar australiano",
        }
        BHD{
            "BHD",
            "Dinar bareinita",
        }
        BIF{
            "BIF",
            "Franco do Burundi",
        }
        BWP{
            "BWP",
            "Pula botsuanesa",
        }
        CAD{
            "CA$",
            "Dólar canadense",
        }
        CDF{
            "CDF",
            "Franco congolês",
        }
        CHF{
            "CHF",
            "Franco suíço",
        }
        CNY{
            "CN¥",
            "Yuan Renminbi chinês",
        }
        CVE{
            "CVE",
            "Escudo cabo-verdiano",
        }
        DJF{
            "DJF",
            "Franco do Djibuti",
        }
        DZD{
            "DZD",
            "Dinar argelino",
        }
        EGP{
            "EGP",
            "Libra egípcia",
        }
        ERN{
            "ERN",
            "Nakfa da Eritréia",
        }
        ETB{
            "ETB",
            "Birr etíope",
        }
        EUR{
            "€",
            "Euro",
        }
        GBP{
            "£",
            "Libra britânica",
        }
        GHC{
            "GHC",
            "Cedi de Gana (1979–2007)",
        }
        GMD{
            "GMD",
            "Dalasi de Gâmbia",
        }
        GNS{
            "GNS",
            "Syli da Guiné",
        }
        INR{
            "₹",
            "Rúpia indiana",
        }
        JPY{
            "JP¥",
            "Iene japonês",
        }
        KES{
            "KES",
            "Xelim queniano",
        }
        KMF{
            "KMF",
            "Franco de Comores",
        }
        LRD{
            "LRD",
            "Dólar liberiano",
        }
        LSL{
            "LSL",
            "Loti do Lesoto",
        }
        LYD{
            "LYD",
            "Dinar líbio",
        }
        MAD{
            "MAD",
            "Dirém marroquino",
        }
        MGA{
            "MGA",
            "Franco de Madagascar",
        }
        MRO{
            "MRO",
            "Ouguiya da Mauritânia",
        }
        MUR{
            "MUR",
            "Rupia de Maurício",
        }
        MWK{
            "MWK",
            "Cuacha do Maláui",
        }
        MZM{
            "MZM",
            "Metical antigo de Moçambique",
        }
        MZN{
            "MTn",
            "Metical de Moçambique",
        }
        NAD{
            "NAD",
            "Dólar da Namíbia",
        }
        NGN{
            "NGN",
            "Naira nigeriana",
        }
        RWF{
            "RWF",
            "Franco ruandês",
        }
        SAR{
            "SAR",
            "Rial saudita",
        }
        SCR{
            "SCR",
            "Rupia das Seychelles",
        }
        SDG{
            "SDG",
            "Dinar sudanês",
        }
        SDP{
            "SDP",
            "Libra sudanesa antiga",
        }
        SHP{
            "SHP",
            "Libra de Santa Helena",
        }
        SLL{
            "SLL",
            "Leone de Serra Leoa",
        }
        SOS{
            "SOS",
            "Xelim somali",
        }
        STD{
            "STD",
            "Dobra de São Tomé e Príncipe",
        }
        SZL{
            "SZL",
            "Lilangeni da Suazilândia",
        }
        TND{
            "TND",
            "Dinar tunisiano",
        }
        TZS{
            "TZS",
            "Xelim da Tanzânia",
        }
        UGX{
            "UGX",
            "Xelim ugandense (1966–1987)",
        }
        USD{
            "US$",
            "Dólar norte-americano",
        }
        XAF{
            "FCFA",
            "Franco CFA BEAC",
        }
        XOF{
            "CFA",
            "Franco CFA BCEAO",
        }
        ZAR{
            "ZAR",
            "Rand sul-africano",
        }
        ZMK{
            "ZMK",
            "Cuacha zambiano (1968–2012)",
        }
        ZMW{
            "ZMW",
            "Cuacha zambiano",
        }
        ZWD{
            "ZWD",
            "Dólar do Zimbábue",
        }
    }
    Version{"2.1.19.14"}
}
