// ***************************************************************************
// *
// *   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
    collations {
        standard { 
            Version { "2.1" }
            Sequence { "& C < c\u0327 <<< C\u0327" 
                       "& G < g\u0306 <<< G\u0306"
                       "&[before 1]i < \u0131 <<< I"
                       "& i <<< \u0130" 
                       "& O < o\u0308 <<< O\u0308"
                       "& S < s\u0327 <<< S\u0327" 
                       "& U < u\u0308 <<< U\u0308" }
        }
    }
    Countries { 
        Fallback{ "en"}
        AD { "Andora" }
        AE { "Birle\u015Fik Arap Emirlikleri" }
        AF { "Afganistan" }
        AG { "Antigua ve Barbuda" }
        //AI { "Anguilla" }
        AL { "Arnavutluk" }
        AM { "Ermenistan" }
        AN { "Hollanda Antilleri" }
        //AO { "Angola" }
        AQ { "Antarktika" }
        AR { "Arjantin" }
        AS { "Amerikan Samoas\u0131" }
        AT { "Avusturya" }
        AU { "Avustralya" }
        //AW { "Aruba" }
        AZ { "Azerbaycan" }
        BA { "Bosna Hersek" }
        //BB { "Barbados" }
        BD { "Banglade\u015F" }
        BE { "Bel\u00E7ika" }
        //BF { "Burkina Faso" }
        BG { "Bulgaristan" }
        BH { "Bahreyn" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        //BM { "Bermuda" }
        //BN { "Brunei Dar\u00FCsselam" }
        BO { "Bolivya" }
        BR { "Brezilya" }
        BS { "Bahamalar" }
        //BT { "Bhutan" }
        BV { "Bouvet Adas\u0131" }
        //BW { "Botswana" }
        //BY { "Belarus" }
        //BZ { "Belize" }
        CA { "Kanada" }
        CC { "Cocos (Keeling) Adalar\u0131" }
        CD { "Kongo Demokratik Cumhuriyeti" }
        CF { "Orta Afrika Cumhuriyeti" }
        CG { "Kongo" }
        CH { "\u0130svi\u00E7re" }
        CI { "Fildi\u015Fi Sahilleri" }
        CK { "Cook Adalar\u0131" }
        CL { "\u015Eili" }
        CM { "Kamerun" }
        CN { "\u00C7in" }
        CO { "Kolombiya" }
        CR { "Kosta Rika" }
        CU { "K\u00FCba" }
        //CV { "Cape Verde" }
        CX { "Christmas Adas\u0131" }
        CY { "K\u0131br\u0131s" }
        CZ { "\u00C7ek Cumhuriyeti" }
        DE { "Almanya" }
        DJ { "Cibuti" }
        DK { "Danimarka" }
        DM { "Dominik" }
        DO { "Dominik Cumhuriyeti" }
        DZ { "Cezayir" }
        EC { "Ekvador" }
        EE { "Estonya" }
        EG { "M\u0131s\u0131r" }
        EH { "Bat\u0131 Sahara" }
        ER { "Eritre" }
        ES { "\u0130spanya" }
        ET { "Etiyopya" }
        FI { "Finlandiya" }
        //FJ { "Fiji" }
        FK { "Falkland Adalar\u0131 (Malvinalar)" }    // alternate name { "Falkland Adalar\u0131" }
        FM { "Mikronezya Federal Eyaletleri" }
        FO { "Faroe Adalar\u0131" }
        FR { "Fransa" }
        //GA { "Gabon" }
        GB { "Birle\u015Fik Krall\u0131k" }
        GD { "Granada" }
        GE { "G\u00FCrcistan" }
        GF { "Frans\u0131z Ginesi" }
        GH { "Gana" }
        GI { "Cebelitar\u0131k" }
        GL { "Gr\u00F6nland" }
        //GM { "Gambia" }
        GN { "Gine" }
        //GP { "Guadeloupe" }
        GQ { "Ekvator Ginesi" }
        GR { "Yunanistan" }
        GS { "G\u00FCney Georgia ve G\u00FCney Sandwich Adalar\u0131" }
        //GT { "Guatemala" }
        //GU { "Guam" }
        GW { "Gine-Bissau" }
        //GY { "Guyana" }
        HK { "Hong Kong SAR - \u00C7in" }
        HM { "Heard Adas\u0131 ve McDonald Adalar\u0131" }
        //HN { "Honduras" }
        HR { "H\u0131rvatistan" }
        //HT { "Haiti" }
        HU { "Macaristan" }
        ID { "Endonezya" }
        IE { "\u0130rlanda" }
        IL { "\u0130srail" }
        IN { "Hindistan" }
        IO { "Hint Okyanusu \u0130ngiliz B\u00F6lgesi" }
        IQ { "Irak" }
        IR { "\u0130ran" }
        IS { "\u0130zlanda" }
        IT { "\u0130talya" }
        JM { "Jamaika" }
        JO { "\u00DCrd\u00FCn" }
        JP { "Japonya" }
        //KE { "Kenya" }
        KG { "K\u0131rg\u0131zistan" }
        KH { "Kambo\u00E7ya" }
        //KI { "Kiribati" }
        KM { "Komorlar" }
        KN { "Saint Kittler ve Neviler" }
        KP { "Kore, Kuzey" }    // alternate name { "Kore Demokratik Halk Cumhuriyeti" }
        KR { "Kore, G\u00FCney" }    // alternate name { "Kore Cumhuriyeti" }
        KW { "Kuveyt" }
        KY { "Cayman Adalar\u0131" }
        KZ { "Kazakistan" }
        LA { "Lao Demokratik Halk Cumhuriyeti" }
        LB { "L\u00FCbnan" }
        //LC { "Saint Lucia" }
        //LI { "Liechtenstein" }
        //LK { "Sri Lanka" }
        LR { "Liberya" }
        //LS { "Lesotho" }
        LT { "Litvanya" }
        LU { "L\u00FCksemburg" }
        LV { "Letonya" }
        //LY { "Libya Arap Cemahiriyesi" }
        MA { "Fas" }
        MC { "Monako" }
        MD { "Moldovya Cumhuriyeti" }
        MG { "Madagaskar" }
        MH { "Marshall Adalar\u0131" }
        MK { "Makedonya Cumhuriyeti" }
        //ML { "Mali" }
        //MM { "Myanmar" }
        MN { "Mo\u011Folistan" }
        MO { "Macao S.A.R. - \u00C7in" }
        MP { "Kuzey Mariana Adalar\u0131" }
        MQ { "Martinik" }
        MR { "Moritanya" }
        //MS { "Montserrat" }
        //MT { "Malta" }
        //MU { "Mauritius" }
        MV { "Maldivler" }
        MW { "Malavi" }
        MX { "Meksika" }
        MY { "Malezya" }
        MZ { "Mozambik" }
        NA { "Namibya" }
        NC { "Yeni Kaledonya" }
        NE { "Nijer" }
        NF { "Norfolk Adas\u0131" }
        NG { "Nijerya" }
        NI { "Nikaragua" }
        NL { "Hollanda" }
        NO { "Norve\u00E7" }
        //NP { "Nepal" }
        NR { "Nauru Adas\u0131" }
        NU { "Niue Adalar\u0131" }
        NZ { "Yeni Zelanda" }
        OM { "Umman" }
        //PA { "Panama" }
        //PE { "Peru" }
        PF { "Frans\u0131z Polinezyas\u0131" }
        PG { "Papua Yeni Gine" }
        PH { "Filipinler" }
        //PK { "Pakistan" }
        PL { "Polonya" }
        PM { "Saint Pierre ve Miquelon" }
        //PN { "Pitcairn" }
        PR { "Porto Riko" }
        PS { "Filistin B\u00F6lgesi" }
        PT { "Portekiz" }
        //PW { "Palau" }
        //PY { "Paraguay" }
        QA { "Katar" }
        RE { "Reunion" }
        RO { "Romanya" }
        RU { "Rusya Federasyonu" }
        RW { "Ruanda" }
        SA { "Suudi Arabistan" }
        SB { "Solomon Adalar\u0131" }
        SC { "Sey\u015Feller" }
        //SD { "Sudan" }
        SE { "\u0130sve\u00E7" }
        SG { "Singapur" }
        //SH { "Saint Helena" }
        SI { "Slovenya" }
        SJ { "Svalbard ve Jan Mayen" }
        SK { "Slovakya" }
        //SL { "Sierra Leone" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        SO { "Somali" }
        SR { "Surinam" }
        ST { "Sao Tome ve Principe" }
        //SV { "El Salvador" }
        SY { "Suriye" }
        //SZ { "Swaziland" }
        TC { "Turks ve Caicos Adalar\u0131" }
        TD { "\u00C7ad" }
        TF { "Frans\u0131z G\u00FCney B\u00F6lgeleri" }
        //TG { "Togo" }
        TH { "Tayland" }
        TJ { "Tacikistan" }
        //TK { "Tokelau" }
        TL { "Do\u011Fu Timor" }
        TM { "T\u00FCrkmenistan" }
        TN { "Tunus" }
        //TO { "Tonga" }
        TR { "T\u00FCrkiye" }
        TT { "Trinidad ve Tobago" }
        //TV { "Tuvalu" }
        TW { "Tayvan, \u00C7in B\u00F6lgesi" }    // alternate name { "Tayvan" }
        TZ { "Tanzanya" }
        UA { "Ukrayna" }
        //UG { "Uganda" }
        UM { "Amerika Birle\u015Fik Devletleri K\u00FC\u00E7\u00FCk D\u0131\u015F Adalar\u0131" }
        US { "Amerika Birle\u015Fik Devletleri" }
        //UY { "Uruguay" }
        UZ { "\u00D6zbekistan" }
        VA { "Kutsal Devlet (Vatikan \u015Eehir Devleti)" }
        VC { "Saint Vincent ve Grenadinler" }
        //VE { "Venezuela" }
        VG { "\u0130ngiliz Virgin Adalar\u0131" }
        VI { "ABD Virgin Adalar\u0131" }
        //VN { "Vietnam" }
        //VU { "Vanuatu" }
        WF { "Wallis ve Futuna" }
        //WS { "Samoa" }
        //YE { "Yemen" }
        //YT { "Mayotte" }
        YU { "Yugoslavya" }
        ZA { "G\u00FCney Afrika" }
        ZM { "Zambiya" }
        //ZW { "Zimbabwe" }
    }
    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",
    }
    Eras { 
        "M\u00D6",
        "MS",
    }
    Languages {
        aa { "Afar" }
        ab { "Abazca" }
        af { "Afrikaan Dili" }
        am { "Amharik" }
        ar { "Arap\u00E7a" }
        //as { "Assamese" }
        ay { "Aymara" }
        az { "Azerice" }
        ba { "Ba\u015Fk\u0131rt Dili" }
        be { "Beyaz Rus\u00E7a" }
        bg { "Bulgarca" }
        bh { "Bihari" }
        bi { "Bislama" }
        bn { "Bengal Dili" }
        bo { "Tibet\u00E7e" }
        br { "Breton Dili" }
        ca { "Katalan Dili" }
        co { "Korsika Dili" }
        cs { "\u00C7ek\u00E7e" }
        cy { "Gal Dili" }
        da { "Danca" }
        de { "Almanca" }
        dz { "Bhutan Dili" }
        el { "Yunanca" }
        en { "\u0130ngilizce" }
        eo { "Esperanto" }
        es { "\u0130spanyolca" }
        et { "Estonya Dili" }
        eu { "Bask Dili" }
        fa { "Fars\u00E7a" }
        fi { "Fince" }
        fj { "Fiji Dili" }
        fo { "Faroe Dili" }
        fr { "Frans\u0131zca" }
        fy { "Frizye Dili" }
        ga { "\u0130rlanda Dili" }
        gd { "\u0130sko\u00E7 Gal Dili" }
        gl { "Gali\u00E7ya Dili" }
        gn { "Guarani" }
        gu { "Gujarati" }
        ha { "Hausa" }
        he { "\u0130branice" }
        hi { "Hint Dili" }
        hr { "H\u0131rvat\u00E7a" }
        hu { "Macarca" }
        hy { "Ermenice" }
        ia { "Interlingua" }
        id { "Endonezya Dili" }
        ie { "Interlingue" }
        ik { "Inupiak" }
        is { "\u0130zlandaca" }
        it { "\u0130talyanca" }
        iu { "Inuktitut" }
        ja { "Japonca" }
        jv { "Java Dili" }
        ka { "G\u00FCrc\u00FCce" }
        kk { "Kazak Dili" }
        kl { "Gr\u00F6nland Dili" }
        km { "Kambo\u00E7ya Dili" }
        kn { "Kannada" }
        ko { "Korece" }
        ks { "Ke\u015Fmirce" }
        ku { "K\u00FCrt\u00E7e" }
        ky { "K\u0131rg\u0131zca" }
        la { "Latince" }
        ln { "Lingala" }
        lo { "Laos Dili" }
        lt { "Litvanya Dili" }
        lv { "Letonya Dili" }
        mg { "Malaga Dili" }
        mi { "Maori" }
        mk { "Makedonca" }
        ml { "Malayalam" }
        mn { "Mo\u011Fol Dili" }
        mo { "Moldavya Dili" }
        mr { "Marathi" }
        ms { "Malay" }
        mt { "Malta Dili" }
        my { "Birmanya Dili" }
        na { "Nauru" }
        ne { "Nepal Dili" }
        nl { "Hollanda Dili" }
        no { "Norve\u00E7\u00E7e" }
        oc { "Occitan" }
        om { "Oromo (Afan)" }
        or { "Oriya" }
        pa { "Pencap Dili" }
        pl { "Polonya Dili" }
        ps { "Pe\u015Ftun Dili" }
        pt { "Portekizce" }
        qu { "Quechua" }
        rm { "Rhaeto-Roman Dili" }
        rn { "Kirundi" }
        ro { "Romence" }
        ru { "Rus\u00E7a" }
        rw { "Kinyarwanda" }
        sa { "Sanskrit\u00E7e" }
        sd { "Sindhi" }
        sg { "Sangho" }
        sh { "S\u0131rp-H\u0131rvat Dili" }
        si { "Sinhal Dili" }
        sk { "Slovak\u00E7a" }
        sl { "Slovence" }
        sm { "Samoa Dili" }
        sn { "Shona" }
        so { "Somali Dili" }
        sq { "Arnavut\u00E7a" }
        sr { "S\u0131rp\u00E7a" }
        ss { "Siswati" }
        st { "Sesotho" }
        su { "Sudan Dili" }
        sv { "\u0130sve\u00E7\u00E7e" }
        sw { "Swahili" }
        ta { "Tamil" }
        te { "Telugu" }
        tg { "Tacik Dili" }
        th { "Tay Dili" }
        ti { "Tigrinya" }
        tk { "T\u00FCrkmence" }
        tl { "Tagalog" }
        tn { "Setswana" }
        to { "Tonga" }
        tr { "T\u00FCrk\u00E7e" }
        ts { "Tsonga" }
        tt { "Tatarca" }
        tw { "Twi" }
        ug { "Uygurca" }
        uk { "Ukraynaca" }
        ur { "Urduca" }
        uz { "\u00D6zbek\u00E7e" }
        vi { "Vietnam Dili" }
        vo { "Volapuk" }
        wo { "Wolof" }
        xh { "Xhosa" }
        yi { "Yiddi\u015F" }
        yo { "Yoruba" }
        za { "Zhuang" }
        zh { "\u00C7ince" }
        zu { "Zulu" }
        //zh_cn { "\u00C7ince (Basitle\u015Ftirilmi\u015F)" }
        //zh_tw { "\u00C7ince (Geleneksel)" }
    }
    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",
        ",",
        "+",
    }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }

    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z\u00e2\u00fb\u00f6\u00fc\u0131\u00e7\u015f\u011f]" }

    // Currency display names
    Currencies {
        ITL { "ITL", "ITL" } // Italian Lira
//        TRL { "\u20A4", "TRL" } // Turkish Lira (Rarely used)
        TRL { "TL", "TRL" } // Turkish Lira
    }
}