﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/el.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/el.xml
 */
el{
    AuxExemplarCharacters{"[]"}
    ExemplarCharacters{"[α ά β γ δ ε έ ζ η ή θ ι ί ϊ ΐ κ λ μ ν ξ ο ό π ρ σ ς τ υ ύ ϋ ΰ φ χ ψ ω ώ]"}
    ExemplarCharactersIndex{"[Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω]"}
    LocaleScript{
        "Grek",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{","}
                exponential{"e"}
                group{"."}
                infinity{"∞"}
                list{","}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.50.96"}
    calendar{
        buddhist{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM, y G",
                "d MMMM, y G",
                "d MMM, y G",
                "d/M/yyyy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
        gregorian{
            AmPmMarkers{
                "π.μ.",
                "μ.μ.",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "d/M/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Ed{"E d"}
                H{"HH"}
                HHmm{"HH:mm"}
                HHmmss{"HH:mm:ss"}
                Hm{"HH:mm"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMMdd{"dd MMMM"}
                MMMd{"d MMM"}
                MMdd{"dd/MM"}
                Md{"d/M"}
                d{"d"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/yyyy"}
                yMEd{"EEE, d/M/yyyy"}
                yMMM{"LLL y"}
                yMMMEd{"EEE, d MMM y"}
                yQ{"y Q"}
                yQQQ{"y QQQ"}
                yyMM{"MM/yy"}
                yyMMM{"LLL yy"}
                yyQ{"Q yy"}
                yyQQQQ{"QQQQ yy"}
                yyyy{"y"}
                yyyyMM{"MM/yyyy"}
                yyyyMMMM{"LLLL y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Κυρ",
                        "Δευ",
                        "Τρι",
                        "Τετ",
                        "Πεμ",
                        "Παρ",
                        "Σαβ",
                    }
                    wide{
                        "Κυριακή",
                        "Δευτέρα",
                        "Τρίτη",
                        "Τετάρτη",
                        "Πέμπτη",
                        "Παρασκευή",
                        "Σάββατο",
                    }
                }
                stand-alone{
                    narrow{
                        "Κ",
                        "Δ",
                        "Τ",
                        "Τ",
                        "Π",
                        "Π",
                        "Σ",
                    }
                }
            }
            eras{
                abbreviated{
                    "π.Χ.",
                    "μ.Χ.",
                }
            }
            fields{
                day{
                    dn{"Ημέρα"}
                    relative{
                        "-1"{"Χτες"}
                        "-2"{"Προχτές"}
                        "-3"{"Πριν από τρεις ημέρες"}
                        "0"{"Σήμερα"}
                        "1"{"Αύριο"}
                        "2"{"Μεθαύριο"}
                        "3"{"Σε τρεις ημέρες από τώρα"}
                    }
                }
                dayperiod{
                    dn{"π.μ./μ.μ."}
                }
                era{
                    dn{"Περίοδος"}
                }
                hour{
                    dn{"Ώρα"}
                }
                minute{
                    dn{"Λεπτό"}
                }
                month{
                    dn{"Μήνας"}
                }
                second{
                    dn{"Δευτερόλεπτο"}
                }
                week{
                    dn{"Εβδομάδα"}
                }
                weekday{
                    dn{"Ημέρα εβδομάδας"}
                }
                year{
                    dn{"Έτος"}
                }
                zone{
                    dn{"Ζώνη"}
                }
            }
            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, dd MMM - E, dd MMM"}
                    d{"E, dd - E, dd MMM"}
                }
                MMMM{
                    M{"LLLL-LLLL"}
                }
                MMMd{
                    M{"dd MMM - dd MMM"}
                    d{"dd-dd MMM"}
                }
                Md{
                    M{"dd/MM - dd/MM"}
                    d{"dd/MM - dd/MM"}
                }
                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{"MM/yyyy - MM/yyyy"}
                    y{"MM/yyyy - MM/yyyy"}
                }
                yMEd{
                    M{"E, dd/MM/yyyy - E, dd/MM/yyyy"}
                    d{"E, dd/MM/yyyy - E, dd/MM/yyyy"}
                    y{"E, dd/MM/yyyy - E, dd/MM/yyyy"}
                }
                yMMM{
                    M{"LLL-LLL y"}
                    y{"LLL y - LLL y"}
                }
                yMMMEd{
                    M{"E, dd MMM - E, dd MMM y"}
                    d{"E, dd - E, dd MMM y"}
                    y{"E, dd MMM y - E, dd MMM y"}
                }
                yMMMM{
                    M{"LLLL-LLLL y"}
                    y{"LLLL y - LLLL y"}
                }
                yMMMd{
                    M{"dd MMM - dd MMM y"}
                    d{"dd-dd MMM y"}
                    y{"dd MMM y - dd MMM y"}
                }
                yMd{
                    M{"dd/MM/yyyy - dd/MM/yyyy"}
                    d{"dd/MM/yyyy - dd/MM/yyyy"}
                    y{"dd/MM/yyyy - dd/MM/yyyy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Ιαν",
                        "Φεβ",
                        "Μαρ",
                        "Απρ",
                        "Μαϊ",
                        "Ιουν",
                        "Ιουλ",
                        "Αυγ",
                        "Σεπ",
                        "Οκτ",
                        "Νοε",
                        "Δεκ",
                    }
                    wide{
                        "Ιανουαρίου",
                        "Φεβρουαρίου",
                        "Μαρτίου",
                        "Απριλίου",
                        "Μαΐου",
                        "Ιουνίου",
                        "Ιουλίου",
                        "Αυγούστου",
                        "Σεπτεμβρίου",
                        "Οκτωβρίου",
                        "Νοεμβρίου",
                        "Δεκεμβρίου",
                    }
                }
                stand-alone{
                    narrow{
                        "Ι",
                        "Φ",
                        "Μ",
                        "Α",
                        "Μ",
                        "Ι",
                        "Ι",
                        "Α",
                        "Σ",
                        "Ο",
                        "Ν",
                        "Δ",
                    }
                    wide{
                        "Ιανουάριος",
                        "Φεβρουάριος",
                        "Μάρτιος",
                        "Απρίλιος",
                        "Μάιος",
                        "Ιούνιος",
                        "Ιούλιος",
                        "Αύγουστος",
                        "Σεπτέμβριος",
                        "Οκτώβριος",
                        "Νοέμβριος",
                        "Δεκέμβριος",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Τ1",
                        "Τ2",
                        "Τ3",
                        "Τ4",
                    }
                    wide{
                        "1ο τρίμηνο",
                        "2ο τρίμηνο",
                        "3ο τρίμηνο",
                        "4ο τρίμηνο",
                    }
                }
            }
        }
        hebrew{
            eras{
                abbreviated{
                    "π.μ.",
                }
            }
        }
        japanese{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM, y G",
                "d MMMM, y G",
                "d MMM, y G",
                "d/M/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                Md{"d/M"}
                yyyyM{"MM/yy GGGGG"}
                yyyyMMM{"LLL yy GGGGG"}
                yyyyQ{"yy GGGGG Q"}
            }
        }
        roc{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM, y G",
                "d MMMM, y G",
                "d MMM, y G",
                "d/M/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                MEd{"E, d/M"}
                MMMEd{"E, d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                yyyy{"y G"}
                yyyyM{"M/y G"}
                yyyyMEd{"EEE, d/M/y G"}
                yyyyMMM{"LLL, y G"}
                yyyyMMMEd{"EEE, d MMM, y G"}
                yyyyQ{"y G Q"}
                yyyyQQQ{"QQQ y G"}
            }
            eras{
                abbreviated{
                    "Πριν R.O.C.",
                    "R.O.C.",
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    listPattern{
        standard{
            2{"{0} και {1}"}
            end{"{0} και {1}"}
        }
    }
    measurementSystemNames{
        US{"Αγγλοσαξωνικό"}
        metric{"Μετρικό"}
    }
    units{
        day{
            one{"{0} ημέρα"}
            other{"{0} ημέρες"}
        }
        hour{
            one{"{0} ώρα"}
            other{"{0} ώρες"}
        }
        minute{
            one{"{0} λεπτό"}
            other{"{0} λεπτά"}
        }
        month{
            one{"{0} μήνας"}
            other{"{0} μήνες"}
        }
        second{
            one{"{0} δευτερόλεπτο"}
            other{"{0} δευτερόλεπτα"}
        }
        week{
            one{"{0} εβδομάδα"}
            other{"{0} εβδομάδες"}
        }
        year{
            one{"{0} έτος"}
            other{"{0} έτη"}
        }
    }
}
