﻿// ***************************************************************************
// *
// * 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/et.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/et.xml
 */
et{
    AuxExemplarCharacters{"[á à â å ā æ ç é è ê ë ē í ì î ï ī ñ ó ò ŏ ô ø ō œ ú ù û ū]"}
    ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s š z ž t u v w õ ä ö ü x y]"}
    ExemplarCharactersCurrency{"[a b c d e f g h i j k l m n o p q r s š z ž t u v w õ ä ö ü x y]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S Š Z Ž T U V Õ Ä Ö Ü X Y]"}
    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.92"}
    calendar{
        gregorian{
            AmPmMarkers{
                "enne keskpäeva",
                "pärast keskpäeva",
            }
            DateTimePatterns{
                "H:mm.ss zzzz",
                "H:mm.ss z",
                "H:mm.ss",
                "H:mm",
                "EEEE, d. MMMM y",
                "d. MMMM y",
                "dd.MM.yyyy",
                "dd.MM.yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                H{"H"}
                Hm{"H:mm"}
                Hms{"H:mm.ss"}
                MEd{"E, d.M"}
                MMMEd{"E, d. MMM"}
                MMMMEd{"E, d. MMMM"}
                MMMMd{"d. MMMM"}
                MMMd{"d. MMM"}
                MMdd{"dd.MM"}
                Md{"d.M"}
                hms{"h:mm.ss a"}
                mmss{"mm.ss"}
                yM{"M.y"}
                yMEd{"EEE, d.M.y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, d. MMM y"}
                yMMMd{"d.MMM.y"}
                yMd{"d.M.y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
                yyQ{"Q. yy"}
                yyyyMM{"MM.yyyy"}
                yyyyMMMM{"MMMM y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "P",
                        "E",
                        "T",
                        "K",
                        "N",
                        "R",
                        "L",
                    }
                    wide{
                        "pühapäev",
                        "esmaspäev",
                        "teisipäev",
                        "kolmapäev",
                        "neljapäev",
                        "reede",
                        "laupäev",
                    }
                }
                stand-alone{
                    narrow{
                        "P",
                        "E",
                        "T",
                        "K",
                        "N",
                        "R",
                        "L",
                    }
                }
            }
            eras{
                abbreviated{
                    "e.m.a.",
                    "m.a.j.",
                }
                wide{
                    "enne meie aega",
                    "meie aja järgi",
                }
            }
            fields{
                day{
                    dn{"päev"}
                    relative{
                        "-1"{"eile"}
                        "-2"{"üleeile"}
                        "0"{"täna"}
                        "1"{"homme"}
                        "2"{"ülehomme"}
                    }
                }
                dayperiod{
                    dn{"enne/pärast lõunat"}
                }
                era{
                    dn{"ajastu"}
                }
                hour{
                    dn{"tund"}
                }
                minute{
                    dn{"minut"}
                }
                month{
                    dn{"kuu"}
                    relative{
                        "-1"{"Eelmine kuu"}
                        "0"{"See kuu"}
                        "1"{"Järgmine kuu"}
                    }
                }
                second{
                    dn{"sekund"}
                }
                week{
                    dn{"nädal"}
                    relative{
                        "-1"{"Eelmine nädal"}
                        "0"{"See nädal"}
                        "1"{"Järgmine nädal"}
                    }
                }
                weekday{
                    dn{"nädalapäev"}
                }
                year{
                    dn{"aasta"}
                    relative{
                        "-1"{"Eelmine aasta"}
                        "0"{"Sel aastal"}
                        "1"{"Järgmine aasta"}
                    }
                }
                zone{
                    dn{"vöönd"}
                }
            }
            intervalFormats{
                M{
                    M{"M–M"}
                }
                MEd{
                    M{"E, dd.MM–E, dd.MM"}
                    d{"E, dd.MM–E, dd.MM"}
                }
                MMM{
                    M{"LLL–LLL"}
                }
                MMMEd{
                    M{"E, d. MMM–E, d. MMM"}
                    d{"E, d. MMM–E, d. MMM"}
                }
                MMMd{
                    M{"d. MMM–d. MMM"}
                    d{"d.–d. MMM"}
                }
                Md{
                    M{"dd.MM–dd.MM"}
                    d{"dd.MM–dd.MM"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0}–{1}"}
                h{
                    h{"h–h a"}
                }
                hm{
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    h{"h–h a v"}
                }
                y{
                    y{"y–y"}
                }
                yM{
                    M{"MM.yy–MM.yy"}
                    y{"MM.yy–MM.yy"}
                }
                yMEd{
                    M{"E, dd.MM.yy–E, dd.MM.yy"}
                    d{"E, dd.MM.yy–E, dd.MM.yy"}
                    y{"E, dd.MM.yy–E, dd.MM.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{"dd.MM.yy–dd.MM.yy"}
                    d{"dd.MM.yy–dd.MM.yy"}
                    y{"dd.MM.yy–dd.MM.yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "jaan",
                        "veebr",
                        "märts",
                        "apr",
                        "mai",
                        "juuni",
                        "juuli",
                        "aug",
                        "sept",
                        "okt",
                        "nov",
                        "dets",
                    }
                    wide{
                        "jaanuar",
                        "veebruar",
                        "märts",
                        "aprill",
                        "mai",
                        "juuni",
                        "juuli",
                        "august",
                        "september",
                        "oktoober",
                        "november",
                        "detsember",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "V",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K2",
                        "K3",
                        "K4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1. kvartal",
                        "2. kvartal",
                        "3. kvartal",
                        "4. kvartal",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"“"}
        alternateQuotationStart{"„"}
        quotationEnd{"“"}
        quotationStart{"„"}
    }
    listPattern{
        standard{
            2{"{0} ja {1}"}
            end{"{0} ja {1}"}
        }
    }
    measurementSystemNames{
        UK{"inglise mõõdustik"}
        US{"inglise mõõdustik"}
        metric{"meetermõõdustik"}
    }
    units{
        day{
            one{"{0} ööpäev"}
            other{"{0} ööpäeva"}
        }
        day-future{
            0{"0 päeva pärast"}
            1{"1 päeva pärast"}
            one{"+{0} päeva pärast"}
            other{"{0} päeva pärast"}
        }
        day-past{
            0{"0 päeva tagasi"}
            1{"1 päev tagasi"}
            one{"-{0} päeva eest"}
            other{"-{0} päeva eest"}
        }
        hour{
            one{"{0} tund"}
            other{"{0} tundi"}
        }
        hour-future{
            0{"0 tunni pärast"}
            1{"1 tunni pärast"}
            one{"+{0} tunni pärast"}
            other{"{0} tunni pärast"}
        }
        hour-past{
            0{"0 tunni eest"}
            1{"1 tunni eest"}
            one{"-{0} tunni eest"}
            other{"{0} tunni eest"}
        }
        minute{
            one{"{0} minut"}
            other{"{0} minutit"}
        }
        minute-future{
            0{"0 minuti pärast"}
            1{"1 minuti pärast"}
            one{"+{0} minuti pärast"}
            other{"{0} minuti pärast"}
        }
        minute-past{
            0{"0 minutit tagasi"}
            1{"1 minut tagasi"}
            one{"-{0} minuti eest"}
            other{"{0} minuti eest"}
        }
        month{
            one{"{0} kuu"}
            other{"{0} kuud"}
        }
        month-future{
            0{"0 kuu pärast"}
            1{"1 kuu pärast"}
            one{"+{0} kuu pärast"}
            other{"{0} kuu pärast"}
        }
        month-past{
            0{"0 kuud tagasi"}
            1{"1 kuu tagasi"}
            one{"-{0} kuu eest"}
            other{"{0} kuu eest"}
        }
        second{
            one{"{0} sekund"}
            other{"{0} sekundit"}
        }
        second-future{
            0{"0 sekundi pärast"}
            1{"1 sekundi pärast"}
            one{"+{0} sekundi pärast"}
            other{"{0} sekundi pärast"}
        }
        second-past{
            0{"0 sekundi eest"}
            1{"1 sekundi eest"}
            one{"-{0} sekundi eest"}
            other{"{0} sekundi eest"}
        }
        week{
            one{"{0} nädal"}
            other{"{0} nädalat"}
        }
        week-future{
            0{"0 nädala pärast"}
            1{"1 nädala pärast"}
            one{"+{0} nädala pärast"}
            other{"{0} nädala pärast"}
        }
        week-past{
            0{"0 nädalat tagasi"}
            1{"1 nädal tagasi"}
            one{"-{0} nädala eest"}
            other{"{0} nädala eest"}
        }
        year{
            one{"{0} aasta"}
            other{"{0} aastat"}
        }
        year-future{
            0{"0 aasta pärast"}
            1{"1 aasta pärast"}
            one{"+{0} aasta pärast"}
            other{"{0} aasta pärast"}
        }
        year-past{
            0{"0 aastat tagasi"}
            1{"1 aasta tagasi"}
            one{"-{0} aasta eest"}
            other{"{0} aasta eest"}
        }
    }
    unitsShort{
        day{
            0{"0 päeva"}
            1{"1 päev"}
            other{"{0} päeva"}
        }
        hour{
            0{"0 tundi"}
            1{"1 tund"}
            other{"{0} tundi"}
        }
        minute{
            0{"0 min"}
            1{"1 min"}
            other{"{0} min"}
        }
        month{
            0{"0 kuud"}
            1{"1 kuu"}
            other{"{0} kuud"}
        }
        second{
            0{"0 s"}
            1{"1 s"}
            other{"{0} s"}
        }
        week{
            0{"0 nädalat"}
            1{"1 nädal"}
            other{"{0} nädalat"}
        }
        year{
            0{"0 a"}
            1{"1 a"}
            other{"{0} a"}
        }
    }
}
