﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/da.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/da.xml
 */
da{
    Countries{
        001{"Verden"}
        002{"Afrika"}
        003{"Nordamerika"}
        005{"Sydamerika"}
        009{"Oceanien"}
        011{"Vestafrika"}
        013{"Mellemamerika"}
        014{"Østafrika"}
        015{"Nordafrika"}
        017{"Centralafrika"}
        018{"Det sydlige Afrika"}
        019{"Amerika"}
        021{"Det nordlige Amerika"}
        029{"Caribien"}
        030{"Østasien"}
        034{"Sydasien"}
        035{"Sydøstasien"}
        039{"Sydeuropa"}
        053{"Australasien"}
        054{"Melanesien"}
        057{"Mikronesien"}
        061{"Polynesien"}
        142{"Asien"}
        143{"Centralasien"}
        145{"Vestasien"}
        150{"Europa"}
        151{"Østeuropa"}
        154{"Nordeuropa"}
        155{"Vesteuropa"}
        419{"Latinamerika"}
        AC{"Ascensionøen"}
        AD{"Andorra"}
        AE{"Forenede Arabiske Emirater"}
        AF{"Afghanistan"}
        AG{"Antigua og Barbuda"}
        AI{"Anguilla"}
        AL{"Albanien"}
        AM{"Armenien"}
        AN{"Hollandske Antiller"}
        AO{"Angola"}
        AQ{"Antarktis"}
        AR{"Argentina"}
        AS{"Amerikansk Samoa"}
        AT{"Østrig"}
        AU{"Australien"}
        AW{"Aruba"}
        AX{"Ålandsøerne"}
        AZ{"Aserbajdsjan"}
        BA{"Bosnien-Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgien"}
        BF{"Burkina Faso"}
        BG{"Bulgarien"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BQ{"Nederlandske antiller"}
        BR{"Brasilien"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Bouvetøen"}
        BW{"Botswana"}
        BY{"Hviderusland"}
        BZ{"Belize"}
        CA{"Canada"}
        CC{"Cocosøerne"}
        CD{"Congo-Kinshasa"}
        CF{"Centralafrikanske Republik"}
        CG{"Congo-Brazzaville"}
        CH{"Schweiz"}
        CI{"Côte d’Ivoire"}
        CK{"Cookøerne"}
        CL{"Chile"}
        CM{"Cameroun"}
        CN{"Kina"}
        CO{"Colombia"}
        CP{"Clippertonøen"}
        CR{"Costa Rica"}
        CU{"Cuba"}
        CV{"Kap Verde"}
        CW{"Curaçao"}
        CX{"Juleøen"}
        CY{"Cypern"}
        CZ{"Tjekkiet"}
        DE{"Tyskland"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Danmark"}
        DM{"Dominica"}
        DO{"Den Dominikanske Republik"}
        DZ{"Algeriet"}
        EA{"Ceuta og Melilla"}
        EC{"Ecuador"}
        EE{"Estland"}
        EG{"Egypten"}
        EH{"Vestsahara"}
        ER{"Eritrea"}
        ES{"Spanien"}
        ET{"Etiopien"}
        EU{"Den Europæiske Union"}
        FI{"Finland"}
        FJ{"Fiji"}
        FK{"Falklandsøerne"}
        FM{"Mikronesiens Forenede Stater"}
        FO{"Færøerne"}
        FR{"Frankrig"}
        GA{"Gabon"}
        GB{"Storbritannien"}
        GD{"Grenada"}
        GE{"Georgien"}
        GF{"Fransk Guyana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grønland"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Ækvatorialguinea"}
        GR{"Grækenland"}
        GS{"South Georgia og De Sydlige Sandwichøer"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong SAR"}
        HM{"Heard- og McDonald-øerne"}
        HN{"Honduras"}
        HR{"Kroatien"}
        HT{"Haiti"}
        HU{"Ungarn"}
        IC{"Kanariske øer"}
        ID{"Indonesien"}
        IE{"Irland"}
        IL{"Israel"}
        IM{"Isle of Man"}
        IN{"Indien"}
        IO{"Det britiske territorium i Det Indiske Ocean"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Island"}
        IT{"Italien"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Jordan"}
        JP{"Japan"}
        KE{"Kenya"}
        KG{"Kirgisistan"}
        KH{"Cambodja"}
        KI{"Kiribati"}
        KM{"Comorerne"}
        KN{"Saint Kitts og Nevis"}
        KP{"Nordkorea"}
        KR{"Sydkorea"}
        KW{"Kuwait"}
        KY{"Caymanøerne"}
        KZ{"Kasakhstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Litauen"}
        LU{"Luxembourg"}
        LV{"Letland"}
        LY{"Libyen"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Moldova"}
        ME{"Montenegro"}
        MF{"Saint Martin"}
        MG{"Madagaskar"}
        MH{"Marshalløerne"}
        MK{"Makedonien"}
        ML{"Mali"}
        MM{"Myanmar (Burma)"}
        MN{"Mongoliet"}
        MO{"Macao SAR"}
        MP{"Nordmarianerne"}
        MQ{"Martinique"}
        MR{"Mauretanien"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldiverne"}
        MW{"Malawi"}
        MX{"Mexico"}
        MY{"Malaysia"}
        MZ{"Mozambique"}
        NA{"Namibia"}
        NC{"Ny Caledonien"}
        NE{"Niger"}
        NF{"Norfolkøen"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Holland"}
        NO{"Norge"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"New Zealand"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Fransk Polynesien"}
        PG{"Papua Ny Guinea"}
        PH{"Filippinerne"}
        PK{"Pakistan"}
        PL{"Polen"}
        PM{"Saint Pierre og Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"De palæstinensiske områder"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        QO{"Ydre Oceanien"}
        RE{"Réunion"}
        RO{"Rumænien"}
        RS{"Serbien"}
        RU{"Rusland"}
        RW{"Rwanda"}
        SA{"Saudi-Arabien"}
        SB{"Salomonøerne"}
        SC{"Seychellerne"}
        SD{"Sudan"}
        SE{"Sverige"}
        SG{"Singapore"}
        SH{"St. Helena"}
        SI{"Slovenien"}
        SJ{"Svalbard og Jan Mayen"}
        SK{"Slovakiet"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        SS{"Sydsudan"}
        ST{"Sao Tome og Principe"}
        SV{"El Salvador"}
        SX{"Sint Maarten"}
        SY{"Syrien"}
        SZ{"Swaziland"}
        TA{"Tristan da Cunha"}
        TC{"Turks- og Caicosøerne"}
        TD{"Tchad"}
        TF{"De franske besiddelser i Det Sydlige Indiske Ocean"}
        TG{"Togo"}
        TH{"Thailand"}
        TJ{"Tadsjikistan"}
        TK{"Tokelau"}
        TL{"Timor-Leste"}
        TM{"Turkmenistan"}
        TN{"Tunesien"}
        TO{"Tonga"}
        TR{"Tyrkiet"}
        TT{"Trinidad og Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzania"}
        UA{"Ukraine"}
        UG{"Uganda"}
        UM{"Amerikanske oversøiske øer"}
        US{"USA"}
        UY{"Uruguay"}
        UZ{"Usbekistan"}
        VA{"Vatikanstaten"}
        VC{"Saint Vincent og Grenadinerne"}
        VE{"Venezuela"}
        VG{"De Britiske Jomfruøer"}
        VI{"De Amerikanske Jomfruøer"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis og Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Yemen"}
        YT{"Mayotte"}
        ZA{"Sydafrika"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"Ukendt område"}
    }
    CountriesShort{
        GB{"UK"}
        HK{"Hongkong"}
        MO{"Macao"}
        PS{"Palæstina"}
        US{"USA"}
    }
    Version{"2.0.98.52"}
}
