﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/uk.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/uk.xml
 */
uk{
    AuxExemplarCharacters{"[i v x]"}
    ExemplarCharacters{"[ʼ а-г ґ д е є ж-и і ї й-щ ь ю я]"}
    LocaleScript{
        "Cyrl",
    }
    NumberElements{
        ",",
        " ",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    NumberPatterns{
        "#,##0.###",
        "#,##0.00 ¤",
        "#,##0%",
        "#E0",
    }
    Version{"2.0.42.82"}
    calendar{
        coptic{
            monthNames{
                format{
                    wide{
                        "Тот",
                        "Бабе",
                        "Хатур",
                        "Кіхак",
                        "Тобе",
                        "Амшир",
                        "Барамхат",
                        "Бармуда",
                        "Башнас",
                        "Бауна",
                        "Абіб",
                        "Мисра",
                        "Насі",
                    }
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "дп",
                "пп",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM y 'р'.",
                "d MMMM y 'р'.",
                "d MMM y",
                "dd.MM.yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                HHmm{"HH:mm"}
                HHmmss{"HH:mm:ss"}
                Hm{"H:mm"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"dd.MM"}
                d{"d"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y"}
                yMMM{"LLL y"}
                yMMMEd{"EEE, d MMM y"}
                yMMMM{"LLLL y"}
                yyMM{"MM.yy"}
                yyMMM{"LLL yy"}
                yyyyMMMM{"LLLL y"}
                yyyyQQQQ{"QQQQ y 'р'."}
            }
            dayNames{
                format{
                    abbreviated{
                        "Нд",
                        "Пн",
                        "Вт",
                        "Ср",
                        "Чт",
                        "Пт",
                        "Сб",
                    }
                    wide{
                        "Неділя",
                        "Понеділок",
                        "Вівторок",
                        "Середа",
                        "Четвер",
                        "Пʼятниця",
                        "Субота",
                    }
                }
                stand-alone{
                    narrow{
                        "Н",
                        "П",
                        "В",
                        "С",
                        "Ч",
                        "П",
                        "С",
                    }
                }
            }
            eras{
                abbreviated{
                    "до н.е.",
                    "н.е.",
                }
                wide{
                    "до нашої ери",
                    "нашої ери",
                }
            }
            fields{
                day{
                    dn{"День"}
                    relative{
                        "-1"{"Вчора"}
                        "-2"{"Позавчора"}
                        "-3"{"Три дні тому"}
                        "0"{"Сьогодні"}
                        "1"{"Завтра"}
                        "2"{"Післязавтра"}
                        "3"{"Через три дні з цього моменту"}
                    }
                }
                dayperiod{
                    dn{"Частина доби"}
                }
                era{
                    dn{"Ера"}
                }
                hour{
                    dn{"Година"}
                }
                minute{
                    dn{"Хвилина"}
                }
                month{
                    dn{"Місяць"}
                }
                second{
                    dn{"Секунда"}
                }
                week{
                    dn{"Тиждень"}
                }
                weekday{
                    dn{"День тижня"}
                }
                year{
                    dn{"Рік"}
                }
                zone{
                    dn{"Зона"}
                }
            }
            intervalFormats{
                M{
                    M{"M–M"}
                }
                MEd{
                    M{"E, dd.MM – E, dd.MM"}
                    d{"E, dd.MM – E, dd.MM"}
                }
                MMM{
                    M{"LLL–LLL"}
                }
                MMMEd{
                    M{"E, d MMM – E, d MMM"}
                    d{"E, d – E, d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d–d MMM"}
                }
                Md{
                    M{"dd.MM – dd.MM"}
                    d{"dd.MM – dd.MM"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0} – {1}"}
                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"}
                }
                y{
                    y{"y–y"}
                }
                yM{
                    M{"MM.yy – MM.yy"}
                    y{"MM.yy – MM.yy"}
                }
                yMEd{
                    M{"E, dd.MM.yy – E, dd.MM.yy"}
                    d{"E, dd.MM.yy – E, dd.MM.yy"}
                    y{"E, dd.MM.yy – E, dd.MM.yy"}
                }
                yMMM{
                    M{"LLL–LLL y"}
                    y{"LLL y – LLL y"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM y"}
                    d{"E, d – E, d MMM y"}
                    y{"E, d MMM y – E, d MMM y"}
                }
                yMMMd{
                    M{"d MMM – d MMM y"}
                    d{"d–d MMM y"}
                    y{"d MMM y – d MMM y"}
                }
                yMd{
                    M{"dd.MM.yy – dd.MM.yy"}
                    d{"dd.MM.yy – dd.MM.yy"}
                    y{"dd.MM.yy – dd.MM.yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "січ.",
                        "лют.",
                        "бер.",
                        "квіт.",
                        "трав.",
                        "черв.",
                        "лип.",
                        "серп.",
                        "вер.",
                        "жовт.",
                        "лист.",
                        "груд.",
                    }
                    wide{
                        "січня",
                        "лютого",
                        "березня",
                        "квітня",
                        "травня",
                        "червня",
                        "липня",
                        "серпня",
                        "вересня",
                        "жовтня",
                        "листопада",
                        "грудня",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Січ",
                        "Лют",
                        "Бер",
                        "Кві",
                        "Тра",
                        "Чер",
                        "Лип",
                        "Сер",
                        "Вер",
                        "Жов",
                        "Лис",
                        "Гру",
                    }
                    narrow{
                        "С",
                        "Л",
                        "Б",
                        "К",
                        "Т",
                        "Ч",
                        "Л",
                        "С",
                        "В",
                        "Ж",
                        "Л",
                        "Г",
                    }
                    wide{
                        "Січень",
                        "Лютий",
                        "Березень",
                        "Квітень",
                        "Травень",
                        "Червень",
                        "Липень",
                        "Серпень",
                        "Вересень",
                        "Жовтень",
                        "Листопад",
                        "Грудень",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "I кв.",
                        "II кв.",
                        "III кв.",
                        "IV кв.",
                    }
                    wide{
                        "I квартал",
                        "II квартал",
                        "III квартал",
                        "IV квартал",
                    }
                }
                stand-alone{
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
            }
        }
        hebrew{
            monthNames{
                format{
                    wide{
                        "Тішри",
                        "Марчешван",
                        "Числьов",
                        "Тебет",
                        "Шеват",
                        "Адар I",
                        "Адар",
                        "Нісан",
                        "Іар",
                        "Сиван",
                        "Таммуз",
                        "Аб",
                        "Елул",
                        "Адар II",
                    }
                }
            }
        }
        islamic{
            monthNames{
                format{
                    wide{
                        "Мухаррам",
                        "Сафар",
                        "Рабі I",
                        "Рабі II",
                        "Джумада I",
                        "Джумада II",
                        "Раджаб",
                        "Шаабан",
                        "Рамадан",
                        "Даввал",
                        "Зу-ль-каада",
                        "Зу-ль-хіджа",
                    }
                }
            }
        }
        persian{
            monthNames{
                format{
                    wide{
                        "Фарвардін",
                        "Ордібехешт",
                        "Хордад",
                        "Тір",
                        "Мордад",
                        "Шахрівер",
                        "Мехр",
                        "Абан",
                        "Азер",
                        "Дей",
                        "Бахман",
                        "Есфанд",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"“"}
        alternateQuotationStart{"„"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    measurementSystemNames{
        US{"США"}
        metric{"Метрична"}
    }
    units{
        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} року"}
        }
    }
    unitsShort{
        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} р."}
        }
    }
}
