﻿// ***************************************************************************
// *
// * 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/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.65.46"}
    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{"E, d.M.y"}
                yMMM{"MMM y"}
                yMMMEd{"E, 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"}
        }
    }
}
