﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/sl.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/sl.xml
 */
sl{
    AuxExemplarCharacters{
        "[á à ă â å ä ā æ ç ć đ é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ q ú ù ŭ û ü"
        " ū w x y ÿ]"
    }
    ExemplarCharacters{"[a b c č d e f g h i j k l m n o p r s š t u v z ž]"}
    ExemplarCharactersCurrency{"[a b c č d e f g h i j k l ł m n o º p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A B C Č Ć D Đ E F G H I J K L M N O P Q R S Š T U V W X Y Z Ž]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"e"}
                group{"."}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.65.46"}
    calendar{
        gregorian{
            AmPmMarkers{
                "dop.",
                "pop.",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, dd. MMMM y",
                "dd. MMMM y",
                "d. MMM yyyy",
                "d. MM. yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E, d."}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d. MM."}
                MMM{"LLL"}
                MMMEd{"E, d. MMM"}
                MMMd{"d. MMM"}
                Md{"d. M."}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, d. M. y"}
                yMMM{"MMM y"}
                yMMMEd{"E, d. MMM y"}
                yMMMd{"MMM d, y"}
                yMd{"d. M. y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
                yyQ{"Q/yy"}
                yyyyM{"M/yyyy"}
                yyyyMMMM{"MMMM y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "ned.",
                        "pon.",
                        "tor.",
                        "sre.",
                        "čet.",
                        "pet.",
                        "sob.",
                    }
                    wide{
                        "nedelja",
                        "ponedeljek",
                        "torek",
                        "sreda",
                        "četrtek",
                        "petek",
                        "sobota",
                    }
                }
                stand-alone{
                    abbreviated{
                        "ned",
                        "pon",
                        "tor",
                        "sre",
                        "čet",
                        "pet",
                        "sob",
                    }
                    narrow{
                        "n",
                        "p",
                        "t",
                        "s",
                        "č",
                        "p",
                        "s",
                    }
                }
            }
            eras{
                abbreviated{
                    "pr. n. št.",
                    "po Kr.",
                }
                wide{
                    "pred našim štetjem",
                    "naše štetje",
                }
            }
            fields{
                day{
                    dn{"Dan"}
                    relative{
                        "-1"{"Včeraj"}
                        "-2"{"Predvčerajšnjim"}
                        "0"{"Danes"}
                        "1"{"Jutri"}
                        "2"{"Pojutrišnjem"}
                    }
                }
                dayperiod{
                    dn{"Čas dneva"}
                }
                era{
                    dn{"Doba"}
                }
                hour{
                    dn{"Ura"}
                }
                minute{
                    dn{"Minuta"}
                }
                month{
                    dn{"Mesec"}
                    relative{
                        "-1"{"Prejšnji mesec"}
                        "0"{"Ta mesec"}
                        "1"{"Naslednji mesec"}
                    }
                }
                second{
                    dn{"Sekunda"}
                }
                week{
                    dn{"Teden"}
                    relative{
                        "-1"{"Prejšnji teden"}
                        "0"{"Ta teden"}
                        "1"{"Naslednji teden"}
                    }
                }
                weekday{
                    dn{"Dan v tednu"}
                }
                year{
                    dn{"Leto"}
                    relative{
                        "-1"{"Lani"}
                        "0"{"Letos"}
                        "1"{"Naslednje leto"}
                    }
                }
                zone{
                    dn{"Območje"}
                }
            }
            intervalFormats{
                M{
                    M{"M.–M."}
                }
                MEd{
                    M{"E, d. M. – E, d. M."}
                    d{"E, d. – E, d. M."}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E, d. MMM – E, d. MMM"}
                    d{"E, d. – E, d. MMM"}
                }
                MMMd{
                    M{"d. MMM – d. MMM"}
                    d{"d.–d. MMM"}
                }
                Md{
                    M{"d. M. – d. M."}
                    d{"d. – d. M."}
                }
                d{
                    d{"d.–d."}
                }
                fallback{"{0} – {1}"}
                h{
                    a{"h a – h a"}
                    h{"h–h a"}
                }
                hm{
                    a{"h:mm a – h:mm a"}
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h–h a v"}
                }
                y{
                    y{"y–y"}
                }
                yM{
                    M{"M.–M. yy"}
                    y{"M. yy – M. yy"}
                }
                yMEd{
                    M{"E, d. M. – E, d. M. yy"}
                    d{"E, d. – E, d. M. yy"}
                    y{"E, d. M. yy – E, d. M. yy"}
                }
                yMMM{
                    M{"MMM – MMM y"}
                    y{"MMM y – MMM y"}
                }
                yMMMEd{
                    M{"E, d. MMM – E, d. MMM y"}
                    d{"E, d. MMM – E, d. MMM y"}
                    y{"E, d. MMM y – E, d. MMM y"}
                }
                yMMMM{
                    M{"MMMM–MMMM y"}
                    y{"MMMM y – MMMM y"}
                }
                yMMMd{
                    M{"d. MMM – d. MMM y"}
                    d{"d.–d. MMM y"}
                    y{"d. MMM y – d. MMM y"}
                }
                yMd{
                    M{"d. M. – d. M. yy"}
                    d{"d. M. yy – d. M. yy"}
                    y{"d. M. yy – d. M. yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "jan.",
                        "feb.",
                        "mar.",
                        "apr.",
                        "maj",
                        "jun.",
                        "jul.",
                        "avg.",
                        "sep.",
                        "okt.",
                        "nov.",
                        "dec.",
                    }
                    wide{
                        "januar",
                        "februar",
                        "marec",
                        "april",
                        "maj",
                        "junij",
                        "julij",
                        "avgust",
                        "september",
                        "oktober",
                        "november",
                        "december",
                    }
                }
                stand-alone{
                    abbreviated{
                        "jan",
                        "feb",
                        "mar",
                        "apr",
                        "maj",
                        "jun",
                        "jul",
                        "avg",
                        "sep",
                        "okt",
                        "nov",
                        "dec",
                    }
                    narrow{
                        "j",
                        "f",
                        "m",
                        "a",
                        "m",
                        "j",
                        "j",
                        "a",
                        "s",
                        "o",
                        "n",
                        "d",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1. četrtletje",
                        "2. četrtletje",
                        "3. četrtletje",
                        "4. četrtletje",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"‘"}
        alternateQuotationStart{"‚"}
        quotationEnd{"“"}
        quotationStart{"„"}
    }
    listPattern{
        standard{
            2{"{0} in {1}"}
            end{"{0} in {1}"}
        }
    }
    measurementSystemNames{
        UK{"Angleški"}
        US{"imperialni"}
        metric{"metrični"}
    }
    units{
        day{
            few{"{0} dnevi"}
            one{"{0} dan"}
            other{"{0} dni"}
            two{"{0} dni"}
        }
        day-future{
            0{"Čez 0 dni"}
            1{"Čez 1 dan"}
            few{"Čez {0} dni"}
            one{"Čez {0} dan"}
            other{"Čez {0} dni"}
            two{"Čez {0} dni"}
        }
        day-past{
            0{"Pred 0 dnevi"}
            1{"Pred 1 dnevom"}
            few{"Pred {0} dnevi"}
            one{"Pred {0} dnevom"}
            other{"Pred {0} dnevi"}
            two{"Pred {0} dnevoma"}
        }
        hour{
            few{"{0} ure"}
            one{"{0} ura"}
            other{"{0} ur"}
            two{"{0} uri"}
        }
        hour-future{
            0{"Čez 0 h"}
            1{"Čez 1 h"}
            few{"Čez {0} h"}
            one{"Čez {0} h"}
            other{"Čez {0} h"}
            two{"Čez {0} h"}
        }
        hour-past{
            0{"Pred 0 h"}
            1{"Pred 1 h"}
            few{"Pred {0} h"}
            one{"Pred {0} h"}
            other{"Pred {0} h"}
            two{"Pred {0} h"}
        }
        minute{
            few{"{0} minute"}
            one{"{0} minuta"}
            other{"{0} minut"}
            two{"{0} minuti"}
        }
        minute-future{
            0{"Čez 0 min."}
            1{"Čez 1 min."}
            few{"Čez {0} min."}
            one{"Čez {0} min."}
            other{"Čez {0} min."}
            two{"Čez {0} min."}
        }
        minute-past{
            0{"Pred 0 min."}
            1{"Pred 1 min."}
            few{"Pred {0} min."}
            one{"Pred {0} min."}
            other{"Pred {0} min."}
            two{"Pred {0} min."}
        }
        month{
            few{"{0} meseci"}
            one{"{0} mesec"}
            other{"{0} mesecev"}
            two{"{0} meseca"}
        }
        month-future{
            0{"Čez 0 mesecev"}
            1{"Čez 1 mesec"}
            few{"Čez {0} mesece"}
            one{"Čez {0} mesec"}
            other{"Čez {0} mesecev"}
            two{"Čez {0} meseca"}
        }
        month-past{
            0{"Pred 0 meseci"}
            1{"Pred 1 mesecem"}
            few{"Pred {0} meseci"}
            one{"Pred {0} mesecem"}
            other{"Pred {0} meseci"}
            two{"Pred {0} meseci"}
        }
        second{
            few{"{0} sekunde"}
            one{"{0} sekunda"}
            other{"{0} sekund"}
            two{"{0} sekundi"}
        }
        second-future{
            0{"Čez 0 sekund"}
            1{"Čez 1 sekundo"}
            few{"Čez {0} sekunde"}
            one{"Čez {0} sekundo"}
            other{"Čez {0} sekundi"}
            two{"Čez {0} sekundi"}
        }
        second-past{
            0{"Pred 0 sekundami"}
            1{"Pred 1 sekundo"}
            few{"Pred {0} sekundami"}
            one{"Pred {0} sekundo"}
            other{"Pred {0} sekundami"}
            two{"Pred {0} sekundama"}
        }
        week{
            few{"{0} tedni"}
            one{"{0} teden"}
            other{"{0} tednov"}
            two{"{0} tedna"}
        }
        week-future{
            0{"Čez 0 tednov"}
            1{"Čez 1 teden"}
            few{"Čez {0} tedne"}
            one{"Čez {0} teden"}
            other{"Čez {0} tednov"}
            two{"Čez {0} tedna"}
        }
        week-past{
            0{"Pred 0 tedni"}
            1{"Pred 1 tednom"}
            few{"Pred {0} tedni"}
            one{"Pred {0} tednom"}
            other{"Pred {0} tedni"}
            two{"Pred {0} tednoma"}
        }
        year{
            few{"{0} leta"}
            one{"{0} leto"}
            other{"{0} let"}
            two{"{0} leti"}
        }
        year-future{
            0{"Čez 0 let"}
            1{"Čez 1 leto"}
            few{"Čez {0} leta"}
            one{"Čez {0} leto"}
            other{"Čez {0} let"}
            two{"Čez {0} leti"}
        }
        year-past{
            0{"Pred 0 leti"}
            1{"Pred 1 letom"}
            few{"Pred {0} leti"}
            one{"Pred {0} letom"}
            other{"Pred {0} leti"}
            two{"Pred {0} leti"}
        }
    }
    unitsShort{
        day{
            few{"{0} d"}
            one{"{0} d"}
            other{"{0} d"}
            two{"{0} d"}
        }
        hour{
            few{"{0} h"}
            one{"{0} h"}
            other{"{0} h"}
            two{"{0} h"}
        }
        minute{
            few{"{0} min"}
            one{"{0} min"}
            other{"{0} min"}
            two{"{0} min"}
        }
        month{
            few{"{0} m"}
            one{"{0} m"}
            other{"{0} m"}
            two{"{0} m"}
        }
        second{
            few{"{0} s"}
            one{"{0} s"}
            other{"{0} s"}
            two{"{0} s"}
        }
        week{
            few{"{0} t"}
            one{"{0} t"}
            other{"{0} t"}
            two{"{0} t"}
        }
        year{
            few{"{0} l"}
            one{"{0} l"}
            other{"{0} l"}
            two{"{0} l"}
        }
    }
}
