﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/uz.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/uz.xml
 */
uz{
    Countries{
        001{"Dunyo"}
        002{"Afrika"}
        003{"Shimoliy Amerika"}
        005{"Janubiy Amerika"}
        009{"Okeaniya"}
        011{"Gʻarbiy Afrika"}
        013{"Markaziy Amerika"}
        014{"Sharqiy Afrika"}
        015{"Shimoliy Afrika"}
        017{"Markaziy Afrika"}
        018{"Janubi-Afrika"}
        019{"Amerika"}
        021{"Shimoli-Amerika"}
        029{"Karib havzasi"}
        030{"Sharqiy Osiyo"}
        034{"Janubiy Osiyo"}
        035{"Janubiy-Sharqiy Osiyo"}
        039{"Janubiy Yevropa"}
        053{"Avstralaziya"}
        054{"Melaneziya"}
        057{"Mikroneziya mintaqasi"}
        061{"Polineziya"}
        142{"Osiyo"}
        143{"Markaziy Osiyo"}
        145{"Gʻarbiy Osiyo"}
        150{"Yevropa"}
        151{"Sharqiy Yevropa"}
        154{"Shimoliy Yevropa"}
        155{"Gʻarbiy Yevropa"}
        419{"Lotin Amerikasi"}
        AC{"Vozneseniye oroli"}
        AD{"Andorra"}
        AE{"Birlashgan Arab Amirliklari"}
        AF{"Afgʻoniston"}
        AG{"Antigua va Barbados"}
        AI{"Angila"}
        AL{"Albaniya"}
        AM{"Armaniston"}
        AO{"Angola"}
        AQ{"Antarktika"}
        AR{"Argentina"}
        AS{"Amerika Samoasi"}
        AT{"Avstriya"}
        AU{"Avstraliya"}
        AW{"Aruba"}
        AX{"Aland orollari"}
        AZ{"Ozarbayjon"}
        BA{"Bosniya va Gertsegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgiya"}
        BF{"Burkina-Faso"}
        BG{"Bolgariya"}
        BH{"Bahrayn"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Muqaddas Varfalomey"}
        BM{"Bermuda"}
        BN{"Bruney"}
        BO{"Boliviya"}
        BQ{"Karib Niderlandiyasi"}
        BR{"Braziliya"}
        BS{"Bagama orollari"}
        BT{"Butan"}
        BV{"Buvet oroli"}
        BW{"Botsvanna"}
        BY{"Belorusiya"}
        BZ{"Beliz"}
        CA{"Kanada"}
        CC{"Kokos (Kiling) orollari"}
        CD{"Kongo-Kinshasa"}
        CF{"Markaziy Afrika Respublikasi"}
        CG{"Kongo Brazzavil"}
        CH{"Shveysariya"}
        CI{"Kot-d-Ivuar"}
        CK{"Kuk orollari"}
        CL{"Chili"}
        CM{"Kamerun"}
        CN{"Xitoy"}
        CO{"Kolumbiya"}
        CP{"Klipperton oroli"}
        CR{"Kosta-Rika"}
        CU{"Kuba"}
        CV{"Kabo-Verde"}
        CW{"Kurasao"}
        CX{"Rojdestvo oroli"}
        CY{"Kipr"}
        CZ{"Chexiya Respublikasi"}
        DE{"Olmoniya"}
        DG{"Diyego Garsiya"}
        DJ{"Djibuti"}
        DK{"Daniya"}
        DM{"Dominika"}
        DO{"Dominikan Respublikasi"}
        DZ{"Jazoir"}
        EA{"Seyta va Melilla"}
        EC{"Ekvador"}
        EE{"Estoniya"}
        EG{"Misr"}
        EH{"Gʻarbiy Sahroi Kabir"}
        ER{"Eritreya"}
        ES{"Ispaniya"}
        ET{"Efiopiya"}
        EU{"Yevropa Ittifoqi"}
        FI{"Finlyandiya"}
        FJ{"Fiji orollari"}
        FK{"Folklend orollari"}
        FM{"Mikroneziya"}
        FO{"Farer orollari"}
        FR{"Fransiya"}
        GA{"Gabon"}
        GB{"Birlashgan Qirollik"}
        GD{"Grenada"}
        GE{"Gruziya"}
        GF{"Frantsuz Gvianasi"}
        GG{"Gernsi"}
        GH{"Gana"}
        GI{"Gibraltar"}
        GL{"Grenlandiya"}
        GM{"Gambiya"}
        GN{"Gvineya"}
        GP{"Gvadelupe"}
        GQ{"Ekvatorial Gvineya"}
        GR{"Gretsiya"}
        GS{"Janubiy Djordjiya va Janubiy Sendvich orollari"}
        GT{"Gvatemala"}
        GU{"Guam"}
        GW{"Gvineya-Bisau"}
        GY{"Gayana"}
        HK{"Gonkong"}
        HM{"Gerd oroli va MakDonald orollari"}
        HN{"Gonduras"}
        HR{"Xorvatiya"}
        HT{"Gaiti"}
        HU{"Vengriya"}
        IC{"Kanar orollari"}
        ID{"Indoneziya"}
        IE{"Irlandiya"}
        IL{"Isroil"}
        IM{"Men oroli"}
        IN{"Hindiston"}
        IO{"Britaniya Hind okeani hududi"}
        IQ{"Iroq"}
        IR{"Eron"}
        IS{"Islandiya"}
        IT{"Italiya"}
        JE{"Djersi"}
        JM{"Yamayka"}
        JO{"Iordaniya"}
        JP{"Yaponiya"}
        KE{"Keniya"}
        KG{"Qirgʻiziston"}
        KH{"Kambodja"}
        KI{"Kiribati"}
        KM{"Komor orollari"}
        KN{"Sent-Kits va Nevis"}
        KP{"Shimoliy Koreya"}
        KR{"Janubiy Koreya"}
        KW{"Kuvayt"}
        KY{"Kayman orollari"}
        KZ{"Qozogʻiston"}
        LA{"Laos"}
        LB{"Livan"}
        LC{"Sent-Lyusiya"}
        LI{"Lixtenshteyn"}
        LK{"Shri-Lanka"}
        LR{"Liberiya"}
        LS{"Lesoto"}
        LT{"Litva"}
        LU{"Lyuksemburg"}
        LV{"Latviya"}
        LY{"Liviya"}
        MA{"Marokash"}
        MC{"Monako"}
        MD{"Moldova"}
        ME{"Chernogoriya"}
        MF{"Sent-Martin"}
        MG{"Madagaskar"}
        MH{"Marshal orollari"}
        MK{"Makedoniya"}
        ML{"Mali"}
        MM{"Myanma (Birma)"}
        MN{"Mugʻuliston"}
        MO{"Makao"}
        MP{"Shimoliy Marianna orollari"}
        MQ{"Martinika"}
        MR{"Mavritaniya"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mavrikiy"}
        MV{"Maldiv orollari"}
        MW{"Malavi"}
        MX{"Meksika"}
        MY{"Malayziya"}
        MZ{"Mozambik"}
        NA{"Namibiya"}
        NC{"Yangi Kaledoniya"}
        NE{"Niger"}
        NF{"Norfolk orollari"}
        NG{"Nigeriya"}
        NI{"Nikaragua"}
        NL{"Niderlandiya"}
        NO{"Norvegiya"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niuye"}
        NZ{"Yangi Zelandiya"}
        OM{"Ummon"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Frantsuz Polineziyasi"}
        PG{"Papua Yangi Gvineya"}
        PH{"Filippin"}
        PK{"Pokiston"}
        PL{"Polsha"}
        PM{"Sent-Pyer va Mikelon"}
        PN{"Pitkarin orollari"}
        PR{"Puerto-Riko"}
        PS{"Falastina"}
        PT{"Portugaliya"}
        PW{"Palau"}
        PY{"Paragvay"}
        QA{"Qatar"}
        QO{"Yondosh Okeaniya"}
        RE{"Reyunon"}
        RO{"Ruminiya"}
        RS{"Serbiya"}
        RU{"Rossiya"}
        RW{"Ruanda"}
        SA{"Saudiya Arabistoni"}
        SB{"Solomon orollari"}
        SC{"Seyshel orollari"}
        SD{"Sudan"}
        SE{"Shvetsiya"}
        SG{"Singapur"}
        SH{"Muqaddas Yelena orollari"}
        SI{"Sloveniya"}
        SJ{"Savlbard va Jan Mayen"}
        SK{"Slovakiya"}
        SL{"Syerra-Leone"}
        SM{"San-Marino"}
        SN{"Senegal"}
        SO{"Somali"}
        SR{"Surinam"}
        SS{"Janubiy Sudan"}
        ST{"San-Tome va Prinsipi"}
        SV{"El-Salvador"}
        SX{"Sint-Maarten"}
        SY{"Suriya"}
        SZ{"Svazilend"}
        TA{"Tristan de Kuna"}
        TC{"Turks va Kaykos orollari"}
        TD{"Chad"}
        TF{"Frantsiya janubiy xududlari"}
        TG{"Togo"}
        TH{"Tayland"}
        TJ{"Tojikiston"}
        TK{"Tokelau"}
        TL{"Sharqiy-Timor"}
        TM{"Turkmaniston"}
        TN{"Tunis"}
        TO{"Tonga"}
        TR{"Turkiya"}
        TT{"Trinidad va Tobago"}
        TV{"Tuvalu"}
        TW{"Tayvan"}
        TZ{"Tanzaniya"}
        UA{"Ukraina"}
        UG{"Uganda"}
        UM{"AQSH yondosh orollari"}
        US{"Qoʻshma Shtatlar"}
        UY{"Urugvay"}
        UZ{"Oʻzbekiston"}
        VA{"Vatikan"}
        VC{"Sent-Vinsent va Grenadin"}
        VE{"Venesuela"}
        VG{"Britaniya Virdjiniya orollari"}
        VI{"AQSH Virdjiniya orollari"}
        VN{"Vyetnam"}
        VU{"Vanuatu"}
        WF{"Uellis va Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Yaman"}
        YT{"Mayotta"}
        ZA{"Janubiy Afrika"}
        ZM{"Zambiya"}
        ZW{"Zimbabve"}
        ZZ{"Nomaʼlum hudud"}
    }
    CountriesShort{
        GB{"Birlashgan Qirollik"}
        US{"AKSH"}
    }
    Version{"2.0.92.87"}
}
