﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/sr_Latn.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/sr_Latn.xml
 */
sr_Latn{
    %%Parent{"root"}
    Countries{
        001{"svet"}
        002{"Afrika"}
        003{"Severnoamerički kontinent"}
        005{"Južna Amerika"}
        009{"Okeanija"}
        011{"Zapadna Afrika"}
        013{"Centralna Amerika"}
        014{"Istočna Afrika"}
        015{"Severna Afrika"}
        017{"Centralna Afrika"}
        018{"Južna Afrika"}
        019{"Severna i Južna Amerika"}
        021{"Severna Amerika"}
        029{"Karibi"}
        030{"Istočna Azija"}
        034{"Južna Azija"}
        035{"Jugoistočna Azija"}
        039{"Južna Evropa"}
        053{"Australija i Novi Zeland"}
        054{"Melanezija"}
        057{"Mikronezijski region"}
        061{"Polinezija"}
        142{"Azija"}
        143{"Centralna Azija"}
        145{"Zapadna Azija"}
        150{"Evropa"}
        151{"Istočna Evropa"}
        154{"Severna Evropa"}
        155{"Zapadna Evropa"}
        419{"Latinska Amerika"}
        AC{"Ostrvo Asension"}
        AD{"Andora"}
        AE{"Ujedinjeni Arapski Emirati"}
        AF{"Avganistan"}
        AG{"Antigva i Barbuda"}
        AI{"Angvila"}
        AL{"Albanija"}
        AM{"Jermenija"}
        AN{"Holandski Antili"}
        AO{"Angola"}
        AQ{"Antarktik"}
        AR{"Argentina"}
        AS{"Američka Samoa"}
        AT{"Austrija"}
        AU{"Australija"}
        AW{"Aruba"}
        AX{"Olandska ostrva"}
        AZ{"Azerbejdžan"}
        BA{"Bosna i Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladeš"}
        BE{"Belgija"}
        BF{"Burkina Faso"}
        BG{"Bugarska"}
        BH{"Bahrein"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Sveti Bartolomej"}
        BM{"Bermuda"}
        BN{"Brunej"}
        BO{"Bolivija"}
        BQ{"Karipska Holandija"}
        BR{"Brazil"}
        BS{"Bahami"}
        BT{"Butan"}
        BV{"Ostrvo Buve"}
        BW{"Bocvana"}
        BY{"Belorusija"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kokos (Keling) Ostrva"}
        CD{"Kongo - Kinšasa"}
        CF{"Centralnoafrička Republika"}
        CG{"Kongo - Brazavil"}
        CH{"Švajcarska"}
        CI{"Obala Slonovače"}
        CK{"Kukova Ostrva"}
        CL{"Čile"}
        CM{"Kamerun"}
        CN{"Kina"}
        CO{"Kolumbija"}
        CP{"Ostrvo Kliperton"}
        CR{"Kostarika"}
        CU{"Kuba"}
        CV{"Zelenortska Ostrva"}
        CW{"Kurasao"}
        CX{"Božićno ostrvo"}
        CY{"Kipar"}
        CZ{"Češka"}
        DE{"Nemačka"}
        DG{"Dijego Garsija"}
        DJ{"Džibuti"}
        DK{"Danska"}
        DM{"Dominika"}
        DO{"Dominikanska Republika"}
        DZ{"Alžir"}
        EA{"Seuta i Melilja"}
        EC{"Ekvador"}
        EE{"Estonija"}
        EG{"Egipat"}
        EH{"Zapadna Sahara"}
        ER{"Eritreja"}
        ES{"Španija"}
        ET{"Etiopija"}
        EU{"Evropska Unija"}
        FI{"Finska"}
        FJ{"Fidži"}
        FK{"Foklandska ostrva"}
        FM{"Mikronezija"}
        FO{"Farska Ostrva"}
        FR{"Francuska"}
        GA{"Gabon"}
        GB{"Velika Britanija"}
        GD{"Grenada"}
        GE{"Gruzija"}
        GF{"Francuska Gvajana"}
        GG{"Gurnsi"}
        GH{"Gana"}
        GI{"Gibraltar"}
        GL{"Grenland"}
        GM{"Gambija"}
        GN{"Gvineja"}
        GP{"Gvadelupe"}
        GQ{"Ekvatorijalna Gvineja"}
        GR{"Grčka"}
        GS{"Južna Džordžija i Južna Sendvič Ostrva"}
        GT{"Gvatemala"}
        GU{"Guam"}
        GW{"Gvineja-Bisao"}
        GY{"Gvajana"}
        HK{"Hong Kong S. A. R. Kina"}
        HM{"Ostrva Herd i Mekdonald"}
        HN{"Honduras"}
        HR{"Hrvatska"}
        HT{"Haiti"}
        HU{"Mađarska"}
        IC{"Kanarska ostrva"}
        ID{"Indonezija"}
        IE{"Irska"}
        IL{"Izrael"}
        IM{"Ostrvo Man"}
        IN{"Indija"}
        IO{"Britanska teritorija u Indijskom okeanu"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Island"}
        IT{"Italija"}
        JE{"Džersi"}
        JM{"Jamajka"}
        JO{"Jordan"}
        JP{"Japan"}
        KE{"Kenija"}
        KG{"Kirgistan"}
        KH{"Kambodža"}
        KI{"Kiribati"}
        KM{"Komorska Ostrva"}
        KN{"Sent Kits i Nevis"}
        KP{"Severna Koreja"}
        KR{"Južna Koreja"}
        KW{"Kuvajt"}
        KY{"Kajmanska Ostrva"}
        KZ{"Kazahstan"}
        LA{"Laos"}
        LB{"Liban"}
        LC{"Sveta Lucija"}
        LI{"Lihtenštajn"}
        LK{"Šri Lanka"}
        LR{"Liberija"}
        LS{"Lesoto"}
        LT{"Litvanija"}
        LU{"Luksemburg"}
        LV{"Letonija"}
        LY{"Libija"}
        MA{"Maroko"}
        MC{"Monako"}
        MD{"Moldavija"}
        ME{"Crna Gora"}
        MF{"Sent Martin"}
        MG{"Madagaskar"}
        MH{"Maršalska Ostrva"}
        MK{"Makedonija"}
        ML{"Mali"}
        MM{"Mijanmar (Burma)"}
        MN{"Mongolija"}
        MO{"SAR Makao (Kina)"}
        MP{"Severna Marijanska Ostrva"}
        MQ{"Martinik"}
        MR{"Mauritanija"}
        MS{"Monserat"}
        MT{"Malta"}
        MU{"Mauricijus"}
        MV{"Maldivi"}
        MW{"Malavi"}
        MX{"Meksiko"}
        MY{"Malezija"}
        MZ{"Mozambik"}
        NA{"Namibija"}
        NC{"Nova Kaledonija"}
        NE{"Niger"}
        NF{"Norfolk Ostrvo"}
        NG{"Nigerija"}
        NI{"Nikaragva"}
        NL{"Holandija"}
        NO{"Norveška"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Novi Zeland"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Francuska Polinezija"}
        PG{"Papua Nova Gvineja"}
        PH{"Filipini"}
        PK{"Pakistan"}
        PL{"Poljska"}
        PM{"Sen Pjer i Mikelon"}
        PN{"Pitkern"}
        PR{"Portoriko"}
        PS{"Palestinske teritorije"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paragvaj"}
        QA{"Katar"}
        QO{"Okeanija (udaljena ostrva)"}
        RE{"Reinion"}
        RO{"Rumunija"}
        RS{"Srbija"}
        RU{"Rusija"}
        RW{"Ruanda"}
        SA{"Saudijska Arabija"}
        SB{"Solomonska Ostrva"}
        SC{"Sejšeli"}
        SD{"Sudan"}
        SE{"Švedska"}
        SG{"Singapur"}
        SH{"Sveta Jelena"}
        SI{"Slovenija"}
        SJ{"Svalbard i Jan Majen"}
        SK{"Slovačka"}
        SL{"Sijera Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalija"}
        SR{"Surinam"}
        SS{"Južni Sudan"}
        ST{"Sao Tome i Principe"}
        SV{"Salvador"}
        SX{"Sveti Martin"}
        SY{"Sirija"}
        SZ{"Svazilend"}
        TA{"Tristan da Kunja"}
        TC{"Ostrva Turks i Kaikos"}
        TD{"Čad"}
        TF{"Francuske Južne Teritorije"}
        TG{"Togo"}
        TH{"Tajland"}
        TJ{"Tadžikistan"}
        TK{"Tokelau"}
        TL{"Istočni Timor"}
        TM{"Turkmenistan"}
        TN{"Tunis"}
        TO{"Tonga"}
        TR{"Turska"}
        TT{"Trinidad i Tobago"}
        TV{"Tuvalu"}
        TW{"Tajvan"}
        TZ{"Tanzanija"}
        UA{"Ukrajina"}
        UG{"Uganda"}
        UM{"Udaljena ostrva SAD"}
        US{"Sjedinjene Američke Države"}
        UY{"Urugvaj"}
        UZ{"Uzbekistan"}
        VA{"Vatikan"}
        VC{"Sent Vinsent i Grenadini"}
        VE{"Venecuela"}
        VG{"Britanska Devičanska Ostrva"}
        VI{"Američka Devičanska Ostrva"}
        VN{"Vijetnam"}
        VU{"Vanuatu"}
        WF{"Valis i Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Jemen"}
        YT{"Majot"}
        ZA{"Južnoafrička Republika"}
        ZM{"Zambija"}
        ZW{"Zimbabve"}
        ZZ{"Nepoznat region"}
    }
    Countries%variant{
        CD{"Kongo (DRK)"}
        CG{"Kongo (Republika)"}
        FK{"Foklandska (Malvinska) ostrva"}
        MK{"Makedonija (BJRM)"}
    }
    CountriesShort{
        GB{"UK"}
        HK{"Hong Kong"}
        MO{"Makao"}
        PS{"Palestina"}
        US{"SAD"}
    }
    Version{"2.1.8.20"}
}
