﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/nn.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/nn.xml
 */
nn{
    Countries{
        001{"verda"}
        002{"Afrika"}
        003{"Nord-Amerika"}
        005{"Sør-Amerika"}
        009{"Oseania"}
        011{"Vest-Afrika"}
        013{"Sentral-Amerika"}
        014{"Aust-Afrika"}
        015{"Nord-Afrika"}
        017{"Sentral-Afrika"}
        018{"Sørlege Afrika"}
        019{"Amerika"}
        021{"nordlege Amerika"}
        029{"Karibia"}
        030{"Aust-Asia"}
        034{"Sør-Asia"}
        035{"Søraust-Asia"}
        039{"Sør-Europa"}
        053{"Australia og New Zealand"}
        054{"Melanesia"}
        057{"Mikronesia"}
        061{"Polynesia"}
        062{"Sørlege Sentral-Asia"}
        142{"Asia"}
        143{"Sentral-Asia"}
        145{"Vest-Asia"}
        150{"Europa"}
        151{"Aust-Europa"}
        154{"Nord-Europa"}
        155{"Vest-Europa"}
        172{"Samveldet av uavhengige statar"}
        419{"Latin-Amerika og Karibia"}
        830{"Kanaløyane"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"Dei sameinte arabiske emirata"}
        AF{"Afghanistan"}
        AG{"Antigua og Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Dei nederlandske Antillane"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentina"}
        AS{"Amerikansk Samoa"}
        AT{"Austerrike"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Åland"}
        AZ{"Aserbajdsjan"}
        BA{"Bosnia og Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgia"}
        BF{"Burkina Faso"}
        BG{"Bulgaria"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei Darussalam"}
        BO{"Bolivia"}
        BR{"Brasil"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Bouvetøya"}
        BW{"Botswana"}
        BY{"Kviterussland"}
        BZ{"Belize"}
        CA{"Canada"}
        CC{"Kokosøyane"}
        CD{"Kongo-Kinshasa"}
        CF{"Den sentralafrikanske republikken"}
        CG{"Kongo-Brazzaville"}
        CH{"Sveits"}
        CI{"Elfenbeinskysten"}
        CK{"Cookøyane"}
        CL{"Chile"}
        CM{"Kamerun"}
        CN{"Kina"}
        CO{"Colombia"}
        CP{"Clippertonøya"}
        CR{"Costa Rica"}
        CS{"Serbia og Montenegro"}
        CU{"Cuba"}
        CV{"Kapp Verde"}
        CX{"Christmasøya"}
        CY{"Kypros"}
        CZ{"Tsjekkia"}
        DE{"Tyskland"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Danmark"}
        DM{"Dominica"}
        DO{"Den dominikanske republikken"}
        DZ{"Algerie"}
        EA{"Ceuta og Melilla"}
        EC{"Ecuador"}
        EE{"Estland"}
        EG{"Egypt"}
        EH{"Vest-Sahara"}
        ER{"Eritrea"}
        ES{"Spania"}
        ET{"Etiopia"}
        EU{"Den europeiske unionen"}
        FI{"Finland"}
        FJ{"Fiji"}
        FK{"Falklandsøyane"}
        FM{"Mikronesiaføderasjonen"}
        FO{"Færøyane"}
        FR{"Frankrike"}
        GA{"Gabon"}
        GB{"Storbritannia"}
        GD{"Grenada"}
        GE{"Georgia"}
        GF{"Fransk Guyana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grønland"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Ekvatorial-Guinea"}
        GR{"Hellas"}
        GS{"Sør-Georgia og Sør-Sandwich-øyane"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong S.A.R. Kina"}
        HM{"Heard- og McDonaldsøyane"}
        HN{"Honduras"}
        HR{"Kroatia"}
        HT{"Haiti"}
        HU{"Ungarn"}
        IC{"Kanariøyane"}
        ID{"Indonesia"}
        IE{"Irland"}
        IL{"Israel"}
        IM{"Man"}
        IN{"India"}
        IO{"Britiske område i Det indiske hav"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Island"}
        IT{"Italia"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Jordan"}
        JP{"Japan"}
        KE{"Kenya"}
        KG{"Kirgisistan"}
        KH{"Kambodsja"}
        KI{"Kiribati"}
        KM{"Komorene"}
        KN{"St. Christopher og Nevis"}
        KP{"Nord-Korea"}
        KR{"Sør-Korea"}
        KW{"Kuwait"}
        KY{"Caymanøyane"}
        KZ{"Kasakhstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"St. Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Litauen"}
        LU{"Luxembourg"}
        LV{"Latvia"}
        LY{"Libya"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Moldova"}
        ME{"Montenegro"}
        MF{"Saint Martin"}
        MG{"Madagaskar"}
        MH{"Marshalløyane"}
        MK{"Makedonia"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolia"}
        MO{"Macao S.A.R. Kina"}
        MP{"Nord-Marianane"}
        MQ{"Martinique"}
        MR{"Mauritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldivane"}
        MW{"Malawi"}
        MX{"Mexico"}
        MY{"Malaysia"}
        MZ{"Mosambik"}
        NA{"Namibia"}
        NC{"Ny-Caledonia"}
        NE{"Niger"}
        NF{"Norfolkøyane"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Nederland"}
        NO{"Noreg"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"New Zealand"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Fransk Polynesia"}
        PG{"Papua Ny-Guinea"}
        PH{"Filippinane"}
        PK{"Pakistan"}
        PL{"Polen"}
        PM{"St. Pierre og Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palestinsk territorium"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"Ytre Oseania"}
        RE{"Réunion"}
        RO{"Romania"}
        RS{"Serbia"}
        RU{"Russland"}
        RW{"Rwanda"}
        SA{"Saudi Arabia"}
        SB{"Salomonøyane"}
        SC{"Seychellane"}
        SD{"Sudan"}
        SE{"Sverige"}
        SG{"Singapore"}
        SH{"Saint Helena"}
        SI{"Slovenia"}
        SJ{"Svalbard og Jan Mayen"}
        SK{"Slovakia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        ST{"São Tomé og Príncipe"}
        SV{"El Salvador"}
        SY{"Syria"}
        SZ{"Swaziland"}
        TA{"Tristan da Cunha"}
        TC{"Turks- og Caicosøyane"}
        TD{"Tchad"}
        TF{"Franske sørområde"}
        TG{"Togo"}
        TH{"Thailand"}
        TJ{"Tadsjikistan"}
        TK{"Tokelau"}
        TL{"Aust-Timor"}
        TM{"Turkmenistan"}
        TN{"Tunisia"}
        TO{"Tonga"}
        TR{"Tyrkia"}
        TT{"Trinidad og Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzania"}
        UA{"Ukraina"}
        UG{"Uganda"}
        UM{"USAs ytre småøyar"}
        US{"USA"}
        UY{"Uruguay"}
        UZ{"Usbekistan"}
        VA{"Vatikanstaten"}
        VC{"St. Vincent og Grenadinane"}
        VE{"Venezuela"}
        VG{"Dei britiske jomfruøyane"}
        VI{"Dei amerikanske jomfruøyane"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis og Futuna"}
        WS{"Samoa"}
        YE{"Yemen"}
        YT{"Mayotte"}
        ZA{"Sør-Afrika"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"ukjent eller ugyldig område"}
    }
    Version{"2.0.50.94"}
}
