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

ru {
     Version{ "1.0.1" }
// According to the Russian dictionaries and Word, e-diaresis is 
// a secondary difference from e, as it is in the UCA, so no tailoring is needed
//    CollationElements { 
//	    Version { "1.0" }
//		Override { "FALSE" }
// Russian is almost UCA. The problem is currently < \u0435 , \u0415 < \u0451, \u0401 - UCA
// has it < \u0435 , \u0415 ; \u0451, \u0401
//		Sequence { // this needs to be checked again
//			"&\u0415 < \u0451, \u0401"
//		}
//	}
    Countries { 
        RU { "\u0420\u043E\u0441\u0441\u0438\u044F" }
    }
    DateTimeElements { 
            "2",
            "1",
    }
    DateTimePatterns { 
            "H:mm:ss z",
            "H:mm:ss z",
            "H:mm:ss",
            "H:mm",
            "d MMMM yyyy '\u0433.'",
            "d MMMM yyyy '\u0433.'",
            "dd.MM.yyyy",
            "dd.MM.yy",
            "{1} {0}",
    }
    DayAbbreviations { 
            "\u0412\u0441",
            "\u041F\u043D",
            "\u0412\u0442",
            "\u0421\u0440",
            "\u0427\u0442",
            "\u041F\u0442",
            "\u0421\u0431",
    }
    DayNames { 
            "\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435",
            "\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A",
            "\u0432\u0442\u043E\u0440\u043D\u0438\u043A",
            "\u0441\u0440\u0435\u0434\u0430",
            "\u0447\u0435\u0442\u0432\u0435\u0440\u0433",
            "\u043F\u044F\u0442\u043D\u0438\u0446\u0430",
            "\u0441\u0443\u0431\u0431\u043E\u0442\u0430",
    }
    Eras { 
            "\u0434\u043E \u043D.\u044D.",
            "\u043D.\u044D.",
    }
    Languages { 
        ru { "\u0440\u0443\u0441\u0441\u043A\u0438\u0439" }
    }
    LocaleID { "19" }
    LocaleString { "ru" }
    MonthAbbreviations { 
            "\u044F\u043D\u0432",
            "\u0444\u0435\u0432",
            "\u043C\u0430\u0440",
            "\u0430\u043F\u0440",
            "\u043C\u0430\u0439",
            "\u0438\u044E\u043D",
            "\u0438\u044E\u043B",
            "\u0430\u0432\u0433",
            "\u0441\u0435\u043D",
            "\u043E\u043A\u0442",
            "\u043D\u043E\u044F",
            "\u0434\u0435\u043A",
            "",
    }
    MonthNames { 
            "\u042F\u043D\u0432\u0430\u0440\u044C",
            "\u0424\u0435\u0432\u0440\u0430\u043B\u044C",
            "\u041C\u0430\u0440\u0442",
            "\u0410\u043F\u0440\u0435\u043B\u044C",
            "\u041C\u0430\u0439",
            "\u0418\u044E\u043D\u044C",
            "\u0418\u044E\u043B\u044C",
            "\u0410\u0432\u0433\u0443\u0441\u0442",
            "\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C",
            "\u041E\u043A\u0442\u044F\u0431\u0440\u044C",
            "\u041D\u043E\u044F\u0431\u0440\u044C",
            "\u0414\u0435\u043A\u0430\u0431\u0440\u044C",
            "",
    }
    NumberElements { 
            ",",
            " ",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "rus" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
    LocaleScript{ 
                "Cyrl"      // ISO 15924 Name 

    }

    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

//         * Spellout rules for Russian.

        // Can someone supply me with information on negatives and decimals?
        // How about words for billions and trillions?

    SpelloutRules {
            "\u043d\u043e\u043b\u044c; \u043e\u0434\u0438\u043d; \u0434\u0432\u0430; \u0442\u0440\u0438; "
            "\u0447\u0435\u0442\u044b\u0440\u0435; \u043f\u044f\u0442; \u0448\u0435\u0441\u0442; "
            "\u0441\u0435\u043c\u044c; \u0432\u043e\u0441\u0435\u043c\u044c; \u0434\u0435\u0432\u044f\u0442;\n"
            "10: \u0434\u0435\u0441\u044f\u0442; "
            "\u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u044c;\n"
            "\u0434\u0432\u0435\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u044c; "
            "\u0442\u0440\u0438\u043d\u0430\u0434\u0446\u0430\u0442\u044c; "
            "\u0447\u0435\u0442\u044b\u0440\u043d\u0430\u0434\u0446\u0430\u0442\u044c;\n"
            "15: \u043f\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c; "
            "\u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c; "
            "\u0441\u0435\u043c\u043d\u0430\u0434\u0446\u0430\u0442\u044c; "
            "\u0432\u043e\u0441\u0435\u043c\u043d\u0430\u0434\u0446\u0430\u0442\u044c; "
            "\u0434\u0435\u0432\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c;\n"
            "20: \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c[ >>];\n"
            "30: \u0442\u0440\u043b\u0434\u0446\u0430\u0442\u044c[ >>];\n"
            "40: \u0441\u043e\u0440\u043e\u043a[ >>];\n"
            "50: \u043f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442[ >>];\n"
            "60: \u0448\u0435\u0441\u0442\u044c\u0434\u0435\u0441\u044f\u0442[ >>];\n"
            "70: \u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442[ >>];\n"
            "80: \u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442[ >>];\n"
            "90: \u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u043e[ >>];\n"
            "100: \u0441\u0442\u043e[ >>];\n"
            "200: << \u0441\u0442\u043e[ >>];\n"
            "1000: \u0442\u044b\u0441\u044f\u0447\u0430[ >>];\n"
            "2000: << \u0442\u044b\u0441\u044f\u0447\u0430[ >>];\n"
            "1,000,000: \u043c\u0438\u043b\u043b\u0438\u043e\u043d[ >>];\n"
            "2,000,000: << \u043c\u0438\u043b\u043b\u0438\u043e\u043d[ >>];\n"
            "1,000,000,000: =#,##0=;" 
    }
}
