// ****************************************************************************
// *                                                                          *
// * COPYRIGHT:                                                               *
// * (C) Copyright International Business Machines Corporation,  1999         *
// * Licensed Material - Program-Property of IBM - All Rights Reserved.       *
// * US Government Users Restricted Rights - Use, duplication, or disclosure  *
// * restricted by GSA ADP Schedule Contract with IBM Corp.                   *
// *                                                                          *
// ****************************************************************************
// Feedback to : schererm@us.ibm.com

eo {
    Version { "1.0" } 
    Countries { 
        AT { "A\u016dstrujo" }
        BE { "Belgujo" }
        CA { "Kanado" }
        CH { "Svisujo" }
        DE { "Germanujo" }
        DK { "Danujo" }
        ES { "Hispanujo" }
        FI { "Finnlando" }
        GR { "Grekujo" }
        IT { "Italujo" }
        JP { "Japanujo" }
        NL { "Nederlando" }
        NO { "Norvego" }
        PT { "Portugalujo" }
        SE { "Svedujo" }
        TR { "Turkujo" }
        US { "Usono" }
    }
    DateTimePatterns { 
            "H'-a horo kaj 'm z",
            "HH:mm:ss z",
            "HH:mm:ss",
            "HH:mm",
            "EEEE, d'-a de 'MMMM yyyy",
            "yyyy-MMMM-dd",
            "yyyy-MMM-dd",
            "yy-MM-dd",
            "{1} {0}",
    }
    DateTimeElements { 
            "2",
            "4",
    }
    AmPmMarkers { 
            "atm",
            "ptm",
    }
    DayAbbreviations { 
            "di",
            "lu",
            "ma",
            "me",
            "\u0135a",
            "ve",
            "sa",
    }
    DayNames { 
            "diman\u0109o",
            "lundo",
            "mardo",
            "merkredo",
            "\u0135a\u016ddo",
            "vendredo",
            "sabato",
    }
    Eras { 
            "aK",
            "pK",
    }
    Languages { 
        da { "dana" }
        de { "germana" }
        el { "greka" }
        en { "angla" }
        eo { "Esperanto" }
        es { "hispana" }
        fi { "finna" }
        it { "itala" }
        ja { "japana" }
        nl { "nederlanda" }
        no { "norvega" }
        pt { "portugala" }
        sv { "sveda" }
        tr { "turka" }
    }
    //LocaleID { "07e0" }
    LocaleString { "eo" }
    MonthAbbreviations { 
            "jan",
            "feb",
            "mar",
            "apr",
            "maj",
            "jun",
            "jul",
            "a\u016dg",
            "sep",
            "okt",
            "nov",
            "dec",
            "",
    }
    MonthNames { 
            "januaro",
            "februaro",
            "marto",
            "aprilo",
            "majo",
            "junio",
            "julio",
            "a\u016dgusto",
            "septembro",
            "oktobro",
            "novembro",
            "decembro",
            "",
    }
    NumberElements { 
            ",",
            "\u00a0",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "epo" }
    localPatternChars { "GjMtkHmslTJUSnahKz" }
}
