﻿// ***************************************************************************
// *
// * Copyright (C) 2011 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.59.68"}
    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"}
        }
    }
}
