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

tr {
    Version{ "2.0" }
    // According to Nurdan Mete from IBM Turkey, the following would be the correct
    // sorting order for Turkish
    CollationElements { 
        Version { "2" }
        Sequence { "& C < c\u0327 <<< C\u0327" 
                   "& G < g\u0306 <<< G\u0306"
                   "& H < \u0131 <<< I < i <<< \u0130" 
                   "& O < o\u0308 <<< O\u0308"
                   "& S < s\u0327 <<< S\u0327" 
                   "& U < u\u0308 <<< U\u0308" }
    }
    Countries { 
        TR { "T\u00FCrkiye" }
    }
    DateTimeElements:intvector { 
        2,
        1,
    }
    DateTimePatterns { 
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "dd MMMM yyyy EEEE",
        "dd MMMM yyyy EEEE",
        "dd.MMM.yyyy",
        "dd.MM.yyyy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "Paz",
        "Pzt",
        "Sal",
        "\u00C7ar",
        "Per",
        "Cum",
        "Cmt",
    }
    DayNames { 
        "Pazar",
        "Pazartesi",
        "Sal\u0131",
        "\u00C7ar\u015Famba",
        "Per\u015Fembe",
        "Cuma",
        "Cumartesi",
    }
    Languages { 
        tr { "T\u00FCrk\u00E7e" }
    }
    LocaleID:int { 0x1f }
//    LocaleString { "tr" }
    MonthAbbreviations { 
        "Oca",
        "\u015Eub",
        "Mar",
        "Nis",
        "May",
        "Haz",
        "Tem",
        "A\u011Fu",
        "Eyl",
        "Eki",
        "Kas",
        "Ara",
    }
    MonthNames { 
        "Ocak",
        "\u015Eubat",
        "Mart",
        "Nisan",
        "May\u0131s",
        "Haziran",
        "Temmuz",
        "A\u011Fustos",
        "Eyl\u00FCl",
        "Ekim",
        "Kas\u0131m",
        "Aral\u0131k",
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
    }
//    ShortLanguage { "tur" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }
//    LocaleScript{ 
//        "Latn",  // ISO 15924 Name 
//    }
    ExemplarCharacters { "[a-z \u00e2 \u00ee \u00fb \u00f6 \u00fc \u0131 \u00e7 \u015f \u011f]" }

    // Currency display names
    Currencies {
        ITL { "ITL", "ITL" } // Italian Lira
        TRL { "\u20A4", "TRL" } // Turkish Lira
    }
}
