// ***************************************************************************
// *
// *   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 { 
        RO { "Rom\u00E2nia" }
    }
    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 { 
        ro { "rom\u00E2n\u0103" }
    }
    LocaleID:int { 0x18 }
//    LocaleString { "ro" }
    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",
        ",",
    }
//    ShortLanguage { "ron" }
    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" }
    }
}
