﻿// ***************************************************************************
// *
// * Copyright (C) 2009 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{
    %%ParentIsRoot:int{1}
    AuxExemplarCharacters{"[q w-y]"}
    ExemplarCharacters{"[a-c č ć d đ {dž} e-l {lj} m n {nj} o p r s š t-v z ž]"}
    LocaleScript{
        "Latn",
    }
    Version{"2.0.42.82"}
    calendar{
        buddhist{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        chinese{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        coptic{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        ethiopic{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        gregorian{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
            availableFormats{
                EEEd{"d EEE"}
                Hm{"H.mm"}
                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",
                    }
                }
            }
        }
        hebrew{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        indian{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        islamic{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        japanese{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        persian{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
        }
        roc{
            AmPmMarkers{
                "pre podne",
                "popodne",
            }
            eras{
                abbreviated{
                    "Pre RK",
                    "RK",
                }
            }
        }
    }
    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{
        year{
            other{"{0} god"}
        }
    }
}
