﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/lg.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/lg.xml
 */
lg{
    Currencies{
        AED{
            "AED",
            "Diraamu eya Emireeti",
        }
        AOA{
            "AOA",
            "Kwanza ey'Angola",
        }
        AUD{
            "A$",
            "Doola ey'Awusiturelya",
        }
        BHD{
            "BHD",
            "Dinaali ey'eBaareeni",
        }
        BIF{
            "BIF",
            "Faranga ey'eburundi",
        }
        BWP{
            "BWP",
            "Pula ey'eBotiswana",
        }
        CAD{
            "CA$",
            "Doola ey'eKanada",
        }
        CDF{
            "CDF",
            "Faranga ey'eKongo",
        }
        CHF{
            "CHF",
            "Faranga ey'eSwitizirandi",
        }
        CNY{
            "CN¥",
            "Yuwani Reniminibi ey'eCayina",
        }
        CVE{
            "CVE",
            "Esikudo ey'Keepu Veredi",
        }
        DJF{
            "DJF",
            "Faranga ey'eJjibuti",
        }
        DZD{
            "DZD",
            "Dinaali ey'Aligerya",
        }
        EGP{
            "EGP",
            "Pawundi ey'eMisiri",
        }
        ERN{
            "ERN",
            "Nakifa ey'Eritureya",
        }
        ETB{
            "ETB",
            "Biiru ey'Esyopya",
        }
        EUR{
            "€",
            "Yuro",
        }
        GBP{
            "£",
            "Pawundi ey'eBungereza",
        }
        GHC{
            "GHC",
            "Sedi ey'eGana",
        }
        GMD{
            "GMD",
            "Dalasi ey'eGambya",
        }
        GNS{
            "GNS",
            "Faranga ey'eGini",
        }
        INR{
            "₹",
            "Rupiya ey'eBuyindi",
        }
        JPY{
            "JP¥",
            "Yeni ey'eJapani",
        }
        KES{
            "KES",
            "Silingi ey'eKenya",
        }
        KMF{
            "KMF",
            "Faranga ey'eKomoro",
        }
        LRD{
            "LRD",
            "Doola ey'eLiberya",
        }
        LSL{
            "LSL",
            "Loti ey'eLesoso",
        }
        LYD{
            "LYD",
            "Dinaali ey'eLibya",
        }
        MAD{
            "MAD",
            "Diraamu ey'eMoroko",
        }
        MGA{
            "MGA",
            "Faranga ey'eMalagase",
        }
        MRO{
            "MRO",
            "Wugwiya ey'eMawritenya",
        }
        MUR{
            "MUR",
            "Rupiya ey'eMawurisyasi",
        }
        MWK{
            "MWK",
            "Kwaca ey'eMalawi",
        }
        MZM{
            "MZM",
            "Metikaali ey'eMozambiiki",
        }
        NAD{
            "NAD",
            "Doola ey'eNamibiya",
        }
        NGN{
            "NGN",
            "Nayira ey'eNayijerya",
        }
        RWF{
            "RWF",
            "Faranga ey'eRwanda",
        }
        SAR{
            "SAR",
            "Riyaali ey'eBuwarabu",
        }
        SCR{
            "SCR",
            "Rupiya ey'eSesere",
        }
        SDG{
            "SDG",
            "Dinaali ey'eSudaani",
        }
        SDP{
            "SDP",
            "Pawundi ey'eSudaani",
        }
        SHP{
            "SHP",
            "Pawundi ey'eSenti Herena",
        }
        SLL{
            "SLL",
            "Lewone",
        }
        SOS{
            "SOS",
            "Silingi ey'eSomaliya",
        }
        STD{
            "STD",
            "Dobura ey'eSantome ne Purincipe",
        }
        SZL{
            "SZL",
            "Lilangeni",
        }
        TND{
            "TND",
            "Dinaali ey'eTunizya",
        }
        TZS{
            "TZS",
            "Silingi ey'eTanzaniya",
        }
        UGX{
            "USh",
            "Silingi eya Yuganda",
        }
        USD{
            "US$",
            "Doola ey'Amerika",
        }
        XAF{
            "FCFA",
            "Faranga ey'omu Afirika eya wakati",
        }
        XOF{
            "CFA",
            "Faranga ey'omu Afirika ey'ebugwanjuba",
        }
        ZAR{
            "ZAR",
            "Randi ey'eSawusafirika",
        }
        ZMK{
            "ZMK",
            "Kwaca ey'eZambya",
        }
        ZWD{
            "ZWD",
            "Doola ey'eZimbabwe",
        }
    }
    Version{"2.0.77.46"}
}
