﻿// ***************************************************************************
// *
// * 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/sr_Latn.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/sr_Latn.xml
 */
sr_Latn{
    %%Parent{"root"}
    AuxExemplarCharacters{"[q w x y]"}
    ExemplarCharacters{"[a b c č ć d đ {dž} e f g h i j k l {lj} m n {nj} o p r s š t u v z ž]"}
    LocaleScript{
        "Latn",
    }
    Version{"2.0.53.45"}
    calendar{
        gregorian{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
            DateTimePatterns{
                "HH.mm.ss zzzz",
                "HH.mm.ss z",
                "HH.mm.ss",
                "HH.mm",
                "EEEE, dd. MMMM y.",
                "dd. MMMM y.",
                "dd.MM.y.",
                "d.M.yy.",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"d EEE"}
                Hm{"HH.mm"}
                Hms{"HH.mm.ss"}
                yMMM{"y MMM"}
                yQQQ{"y QQQ"}
            }
            dayNames{
                format{
                    abbreviated{
                        "ned",
                        "pon",
                        "uto",
                        "sre",
                        "čet",
                        "pet",
                        "sub",
                    }
                    wide{
                        "nedelja",
                        "ponedeljak",
                        "utorak",
                        "sreda",
                        "četvrtak",
                        "petak",
                        "subota",
                    }
                }
                stand-alone{
                    narrow{
                        "n",
                        "p",
                        "u",
                        "s",
                        "č",
                        "p",
                        "s",
                    }
                }
            }
            eras{
                abbreviated{
                    "p. n. e.",
                    "n. e",
                }
                wide{
                    "Pre nove ere",
                    "Nove ere",
                }
            }
            fields{
                day{
                    dn{"dan"}
                    relative{
                        "-1"{"juče"}
                        "-2"{"prekjuče"}
                        "-3"{"pre tri dana"}
                        "0"{"danas"}
                        "1"{"sutra"}
                        "2"{"prekosutra"}
                        "3"{"za tri dana"}
                    }
                }
                dayperiod{
                    dn{"pre podne/ popodne"}
                }
                era{
                    dn{"era"}
                }
                hour{
                    dn{"čas"}
                }
                minute{
                    dn{"minut"}
                }
                month{
                    dn{"mesec"}
                }
                second{
                    dn{"sekund"}
                }
                week{
                    dn{"nedelja"}
                }
                weekday{
                    dn{"dan u nedelji"}
                }
                year{
                    dn{"godina"}
                }
                zone{
                    dn{"zona"}
                }
            }
            intervalFormats{
                yM{
                    M{"M.yy - M.yy"}
                    y{"M.yy - M.yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "jan",
                        "feb",
                        "mar",
                        "apr",
                        "maj",
                        "jun",
                        "jul",
                        "avg",
                        "sep",
                        "okt",
                        "nov",
                        "dec",
                    }
                    wide{
                        "januar",
                        "februar",
                        "mart",
                        "april",
                        "maj",
                        "jun",
                        "jul",
                        "avgust",
                        "septembar",
                        "oktobar",
                        "novembar",
                        "decembar",
                    }
                }
                stand-alone{
                    narrow{
                        "j",
                        "f",
                        "m",
                        "a",
                        "m",
                        "j",
                        "j",
                        "a",
                        "s",
                        "o",
                        "n",
                        "d",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                    wide{
                        "1. kvartal",
                        "2. kvartal",
                        "3. kvartal",
                        "4. kvartal",
                    }
                }
            }
        }
        roc{
            eras{
                abbreviated{
                    "Pre RK",
                    "RK",
                }
            }
        }
    }
    listPattern{
        standard{
            2{"{0} i {1}"}
            end{"{0} i {1}"}
        }
    }
    measurementSystemNames{
        US{"SAD"}
        metric{"Metrički"}
    }
    units{
        day{
            few{"{0} dana"}
            many{"{0} dana"}
            one{"{0} dan"}
            other{"{0} dana"}
        }
        hour{
            few{"{0} sata"}
            many{"{0} sati"}
            one{"{0} sat"}
            other{"{0} sati"}
        }
        minute{
            few{"{0} minute"}
            many{"{0} minuta"}
            one{"{0} minut"}
            other{"{0} minuta"}
        }
        month{
            few{"{0} meseca"}
            many{"{0} meseci"}
            one{"{0} mesec"}
            other{"{0} meseci"}
        }
        second{
            few{"{0} sekunde"}
            many{"{0} sekundi"}
            one{"{0} sekunda"}
            other{"{0} sekundi"}
        }
        week{
            few{"{0} nedelje"}
            many{"{0} nedelja"}
            one{"{0} nedelja"}
            other{"{0} nedelja"}
        }
        year{
            few{"{0} godine"}
            many{"{0} godina"}
            one{"{0} godina"}
            other{"{0} godina"}
        }
    }
    unitsShort{
        day{
            few{"{0} dana"}
            many{"{0} dana"}
            one{"{0} dan"}
            other{"{0} dan"}
        }
        hour{
            few{"{0} sata"}
            many{"{0} sati"}
            one{"{0} sat"}
            other{"{0} sat"}
        }
        minute{
            few{"{0} min"}
            many{"{0} min"}
            one{"{0} min"}
            other{"{0} min"}
        }
        month{
            few{"{0} mes"}
            many{"{0} mes"}
            one{"{0} mes"}
            other{"{0} mes"}
        }
        second{
            few{"{0} sek"}
            many{"{0} sek"}
            one{"{0} sek"}
            other{"{0} sek"}
        }
        week{
            few{"{0} ned"}
            many{"{0} ned"}
            one{"{0} ned"}
            other{"{0} ned"}
        }
        year{
            few{"{0} god"}
            many{"{0} god"}
            one{"{0} god"}
            other{"{0} god"}
        }
    }
}
