// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

eu {
    Version { "2.0" }
    Countries {
        ES { "Espainia" }
    }
    // Currency display names
    Currencies {
        ESP { "\u20A7", "ESP" }
    }
    DayAbbreviations {
        "ig",
        "al",
        "as",
        "az",
        "og",
        "or",
        "lr",
    }
    DayNames {
        "igandea",
        "astelehena",
        "asteartea",
        "asteazkena",
        "osteguna",
        "ostirala",
        "larunbata",
    }
    Languages {
        eu { "euskara" }
    }
    LocaleScript{  
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z\u00f1\u00e7]" }
    MonthAbbreviations {
        "urt",
        "ots",
        "mar",
        "api",
        "mai",
        "eka",
        "uzt",
        "abu",
        "ira",
        "urr",
        "aza",
        "abe",
    }
    MonthNames {
        "urtarrila",
        "otsaila",
        "martxoa",
        "apirila",
        "maiatza",
        "ekaina",
        "uztaila",
        "abuztua",
        "iraila",
        "urria",
        "azaroa",
        "abendua",
    }
    NumberElements {
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }

    // /**************** Info Below is needed ****************/
    // collations{}
    // Countries{}
    // Eras{}
    // Languages{}
    // localPatternChars{}
}
