// ***************************************************************************
// *
// *   Copyright (C) 2001-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
// * Tigre language locale.
// * Contributed by Daniel Yacob <yacob@geez.org>, Ge'ez Frontier Foundation
// * Tigre terms are provided by Mussie Bekit with coordination by the
// * Shimagale Team <http://www.shimagle.com/>.

tig{ 
    Version{ "x0.1" }
    Countries:alias { "am" }
    // Currency display names
    Currencies {
        ERN { "$", "ERN" }
    }

    Languages { 
        Fallback { "am" }
        am { "\u12A0\u121D\u1210\u1228\u129B" }
    }
    LocaleScript{ "Ethi", }
    ExemplarCharacters{"[:Ethi:]"}
    // Month names are identical to Tigrigna
    calendar{
        gregorian{
            AmPmMarkers{
                "\u1240\u12F0\u121D \u1230\u122D\u121D\u12D5\u120D",
                "\u1213\u1246 \u1235\u122D\u121D\u12D5\u120D",
            }
            DateTimeElements:intvector { 
                7,
                1,
            }
            dayNames{
                format{
                    abbreviated{
                        "\u1230/\u12D3",
                        "\u1230\u1296",
                        "\u1273\u120B\u1238",
                        "\u12A3\u1228\u122D",
                        "\u12A8\u121A\u123D",
                        "\u1305\u121D\u12D3",
                        "\u1230\u002F\u1295",
                    }
                    wide{
                        "\u1230\u1295\u1260\u1275\u0020\u12D3\u1263\u12ED",
                        "\u1230\u1296",
                        "\u1273\u120B\u1238\u1296",
                        "\u12A3\u1228\u122D\u1263\u12D3",
                        "\u12A8\u121A\u123D",
                        "\u1305\u121D\u12D3\u1275",
                        "\u1230\u1295\u1260\u1275\u0020\u1295\u12A2\u123D",
                    }
                }
            }
            eras{
                "\u12D3/\u12D3",
                "\u12D3/\u121D"
            }
            monthNames{
                format{
                    abbreviated{
                        "\u1303\u1295\u12E9",
                        "\u134C\u1265\u1229",
                        "\u121B\u122D\u127D",
                        "\u12A4\u1355\u1228",
                        "\u121C\u12ED",
                        "\u1301\u1295",
                        "\u1301\u120B\u12ED",
                        "\u12A6\u1308\u1235",
                        "\u1234\u1355\u1274",
                        "\u12A6\u12AD\u1270",
                        "\u1296\u126C\u121D",
                        "\u12F2\u1234\u121D",
                    }
                    wide{
                        "\u1303\u1295\u12E9\u12C8\u122A",
                        "\u134C\u1265\u1229\u12C8\u122A",
                        "\u121B\u122D\u127D",
                        "\u12A4\u1355\u1228\u120D",
                        "\u121C\u12ED",
                        "\u1301\u1295",
                        "\u1301\u120B\u12ED",
                        "\u12A6\u1308\u1235\u1275",
                        "\u1234\u1355\u1274\u121D\u1260\u122D",
                        "\u12A6\u12AD\u1270\u12CD\u1260\u122D",
                        "\u1296\u126C\u121D\u1260\u122D",
                        "\u12F2\u1234\u121D\u1260\u122D",
                    }
                }
            }
        }
    }
}
