﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/os.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/os.xml
 */
os{
    AuxExemplarCharacters{"[]"}
    Ellipsis{
        final{"{0}…"}
        initial{"…{0}"}
        medial{"{0}…{1}"}
    }
    ExemplarCharacters{
        "[а ӕ б в г {гъ} д {дж} {дз} е ё ж з и й к {къ} л м н о п {пъ} р с т {тъ} у ф"
        " х {хъ} ц {цъ} ч {чъ} ш щ ъ ы ь э ю я]"
    }
    ExemplarCharactersIndex{
        "[А Ӕ Б В Г {Гъ} Д {Дж} {Дз} Е Ё Ж З И Й К {Къ} Л М Н О П {Пъ} Р С Т {Тъ} У Ф"
        " Х {Хъ} Ц {Цъ} Ч {Чъ} Ш Щ Ы Э Ю Я]"
    }
    ExemplarCharactersPunctuation{
        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ‚ \u0022 “ „ « » ( ) \\[ \\] \\{ \\} § @ * / "
        "\\& #]"
    }
    LocaleScript{
        "Cyrl",
    }
    MoreInformation{"?"}
    NumberElements{
        default{"latn"}
        latn{
            patterns{
                currencyFormat{"¤ #,##0.00"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{" "}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"НН"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.1.10.42"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM, y 'аз' G",
                "d MMMM, y 'аз' G",
                "dd MMM y 'аз' G",
                "dd.MM.yy GGGGG",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            availableFormats{
                H{"HH"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, dd.MM"}
                MMM{"LLL"}
                MMMEd{"ccc, d MMM"}
                MMMd{"d MMM"}
                Md{"dd.MM"}
                d{"d"}
                h{"h a"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"MM.y"}
                yMEd{"E, dd.MM.y"}
                yMMM{"LLL y"}
                yMMMEd{"E, d MMM y"}
                yQQQ{"y-'ӕм' 'азы' QQQ"}
                yQQQQ{"y-'ӕм' 'азы' QQQQ"}
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                M{
                    M{"M–M"}
                }
                Md{
                    M{"dd.MM - dd.MM"}
                    d{"dd.MM - dd.MM"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0} – {1}"}
                h{
                    a{"h a – h a"}
                    h{"h–h a"}
                }
                hm{
                    a{"h:mm a – h:mm a"}
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h–h a v"}
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "ӕмбисбоны размӕ",
                "ӕмбисбоны фӕстӕ",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM, y 'аз'",
                "d MMMM, y 'аз'",
                "dd MMM y 'аз'",
                "dd.MM.yy",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            availableFormats{
                H{"HH"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, dd.MM"}
                MMM{"LLL"}
                MMMEd{"ccc, d MMM"}
                MMMd{"d MMM"}
                Md{"dd.MM"}
                d{"d"}
                h{"h a"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"MM.y"}
                yMEd{"E, dd.MM.y"}
                yMMM{"LLL y"}
                yMMMEd{"E, d MMM y"}
                yQQQ{"y-'ӕм' 'азы' QQQ"}
                yQQQQ{"y-'ӕм' 'азы' QQQQ"}
            }
            dayNames{
                format{
                    abbreviated{
                        "хцб",
                        "крс",
                        "дцг",
                        "ӕрт",
                        "цпр",
                        "мрб",
                        "сбт",
                    }
                    narrow{
                        "Х",
                        "К",
                        "Д",
                        "Ӕ",
                        "Ц",
                        "М",
                        "С",
                    }
                    wide{
                        "хуыцаубон",
                        "къуырисӕр",
                        "дыццӕг",
                        "ӕртыццӕг",
                        "цыппӕрӕм",
                        "майрӕмбон",
                        "сабат",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Хцб",
                        "Крс",
                        "Дцг",
                        "Ӕрт",
                        "Цпр",
                        "Мрб",
                        "Сбт",
                    }
                    narrow{
                        "Х",
                        "К",
                        "Д",
                        "Ӕ",
                        "Ц",
                        "М",
                        "С",
                    }
                    wide{
                        "Хуыцаубон",
                        "Къуырисӕр",
                        "Дыццӕг",
                        "Ӕртыццӕг",
                        "Цыппӕрӕм",
                        "Майрӕмбон",
                        "Сабат",
                    }
                }
            }
            eras{
                abbreviated{
                    "н.д.а.",
                    "н.д.",
                }
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                M{
                    M{"M–M"}
                }
                Md{
                    M{"dd.MM - dd.MM"}
                    d{"dd.MM - dd.MM"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0} – {1}"}
                h{
                    a{"h a – h a"}
                    h{"h–h a"}
                }
                hm{
                    a{"h:mm a – h:mm a"}
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h–h a v"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "янв.",
                        "фев.",
                        "мар.",
                        "апр.",
                        "мая",
                        "июны",
                        "июлы",
                        "авг.",
                        "сен.",
                        "окт.",
                        "ноя.",
                        "дек.",
                    }
                    narrow{
                        "Я",
                        "Ф",
                        "М",
                        "А",
                        "М",
                        "И",
                        "И",
                        "А",
                        "С",
                        "О",
                        "Н",
                        "Д",
                    }
                    wide{
                        "январы",
                        "февралы",
                        "мартъийы",
                        "апрелы",
                        "майы",
                        "июны",
                        "июлы",
                        "августы",
                        "сентябры",
                        "октябры",
                        "ноябры",
                        "декабры",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Янв.",
                        "Февр.",
                        "Март",
                        "Апр.",
                        "Май",
                        "Июнь",
                        "Июль",
                        "Авг.",
                        "Сент.",
                        "Окт.",
                        "Нояб.",
                        "Дек.",
                    }
                    narrow{
                        "Я",
                        "Ф",
                        "М",
                        "А",
                        "М",
                        "И",
                        "И",
                        "А",
                        "С",
                        "О",
                        "Н",
                        "Д",
                    }
                    wide{
                        "Январь",
                        "Февраль",
                        "Мартъи",
                        "Апрель",
                        "Май",
                        "Июнь",
                        "Июль",
                        "Август",
                        "Сентябрь",
                        "Октябрь",
                        "Ноябрь",
                        "Декабрь",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "1-аг кв.",
                        "2-аг кв.",
                        "3-аг кв.",
                        "4-ӕм кв.",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1-аг квартал",
                        "2-аг квартал",
                        "3-аг квартал",
                        "4-ӕм квартал",
                    }
                }
                stand-alone{
                    abbreviated{
                        "1-аг кв.",
                        "2-аг кв.",
                        "3-аг кв.",
                        "4-ӕм кв.",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1-аг квартал",
                        "2-аг квартал",
                        "3-аг квартал",
                        "4-ӕм квартал",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"“"}
        alternateQuotationStart{"„"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"Бон"}
            relative{
                "-1"{"Знон"}
                "-2"{"Ӕндӕрӕбон"}
                "0"{"Абон"}
                "1"{"Сом"}
                "2"{"Иннӕбон"}
            }
            relativeTime{
                future{
                    one{"{0} боны фӕстӕ"}
                    other{"{0} боны фӕстӕ"}
                }
                past{
                    one{"{0} бон раздӕр"}
                    other{"{0} боны размӕ"}
                }
            }
        }
        dayperiod{
            dn{"Боны период"}
        }
        era{
            dn{"Дуг"}
        }
        hour{
            dn{"Сахат"}
            relativeTime{
                future{
                    one{"{0} сахаты фӕстӕ"}
                    other{"{0} сахаты фӕстӕ"}
                }
                past{
                    one{"{0} сахаты размӕ"}
                    other{"{0} сахаты размӕ"}
                }
            }
        }
        minute{
            dn{"Минут"}
        }
        month{
            dn{"Мӕй"}
        }
        second{
            dn{"Секунд"}
        }
        week{
            dn{"Къуыри"}
        }
        weekday{
            dn{"Къуырийы бон"}
        }
        year{
            dn{"Аз"}
        }
        zone{
            dn{"Рӕстӕджы зонӕ"}
        }
    }
    listPattern{
        standard{
            2{"{0} ӕмӕ {1}"}
            end{"{0} ӕмӕ {1}"}
            middle{"{0}, {1}"}
            start{"{0}, {1}"}
        }
    }
    measurementSystemNames{
        UK{"СБ"}
        US{"АИШ"}
        metric{"Метрикон"}
    }
}
