﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fo.xml
// *
// ***************************************************************************
fo{
    Countries{
        001{"heimur"}
        002{"Afrika"}
        003{"Norðuramerika"}
        005{"Suðuramerika"}
        009{"Osiania"}
        011{"Vesturafrika"}
        013{"Miðamerika"}
        014{"Eysturafrika"}
        015{"Norðurafrika"}
        017{"Miðafrika"}
        018{"sunnari partur av Afrika"}
        019{"Amerika"}
        021{"Amerika norðanfyri Meksiko"}
        029{"Karibia"}
        030{"Eysturasia"}
        034{"Suðurasia"}
        035{"Útsynningsasia"}
        039{"Suðurevropa"}
        053{"Avstralasia"}
        054{"Melanesia"}
        057{"Mikronesi øki"}
        061{"Polynesia"}
        142{"Asia"}
        143{"Miðasia"}
        145{"Vesturasia"}
        150{"Evropa"}
        151{"Eysturevropa"}
        154{"Norðurevropa"}
        155{"Vesturevropa"}
        419{"Latínamerika"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"Sameindu Emirríkini"}
        AF{"Afganistan"}
        AG{"Antigua & Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Niðurlendsku Antilloyggjarnar"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentina"}
        AS{"Amerikanska Samoa"}
        AT{"Eysturríki"}
        AU{"Avstralia"}
        AW{"Aruba"}
        AX{"Áland"}
        AZ{"Aserbadjan"}
        BA{"Bosnia-Hersegovina"}
        BB{"Barbados"}
        BD{"Bangladesj"}
        BE{"Belgia"}
        BF{"Burkina Faso"}
        BG{"Bulgaria"}
        BH{"Barein"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"St-Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BQ{"Niðurlonds Karibia"}
        BR{"Brasil"}
        BS{"Bahamaoyggjar"}
        BT{"Butan"}
        BV{"Bouvetoyggj"}
        BW{"Botsvana"}
        BY{"Hvítarussland"}
        BZ{"Belis"}
        CA{"Kanada"}
        CC{"Kokosoyggjar"}
        CD{"Kongo, Dem. Lýðveldið"}
        CF{"Miðafrikalýðveldið"}
        CG{"Kongo"}
        CH{"Sveis"}
        CI{"Fílabeinsstrondin"}
        CK{"Cooksoyggjar"}
        CL{"Kili"}
        CM{"Kamerun"}
        CN{"Kina"}
        CO{"Kolombia"}
        CP{"Clipperton"}
        CR{"Kosta Rika"}
        CU{"Kuba"}
        CV{"Grønhøvdaoyggjar"}
        CW{"Curaçao"}
        CX{"Jólaoyggjin"}
        CY{"Kýpros"}
        CZ{"Kekkia"}
        DE{"Týskland"}
        DG{"Diego Garcia"}
        DJ{"Djibuti"}
        DK{"Danmark"}
        DM{"Dominika"}
        DO{"Dominikalýðveldið"}
        DZ{"Algeria"}
        EA{"Ceuta og Melilla"}
        EC{"Ekvador"}
        EE{"Estland"}
        EG{"Egyptaland"}
        EH{"Vestursahara"}
        ER{"Eritrea"}
        ES{"Spania"}
        ET{"Etiopia"}
        EU{"Evropasamveldið"}
        FI{"Finnland"}
        FJ{"Fiji"}
        FK{"Falklandsoyggjar"}
        FM{"Mikronesiasamveldið"}
        FO{"Føroyar"}
        FR{"Frakland"}
        GA{"Gabon"}
        GB{"Stórabretland"}
        GD{"Grenada"}
        GE{"Georgia"}
        GF{"Franska Gujana"}
        GG{"Guernsey"}
        GH{"Gana"}
        GI{"Gibraltar"}
        GL{"Grønland"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Ekvatorguinea"}
        GR{"Grikkaland"}
        GS{"Suðurgeorgia og Suðursandwichoyggjar"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Gujana"}
        HK{"Hong Kong"}
        HM{"Heard og McDonaldoyggjar"}
        HN{"Honduras"}
        HR{"Kroatia"}
        HT{"Haiti"}
        HU{"Ungarn"}
        IC{"Kanariuoyggjar"}
        ID{"Indonesia"}
        IE{"Írland"}
        IL{"Ísrael"}
        IM{"Isle of Man"}
        IN{"India"}
        IO{"Stóra Bretlands Indiahavoyggjar"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Ísland"}
        IT{"Italia"}
        JE{"Jersey"}
        JM{"Jamaika"}
        JO{"Jordan"}
        JP{"Japan"}
        KE{"Kenja"}
        KG{"Kirgisia"}
        KH{"Kambodja"}
        KI{"Kiribati"}
        KM{"Komoroyggjar"}
        KN{"St. Kitts & Nevis"}
        KP{"Norðurkorea"}
        KR{"Suðurkorea"}
        KW{"Kuvait"}
        KY{"Caymanoyggjar"}
        KZ{"Kasakstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"St. Lusia"}
        LI{"Liktinstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesoto"}
        LT{"Litava"}
        LU{"Luksemborg"}
        LV{"Lettland"}
        LY{"Libya"}
        MA{"Marokko"}
        MC{"Monako"}
        MD{"Moldova"}
        ME{"Montenegro"}
        MF{"St-Martin"}
        MG{"Madagaskar"}
        MH{"Marshalloyggjar"}
        MK{"Makedónia"}
        ML{"Mali"}
        MM{"Myanmar (Burma)"}
        MN{"Mongolia"}
        MO{"Makao"}
        MP{"Norðaru Mariuoyggjar"}
        MQ{"Martinique"}
        MR{"Móritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Móritius"}
        MV{"Maldivoyggjar"}
        MW{"Malavi"}
        MX{"Meksiko"}
        MY{"Malaisia"}
        MZ{"Mosambik"}
        NA{"Namibia"}
        NC{"Nýkaledónia"}
        NE{"Niger"}
        NF{"Norfolksoyggj"}
        NG{"Nigeria"}
        NI{"Nikaragua"}
        NL{"Niðurlond"}
        NO{"Noreg"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nýsæland"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Franska Polynesia"}
        PG{"Papua Nýguinea"}
        PH{"Filipsoyggjar"}
        PK{"Pakistan"}
        PL{"Pólland"}
        PM{"Saint Pierre og Miquelon"}
        PN{"Pitcairnoyggjar"}
        PR{"Puerto Riko"}
        PS{"Palestina"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguai"}
        QA{"Katar"}
        QO{"fjarskoti Osiania"}
        RE{"Réunion"}
        RO{"Rumenia"}
        RS{"Serbia"}
        RU{"Russland"}
        RW{"Ruanda"}
        SA{"Saudiarabia"}
        SB{"Salomonoyggjar"}
        SC{"Seyskelloyggjar"}
        SD{"Sudan"}
        SE{"Svøríki"}
        SG{"Singapor"}
        SH{"St. Helena"}
        SI{"Slovenia"}
        SJ{"Svalbard & Jan Mayen"}
        SK{"Slovakia"}
        SL{"Sierra Leona"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        SS{"Suðursudan"}
        ST{"Sao Tome & Prinsipi"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Sýria"}
        SZ{"Svasiland"}
        TA{"Tristan da Cunha"}
        TC{"Turks- og Caicosoyggjar"}
        TD{"Kjad"}
        TF{"Fronsku sunnaru landaøki"}
        TG{"Togo"}
        TH{"Tailand"}
        TJ{"Tadsjikistan"}
        TK{"Tokelau"}
        TL{"Eysturtimor"}
        TM{"Turkmenistan"}
        TN{"Tunesia"}
        TO{"Tonga"}
        TR{"Turkaland"}
        TT{"Trinidad & Tobago"}
        TV{"Tuvalu"}
        TW{"Taivan"}
        TZ{"Tansania"}
        UA{"Ukraina"}
        UG{"Uganda"}
        UM{"Sambandsríki Amerikas fjarskotnu oyggjar"}
        US{"Sambandsríki Amerika"}
        UY{"Uruguai"}
        UZ{"Usbekistan"}
        VA{"Vatikanbýur"}
        VC{"St. Vinsent & Grenadinoyggjar"}
        VE{"Venesuela"}
        VG{"Stóra Bretlands Jomfrúoyggjar"}
        VI{"Sambandsríki Amerikas Jomfrúoyggjar"}
        VN{"Vjetnam"}
        VU{"Vanuatu"}
        WF{"Wallis- og Futunaoyggjar"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Suðurafrika"}
        ZM{"Sambia"}
        ZW{"Simbabvi"}
        ZZ{"ókent øki"}
    }
    Countries%short{
        GB{"UK"}
        US{"USA"}
    }
    Countries%variant{
        MK{"Makedónia (FJM)"}
    }
    Version{"2.1.19.17"}
}
