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

ro {
    Version{ "2.0" }
    CollationElements {
        Version { "1.0" }
        Sequence { "& A < a\u0306 <<< A\u0306 & D < \u0111<<< \u0110 & I < i\u0302"
        " <<< I\u0302 & S < s\u0327 <<< S\u0327 & \u00DE < t\u0327 <<< T\u0327& Z < z\u0307 <<< "
        "Z\u0307" }
    }
    Countries { 
        Fallback{ "en"}
        //AD { "Andorra" }
        AE { "Emiratele Arabe Unite" }
        AF { "Afganistan" }
        AG { "Antigua \u015Fi Barbuda" }
        //AI { "Anguilla" }
        //AL { "Albania" }
        //AM { "Armenia" }
        AN { "Antilele Olandeze" }
        //AO { "Angola" }
        //AQ { "Antarctica" }
        //AR { "Argentina" }
        AS { "Samoa American\u0103" }
        //AT { "Austria" }
        //AU { "Australia" }
        //AW { "Aruba" }
        AZ { "Azerbaidjan" }
        BA { "Bosnia \u015Fi Herzegovina" }
        //BB { "Barbados" }
        //BD { "Bangladesh" }
        BE { "Belgia" }
        //BF { "Burkina Faso" }
        //BG { "Bulgaria" }
        //BH { "Bahrain" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        //BM { "Bermuda" }
        //BN { "Brunei" }
        //BO { "Bolivia" }
        BR { "Brazilia" }
        //BS { "Bahamas" }
        //BT { "Bhutan" }
        BV { "Insula Bouvet" }
        //BW { "Botswana" }
        BY { "Bielorusia" }
        //BZ { "Belize" }
        //CA { "Canada" }
        CC { "Insulele Cocos (Keeling)" }
        CD { "Congo, Republica Democratic\u0103" }
        CF { "Republica Central African\u0103" }
        //CG { "Congo" }
        CH { "Eleve\u0163ia" }
        CI { "Coasta de Filde\u015F" }
        CK { "Insulele Cook" }
        //CL { "Chile" }
        CM { "Camerun" }
        //CN { "China" }
        CO { "Columbia" }
        //CR { "Costa Rica" }
        //CU { "Cuba" }
        CV { "Capul Verde" }
        CX { "Insula Christmas" }
        CY { "Cipru" }
        CZ { "Republica Ceh\u0103" }
        DE { "Germania" }
        //DJ { "Djibouti" }
        DK { "Danemarca" }
        //DM { "Dominica" }
        DO { "Republica Dominican\u0103" }
        //DZ { "Algeria" }
        //EC { "Ecuador" }
        //EE { "Estonia" }
        EG { "Egipt" }
        EH { "Sahara de Vest" }
        //ER { "Eritrea" }
        ES { "Spania" }
        ET { "Etiopia" }
        FI { "Finlanda" }
        //FJ { "Fiji" }
        FK { "Insulele Falkland" }
        FM { "Micronezia, Statele Federate" }
        FO { "Insulele Feroe" }
        FR { "Fran\u0163a" }
        //GA { "Gabon" }
        GB { "Regatul Unit" }
        //GD { "Grenada" }
        //GE { "Georgia" }
        GF { "Guyana Francez\u0103" }
        //GH { "Ghana" }
        //GI { "Gibraltar" }
        GL { "Groenlanda" }
        //GM { "Gambia" }
        GN { "Guineea" }
        //GP { "Guadeloupe" }
        GQ { "Guineea Ecuatorial\u0103" }
        GR { "Grecia" }
        GS { "Insulele South Georgia \u015Fi South Sandwich" }
        //GT { "Guatemala" }
        //GU { "Guam" }
        GW { "Guineea-Bissau" }
        //GY { "Guyana" }
        HK { "R.A.S. Hong Kong a Chinei" }
        HM { "Insula Heard \u015Fi Insulele McDonald" }
        //HN { "Honduras" }
        HR { "Croa\u0163ia" }
        //HT { "Haiti" }
        HU { "Ungaria" }
        ID { "Indonezia" }
        IE { "Irlanda" }
        //IL { "Israel" }
        //IN { "India" }
        IO { "Teritoriile Britanice din Oceanul Indian" }
        //IQ { "Iraq" }
        //IR { "Iran, Republica Islamic\u0103" }
        IS { "Islanda" }
        IT { "Italia" }
        //JM { "Jamaica" }
        JO { "Iordania" }
        JP { "Japonia" }
        //KE { "Kenya" }
        KG { "Kirghizia" }
        KH { "Cambodgia" }
        //KI { "Kiribati" }
        //KM { "Comoros" }
        KN { "Saint Kitts \u015Fi Nevis" }
        KP { "Coreea de Nord" }    // alternate name { "Coreea, Republica Popular\u0103 Democratic\u0103" }
        KR { "Coreea de Sud" }    // alternate name { "Coreea, Republica" }
        KW { "Kuweit" }
        KY { "Insulele Cayman" }
        KZ { "Kazahstan" }
        LA { "Lao, Republica Democratic\u0103 Popular\u0103" }
        LB { "Liban" }
        //LC { "Saint Lucia" }
        //LI { "Liechtenstein" }
        //LK { "Sri Lanka" }
        //LR { "Liberia" }
        //LS { "Lesotho" }
        LT { "Lituania" }
        LU { "Luxemburg" }
        LV { "Letonia" }
        LY { "Libia, Jamahiriya Arab\u0103" }
        MA { "Maroc" }
        //MC { "Monaco" }
        MD { "Moldova, Republica" }
        //MG { "Madagascar" }
        MH { "Insulele Marshall" }
        //MK { "Macedonia" }
        //ML { "Mali" }
        //MM { "Myanmar" }
        //MN { "Mongolia" }
        MO { "R.A.S. Macao a Chinei" }
        MP { "Insulele Northern Mariana" }
        MQ { "Martinica" }
        //MR { "Mauritania" }
        //MS { "Montserrat" }
        //MT { "Malta" }
        //MU { "Mauritius" }
        MV { "Maldive" }
        //MW { "Malawi" }
        MX { "Mexic" }
        MY { "Malaezia" }
        MZ { "Mozambic" }
        //NA { "Namibia" }
        NC { "Noua Caledonie" }
        //NE { "Niger" }
        NF { "Insulele Norfolk" }
        //NG { "Nigeria" }
        //NI { "Nicaragua" }
        NL { "Olanda" }
        NO { "Norvegia" }
        //NP { "Nepal" }
        //NR { "Nauru" }
        //NU { "Niue" }
        NZ { "Noua Zeeland\u0103" }
        //OM { "Oman" }
        //PA { "Panama" }
        //PE { "Peru" }
        PF { "Polinezia Francez\u0103" }
        PG { "Papua Noua Guinee" }
        PH { "Filipine" }
        //PK { "Pakistan" }
        PL { "Polonia" }
        PM { "Saint Pierre \u015Fi Miquelon" }
        //PN { "Pitcairn" }
        PR { "Porto Rico" }
        PS { "Teritoriul Palestinian" }
        PT { "Portugalia" }
        //PW { "Palau" }
        //PY { "Paraguay" }
        //QA { "Qatar" }
        RE { "Reunion" }
        RO { "Rom\u00E2nia" }
        //RO { "Romania" } // From translation center
        RU { "Federa\u0163ia Rus\u0103" }
        //RW { "Rwanda" }
        SA { "Arabia Saudit\u0103" }
        SB { "Insulele Solomon" }
        //SC { "Seychelles" }
        //SD { "Sudan" }
        SE { "Suedia" }
        //SG { "Singapore" }
        //SH { "Saint Helena" }
        //SI { "Slovenia" }
        SJ { "Svalbard \u015Fi Jan Mayen" }
        SK { "Slovacia" }
        //SL { "Sierra Leone" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        //SO { "Somalia" }
        SR { "Surinam" }
        ST { "Sao Tome \u015Fi Principe" }
        //SV { "El Salvador" }
        SY { "Siria" }    // alternate name { "Republica Arab\u0103 Siria" }
        //SZ { "Swaziland" }
        TC { "Insulele Turks \u015Fi Caicos" }
        TD { "Ciad" }
        TF { "Teritoriile Franceze de Sud" }
        //TG { "Togo" }
        TH { "Tailanda" }
        TJ { "Tadjikistan" }
        //TK { "Tokelau" }
        TL { "Timorul de Est" }
        //TM { "Turkmenistan" }
        //TN { "Tunisia" }
        //TO { "Tonga" }
        TR { "Turcia" }
        TT { "Trinidad \u015Fi Tobago" }
        //TV { "Tuvalu" }
        TW { "Taiwan, Provincia Chinez\u0103" }    // alternate name { "Taiwan" }
        //TZ { "Tanzania" }
        UA { "Ucraina" }
        //UG { "Uganda" }
        //UM { "United States Minor Outlying Islands" }
        US { "Statele Unite" }
        //UY { "Uruguay" }
        //UZ { "Uzbekistan" }
        VA { "Sf\u00E2ntul Scaun (Statul Vatican)" }
        VC { "Saint Vincent \u015Fi Grenadines" }
        //VE { "Venezuela" }
        VG { "Insulele Virgine Britanice" }
        VI { "Insulele Virgine S.U.A." }
        //VN { "Vietnam" }
        //VU { "Vanuatu" }
        WF { "Wallis \u015Fi Futuna" }
        //WS { "Samoa" }
        //YE { "Yemen" }
        //YT { "Mayotte" }
        YU { "Iugoslavia" }
        ZA { "Africa de Sud" }
        //ZM { "Zambia" }
        //ZW { "Zimbabwe" }
    }
    DateTimePatterns { 
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "d MMMM yyyy",
        "d MMMM yyyy",
        "dd.MM.yyyy",
        "dd.MM.yyyy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "D",
        "L",
        "Ma",
        "Mi",
        "J",
        "V",
        "S",
    }
    DayNames { 
        "duminic\u0103",
        "luni",
        "mar\u0163i",
        "miercuri",
        "joi",
        "vineri",
        "s\u00EEmb\u0103t\u0103",
    }
    Eras { 
        "d.C.",
        "\u00EE.d.C.",
    }
    Languages { 
        Fallback{ "en"}
        ar { "Arab\u0103" }
        bg { "Bulgar\u0103" }
        cs { "Ceh\u0103" }
        da { "Danez\u0103" }
        de { "German\u0103" }
        el { "Greac\u0103" }
        en { "Englez\u0103" }
        es { "Spaniol\u0103" }
        et { "Estonian\u0103" }
        fi { "Finlandez\u0103" }
        fr { "Francez\u0103" }
        he { "Ebraic\u0103" }
        hr { "Croat\u0103" }
        hu { "Maghiar\u0103" }
        it { "Italian\u0103" }
        ja { "Japonez\u0103" }
        ko { "Coreean\u0103" }
        lt { "Lituanian\u0103" }
        lv { "Leton\u0103" }
        nl { "Olandez\u0103" }
        no { "Norvegian\u0103" }
        pl { "Polonez\u0103" }
        pt { "Portughez\u0103" }
        ro { "Rom\u00E2n\u0103" }
        ru { "Rus\u0103" }
        sk { "Slovac\u0103" }
        sl { "Sloven\u0103" }
        sv { "Suedez\u0103" }
        tr { "Turc\u0103" }
        zh { "Chinez\u0103" }
        //zh_cn { "Chinez\u0103 (Simplificat\u0103)" }
        //zh_tw { "Chinez\u0103 (Tradi\u0163ional\u0103)" }
    }
    MonthAbbreviations { 
        "Ian",
        "Feb",
        "Mar",
        "Apr",
        "Mai",
        "Iun",
        "Iul",
        "Aug",
        "Sep",
        "Oct",
        "Nov",
        "Dec",
    }
    MonthNames { 
        "ianuarie",
        "februarie",
        "martie",
        "aprilie",
        "mai",
        "iunie",
        "iulie",
        "august",
        "septembrie",
        "octombrie",
        "noiembrie",
        "decembrie",
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z \u00e2 \u00ee \u0103 \u015f \u0163]" }

    // Currency display names
    Currencies {
        ROL { "lei", "ROL" }
    }
}