﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/eo.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/eo.xml
 */
eo{
    AuxExemplarCharacters{"[q w x y]"}
    ExemplarCharacters{"[a b c ĉ d e f g ĝ h ĥ i j ĵ k l m n o p r s ŝ t u ŭ v z]"}
    ExemplarCharactersIndex{"[A B C Ĉ D E F G Ĝ H Ĥ I J Ĵ K L M N O P R S Ŝ T U Ŭ V Z]"}
    ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] \\{ \\} /]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.1.10.93"}
    calendar{
        generic{
            DateTimePatterns{
                "H-'a' 'horo' 'kaj' m:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d-'a' 'de' MMMM y G",
                "G y-MMMM-dd",
                "G y-MMM-dd",
                "GGGGG y-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
        gregorian{
            AmPmMarkers{
                "atm",
                "ptm",
            }
            DateTimePatterns{
                "H-'a' 'horo' 'kaj' m:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d-'a' 'de' MMMM y",
                "y-MMMM-dd",
                "y-MMM-dd",
                "yy-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "di",
                        "lu",
                        "ma",
                        "me",
                        "ĵa",
                        "ve",
                        "sa",
                    }
                    wide{
                        "dimanĉo",
                        "lundo",
                        "mardo",
                        "merkredo",
                        "ĵaŭdo",
                        "vendredo",
                        "sabato",
                    }
                }
                stand-alone{
                    wide{
                        "dimanĉo",
                        "lundo",
                        "mardo",
                        "merkredo",
                        "ĵaŭdo",
                        "vendredo",
                        "sabato",
                    }
                }
            }
            eras{
                abbreviated{
                    "aK",
                    "pK",
                }
                narrow{
                    "aK",
                    "pK",
                }
                wide{
                    "aK",
                    "pK",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "jan",
                        "feb",
                        "mar",
                        "apr",
                        "maj",
                        "jun",
                        "jul",
                        "aŭg",
                        "sep",
                        "okt",
                        "nov",
                        "dec",
                    }
                    wide{
                        "januaro",
                        "februaro",
                        "marto",
                        "aprilo",
                        "majo",
                        "junio",
                        "julio",
                        "aŭgusto",
                        "septembro",
                        "oktobro",
                        "novembro",
                        "decembro",
                    }
                }
                stand-alone{
                    wide{
                        "januaro",
                        "februaro",
                        "marto",
                        "aprilo",
                        "majo",
                        "junio",
                        "julio",
                        "aŭgusto",
                        "septembro",
                        "oktobro",
                        "novembro",
                        "decembro",
                    }
                }
            }
        }
    }
}
