﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/nb.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/nb.xml
 */
nb{
    Countries{
        001{"verden"}
        002{"Afrika"}
        003{"Nord-Amerika"}
        005{"Sør-Amerika"}
        009{"Oseania"}
        011{"Vest-Afrika"}
        013{"Sentral-Amerika"}
        014{"Øst-Afrika"}
        015{"Nord-Afrika"}
        017{"Sentral-Afrika"}
        018{"Sørlige Afrika"}
        019{"Amerika"}
        021{"Nordlige Amerika"}
        029{"Karibia"}
        030{"Øst-Asia"}
        034{"Sør-Asia"}
        035{"Sørøst-Asia"}
        039{"Sør-Europa"}
        053{"Australasia"}
        054{"Melanesia"}
        057{"Mikronesia"}
        061{"Polynesia"}
        142{"Asia"}
        143{"Sentral-Asia"}
        145{"Vest-Asia"}
        150{"Europa"}
        151{"Øst-Europa"}
        154{"Nord-Europa"}
        155{"Vest-Europa"}
        419{"Latin-Amerika"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"De forente arabiske emirater"}
        AF{"Afghanistan"}
        AG{"Antigua og Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"De nederlandske antiller"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentina"}
        AS{"Amerikansk Samoa"}
        AT{"Østerrike"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Åland"}
        AZ{"Aserbajdsjan"}
        BA{"Bosnia-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"}
        BQ{"Karibisk Nederland"}
        BR{"Brasil"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Bouvetøya"}
        BW{"Botswana"}
        BY{"Hviterussland"}
        BZ{"Belize"}
        CA{"Canada"}
        CC{"Kokosøyene"}
        CD{"Kongo-Kinshasa"}
        CF{"Den sentralafrikanske republikk"}
        CG{"Kongo-Brazzaville"}
        CH{"Sveits"}
        CI{"Elfenbenskysten"}
        CK{"Cookøyene"}
        CL{"Chile"}
        CM{"Kamerun"}
        CN{"Kina"}
        CO{"Colombia"}
        CP{"Clippertonøya"}
        CR{"Costa Rica"}
        CU{"Cuba"}
        CV{"Kapp Verde"}
        CW{"Curaçao"}
        CX{"Christmasøya"}
        CY{"Kypros"}
        CZ{"Tsjekkia"}
        DE{"Tyskland"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Danmark"}
        DM{"Dominica"}
        DO{"Den dominikanske republikk"}
        DZ{"Algerie"}
        EA{"Ceuta og Melilla"}
        EC{"Ecuador"}
        EE{"Estland"}
        EG{"Egypt"}
        EH{"Vest-Sahara"}
        ER{"Eritrea"}
        ES{"Spania"}
        ET{"Etiopia"}
        EU{"Den europeiske union"}
        FI{"Finland"}
        FJ{"Fiji"}
        FK{"Falklandsøyene"}
        FM{"Mikronesiaføderasjonen"}
        FO{"Færøyene"}
        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 de sørlige Sandwich-øyene"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong S.A.R. Kina"}
        HM{"Heardøya og McDonaldøyene"}
        HN{"Honduras"}
        HR{"Kroatia"}
        HT{"Haiti"}
        HU{"Ungarn"}
        IC{"Kanariøyene"}
        ID{"Indonesia"}
        IE{"Irland"}
        IL{"Israel"}
        IM{"Man"}
        IN{"India"}
        IO{"Britiske territorier i Indiahavet"}
        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. Kitts og Nevis"}
        KP{"Nord-Korea"}
        KR{"Sør-Korea"}
        KW{"Kuwait"}
        KY{"Caymanøyene"}
        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øyene"}
        MK{"Makedonia"}
        ML{"Mali"}
        MM{"Myanmar [Burma]"}
        MN{"Mongolia"}
        MO{"Macao S.A.R. Kina"}
        MP{"Nord-Marianene"}
        MQ{"Martinique"}
        MR{"Mauritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldivene"}
        MW{"Malawi"}
        MX{"Mexico"}
        MY{"Malaysia"}
        MZ{"Mosambik"}
        NA{"Namibia"}
        NC{"Ny-Caledonia"}
        NE{"Niger"}
        NF{"Norfolkøya"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Nederland"}
        NO{"Norge"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"New Zealand"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Fransk Polynesia"}
        PG{"Papua Ny-Guinea"}
        PH{"Filippinene"}
        PK{"Pakistan"}
        PL{"Polen"}
        PM{"St. Pierre og Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Det palestinske området"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"avsidesliggende Oceania"}
        RE{"Réunion"}
        RO{"Romania"}
        RS{"Serbia"}
        RU{"Russland"}
        RW{"Rwanda"}
        SA{"Saudi-Arabia"}
        SB{"Salomonøyene"}
        SC{"Seychellene"}
        SD{"Sudan"}
        SE{"Sverige"}
        SG{"Singapore"}
        SH{"St. Helena"}
        SI{"Slovenia"}
        SJ{"Svalbard og Jan Mayen"}
        SK{"Slovakia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        SS{"Sør-Sudan"}
        ST{"São Tomé og Príncipe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Syria"}
        SZ{"Swaziland"}
        TA{"Tristan da Cunha"}
        TC{"Turks- og Caicosøyene"}
        TD{"Tsjad"}
        TF{"De franske sørterritorier"}
        TG{"Togo"}
        TH{"Thailand"}
        TJ{"Tadsjikistan"}
        TK{"Tokelau"}
        TL{"Øst-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åøyer"}
        US{"USA"}
        UY{"Uruguay"}
        UZ{"Usbekistan"}
        VA{"Vatikanstaten"}
        VC{"St. Vincent og Grenadinene"}
        VE{"Venezuela"}
        VG{"De britiske jomfruøyene"}
        VI{"De amerikanske jomfruøyene"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis og Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Sør-Afrika"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"ukjent område"}
    }
    Version{"2.0.86.71"}
}
