﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/be.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/be.xml
 */
be{
    AuxExemplarCharacters{
        "[{а\u0301} {е\u0301} {ё\u0301} {і\u0301} {о\u0301} {у\u0301} {ы\u0301} {э"
        "\u0301} {ю\u0301} {я\u0301}]"
    }
    ExemplarCharacters{"[а б в г д {дж} {дз} е ё ж з і й к л м н о п р с т у ў ф х ц ч ш ы ь э ю я]"}
    ExemplarCharactersIndex{"[А Б В Г Д Е Ж З І Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Ы Э Ю Я]"}
    LocaleScript{
        "Cyrl",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.92.87"}
    calendar{
        buddhist{
            DateTimePatterns{
                "HH.mm.ss zzzz",
                "HH.mm.ss z",
                "HH.mm.ss",
                "HH.mm",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "d.M.yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E, d"}
                Gy{"G y"}
                Hm{"HH.mm"}
                Hms{"HH.mm.ss"}
                M{"L"}
                MEd{"E, d.M"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMd{"d MMM"}
                Md{"d.M"}
                d{"d"}
                hm{"h.mm a"}
                hms{"h.mm.ss a"}
                y{"G y"}
                yM{"M.y"}
                yMEd{"E, d.M.y"}
                yMMM{"MMM y G"}
                yMMMEd{"E, d MMM y G"}
                yMMMd{"d MMM y G"}
                yMd{"d.M.y"}
            }
        }
        generic{
            DateTimePatterns{
                "HH.mm.ss zzzz",
                "HH.mm.ss z",
                "HH.mm.ss",
                "HH.mm",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d.M.y G",
                "d.M.y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E, d"}
                Gy{"y G"}
                GyMMM{"LLL y G"}
                GyMMMEd{"E, d MMM y G"}
                GyMMMd{"d MMM y G"}
                Hm{"HH.mm"}
                Hms{"HH.mm.ss"}
                M{"L"}
                MEd{"E, d.M"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMd{"d MMM"}
                Md{"d.M"}
                d{"d"}
                hm{"h.mm a"}
                hms{"h.mm.ss a"}
                ms{"mm.ss"}
                y{"y G"}
                yyyy{"y G"}
                yyyyM{"M.y G"}
                yyyyMEd{"E, d.M.y G"}
                yyyyMMM{"LLL y G"}
                yyyyMMMEd{"E, d MMM y G"}
                yyyyMMMM{"LLLL y G"}
                yyyyMMMd{"d MMM y G"}
                yyyyMd{"d.M.y G"}
                yyyyQQQ{"QQQ y G"}
                yyyyQQQQ{"QQQQ y G"}
            }
            intervalFormats{
                MMM{
                    M{"LLL-LLL"}
                }
                yMMM{
                    M{"LLL-LLL y G"}
                    y{"LLL y - LLL y G"}
                }
                yMMMM{
                    M{"LLLL-LLLL y G"}
                    y{"LLLL y - LLLL y G"}
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "да палудня",
                "пасля палудня",
            }
            DateTimePatterns{
                "HH.mm.ss zzzz",
                "HH.mm.ss z",
                "HH.mm.ss",
                "HH.mm",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d.M.y",
                "d.M.yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Gy{"y G"}
                GyMMM{"LLL y G"}
                GyMMMEd{"E, d MMM y G"}
                GyMMMd{"d MMM y G"}
                Hm{"HH.mm"}
                Hms{"HH.mm.ss"}
                M{"L"}
                MEd{"E, d.M"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d.M"}
                d{"d"}
                hm{"h.mm a"}
                hms{"h.mm.ss a"}
                ms{"mm.ss"}
                y{"y"}
                yM{"M.y"}
                yMEd{"E, d.M.y"}
                yMMM{"LLL y"}
                yMMMEd{"E, d MMM y"}
                yMMMM{"LLLL y"}
                yMMMd{"d MMM y"}
                yMd{"d.M.y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "нд",
                        "пн",
                        "аў",
                        "ср",
                        "чц",
                        "пт",
                        "сб",
                    }
                    wide{
                        "нядзеля",
                        "панядзелак",
                        "аўторак",
                        "серада",
                        "чацвер",
                        "пятніца",
                        "субота",
                    }
                }
                stand-alone{
                    narrow{
                        "н",
                        "п",
                        "а",
                        "с",
                        "ч",
                        "п",
                        "с",
                    }
                }
            }
            eras{
                abbreviated{
                    "да н.э.",
                    "н.э.",
                }
            }
            intervalFormats{
                MMM{
                    M{"LLL-LLL"}
                }
                yMMM{
                    M{"LLL-LLL y"}
                    y{"LLL y - LLL y"}
                }
                yMMMM{
                    M{"LLLL-LLLL y"}
                    y{"LLLL y - LLLL y"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "сту",
                        "лют",
                        "сак",
                        "кра",
                        "мая",
                        "чэр",
                        "ліп",
                        "жні",
                        "вер",
                        "кас",
                        "ліс",
                        "сне",
                    }
                    narrow{
                        "с",
                        "л",
                        "с",
                        "к",
                        "м",
                        "ч",
                        "л",
                        "ж",
                        "в",
                        "к",
                        "л",
                        "с",
                    }
                    wide{
                        "студзеня",
                        "лютага",
                        "сакавіка",
                        "красавіка",
                        "мая",
                        "чэрвеня",
                        "ліпеня",
                        "жніўня",
                        "верасня",
                        "кастрычніка",
                        "лістапада",
                        "снежня",
                    }
                }
                stand-alone{
                    abbreviated{
                        "сту",
                        "лют",
                        "сак",
                        "кра",
                        "май",
                        "чэр",
                        "ліп",
                        "жні",
                        "вер",
                        "кас",
                        "ліс",
                        "сне",
                    }
                    narrow{
                        "с",
                        "л",
                        "с",
                        "к",
                        "м",
                        "ч",
                        "л",
                        "ж",
                        "в",
                        "к",
                        "л",
                        "с",
                    }
                    wide{
                        "студзень",
                        "люты",
                        "сакавік",
                        "красавік",
                        "май",
                        "чэрвень",
                        "ліпень",
                        "жнівень",
                        "верасень",
                        "кастрычнік",
                        "лістапад",
                        "снежань",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "1-шы кв.",
                        "2-гі кв.",
                        "3-ці кв.",
                        "4-ты кв.",
                    }
                    wide{
                        "1-шы квартал",
                        "2-гі квартал",
                        "3-ці квартал",
                        "4-ты квартал",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"›"}
        alternateQuotationStart{"‹"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"дзень"}
            relative{
                "-1"{"учора"}
                "-2"{"пазаўчора"}
                "0"{"сёння"}
                "1"{"заўтра"}
                "2"{"паслязаўтра"}
            }
        }
        dayperiod{
            dn{"ДП/ПП"}
        }
        era{
            dn{"эра"}
        }
        hour{
            dn{"гадзіна"}
        }
        minute{
            dn{"хвіліна"}
        }
        month{
            dn{"месяц"}
        }
        second{
            dn{"секунда"}
        }
        week{
            dn{"тыдзень"}
        }
        weekday{
            dn{"дзень тыдня"}
        }
        year{
            dn{"год"}
        }
        zone{
            dn{"Zone"}
        }
    }
    measurementSystemNames{
        US{"ЗША"}
        metric{"метрычная"}
    }
    units{
        duration{
            day{
                few{"{0} дні"}
                many{"{0} дзён"}
                one{"{0} дзень"}
                other{"{0} дня"}
            }
            hour{
                few{"{0} гадзіны"}
                many{"{0} гадзін"}
                one{"{0} гадзіна"}
                other{"{0} гадзіны"}
            }
            minute{
                few{"{0} хвіліны"}
                many{"{0} хвілін"}
                one{"{0} хвіліна"}
                other{"{0} хвіліны"}
            }
            month{
                few{"{0} месяца"}
                many{"{0} месяцаў"}
                one{"{0} месяц"}
                other{"{0} месяца"}
            }
            second{
                few{"{0} сэкунды"}
                many{"{0} сэкунд"}
                one{"{0} сэкунда"}
                other{"{0} сэкунды"}
            }
            week{
                few{"{0} тыдні"}
                many{"{0} тыдняў"}
                one{"{0} тыдзень"}
                other{"{0} тыдня"}
            }
            year{
                few{"{0} гады"}
                many{"{0} гадоў"}
                one{"{0} год"}
                other{"{0} году"}
            }
        }
    }
}
