// *******************************************************************************
// *
// *   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:array {
        "Cyrl"      // ISO 15924 Name 
    }

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

//         * Spellout rules for Russian.

    // TODO: 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=;" 
    }
}
