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

sv {
    Version{ "1.0" }
    CollationElements {
        Version { "1.0" }
        Sequence { "& Z < \u00E6 , \u00C6 < a\u030A , A\u030A , aa ,aA , A"
        "a , AA< 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 { 
        AE { "F\u00f6renade Arabemiraten" }
        AL { "Albanien" }
        AM { "Armenien" }
        AN { "Nederl\u00e4ndska Antillerna" }
        AS { "Amerikanska Samoa" }
        AT { "\u00d6sterrike" }
        AU { "Australien" } 
        AZ { "Azerbajdzjan" }
        BA { "Bosnien Hercegovina" }
        BE { "Belgien" }
        BG { "Bulgarien" }
        BR { "Brasilien" }
        BY { "Vitryssland" }
        BZ { "Belice" }
        CA { "Kanada" }
        CC { "Coco Islands" }
        CF { "Centralafrika" }
        CG { "Kongo" }
        CH { "Schweiz" }
        CI { "Elfenbenskusten" }
        CM { "Kamerun, republiken" }
        CN { "Kina (folkrepubliken)" }
        CU { "Kuba" }
        CX { "Jul\u00F6n" }
        CY { "Cypern" }
        CZ { "Tjeckien" }
        DE { "Tyskland" }
        DK { "Danmark" }
        DO { "Dominikanska republiken" }
        DZ { "Algeriet" }
        EE { "Estland" } 
        EG { "Egypten" }
        ES { "Spanien" }
        ET { "Etiopien" }
        FR { "Frankrike" }
        GB { "Storbritannien" }
        GR { "Grekland" }
        HR { "Kroatien" }
        HU { "Ungern" }
        ID { "Indonesien" }
        IE { "Irland" }
        IN { "Indien" }
        IS { "Island" }
        IT { "Italien" }
        JO { "Jordanien" }
        KR { "Korea" }
        LA { "LatinAmerika" }
        LB { "Libanon" }
        LI { "Lichtenstein" }
        LT { "Litauen" }
        LU { "Luxemburg" }
        LV { "Lettland" }
        MA { "Marocko" }
        MK { "Makedonien" }
        MX { "Mexiko" }
        NL { "Nederl\u00e4nderna" }
        NO { "Norge" }
        NZ { "Nya Zeeland" }
        PL { "Polen" }
        RO { "Rum\u00e4nien" }
        RU { "Ryssland" }
        SA { "Saudiarabien" }
        SE { "Sverige" }
        SI { "Slovenien" }
        SK { "Slovakien" }
        SP { "Serbien" }
        SY { "Syrien" }
        TN { "Tunisien" }
        TR { "Turkiet" }
        UA { "Ukraina" }
//        US { "USA" }
        YE { "Jemen" }
        ZA { "Sydafrika" }
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    DateTimePatterns { 
        "'kl 'H:mm z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "'den 'd MMMM yyyy",
        "'den 'd MMMM yyyy",
        "yyyy-MMM-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 {
         aa { "afar" }
         ab { "abkhasiska" }
         ae { "avestiska" }
         af { "afrikaans" }
         am { "amhariska" }
         ar { "arabiska" }
         as { "assami" }
         ay { "aymara" }
         az { "azerbajdzjanska" }
         ba { "basjkiriska" }
         be { "vitryska" }
         bg { "bulgariska" }
         bh { "bihari" }
         bi { "bislama" }
         bn { "bengali" }
         bo { "tibetanska" }
         br { "bretonska" }
         bs { "bosniska" }
         ca { "katalanska" }
         ce { "tjetjenska" }
         ch { "chamorro" }
         co { "korsikanska" }
         cs { "tjeckiska" }
         cu { "fornkyrkoslaviska" }
         cv { "tjuvasjiska" }
         cy { "walesiska" }
         da { "danska" }
         de { "tyska" }
         dz { "bhutanesiska" }
         el { "grekiska" }
         en { "engelska" }
         eo { "esperanto" }
         es { "spanska" }
         et { "estniska" }
         eu { "baskiska" }
         fa { "persiska" }
         fi { "finska" }
         fj { "djianska" }
         fo { "f\u00E4r\u00F6iska" }
         fr { "franska" }
         fy { "frisiska" }
         ga { "irl\u00E4ndska" }
         gd { "skotska" }
         gl { "galiciska" }
         gn { "guarani" }
         gu { "gujarati" }
         gv { "manx" }
         ha { "haussa" }
         he { "hebreiska" }
         hi { "hindi" }
         ho { "hirimotu" }
         hr { "kroatiska" }
         hu { "ungerska" }
         hy { "armeniska" }
         hz { "herero" }
         ia { "interlingua" }
         id { "indonesiska" }
         ie { "interlingue" }
         ik { "inupiaq" }
         is { "isl\u00E4ndska" }
         it { "italienska" }
         iu { "inuktitut" }
         ja { "japanska" }
         jw { "javanesiska" }
         ka { "georgiska" }
         ki { "kikuyu" }
         kk { "kazakiska" }
         kl { "gr\u00F6nl\u00E4ndska" }
         km { "kambodjanska" }
         kn { "kanaresiska (kannada)" }
         ko { "koreanska" }
         ks { "kashmiri" }
         ku { "kurdiska" }
         kv { "komi" }
         kw { "corniska" }
         ky { "kirgisiska" }
         la { "latin" }
         lb { "luxemburgska" }
         ln { "lingala" }
         lo { "laotiska" }
         lt { "litauiska" }
         lv { "lettiska" }
         mg { "malagassiska" }
         mh { "marshall" }
         mi { "maori" }
         mk { "makedoniska" }
         ml { "malayalam" }
         mn { "mongoliska" }
         mo { "moldaviska" }
         mr { "marathi" }
         ms { "malajiska" }
         mt { "maltesiska" }
         my { "burmesiska" }
         na { "nauriska" }
         nb { "bokm\u00E5l (norska)" }
         nd { "ndebele (nord)" }
         ne { "nepaliska" }
         ng { "ndonga" }
         nl { "nederl\u00E4ndska" }
         nn { "nynorska" }
         no { "norska" }
         nr { "ndebele (syd)" }
         nv { "navaho" }
         ny { "nyanja" }
         oc { "occitanska" }
         om { "afan oromoo" }
         or { "oriya" }
         os { "ossetiska" }
         pa { "punjabi" }
         pi { "pali" }
         pl { "polska" }
         ps { "pashto" }
         pt { "portugisiska" }
         qu { "quechua" }
         rm { "r\u00E4toromanska" }
         rn { "rundi" }
         ro { "rum\u00E4nska" }
         ru { "ryska" }
         rw { "rwanda" }
         sa { "sanskrit" }
         sc { "sardiska" }
         sd { "sindhi" }
         se { "nordsamiska" }
         sg { "sango" }
         si { "singalesiska" }
         sk { "slovakisk" }
         sl { "slovenska" }
         sm { "samoanska" }
         sn { "shona" }
         so { "somaliska" }
         sq { "albanska" }
         sr { "serbiska" }
         ss { "siswati" }
         st { "sotho" }
         su { "sundanesiska" }
         sv { "svenska" }
         sw { "swahili" }
         ta { "tamil" }
         te { "telugo" }
         tg { "tadjikiska" }
         th { "thail\u00E4ndska" }
         ti { "tigrinya" }
         tk { "turkmeniska" }
         tl { "tagalog" }
         tn { "tswana" }
         to { "tonga" }
         tr { "turkiska" }
         ts { "tsonga" }
         tt { "tatariska" }
         tw { "twi" }
         ty { "tahitiska" }
         ug { "uigriska" }
         uk { "ukrainska" }
         ur { "urdu" }
         uz { "uzbekiska" }
         vi { "vietnamesiska" }
         vo { "volap\u00FCk" }
         wo { "wolof" }
         xh { "xhosa" }
         yi { "jiddisch" }
         yo { "yoruba" }
         za { "zhuang" }
         zh { "kinesiska" }
         zu { "zulu" }
     }
    LocaleID:int { 0x1d }
//    LocaleString { "sv" }
    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.",
    }
//    ShortLanguage { "swe" }
    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="
*/
    }
}
