﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/is.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/is.xml
 */
is{
    Countries{
        001{"Heimurinn"}
        002{"Afríka"}
        003{"Norður-Ameríka"}
        005{"Suður-Ameríka"}
        009{"Eyjaálfa"}
        011{"Vestur-Afríka"}
        013{"Mið-Ameríka"}
        014{"Austur-Afríka"}
        015{"Norður-Afríka"}
        017{"Mið-Afríka"}
        018{"Suðurhluti Afríku"}
        019{"Ameríka"}
        021{"Ameríka norðan Mexikó"}
        029{"Karabíska hafið"}
        030{"Austur-Asía"}
        034{"Suður-Asía"}
        035{"Suðaustur-Asía"}
        039{"Suður-Evrópa"}
        053{"Ástralasía"}
        054{"Melanesía"}
        057{"Míkrónesía"}
        061{"Pólýnesía"}
        142{"Asía"}
        143{"Mið-Asía"}
        145{"Vestur-Asía"}
        150{"Evrópa"}
        151{"Austur-Evrópa"}
        154{"Norður-Evrópa"}
        155{"Vestur-Evrópa"}
        419{"Rómanska Ameríka"}
        AC{"Ascension-eyja"}
        AD{"Andorra"}
        AE{"Sameinuðu arabísku furstadæmin"}
        AF{"Afganistan"}
        AG{"Antígva og Barbúda"}
        AI{"Angvilla"}
        AL{"Albanía"}
        AM{"Armenía"}
        AN{"Hollensku Antillur"}
        AO{"Angóla"}
        AQ{"Suðurskautslandið"}
        AR{"Argentína"}
        AS{"Bandaríska Samóa"}
        AT{"Austurríki"}
        AU{"Ástralía"}
        AW{"Arúba"}
        AX{"Álandseyjar"}
        AZ{"Aserbaídsjan"}
        BA{"Bosnía og Hersegóvína"}
        BB{"Barbados"}
        BD{"Bangladess"}
        BE{"Belgía"}
        BF{"Búrkína Fasó"}
        BG{"Búlgaría"}
        BH{"Barein"}
        BI{"Búrúndí"}
        BJ{"Benín"}
        BL{"Saint Barthélemy"}
        BM{"Bermúdaeyjar"}
        BN{"Brúnei"}
        BO{"Bólivía"}
        BQ{"Karíbahafshluti Hollands"}
        BR{"Brasilía"}
        BS{"Bahamaeyjar"}
        BT{"Bútan"}
        BV{"Bouveteyja"}
        BW{"Botsvana"}
        BY{"Hvíta-Rússland"}
        BZ{"Belís"}
        CA{"Kanada"}
        CC{"Kókoseyjar (Keeling)"}
        CD{"Kongó-Kinshasa"}
        CF{"Mið-Afríkulýðveldið"}
        CG{"Kongó-Brazzaville"}
        CH{"Sviss"}
        CI{"Fílabeinsströndin"}
        CK{"Cooks-eyjar"}
        CL{"Síle"}
        CM{"Kamerún"}
        CN{"Kína"}
        CO{"Kólumbía"}
        CP{"Clipperton-eyja"}
        CR{"Kostaríka"}
        CU{"Kúba"}
        CV{"Grænhöfðaeyjar"}
        CW{"Curaçao"}
        CX{"Jólaey"}
        CY{"Kýpur"}
        CZ{"Tékkland"}
        DE{"Þýskaland"}
        DG{"Diego Garcia"}
        DJ{"Djíbútí"}
        DK{"Danmörk"}
        DM{"Dóminíka"}
        DO{"Dóminíska lýðveldið"}
        DZ{"Alsír"}
        EA{"Ceuta og Melilla"}
        EC{"Ekvador"}
        EE{"Eistland"}
        EG{"Egyptaland"}
        EH{"Vestur-Sahara"}
        ER{"Erítrea"}
        ES{"Spánn"}
        ET{"Eþíópía"}
        EU{"Evrópusambandið"}
        FI{"Finnland"}
        FJ{"Fídjieyjar"}
        FK{"Falklandseyjar"}
        FM{"Míkrónesía (FM)"}
        FO{"Færeyjar"}
        FR{"Frakkland"}
        GA{"Gabon"}
        GB{"Bretland"}
        GD{"Grenada"}
        GE{"Georgía"}
        GF{"Franska Gvæjana"}
        GG{"Guernsey"}
        GH{"Gana"}
        GI{"Gíbraltar"}
        GL{"Grænland"}
        GM{"Gambía"}
        GN{"Gínea"}
        GP{"Gvadelúpeyjar"}
        GQ{"Miðbaugs-Gínea"}
        GR{"Grikkland"}
        GS{"Suður-Georgía og Suður-Sandvíkureyjar"}
        GT{"Gvatemala"}
        GU{"Gvam"}
        GW{"Gínea-Bissá"}
        GY{"Gvæjana"}
        HK{"Sjálfstjórnarsvæðið Hong Kong"}
        HM{"Heard og McDonaldseyjar"}
        HN{"Hondúras"}
        HR{"Króatía"}
        HT{"Haítí"}
        HU{"Ungverjaland"}
        IC{"Kanaríeyjar"}
        ID{"Indónesía"}
        IE{"Írland"}
        IL{"Ísrael"}
        IM{"Mön"}
        IN{"Indland"}
        IO{"Bresku Indlandshafseyjar"}
        IQ{"Írak"}
        IR{"Íran"}
        IS{"Ísland"}
        IT{"Ítalía"}
        JE{"Jersey"}
        JM{"Jamaíka"}
        JO{"Jórdanía"}
        JP{"Japan"}
        KE{"Kenía"}
        KG{"Kirgisistan"}
        KH{"Kambódía"}
        KI{"Kíribatí"}
        KM{"Kómoreyjar"}
        KN{"Sankti Kristófer og Nevis"}
        KP{"Norður-Kórea"}
        KR{"Suður-Kórea"}
        KW{"Kúveit"}
        KY{"Caymaneyjar"}
        KZ{"Kasakstan"}
        LA{"Laos"}
        LB{"Líbanon"}
        LC{"Sankti Lúsía"}
        LI{"Liechtenstein"}
        LK{"Srí Lanka"}
        LR{"Líbería"}
        LS{"Lesótó"}
        LT{"Litháen"}
        LU{"Lúxemborg"}
        LV{"Lettland"}
        LY{"Líbía"}
        MA{"Marokkó"}
        MC{"Mónakó"}
        MD{"Moldóva"}
        ME{"Svartfjallaland"}
        MF{"Saint Martin"}
        MG{"Madagaskar"}
        MH{"Marshalleyjar"}
        MK{"Makedónía"}
        ML{"Malí"}
        MM{"Mjanmar (Búrma)"}
        MN{"Mongólía"}
        MO{"Sjálfstjórnarsvæðið Makaó"}
        MP{"Norður-Maríanaeyjar"}
        MQ{"Martiník"}
        MR{"Máritanía"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Máritíus"}
        MV{"Maldíveyjar"}
        MW{"Malaví"}
        MX{"Mexíkó"}
        MY{"Malasía"}
        MZ{"Mósambík"}
        NA{"Namibía"}
        NC{"Nýja-Kaledónía"}
        NE{"Níger"}
        NF{"Norfolkeyja"}
        NG{"Nígería"}
        NI{"Níkaragva"}
        NL{"Holland"}
        NO{"Noregur"}
        NP{"Nepal"}
        NR{"Nárú"}
        NU{"Niue"}
        NZ{"Nýja-Sjáland"}
        OM{"Óman"}
        PA{"Panama"}
        PE{"Perú"}
        PF{"Franska Pólýnesía"}
        PG{"Papúa Nýja-Gínea"}
        PH{"Filippseyjar"}
        PK{"Pakistan"}
        PL{"Pólland"}
        PM{"Sankti Pierre og Miquelon"}
        PN{"Pitcairn-eyjar"}
        PR{"Púertó Ríkó"}
        PS{"Heimastjórnarsvæði Palestínumanna"}
        PT{"Portúgal"}
        PW{"Palá"}
        PY{"Paragvæ"}
        QA{"Katar"}
        QO{"Ytri Eyjaálfa"}
        RE{"Réunion"}
        RO{"Rúmenía"}
        RS{"Serbía"}
        RU{"Rússland"}
        RW{"Rúanda"}
        SA{"Sádi-Arabía"}
        SB{"Salómonseyjar"}
        SC{"Seychelles-eyjar"}
        SD{"Súdan"}
        SE{"Svíþjóð"}
        SG{"Singapúr"}
        SH{"Sankti Helena"}
        SI{"Slóvenía"}
        SJ{"Svalbarði og Jan Mayen"}
        SK{"Slóvakía"}
        SL{"Síerra Leóne"}
        SM{"San Marínó"}
        SN{"Senegal"}
        SO{"Sómalía"}
        SR{"Súrínam"}
        SS{"Suður-Súdan"}
        ST{"Saó Tóme og Prinsípe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Sýrland"}
        SZ{"Svasíland"}
        TA{"Tristan da Cunha"}
        TC{"Turks- og Caicoseyjar"}
        TD{"Tsjad"}
        TF{"Frönsku suðlægu landsvæðin"}
        TG{"Tógó"}
        TH{"Taíland"}
        TJ{"Tadsjikistan"}
        TK{"Tókelá"}
        TL{"Tímor-Leste"}
        TM{"Túrkmenistan"}
        TN{"Túnis"}
        TO{"Tonga"}
        TR{"Tyrkland"}
        TT{"Trínidad og Tóbagó"}
        TV{"Túvalú"}
        TW{"Taívan"}
        TZ{"Tansanía"}
        UA{"Úkraína"}
        UG{"Úganda"}
        UM{"Smáeyjar Bandaríkjanna"}
        US{"Bandaríkin"}
        UY{"Úrúgvæ"}
        UZ{"Úsbekistan"}
        VA{"Páfastóll"}
        VC{"Sankti Vinsent og Grenadíneyjar"}
        VE{"Venesúela"}
        VG{"Bresku Jómfrúaeyjar"}
        VI{"Bandarísku Jómfrúaeyjar"}
        VN{"Víetnam"}
        VU{"Vanúatú"}
        WF{"Wallis- og Fútúnaeyjar"}
        WS{"Samóa"}
        XK{"Kósóvó"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Suður-Afríka"}
        ZM{"Sambía"}
        ZW{"Simbabve"}
        ZZ{"Óþekkt svæði"}
    }
    CountriesShort{
        HK{"Hong Kong"}
        MO{"Makaó"}
        PS{"Palestína"}
        US{"BNA"}
    }
    Version{"2.0.95.33"}
}
