// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

da {
    Version {"3.0"}
    CollationElements { 
        Version { "2.0" }
        Sequence { "& A < \u00E6\u0301 <<< \u00C6\u0301& Z < \u00E6 <<< \u00C6<<"
        " a\u0308 <<< A\u0308 < \u00F8 <<< \u00D8 << o\u0308 <<< O\u0308 << o\u030B<<< O\u030B< a\u030A"
        " <<< A\u030A<<< aa <<< aA <<< Aa <<< AA & V<<< w<<< W & Y << u\u0308 <<< U\u0308 &D < \u00F0<<< \u00D0 &T < \u00FE<<< \u00DE" }
    }

    Countries {
        Fallback{ "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 { "\u00D8strig" }
        AU { "Australien" }
        //AW { "Aruba" }
        AZ { "Aserbajdsjan" }
        BA { "Bosnien-Hercegovina" }
        //BB { "Barbados" }
        //BD { "Bangladesh" }
        BE { "Belgien" }
        //BF { "Burkina Faso" }
        BG { "Bulgarien" }
        //BH { "Bahrain" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        //BM { "Bermuda" }
        BN { "Brunei Darussalam" }
        //BO { "Bolivia" }
        BR { "Brasilien" }
        //BS { "Bahamas" }
        //BT { "Bhutan" }
        //BV { "Bouvet Island" }
        //BW { "Botswana" }
        BY { "Hviderusland" }
        //BZ { "Belize" }
        //CA { "Canada" }
        CC { "Cocos (Keeling) Islands" }
        CD { "Den Demokratiske Republik Congo" }
        CF { "Centralafrikanske Republik" }
        //CG { "Congo" }
        CH { "Schweiz" }
        CI { "Elfenbenskysten" }
        //CK { "Cook Islands" }
        //CL { "Chile" }
        CM { "Cameroun" }
        CN { "Kina" }
        //CO { "Colombia" }
        //CR { "Costa Rica" }
        //CU { "Cuba" }
        CV { "Kap Verde" }
        CX { "Jule\u00F8en" }
        CY { "Cypern" }
        CZ { "Tjekkiet" }
        DE { "Tyskland" }
        //DJ { "Djibouti" }
        DK { "Danmark" }
        //DM { "Dominica" }
        DO { "Den Dominikanske Republik" }
        DZ { "Algeriet" }
        //EC { "Ecuador" }
        EE { "Estland" }
        EG { "Egypten" }
        EH { "Vestsahara" }
        //ER { "Eritrea" }
        ES { "Spanien" }
        ET { "Etiopien" }
        //FI { "Finland" }
        //FJ { "Fiji" }
        FK { "Falklands\u00F8erne" }
        FM { "Mikronesiens Forenede Stater" }
        FO { "F\u00E6r\u00F8erne" }
        FR { "Frankrig" }
        //GA { "Gabon" }
        GB { "Storbritannien" }
        //GD { "Grenada" }
        GE { "Georgien" }
        GF { "Fransk Guyana" }
        //GH { "Ghana" }
        //GI { "Gibraltar" }
        GL { "Gr\u00F8nland" }
        //GM { "Gambia" }
        //GN { "Guinea" }
        //GP { "Guadeloupe" }
        GQ { "\u00C6kvatorialguinea" }
        GR { "Gr\u00E6kenland" }
        GS { "South Georgia og De Sydlige Sandwich\u00F8er" }
        //GT { "Guatemala" }
        //GU { "Guam" }
        //GW { "Guinea-Bissau" }
        //GY { "Guyana" }
        //HK { "Hong Kong S.A.R. of China (Special Administrative Region)" }
        HM { "Heard Island og McDonald Islands" }
        //HN { "Honduras" }
        HR { "Kroatien" }
        //HT { "Haiti" }
        HU { "Ungarn" }
        ID { "Indonesien" }
        IE { "Irland" }
        //IL { "Israel" }
        IN { "Indien" }
        IO { "Det Britiske Territorium i Det Indiske Ocean" }
        IQ { "Irak" }
        //IR { "Den Islamiske Republik Iran" }
        IS { "Island" }
        IT { "Italien" }
        //JM { "Jamaica" }
        //JO { "Jordan" }
        //JP { "Japan" }
        //KE { "Kenya" }
        KG { "Kirgisistan" }
        KH { "Cambodja" }
        //KI { "Kiribati" }
        KM { "Comorerne" }
        KN { "Saint Kitts og Nevis" }
        KP { "Nordkorea" }    // alternate name { "Den Demokratiske Folkerepublik Korea" }
        KR { "Sydkorea" }    // alternate name { "Republikken Korea" }
        //KW { "Kuwait" }
        KY { "Cayman\u00F8erne" }
        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 { "Republikken Moldova" }
        MG { "Madagaskar" }
        MH { "Marshall\u00F8erne" }
        MK { "Republikken Makedonien" }
        //ML { "Mali" }
        //MM { "Myanmar" }
        MN { "Mongoliet" }
        //MO { "Macao S.A.R. of China (Special Administrative Region)" }
        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 Island" }
        //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\u00E6stinensiske omr\u00E5der" }
        //PT { "Portugal" }
        //PW { "Palau" }
        //PY { "Paraguay" }
        //QA { "Qatar" }
        RE { "Reunion" }
        RO { "Rum\u00E6nien" }
        RU { "Rusland" }
        //RW { "Rwanda" }
        SA { "Saudi-Arabien" }
        SB { "Salomon\u00F8erne" }
        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" }
        ST { "Sao Tome og Principe" }
        //SV { "El Salvador" }
        SY { "Syrien" }
        //SZ { "Swaziland" }
        //TC { "Turks and Caicos Islands" }
        TD { "Tchad" }
        TF { "Franske Besiddelser i Det Sydlige Indiske Ocean" }
        //TG { "Togo" }
        //TH { "Thailand" }
        TJ { "Tadsjikistan" }
        //TK { "Tokelau" }
        TL { "\u00D8sttimor" }
        //TM { "Turkmenistan" }
        TN { "Tunesien" }
        //TO { "Tonga" }
        TR { "Tyrkiet" }
        TT { "Trinidad og Tobago" }
        //TV { "Tuvalu" }
        //TW { "Taiwan" }
        //TZ { "Tanzania" }
        //UA { "Ukraine" }
        //UG { "Uganda" }
        UM { "De Mindre Amerikanske Overs\u00f8iske \u00d8er" }
        US { "USA" } // This is a bad translation!
        //UY { "Uruguay" }
        UZ { "Usbekistan" }
        VA { "Vatikanstaten" }
        VC { "St. Vincent og Grenadinerne" }
        //VE { "Venezuela" }
        VG { "De britiske jomfru\u00F8er" }
        VI { "De amerikanske jomfru\u00F8er" }
        //VN { "Vietnam" }
        //VU { "Vanuatu" }
        WF { "Wallis og Futuna" }
        //WS { "Samoa" }
        //YE { "Yemen" }
        //YT { "Mayotte" }
        YU { "Jugoslavien" }
        ZA { "Sydafrika" }
        //ZM { "Zambia" }
        //ZW { "Zimbabwe" }
    }
    // Currency display names
    Currencies {
        DKK { "kr", "DKK" }
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    DateTimePatterns { 
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE dd MMMM yyyy",
        "d. MMM yyyy",
        "dd-MM-yyyy",
        "dd-MM-yy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "s\u00F8n",
        "man",
        "tir",
        "ons",
        "tor",
        "fre",
        "l\u00F8r",
    }
    DayNames { 
        "s\u00F8ndag",
        "mandag",
        "tirsdag",
        "onsdag",
        "torsdag",
        "fredag",
        "l\u00F8rdag",
    }
    Eras { 
        "f.Kr.",
        "e.Kr.",
    }
    Languages {
        Fallback{ "en"}
        am { "Amharisk" }
        ar { "Arabisk" }
        az { "Aserbajdsjan" }
        be { "Hviderussisk" }
        bg { "Bulgarsk" }
        bn { "Bengalsk" }
        ca { "Katalansk" }
        cs { "Tjekkisk" }
        da { "Dansk" }
        //da { "dansk" } // Old value
        de { "Tysk" }
        el { "Gr\u00E6sk" }
        en { "Engelsk" }
        es { "Spansk" }
        et { "Estisk" }
        eu { "Baskisk" }
        fa { "Persisk" }
        fi { "Finsk" }
        fo { "F\u00e6r\u00f8sk" }
        fr { "Fransk" }
        ga { "Irsk" }
        gl { "Galicisk" }
        gu { "Gujaratisk" }
        haw { "Hawaii" }
        he { "Hebraisk" }
        hr { "Kroatisk" }
        hu { "Ungarsk" }
        hy { "Armensk" }
        id { "Indonesisk" }
        is { "Islandsk" }
        it { "Italiensk" }
        ja { "Japansk" }
        ka { "Georgisk" }
        kk { "Kasakhisk" }
        ko { "Koreansk" }
        kw { "Cornisk" }
        ku { "Kurdisk" }
        lt { "Litauisk" }
        lv { "Lettisk" }
        mk { "Makedonsk" }
        mr { "Marathisk" }
        mt { "Maltesisk" }
        nl { "Hollandsk" }
        no { "Norsk" }
        pl { "Polsk" }
        pt { "Portugisisk" }
        ro { "Rum\u00E6nsk" }
        ru { "Russisk" }
        sh { "Serbokroatisk" }
        sk { "Slovakisk" }
        sl { "Slovensk" }
        so { "Somalisk" }
        sq { "Albansk" }
        sr { "Serbisk" }
        sv { "Svensk" }
        ta { "Tamilsk" }
        th { "Thailandsk" }
        tr { "Tyrkisk" }
        uk { "Ukrainsk" }
        vi { "Vietnamesisk" }
        zh { "Kinesisk" }
        //zh_cn { "Kinesisk (Forkortet)" }
        //zh_tw { "Kinesisk (Uforkortet)" }
    }
    localPatternChars { "GuMtkHmsSEDFwWahKzUe" }
    MonthAbbreviations { 
        "jan",
        "feb",
        "mar",
        "apr",
        "maj",
        "jun",
        "jul",
        "aug",
        "sep",
        "okt",
        "nov",
        "dec",
    }
    MonthNames { 
        "januar",
        "februar",
        "marts",
        "april",
        "maj",
        "juni",
        "juli",
        "august",
        "september",
        "oktober",
        "november",
        "december",
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    ExemplarCharacters { "[a-z \u00e6 \u00e5 \u00f8 \u00e1 \u00e9 \u00ed \u00f3 \u00fa \u00fd]" }
    LocaleScript{  
        "Latn",  // ISO 15924 Name 
    }
    SpelloutRules {
        "-x: minus >>;\n"
        "nol; en; to; tre; fire; fem; seks; syv; otte; ni;\n"
        "ti; elleve; tolv; tretten; fjorten; femten; seksten; sytten; atten; nitten;\n"
        "20: [>>og]tvye;\n"
        "30: [>>og]tredive;\n"
        "40: [>>og]fyrre;\n"
        "50: [>>og]femti;\n"
        "60: [>>og]seksti;\n"
        "70: [>>og]syvti;\n"
        "80: [>>og]otteti;\n"
        "90: [>>og]niti;\n"
        "100: et hundrede[>>];\n"
        "200: << hundrede[>>];\n"
        "1000: et tusinde[ >>];\n"
        "2000: << tusinde[ >>];\n"
        "1,000,000: en million[ >>];\n"
        "2,000,000: << million[ >>];\n"
        "1,000,000,000: en milliarde[ >>];\n"
        "2,000,000,000: << milliarde[ >>];\n"
        "1,000,000,000,000: en billione[ >>];\n"
        "2,000,000,000,000: << billione[ >>];\n"
        "1,000,000,000,000,000: =#,##0=;"
    }
    zoneStrings {
        {
            "Europe/Copenhagen",
            "Central European Time",
            "MET",
            "Central European Time (DST)",
            "MET",
            "Copenhagen",
        }
    }
}