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

sv {
    Version{ "2.0" }
    AmPmMarkers { 
        "fm",
        "em",
    }
    CollationElements {
        Version { "1.1" }
        Sequence { "& Z < a\u030A <<< A\u030A < a\u0308 <<< A\u0308 < o\u0308 <<< O\u0308"
            "<< u\u030B <<< U\u030B < o\u030B <<< O\u030B << \u00F8 <<< \u00D8"
            "& V <<< w <<< W & Y<<< u\u0308 <<< U\u0308"
        }
    }
    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"}
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    DateTimePatterns { 
        "'kl. 'H.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",
    }

    Languages {
        Fallback{ "en"}
        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; kalaallisut"}
        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; holl\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; galla"}
        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"}
        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\u00E4nska"}
        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",
        ",",
        "+",
    }
    Eras { 
        "f.Kr.",
        "e.Kr.",
    }
    zoneStrings { 
        {
            "Europe/Stockholm",
            "Central European Time",
            "MET",
            "Central European Time (DST)",
            "MET",
            "Stockholm",
        }
    }
    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="
*/
    }

    // Currency display names
    Currencies {
        SEK { "kr", "SEK" }
    }
}