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

tr {
    Version{ "2.0" }
    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" }
    }

    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)" }
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        "+",
    }
    localPatternChars { "GanjkHmsSEDFwWxhKzAeugXZ" }

    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
    }
    calendar{
        gregorian{    
            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}",
            }
            dayNames{
                format{
                    abbreviated{
                        "Paz",
                        "Pzt",
                        "Sal",
                        "\u00C7ar",
                        "Per",
                        "Cum",
                        "Cmt",
                    }
                    wide{
                        "Pazar",
                        "Pazartesi",
                        "Sal\u0131",
                        "\u00C7ar\u015Famba",
                        "Per\u015Fembe",
                        "Cuma",
                        "Cumartesi",
                    }
                }
            }
            eras{
                "M\u00D6",
                "MS",
            }
            monthNames{
                format{
                    abbreviated{
                        "Oca",
                        "\u015Eub",
                        "Mar",
                        "Nis",
                        "May",
                        "Haz",
                        "Tem",
                        "A\u011Fu",
                        "Eyl",
                        "Eki",
                        "Kas",
                        "Ara",
                    }
                    wide{
                        "Ocak",
                        "\u015Eubat",
                        "Mart",
                        "Nisan",
                        "May\u0131s",
                        "Haziran",
                        "Temmuz",
                        "A\u011Fustos",
                        "Eyl\u00FCl",
                        "Ekim",
                        "Kas\u0131m",
                        "Aral\u0131k",
                    }
                }
            }
        }
    }
}
