﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/uz_Cyrl.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/uz_Cyrl.xml
 */
uz_Cyrl{
    %%Parent{"root"}
    Keys{
        calendar{"Календарь"}
        collation{"Саралаш тартиби"}
        currency{"Валюта"}
        numbers{"Рақамлар"}
    }
    Languages{
        ab{"Абхазча"}
        af{"Африканча"}
        am{"Амхарча"}
        ar{"Арабча"}
        as{"Ассамча"}
        az{"Озарбайжонча"}
        be{"Беларусча"}
        bg{"Болгарча"}
        bn{"Бенгалча"}
        bo{"Тибетча"}
        bs{"Боснияча"}
        ca{"Каталанча"}
        cs{"Чехча"}
        cy{"Уэлсча"}
        da{"Данияча"}
        de{"Олмонча"}
        el{"Грекча"}
        en{"Инглизча"}
        eo{"Эсперанто"}
        es{"Испанча"}
        es_419{"Лотин Америка испанчаси"}
        et{"Эстонча"}
        eu{"Баскча"}
        fa{"Форсча"}
        fi{"Финча"}
        fil{"Филипино"}
        fj{"Фижича"}
        fo{"Фарэрча"}
        fr{"Французча"}
        fy{"Ғарбий фризианча"}
        ga{"Ирландча"}
        gl{"Галицийча"}
        gn{"Гуарани"}
        gsw{"Швейцария немисчаси"}
        gu{"Гужарати"}
        ha{"Хауса"}
        haw{"Гавайча"}
        he{"Иброний"}
        hi{"Ҳиндча"}
        hr{"Хорватча"}
        ht{"Гаитианча"}
        hu{"Венгрча"}
        hy{"Арманча"}
        id{"Индонезияча"}
        ig{"Игбо"}
        is{"Исландча"}
        it{"Италянча"}
        ja{"Японча"}
        jv{"Яванча"}
        ka{"Грузинча"}
        kk{"Қозоқча"}
        km{"Хмерча"}
        kn{"Каннада"}
        ko{"Корейсча"}
        ks{"Кашмирча"}
        ku{"Курдча"}
        ky{"Қирғизча"}
        la{"Лотинча"}
        lb{"Люксембургча"}
        lo{"Лао"}
        lt{"Литвача"}
        lv{"Латишча"}
        mg{"Малагаси"}
        mi{"Маори"}
        mk{"Македонча"}
        ml{"Малайалам"}
        mr{"Марати"}
        ms{"Малайча"}
        mt{"Мальтача"}
        my{"Бирманча"}
        nb{"Норвегча Бокмал"}
        ne{"Непалча"}
        nl{"Голландча"}
        nl_BE{"Фламандча"}
        nn{"Норвегча Нинорск"}
        or{"Ория"}
        pa{"Панжобча"}
        pl{"Полякча"}
        ps{"Пушту"}
        pt{"Португалча"}
        qu{"Квечуа"}
        rm{"Романча"}
        ro{"Руминча"}
        ru{"Русча"}
        sa{"Санскритча"}
        sd{"Синдхи"}
        si{"Синхала"}
        sk{"Словакча"}
        sl{"Словенча"}
        so{"Сомалича"}
        sq{"Албанча"}
        sr{"Сербча"}
        su{"Сунданча"}
        sv{"Шведча"}
        sw{"Суахили"}
        ta{"Тамилча"}
        te{"Телугу"}
        tg{"Тожикча"}
        th{"Тайча"}
        ti{"Тигринья"}
        tk{"Туркманча"}
        to{"Тонгоча"}
        tr{"Туркча"}
        tt{"Татарча"}
        ug{"Уйғурча"}
        uk{"Украинча"}
        und{"Номаълум тил"}
        ur{"Урду"}
        uz{"Ўзбек"}
        vi{"Вьетнамча"}
        wo{"Волофча"}
        xh{"Хоса"}
        yo{"Йоруба"}
        zgh{"Стандарт Марокаш Тамазит"}
        zh{"Хитойча"}
        zu{"Зулу"}
        zxx{"Тил таркиби йўқ"}
    }
    LanguagesShort{
        en_GB{"Бирлашган Қироллик"}
    }
    Scripts{
        Arab{"Араб"}
        Armn{"Арман"}
        Beng{"Бенгали"}
        Bopo{"Бопомофо"}
        Brai{"Браилле"}
        Cyrl{"Кирил"}
        Deva{"Девангари"}
        Ethi{"Ҳабаш"}
        Geor{"Грузин"}
        Grek{"Юнон"}
        Gujr{"Гужарати"}
        Guru{"Гурмухи"}
        Hang{"Хангул"}
        Hani{"Хан"}
        Hans{"Соддалаштирилган"}
        Hant{"Анъанавий"}
        Hebr{"Иброний"}
        Hira{"Хирагана"}
        Jpan{"Япон"}
        Kana{"Катакана"}
        Khmr{"Хмер"}
        Knda{"Каннада"}
        Kore{"Корейс"}
        Laoo{"Лао"}
        Latn{"Лотин"}
        Mlym{"Малайалам"}
        Mong{"Мўғулча"}
        Mymr{"Мьянма"}
        Orya{"Ория"}
        Sinh{"Синхала"}
        Taml{"Тамил"}
        Telu{"Телугу"}
        Thaa{"Таана"}
        Thai{"Тай"}
        Tibt{"Тибет"}
        Zsym{"Рамзлар"}
        Zxxx{"Ёзилмаган"}
        Zyyy{"Умумий"}
        Zzzz{"Номаълум шрифт"}
    }
    Scripts%stand-alone{
        Hans{"Соддалаштирилган"}
        Hant{"Анъанавий"}
    }
    Types{
        calendar{
            gregorian{"Григориан календари"}
        }
        collation{
            ducet{"Сукут бўйича саралаш тартиби"}
            search{"Умумий қидириш"}
            standard{"Стандарт саралаш тартиби"}
        }
        numbers{
            arab{"Араб-ҳинд рақамлари"}
            arabext{"Кенгайтирилган араб-ҳинд рақамлари"}
            armn{"Арман сонлари"}
            armnlow{"Арман кичик сонлари"}
            beng{"Бенгали рақамлари"}
            deva{"Деванагари рақамлари"}
            ethi{"Ҳабаш сонлари"}
            fullwide{"Тўлиқ кенгликдаги рақамлар"}
            geor{"Грузин сонлари"}
            grek{"Грек сонлари"}
            greklow{"Грек кичик сонлари"}
            gujr{"Гужарати рақамлари"}
            guru{"Гурмухи рақамлари"}
            hanidec{"Хитой ўнлик сонлари"}
            hans{"Соддалаштирилган Хитой сонлари"}
            hansfin{"Соддалаштирилган Хитой молия сонлари"}
            hant{"Анъанавий Хитой сонлари"}
            hantfin{"Анъанавий Хитой молия сонлари"}
            hebr{"Иброний сонлари"}
            jpan{"Япония сонлари"}
            jpanfin{"Япония молия сонлари"}
            khmr{"Хмер рақамлари"}
            knda{"Каннада рақамлари"}
            laoo{"Лао рақамлари"}
            latn{"Ғарб рақамлари"}
            mlym{"Малайалам рақамлари"}
            mymr{"Мьянма рақамлари"}
            orya{"Ория рақамлари"}
            roman{"Рим сонлари"}
            romanlow{"Рим кичик сонлари"}
            taml{"Анъанавий Тамил сонлари"}
            tamldec{"Тамил рақамлари"}
            telu{"Телугу рақамлари"}
            thai{"Тай рақамлари"}
            tibt{"Тибет рақамлари"}
        }
    }
    Version{"2.0.92.87"}
    codePatterns{
        language{"Тил: {0}"}
        script{"{0}"}
        territory{"{0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
