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

sv {
    Version{ "2.0" }
    AmPmMarkers { 
        "fm",
        "em",
    }
    collations {
      standard { 
        Version { "2.0" }
        Sequence {
            "&D<<đ<<<Đ<<ð<<<Ð"
            "&t<<<þ/h"
            "&T<<<Þ/H"
            "&v<<<w"
            "&V<<<W"
            "&Y<<ü<<<Ü<<ű<<<Ű"
            "&[before 1]ʒ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę"
            "<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"
        }
      }
    }
    Countries { 
        Fallback{ "en"}
        // AD {"Andorra"}
        AE {"F\u00F6renade Arabemiraten"}
        AF {"Afganistan"}
        AG {"Antigua och Barbuda"}
        // AI {"Anguilla"}
        AL {"Albanien"}
        AM {"Armenien"}
        AN {"Nederl\u00E4ndska Antillerna"}
        // AO {"Angola"}
        AQ {"Antarktis"}
        // AR {"Argentina"}
        AS {"Amerikanska Samoa"}
        AT {"\u00D6sterrike"}
        AU {"Australien"}
        //AW {"Aruba"}
        AZ {"Azerbajdzjan"}
        BA {"Bosnien och Hercegovina"}
        // BB {"Barbados"}
        // BD {"Bangladesh"}
        BE {"Belgien"}
        // BF {"Burkina Faso"}
        BG {"Bulgarien"}
        // BH {"Bahrain"}
        // BI {"Burundi"}
        // BJ {"Benin"}
        // BM {"Bermuda"}
        // BN {"Brunei"}
        // BO {"Bolivia"}
        BR {"Brasilien"}
        // BS {"Bahamas"}
        // BT {"Bhutan"}
        BV { "Bouvet\u00F6n" }
        // BW {"Botswana"}
        BY {"Vitryssland"}
        // BZ {"Belize"}
        CA {"Kanada"}
        CC {"Kokos\u00F6arna (Keeling\u00F6arna)"}
        CD {"Demokratiska republiken Kongo"}
        CF {"Centralafrikanska republiken"}
        CG {"Kongo"}
        CH {"Schweiz"}
        CI {"Elfenbenskusten"}
        CK {"Cook\u00F6arna"}
        // CL {"Chile"}
        CM {"Kamerun"}
        CN {"Kina"}
        // CO {"Colombia"}
        // CR {"Costa Rica"}
        CU {"Kuba"}
        //CV {"Cap Verde"} // Old value
        CV {"Kap Verde"}
        CX {"Jul\u00F6n"}
        CY {"Cypern"}
        CZ {"Tjeckien"}
        DE {"Tyskland"}
        // DJ {"Djibouti"}
        DK {"Danmark"}
        // DM {"Dominica"}
        DO {"Dominikanska republiken"}
        DZ {"Algeriet"}
        // EC {"Ecuador"}
        EE {"Estland"}
        EG {"Egypten"}
        EH {"V\u00E4stra Sahara"}
        // ER {"Eritrea"}
        ES {"Spanien"}
        ET {"Etiopien"}
        // FI {"Finland"}
        // FJ {"Fiji"}
        FK {"Falklands\u00F6arna"}
        FM {"Mikronesien"}
        FO {"F\u00E4r\u00F6arna"}
        FR {"Frankrike"}
        // GA {"Gabon"}
        GB {"Storbritannien"}
        // GD {"Grenada"}
        GE {"Georgien"}
        GF {"Franska Guyana"}
        // GH {"Ghana"}
        // GI {"Gibraltar"}
        GL {"Gr\u00F6nland"}
        // GM {"Gambia"}
        // GN {"Guinea"}
        GP {"Guadelope"}
        GQ {"Ekvatorialguinea"}
        GR {"Grekland"}
        GS { "Sydgeorgien och S\u00F6dra Sandwich\u00F6arna" }
        // GT {"Guatemala"}
        // GU {"Guam"}
        // GW {"Guinea-Bissau"}
        // GY {"Guyana"}
        HK { "Hongkong (Kina)" }
        HM { "Heard- och McDonald\u00F6arna" }
        // HN {"Honduras"}
        HR {"Kroatien"}
        // HT {"Haiti"}
        HU {"Ungern"}
        ID {"Indonesien"}
        IE {"Irland"}
        // IL {"Israel"}
        IN {"Indien"}
        IO {"Brittiska Indiska ocean\u00F6arna"}
        IQ {"Irak"}
        // IR {"Iran"}
        IS {"Island"}
        IT {"Italien"}
        // JM {"Jamaica"}
        JO {"Jordanien"}
        // JP {"Japan"}
        // KE {"Kenya"}
        KG {"Kirgisistan"}
        KH {"Kambodja"}
        // KI {"Kiribati"}
        KM {"Komorerna"}
        KN {"S:t Christopher och Nevis"}
        KP {"Nordkorea"}    // alternate name { "Demokratiska folkrepubliken Korea" }
        KR {"Sydkorea"}    // alternate name { "Republiken Korea" }
        // KW {"Kuwait"}
        KY {"Kajman\u00F6arna"}
        KZ {"Kazachstan"}
        // LA {"Laos"}
        LB {"Libanon"}
        LC {"S:t Lucia"}
        // LI {"Liechtenstein"}
        // LK {"Sri Lanka"}
        // LR {"Liberia"}
        // LS {"Lesotho"}
        LT {"Litauen"}
        LU {"Luxemburg"}
        LV {"Lettland"}
        LY {"Libyen"}
        MA {"Marocko"}
        // MC {"Monaco"}
        MD {"Moldavien"}
        MG {"Madagaskar"}
        MH {"Marshall\u00F6arna"}
        MK {"Makedonien"}
        // ML {"Mali"}
        // MM {"Myanmar"}
        MN {"Mongoliet"}
        // MO {"Macau"}
        MP {"Nordmarianerna"}
        // MQ {"Martinique"}
        MR {"Mauretanien"}
        // MS {"Montserrat"}
        // MT {"Malta"}
        // MU {"Mauritius"}
        MV {"Maldiverna"}
        // MW {"Malawi"}
        MX {"Mexiko"}
        // MY {"Malaysia"}
        MZ {"Mo\u00E7ambique"}
        // NA {"Namibia"}
        NC {"Nya Kaledonien"}
        // NE {"Niger"}
        NF {"Norfolk\u00F6n"}
        // NG {"Nigeria"}
        // NI {"Nicaragua"}
        NL {"Nederl\u00E4nderna"}
        NO {"Norge"}
        // NP {"Nepal"}
        // NR {"Nauru"}
        NU { "Niue\u00F6n" }
        NZ {"Nya Zeeland"}
        // OM {"Oman"}
        // PA {"Panama"}
        // PE {"Peru"}
        PF {"Franska Polynesien"}
        PG {"Papua Nya Guinea"}
        PH {"Filippinerna"}
        // PK {"Pakistan"}
        PL {"Polen"}
        PM {"S:t Pierre och Miquelon"}
        // PN {"Pitcairn"}
        // PR {"Puerto Rico"}
        PS {"Palestinska territoriet"}
        // PT {"Portugal"}
        // PW { "Palau" }
        // PY {"Paraguay"}
        // QA {"Qatar"}
        // RE {"R\u00E9union"}
        RO {"Rum\u00E4nien"}
        RU {"Ryssland"}
        // RW {"Rwanda"}
        SA {"Saudi-Arabien"}
        SB {"Salomon\u00F6arna"}
        SC {"Seychellerna"}
        // SD {"Sudan"}
        SE {"Sverige"}
        // SG {"Singapore"}
        SH {"S:t Helena"}
        SI {"Slovenien"}
        SJ {"Svalbard och Jan Mayen"}
        SK {"Slovakien"}
        // SL {"Sierra Leone"}
        // SM {"San Marino"}
        // SN {"Senegal"}
        // SO {"Somalia"}
        SR {"Surinam"}
        ST {"S\u00E3o Tom\u00E9 och Pr\u00EDncipe"}
        // SV {"El Salvador"}
        SY {"Syrien"}
        // SZ {"Swaziland"}
        TC {"Turks- och Caicos\u00F6arna"}
        TD {"Tchad"}
        TF { "Franska Sydterritorierna" }
        // TG {"Togo"}
        // TH {"Thailand"}
        TJ {"Tadzjikistan"}
        TK { "Tokelau\u00F6arna" }
        TL {"\u00D6sttimor"}
        // TM {"Turkmenistan"}
        TN {"Tunisien"}
        // TO {"Tonga"}
        TR {"Turkiet"}
        TT {"Trinidad och Tobago"}
        // TV {"Tuvalu"}
        // TW {"Taiwan"}
        // TZ {"Tanzania"}
        UA {"Ukraina"}
        // UG {"Uganda"}
        UM { "Sm\u00E5, avl\u00E4gset bel\u00E4gna \u00F6ar som tillh\u00F6r F\u00F6renta staterna" }
        US { "Amerikas F\u00F6renta Stater" }
        // UY {"Uruguay"}
        // UZ {"Uzbekistan"}
        VA {"Vatikanstaten"}
        VC {"S:t Vincent och Grenadinerna"}
        // VE {"Venezuela"}
        VG {"Brittiska Jungfru\u00F6arna"}
        VI {"Amerikanska Jungfru\u00F6arna"}
        // VN {"Vietnam"}
        // VU {"Vanuatu"}
        WF { "Wallis och Futuna\u00F6arna" }
        // WS {"Samoa"}
        YE {"Jemen"}
        // YT {"Mayotte"}
        YU {"Jugoslavien"}
        ZA {"Sydafrika"}
        // ZM {"Zambia"}
        // ZW {"Zimbabwe"}
        // \u00C5L        {"\u00C5land"}
    }
    Currencies {
        SEK { "kr", "SEK" }
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    DateTimePatterns { 
        "'kl. 'HH.mm.ss z",
        "HH.mm.ss z",
        "HH.mm.ss",
        "HH.mm",
        "'den 'd MMMM yyyy",
        "'den 'd MMM yyyy",
        "yyyy-MM-dd",
        "yyyy-MM-dd",
        "{1} {0}",
    }
    DayAbbreviations { 
        "s\u00F6",
        "m\u00E5",
        "ti",
        "on",
        "to",
        "fr",
        "l\u00F6",
    }
    DayNames { 
        "s\u00F6ndag",
        "m\u00E5ndag",
        "tisdag",
        "onsdag",
        "torsdag",
        "fredag",
        "l\u00F6rdag",
    }
    Eras { 
        "f.Kr.",
        "e.Kr.",
    }

    Languages {
        aa   {"afar"}
        ab   {"abkhaziska"}
        ace  {"achinese"}
        ach  {"acholi"}
        ada  {"adangme"}
        ae   {"avestiska"}
        af   {"afrikaans"}
        ak   {"akan"}
        akk  {"akkadiska"}
        ale  {"aleutiska"}
        am   {"amhariska"}
        ar   {"arabiska"}
        arc  {"arameiska"}
        arn  {"araukanska"}
        arp  {"arapaho"}
        arw  {"arawakiska"}
        as   {"assami"}
        ast  {"asturiska"}
        av   {"avariska"}
        awa  {"awadhi"}
        ay   {"aymara"}
        az   {"azerbadzjanska"}
        ba   {"basjkiriska"}
        bad  {"banda"}
        bal  {"baluchi"}
        bam  {"bambara"}
        ban  {"balinesiska"}
        bas  {"basa"}
        be   {"vitryska"}
        bej  {"beyja"}
        bem  {"bemba"}
        bg   {"bulgariska"}
        bh   {"bihari"}
        bho  {"bhojpuri"}
        bi   {"bislama"}
        bik  {"bikol"}
        bin  {"bini"}
        bla  {"siksika"}
        bn   {"bengali"}
        bo   {"tibetanska"}
        br   {"bretonska"}
        bra  {"braj"}
        bs   {"bosniska"}
        btk  {"batak"}
        bua  {"buriat"}
        bug  {"buginesiska"}
        ca   {"katalanska"}
        cad  {"caddo"}
        car  {"karibiska"}
        ce   {"tjetjenska"}
        ceb  {"cebuano"}
        ch   {"chamorro"}
        chb  {"chibcha"}
        chg  {"chagatai"}
        chk  {"chuukesiska"}
        chm  {"mari"}
        chn  {"chinook"}
        cho  {"choctaw"}
        chr  {"cherokesiska"}
        chy  {"cheyenne"}
        co   {"korsiska"}
        cop  {"koptiska"}
        cr   {"cree"}
        cs   {"tjeckiska"}
        cv   {"tjuvasjiska"}
        cy   {"walesiska"}
        da   {"danska"}
        dak  {"dakota"}
        day  {"dayak"}
        de   {"tyska"}
        del  {"delaware"}
        dgr  {"dogrib"}
        din  {"dinka"}
        doi  {"dogri"}
        dua  {"duala"}
        dv   {"maldiviska"}
        dyu  {"dyula"}
        dz   {"dzongkha"}
        ee   {"ewe"}
        efi  {"efik"}
        eka  {"ekajuk"}
        el   {"grekiska"}
        elx  {"elamitiska"}
        en   {"engelska"}
        eo   {"esperanto"}
        es   {"spanska"}
        et   {"estniska"}
        eu   {"baskiska"}
        ewo  {"ewondo"}
        fa   {"farsi"}
        fan  {"fang"}
        fat  {"fanti"}
        ff   {"fulani"}
        fi   {"finska"}
        fj   {"fidjianska"}
        fo   {"f\u00E4r\u00F6iska"}
        // fon  {"fon"}
        fr   {"franska"}
        fur  {"friuilian"}
        fy   {"frisiska"}
        ga   {"irl\u00E4ndsk gaeliska"}
        gaa  {"g\u00E0"}
        gay  {"gayo"}
        gba  {"gbaya"}
        gd   {"skotsk gaeliska"}
        gil  {"gilbertesiska; kiribati"}
        gl   {"galiciska"}
        gn   {"guaran\u00ED"}
        gon  {"gondi"}
        gor  {"gorontalo"}
        got  {"gotiska"}
        grb  {"grebo"}
        gu   {"gujarati"}
        gv   {"manx gaeliska"}
        gwi  {"gwich'in"}
        ha   {"haussa"}
        hai  {"haida"}
        haw  {"hawaiiska"}
        he   {"hebreiska"}
        hi   {"hindi"}
        hil  {"hiligaynon"}
        him  {"himachali"}
        hmn  {"hmong"}
        ho   {"hiri motu"}
        hr   {"kroatiska"}
        hu   {"ungerska"}
        hup  {"hupa"}
        hy   {"armeniska"}
        hz   {"herero"}
        iba  {"iban"}
        id   {"indonesiska"}
        ig   {"ibo"}
        ii   {"yi"}
        //ijo  {"ijo"}
        ik   {"inupiaq"}
        ilo  {"iloko"}
        is   {"isl\u00E4ndska"}
        it   {"italienska"}
        iu   {"inuktitut"}
        ja   {"japanska"}
        jv   {"javanska"}
        ka   {"georgiska"}
        kaa  {"karakalpakiska"}
        kab  {"kabyliska"}
        kac  {"kachin"}
        kam  {"kamba"}
        kar  {"karen"}
        kaw  {"kawi"}
        kg   {"kikongo"}
        kha  {"khasi"}
        kho  {"sakiska"}
        ki   {"kikuyu"}
        kj   {"kuanyama"}
        kk   {"kazakiska"}
        kl   {"gr\u00F6nl\u00E4ndska"}
        km   {"kambodjanska; khmer"}
        kmb  {"kinbundu"}
        kn   {"kanaresiska; kannada"}
        ko   {"koreanska"}
        kok  {"konkani"}
        kos  {"kosreanska"}
        kpe  {"kpelle"}
        kr   {"kanuri"}
        kro  {"kru"}
        kru  {"kurukh"}
        ks   {"kashmiri"}
        ku   {"kurdiska"}
        kum  {"kumyk"}
        kut  {"kutenai"}
        kv   {"kome"}
        kw   {"korniska"}
        ky   {"kirgisiska"}
        la   {"latin"}
        lah  {"lahnda"}
        lam  {"lamba"}
        lb   {"luxemburgiska"}
        lez  {"lezghien"}
        lg   {"luganda"}
        li   {"limburgiska"}
        ln   {"lingala"}
        lo   {"laotiska"}
        lol  {"lolo; mongo"}
        loz  {"lozi"}
        lt   {"litauiska"}
        lu   {"luba-katanga"}
        lua  {"luba-lulua"}
        lui  {"luise\u00F1o"}
        lun  {"lunda"}
        //luo  {"luo"}
        lus  {"lushai"}
        lv   {"lettiska"}
        mad  {"madurese"}
        mag  {"magahi"}
        mai  {"maithili"}
        mak  {"makasar"}
        man  {"mande"}
        mas  {"massajiska"}
        mdr  {"mandar"}
        men  {"mende"}
        mg   {"malagassiska"}
        mh   {"marshalliska"}
        mi   {"maori"}
        mic  {"mic-mac"}
        min  {"minangkabau"}
        mk   {"makedonska"}
        ml   {"malayalam"}
        mn   {"mongoliska"}
        mnc  {"manchu"}
        mni  {"manipuri"}
        mo   {"moldaviska"}
        moh  {"mohawk"}
        mos  {"mossi"}
        mr   {"marathi"}
        ms   {"malajiska"}
        mt   {"maltesiska"}
        mus  {"muskogee"}
        mwr  {"marwari"}
        my   {"burmanska"}
        na   {"nauru"}
        nah  {"nahuatl; aztekiska"}
        nap  {"napolitanska"}
        nb   {"norskt bokm\u00E5l"}
        nd   {"nord\u00ADndebele"}
        ne   {"nepali"}
        new  {"newari"}
        ng   {"ndonga"}
        nia  {"nias"}
        niu  {"niuean"}
        nl   {"nederl\u00E4ndska"}
        nn   {"ny\u00ADnorsk"}
        no   {"norska"}
        nr   {"syd\u00ADndebele"}
        nso  {"nord\u00ADsotho"}
        nv   {"navaho"}
        ny   {"nyanja"}
        nym  {"nyamwezi"}
        nyn  {"nyankole"}
        nyo  {"nyoro"}
        nzi  {"nzima"}
        oc   {"provensalska"}
        oj   {"odjibwa; chippewa"}
        om   {"oromo"}
        or   {"oriya"}
        os   {"ossetiska"}
        osa  {"osage"}
        pa   {"panjabi"}
        pag  {"pangasinan"}
        pam  {"pampanga"}
        pap  {"papiamento"}
        pau  {"palauan"}
        phn  {"kananeiska; feniciska"}
        pi   {"pali"}
        pl   {"polska"}
        pon  {"ponape"}
        ps   {"pashto; afghanska"}
        pt   {"portugisiska"}
        qu   {"quechua"}
        raj  {"rajasthani"}
        rap  {"rapanui"}
        rar  {"rarotongan"}
        rm   {"r\u00E4to\u00ADromanska"}
        rn   {"rundi"}
        ro   {"rum\u00E4nska"}
        rom  {"romani"}
        ru   {"ryska"}
        rw   {"rwanda; kinjarwanda"}
        sa   {"sanskrit"}
        sad  {"sandawe"}
        sah  {"jakutiska"}
        sam  {"samaritanska"}
        sas  {"sasak"}
        sat  {"santali"}
        sc   {"sardiska"}
        sco  {"skotska"}
        sd   {"sindhi"}
        se   {"nord\u00ADsamiska"}
        sel  {"selkup"}
        sg   {"sango"}
        sh   {"serbokroatiska"}
        shn  {"shan"}
        si   {"singalesiska"}
        sid  {"sidamo"}
        sk   {"slovakiska"}
        sl   {"slovenska"}
        sm   {"samoanska"}
        // sma  {"syd\u00ADsamiska"}
        // smj  {"lule\u00ADsamiska"}
        // smn  {"enare\u00ADsamiska"}
        // sms  {"skolt\u00ADsamiska"}
        sn   {"shona; manshona"}
        snk  {"soninke"}
        so   {"somali"}
        sog  {"sogdiska"}
        son  {"songhai"}
        sq   {"albanska"}
        sr   {"serbiska"}
        srr  {"serer"}
        ss   {"swati"}
        st   {"syd\u00ADsotho"}
        su   {"sundanesiska"}
        suk  {"sukuma"}
        sus  {"susu"}
        sux  {"sumeriska"}
        sv   {"svenska"}
        sw   {"swahili"}
        syr  {"syriska"}
        ta   {"tamil"}
        te   {"telugu"}
        tem  {"temne"}
        ter  {"tereno"}
        tet  {"tetum"}
        tg   {"tadzjikiska"}
        th   {"thail\u00e4ndska"}
        ti   {"tigrinja"}
        tig  {"tigr\u00E9"}
        tiv  {"tivi"}
        tk   {"turkmeniska"}
        tkl  {"tokelau"}
        tl   {"tagalog"}
        tli  {"tlingit"}
        tmh  {"tamashek"}
        tn   {"tswana"}
        to   {"tonga"}
        tog  {"tonga-Nyasa"}
        tpi  {"tok pisin"}
        tr   {"turkiska"}
        ts   {"tsonga"}
        tsi  {"tsimshian"}
        tt   {"tatariska"}
        tum  {"tumbuka"}
        tvl  {"tuvaluan"}
        tw   {"twi"}
        ty   {"tahitiska"}
        tyv  {"tuviniska"}
        ug   {"uiguriska"}
        uga  {"ugaritiska"}
        uk   {"ukrainska"}
        umb  {"umbundu"}
        ur   {"urdu"}
        uz   {"uzbekiska"}
        //vai  {"vai"}
        ve   {"venda"}
        vi   {"vietnamesiska"}
        vot  {"votiska"}
        wa   {"walloon"}
        wal  {"walamo"}
        war  {"waray"}
        was  {"washo"}
        wo   {"wolof"}
        xh   {"xhosa"}
        //yao  {"yao"}
        //yap  {"yap"}
        yi   {"jiddisch"}
        yo   {"yoruba"}
        za   {"zhuang"}
        zap  {"zapotek"}
        zen  {"zenaga"}
        zh   {"kinesiska"}
        znd  {"zand\u00E9"}
        zu   {"zulu"}
        zun  {"zu\u00F1i"}
    }
    MonthAbbreviations { 
        "jan",
        "feb",
        "mar",
        "apr",
        "maj",
        "jun",
        "jul",
        "aug",
        "sep",
        "okt",
        "nov",
        "dec",
    }
    MonthNames { 
        "januari",
        "februari",
        "mars",
        "april",
        "maj",
        "juni",
        "juli",
        "augusti",
        "september",
        "oktober",
        "november",
        "december",
    }
    NumberElements { 
        ",",
        "\u00A0",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z \u00e4 \u00f6 \u00e5 \u00e1 \u00e9 \u00eb \u00fc]" }
    
    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

    // Spellout rules for Swedish.
    // Thanks to Kent Karlsson for cleaning up these rules.
    // (rapport inskickad till ICU 2001-11-03; ny version inskickad till Doug Felt 2001-11-07)

    SpelloutRules {
      "%year:\n"
          "=%neutrum=;\n"
          "1000>: <%neutrum<hundra[\u00ad>>];\n"
          "10,000: =%neutrum=;\n"
          // the same as default except we change the one's digit, wish there were a better way
      "%neutrum:\n"
            "-x: minus >>;\n"
            "x.x: << komma >>;\n"
            "noll; ett; tv\u00e5; tre; fyra; fem; sex; sju; \u00e5tta; nio;\n"
            "tio; elva; tolv; tretton; fjorton; femton; sexton; sjutton; arton; nitton;\n"
            "20: tjugo[>>];\n"
            "30: trettio[>>];\n"
            "40: fyrtio[>>];\n"
            "50: femtio[>>];\n"
            "60: sextio[>>];\n"
            "70: sjuttio[>>];\n"
            "80: \u00e5ttio[>>];\n"
            "90: nittio[>>];\n"
            "100: <<hundra[\u00ad>>];\n"
            "1000: ettusen[ >>];\n"
            "2000: <%default<\u00adtusen[ >>];\n"
            "1,000,000: en miljon[ >>];\n"
            "2,000,000: <%default< miljoner[ >>];\n"
            "1,000,000,000: en miljard[ >>];\n"
            "2,000,000,000: <%default< miljarder[ >>];\n"
            "1,000,000,000,000: en biljon[ >>];\n"
            "2,000,000,000,000: <%default< biljoner[ >>];\n"
            "1,000,000,000,000,000: en triljon[ >>];\n"
            "2,000,000,000,000,000: <%default< triljoner[ >>];\n"
            "1,000,000,000,000,000,000: =#,##0=;\n"
      "%default:\n"
            " -x: minus >>;\n"
            "x.x: << komma >>;\n"
            "noll; en; tv\u00e5; tre; fyra; fem; sex; sju; \u00e5tta; nio;\n"
            "tio; elva; tolv; tretton; fjorton; femton; sexton; sjutton; arton; nitton;\n"
            "20: tjugo[>>];\n"
            "30: trettio[>>];\n"
            "40: fyrtio[>>];\n"
            "50: femtio[>>];\n"
            "60: sextio[>>];\n"
            "70: sjuttio[>>];\n"
            "80: \u00e5ttio[>>];\n"
            "90: nittio[>>];\n"
            "100: etthundra[\u00ad>>];\n"
            "200: <<hundra[\u00ad>>];\n"
            "1000: ettusen[ >>];\n"
            "2000: <<\u00adtusen[ >>];\n"
            "1,000,000: en miljon[ >>];\n"
            "2,000,000: << miljoner[ >>];\n"
            "1,000,000,000: en miljard[ >>];\n"
            "2,000,000,000: << miljarder[ >>];\n"
            "1,000,000,000,000: en biljon[ >>];\n"
            "2,000,000,000,000: << biljoner[ >>];\n"
            "1,000,000,000,000,000: en triljon[ >>];\n"
            "2,000,000,000,000,000: << triljoner[ >>];\n"
            "1,000,000,000,000,000,000: =#,##0=;\n" 
/* 
 * Current (java) implementation can't handle these magnitudes
            "1,000,000,000,000,000,000: en triljard[ >>];\n"
            "2,000,000,000,000,000,000: << triljarder[ >>];\n"
 * Current (c++) implmenatation can't handle these magnitudes
            "1,000,000,000,000,000,000,000: en kvartiljon[ >>];\n"
            "2,000,000,000,000,000,000,000: << kvartiljoner[ >>];\n"
            "1,000,000,000,000,000,000,000,000: en kvartiljard[ >>];\n"
            "2,000,000,000,000,000,000,000,000: << kvartiljarder[ >>];\n"
            "1,000,000,000,000,000,000,000,000,000: en kvintiljon[ >>];\n"
            "2,000,000,000,000,000,000,000,000,000: << kvintiljoner[ >>];\n"
            "1,000,000,000,000,000,000,000,000,000,000: en kvintiljard[ >>];\n"
            "2,000,000,000,000,000,000,000,000,000,000: << kvintiljarder[ >>];\n"
            "1,000,000,000,000,000,000,000,000,000,000,000: en sextiljon[ >>];\n"
            "2,000,000,000,000,000,000,000,000,000,000,000: << sextiljoner[ >>];\n"
            "1,000,000,000,000,000,000,000,000,000,000,000,000: en sextiljard[ >>];\n"
            "2,000,000,000,000,000,000,000,000,000,000,000,000: << sextiljarder[ >>];\n"
            "1,000,000,000,000,000,000,000,000,000,000,000,000,000: =#,##0="
*/
    }
    Keys{
         collation { "Sortera" }
         calendar  { "Kalendar" }
         currency  { "Valuta"}
    }
    Types{
        collation{
            traditional { "Traditionell Sortera" }
        }
        calendar{
            traditional { "Traditionell Kalendar" }
        }
    }
    Variants{
        REVISED { "Reviderad" }
    }
/*
    zoneStrings { 
        {
            "Europe/Stockholm",
            "Central European Time",
            "MET",
            "Central European Time (DST)",
            "MET",
            "Stockholm",
        }
    }
*/
}

