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

sl {
    Version{"2.0"}
    collations {
      standard { 
        Version { "1.0" }
        Sequence { "& C < c\u030C <<< C\u030C & S < s\u030C <<< S\u030C & Z < z\u030C <<< Z\u030C" }
//      Sequence { "& C < c\u030C <<< C\u030C < c\u0301 <<< C\u0301 & D < \u01F3"
//        " <<< \u01F2 <<< \u01F1 < \u01C6 <<< \u01C5 <<< \u01C4 < \u0111 <<< \u0110 & L < \u0142 <<< "
//        "\u0141 & N < nj <<< nJ <<< Nj <<< NJ & S < s\u030C <<< S\u030C < s\u0301<<< S\u0301 & Z <"
//        " z\u030C <<< Z\u030C < z\u0301 <<< Z\u0301 < z\u0307 <<< Z\u0307 " }
      }
    }
    Countries { 
        Fallback{ "en"}
        AD { "Andora" }
        AE { "Zdru\u017Eeni arabski emirati" }
        AF { "Afganistan" }
        AG { "Antigva in Barbuda" }
        AI { "Angvila" }
        AL { "Albanija" }
        AM { "Armenija" }
        AN { "Nizozemski Antili" }
        //AO { "Angola" }
        AQ { "Antarktika" }
        //AR { "Argentina" }
        AS { "Ameri\u0161ka Samoa" }
        AT { "Avstrija" }
        AU { "Avstralija" }
        //AW { "Aruba" }
        AZ { "Azerbajd\u017Ean" }
        BA { "Bosna in Hercegovina" }
        //BB { "Barbados" }
        BD { "Banglade\u0161" }
        BE { "Belgija" }
        //BF { "Burkina Faso" }
        BG { "Bolgarija" }
        BH { "Bahrajn" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        //BM { "Bermuda" }
        BN { "Brunej" }
        BO { "Bolivija" }
        BR { "Brazilija" }
        BS { "Bahami" }
        BT { "Butan" }
        BV { "Otok Bouvet" }
        BW { "Bocvana" }
        BY { "Belorusija" }
        //BZ { "Belize" }
        CA { "Kanada" }
        CC { "Kokosovi otoki" }
        CD { "Demokrati\u010Dna republika Kongo" }
        CF { "Centralnoafri\u0161ka republika" }
        CG { "Kongo" }
        CH { "\u0160vica" }
        CI { "Slonoko\u0161\u010Dena obala" }
        CK { "Cookovi otoki" }
        CL { "\u010Cile" }
        CM { "Kamerun" }
        CN { "Kitajska" }
        CO { "Kolumbija" }
        CR { "Kostarika" }
        CU { "Kuba" }
        CV { "Kapverdski otoki" }
        CX { "Bo\u017Ei\u010Dni otok" }
        CY { "Ciper" }
        CZ { "\u010Ce\u0161ka" }
        DE { "Nem\u010Dija" }
        DJ { "D\u017Eibuti" }
        DK { "Danska" }
        DM { "Dominika" }
        DO { "Dominikanska republika" }
        DZ { "Al\u017Eirija" }
        EC { "Ekvador" }
        EE { "Estonija" }
        EG { "Egipt" }
        EH { "Zahodna Sahara" }
        ER { "Eritreja" }
        ES { "\u0160panija" }
        ET { "Etiopija" }
        FI { "Finska" }
        FJ { "Fid\u017Ei" }
        FK { "Falklandski (Malvinski) otoki" }    // alternate name { "Falklandski otoki" }
        FM { "Mikronezija" }
        FO { "Fererski otoki" }
        FR { "Francija" }
        //GA { "Gabon" }
        GB { "Velika Britanija" }
        //GD { "Grenada" }
        GE { "Gruzija" }
        GF { "Francoska Gvajana" }
        GH { "Gana" }
        //GI { "Gibraltar" }
        GL { "Grenlandija" }
        GM { "Gambija" }
        GN { "Gvineja" }
        //GP { "Guadeloupe" }
        GQ { "Ekvatorialna Gvineja" }
        GR { "Gr\u010Dija" }
        GS { "Ju\u017Ena Georgija in Ju\u017Eni Sandwich Islands" }
        GT { "Gvatemala" }
        //GU { "Guam" }
        GW { "Gvineja Bissau" }
        GY { "Gvajana" }
        HK { "Kitajska republika Hong Kong" }
        HM { "Heardov otok in McDonaldovi otoki" }
        //HN { "Honduras" }
        HR { "Hrva\u0161ka" }
        //HT { "Haiti" }
        HU { "Mad\u017Earska" }
        ID { "Indonezija" }
        IE { "Irska" }
        IL { "Izrael" }
        IN { "Indija" }
        IO { "Britanska Indija" }
        IQ { "Irak" }
        //IR { "Iran" }
        IS { "Islandija" }
        IT { "Italija" }
        JM { "Jamajka" }
        //JO { "Jordan" }
        JP { "Japonska" }
        KE { "Kenija" }
        KG { "Kirgizistan" }
        KH { "Kambod\u017Ea" }
        //KI { "Kiribati" }
        KM { "Komori" }
        KN { "Saint Kitts in Nevis" }
        KP { "Severna Koreja" }    // alternate name { "Demokrati\u010Dna ljudska republika Koreja" }
        KR { "Ju\u017Ena Koreja" }    // alternate name { "Republika Koreja" }
        KW { "Kuvajt" }
        KY { "Kajmanski otoki" }
        KZ { "Kazahstan" }
        LA { "Ljudska demokrati\u010Dna republika Laos" }
        LB { "Libanon" }
        //LC { "Saint Lucia" }
        //LI { "Liechtenstein" }
        LK { "\u0160rilanka" }
        LR { "Liberija" }
        LS { "Lesoto" }
        LT { "Litva" }
        LU { "Luxemburg" }
        LV { "Latvija" }
        LY { "Libija" }
        MA { "Maroko" }
        MC { "Monako" }
        MD { "Republika Moldova" }
        MG { "Madagaskar" }
        MH { "Marshallovi otoki" }
        MK { "Republika Makedonija" }
        //ML { "Mali" }
        //MM { "Myanmar" }
        MN { "Mongolija" }
        MO { "Kitajska republika Macao" }
        MP { "Severni Marianski otoki" }
        MQ { "Martinik" }
        MR { "Mavretanija" }
        //MS { "Montserrat" }
        //MT { "Malta" }
        //MU { "Mauritius" }
        MV { "Maldivi" }
        MW { "Malavi" }
        MX { "Mehika" }
        MY { "Malezija" }
        MZ { "Mozambik" }
        NA { "Namibija" }
        NC { "Nova Kaledonija" }
        NE { "Nigerija" }
        NF { "Otok Norfolk" }
        NG { "Nigerija" }
        NI { "Nikaragva" }
        NL { "Nizozemska" }
        NO { "Norve\u0161ka" }
        //NP { "Nepal" }
        //NR { "Nauru" }
        //NU { "Niue" }
        NZ { "Nova Zelandija" }
        //OM { "Oman" }
        //PA { "Panama" }
        //PE { "Peru" }
        PF { "Francoska Polinezija" }
        PG { "Papua Nova Gvineja" }
        PH { "Filipini" }
        //PK { "Pakistan" }
        PL { "Poljska" }
        PM { "Saint Pierre in Miquelon" }
        //PN { "Pitcairn" }
        PR { "Portoriko" }
        PS { "Palestinsko ozemlje" }
        PT { "Portugalska" }
        //PW { "Palau" }
        PY { "Paragvaj" }
        QA { "Katar" }
        RE { "Reunion" }
        RO { "Romunija" }
        RU { "Ruska federacija" }
        RW { "Ruanda" }
        SA { "Saudova Arabija" }
        SB { "Salomonovo oto\u010Dje" }
        SC { "Sej\u0161eli" }
        //SD { "Sudan" }
        SE { "\u0160vedska" }
        SG { "Singapur" }
        SH { "Sveta Helena" }
        SI { "Slovenija" }
        SJ { "Svalbard in Jan Mayen" }
        SK { "Slova\u0161ka" }
        //SL { "Sierra Leone" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        SO { "Somalija" }
        SR { "Surinam" }
        ST { "Sao Tome in Principe" }
        SV { "Salvador" }
        SY { "Sirija" }
        SZ { "Svazi" }
        TC { "Oto\u010Dji Turks in Caicos" }
        TD { "\u010Cad" }
        TF { "Francoski zahodni teritorij" }
        //TG { "Togo" }
        TH { "Tajska" }
        TJ { "Tad\u017Eikistan" }
        //TK { "Tokelau" }
        TL { "Vzhodni Timor" }
        //TM { "Turkmenistan" }
        TN { "Tunizija" }
        //TO { "Tonga" }
        TR { "Tur\u010Dija" }
        TT { "Trinidad in Tobago" }
        //TV { "Tuvalu" }
        TW { "Tajvan" }
        TZ { "Tanzanija" }
        UA { "Ukrajina" }
        //UG { "Uganda" }
        UM { "Ameri\u0161ki manj\u0161i oddaljeni otoki" }
        US { "Zdru\u017Eene dr\u017Eave Amerike" }
        UY { "Urugvaj" }
        //UZ { "Uzbekistan" }
        VA { "Vatikan" }
        VC { "Saint Vincent in Grenadine" }
        //VE { "Venezuela" }
        VG { "Britanski Devi\u0161ki otoki" }
        VI { "Ameri\u0161ki Devi\u0161ki otoki" }
        //VN { "Vietnam" }
        //VU { "Vanuatu" }
        WF { "Wallis in Futuna" }
        //WS { "Samoa" }
        YE { "Jemen" }
        //YT { "Mayotte" }
        YU { "Jugoslavija" }
        ZA { "Ju\u017Ena Afrika" }
        ZM { "Zambija" }
        ZW { "Zimbabve" }
    }
    DateTimePatterns { 
        "H:mm:ss z",
        "H:mm:ss z",
        "H:mm:ss",
        "H:mm",
        "EEEE, dd. MMMM yyyy",
        "dd. MMMM yyyy",
        "yyyy.M.d",
        "yy.M.d",
        "{1} {0}",
    }

    DateTimeElements:intvector {
        2,
        1, // "Minimal Days in First Week" is unknown. Root value used instead
    }

    DayAbbreviations { 
        "ned",
        "pon",
        "tor",
        "sre",
        "\u010det",
        "pet",
        "sob",
    }
    DayNames { 
        "nedelja",
        "ponedeljek",
        "torek",
        "sreda",
        "\u010detrtek",
        "petek",
        "sobota",
    }
    Eras { 
        "pr.n.\u0161.",
        "po Kr.",
    }
    Languages { 
        ar { "Arab\u0161\u010Dina" }
        bg { "Bolgar\u0161\u010Dina" }
        cs { "\u010Ce\u0161\u010Dina" }
        da { "Dan\u0161\u010Dina" }
        de { "Nem\u0161\u010Dina" }
        el { "Gr\u0161\u010Dina" }
        en { "Angle\u0161\u010Dina" }
        es { "\u0160pan\u0161\u010Dina" }
        et { "Eston\u0161\u010Dina" }
        fi { "Fin\u0161\u010Dina" }
        fr { "Franco\u0161\u010Dina" }
        he { "Hebrej\u0161\u010Dina" }
        hr { "Hrva\u0161\u010Dina" }
        hu { "Mad\u017Ear\u0161\u010Dina" }
        it { "Italijan\u0161\u010Dina" }
        ja { "Japon\u0161\u010Dina" }
        ko { "Korej\u0161\u010Dina" }
        lt { "Litov\u0161\u010Dina" }
        lv { "Leton\u0161\u010Dina" }
        nl { "Nizozem\u0161\u010Dina" }
        no { "Norve\u0161\u010Dina" }
        pl { "Polj\u0161\u010Dina" }
        pt { "Portugal\u0161\u010Dina" }
        ro { "Romun\u0161\u010Dina" }
        ru { "Ru\u0161\u010Dina" }
        sk { "Slova\u0161\u010Dina" }
        sl { "Sloven\u0161\u010Dina" }
        sv { "\u0160ved\u0161\u010Dina" }
        tr { "Tur\u0161\u010Dina" }
        zh { "Kitaj\u0161\u010Dina" }
        //zh_cn { "Kitaj\u0161\u010Dina (poenostavljena)" }
        //zh_tw { "Kitaj\u0161\u010Dina (tradicionalna)" }
    }
    MonthAbbreviations { 
        "jan",
        "feb",
        "mar",
        "apr",
        "maj",
        "jun",
        "jul",
        "avg",
        "sep",
        "okt",
        "nov",
        "dec",
    }
    MonthNames { 
        "januar",
        "februar",
        "marec",
        "april",
        "maj",
        "junij",
        "julij",
        "avgust",
        "september",
        "oktober",
        "november",
        "december",
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }

    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-p r-v z \u010d \u0161 \u017e]" }

    // Currency display names
    Currencies {
        SIT { "SIT", "SIT" }
    }
}