﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/sl.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/sl.xml
 */
sl{
    Countries{
        001{"Svet"}
        002{"Afrika"}
        003{"Severna Amerika"}
        005{"Južna Amerika"}
        009{"Oceanija"}
        011{"Zahodna Afrika"}
        013{"Srednja Amerika"}
        014{"Vzhodna Afrika"}
        015{"Severna Afrika"}
        017{"Srednja Afrika"}
        018{"Južna Afrika"}
        019{"Amerike"}
        021{"severnoameriška celina"}
        029{"Karibi"}
        030{"Vzhodna Azija"}
        034{"Južna Azija"}
        035{"Jugovzhodna Azija"}
        039{"Južna Evropa"}
        053{"Avstralija in Nova Zelandija"}
        054{"Melanezija"}
        057{"mikronezijska regija"}
        061{"Polinezija"}
        142{"Azija"}
        143{"Osrednja Azija"}
        145{"Zahodna Azija"}
        150{"Evropa"}
        151{"Vzhodna Evropa"}
        154{"Severna Evropa"}
        155{"Zahodna Evropa"}
        419{"Latinska Amerika"}
        AC{"Otok Ascension"}
        AD{"Andora"}
        AE{"Združeni arabski emirati"}
        AF{"Afganistan"}
        AG{"Antigva in Barbuda"}
        AI{"Angvila"}
        AL{"Albanija"}
        AM{"Armenija"}
        AN{"Nizozemski Antili"}
        AO{"Angola"}
        AQ{"Antarktika"}
        AR{"Argentina"}
        AS{"Ameriška Samoa"}
        AT{"Avstrija"}
        AU{"Avstralija"}
        AW{"Aruba"}
        AX{"Alandsko otočje"}
        AZ{"Azerbajdžan"}
        BA{"Bosna in Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladeš"}
        BE{"Belgija"}
        BF{"Burkina Faso"}
        BG{"Bolgarija"}
        BH{"Bahrajn"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthelemy"}
        BM{"Bermudi"}
        BN{"Brunej"}
        BO{"Bolivija"}
        BQ{"Nizozemski Karibi"}
        BR{"Brazilija"}
        BS{"Bahami"}
        BT{"Butan"}
        BV{"Bouvetov otok"}
        BW{"Bocvana"}
        BY{"Belorusija"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kokosovi otoki"}
        CD{"Demokratična republika Kongo"}
        CF{"Centralnoafriška republika"}
        CG{"Kongo - Brazzaville"}
        CH{"Švica"}
        CI{"Slonokoščena obala"}
        CK{"Cookovo otočje"}
        CL{"Čile"}
        CM{"Kamerun"}
        CN{"Kitajska"}
        CO{"Kolumbija"}
        CP{"Otok Clipperton"}
        CR{"Kostarika"}
        CU{"Kuba"}
        CV{"Zelenortski otoki"}
        CW{"Curaçao"}
        CX{"Božični otok"}
        CY{"Ciper"}
        CZ{"Češka"}
        DE{"Nemčija"}
        DG{"Diego Garcia"}
        DJ{"Džibuti"}
        DK{"Danska"}
        DM{"Dominika"}
        DO{"Dominikanska republika"}
        DZ{"Alžirija"}
        EA{"Ceuta in Melilla"}
        EC{"Ekvador"}
        EE{"Estonija"}
        EG{"Egipt"}
        EH{"Zahodna Sahara"}
        ER{"Eritreja"}
        ES{"Španija"}
        ET{"Etiopija"}
        EU{"Evropska unija"}
        FI{"Finska"}
        FJ{"Fidži"}
        FK{"Falklandski otoki"}
        FM{"Mikronezija"}
        FO{"Ferski otoki"}
        FR{"Francija"}
        GA{"Gabon"}
        GB{"Velika Britanija"}
        GD{"Grenada"}
        GE{"Gruzija"}
        GF{"Francoska Gvajana"}
        GG{"Guernsey"}
        GH{"Gana"}
        GI{"Gibraltar"}
        GL{"Grenlandija"}
        GM{"Gambija"}
        GN{"Gvineja"}
        GP{"Gvadalupe"}
        GQ{"Ekvatorialna Gvineja"}
        GR{"Grčija"}
        GS{"Južna Georgia in Južni Sandwichevi otoki"}
        GT{"Gvatemala"}
        GU{"Guam"}
        GW{"Gvineja Bissau"}
        GY{"Gvajana"}
        HK{"Posebno administrativno območje LR Kitajske Hong Kong"}
        HM{"Otok Heard in otočje McDonald"}
        HN{"Honduras"}
        HR{"Hrvaška"}
        HT{"Haiti"}
        HU{"Madžarska"}
        IC{"Kanarski otoki"}
        ID{"Indonezija"}
        IE{"Irska"}
        IL{"Izrael"}
        IM{"Otok Man"}
        IN{"Indija"}
        IO{"Britansko ozemlje v Indijskem oceanu"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Islandija"}
        IT{"Italija"}
        JE{"Jersey"}
        JM{"Jamajka"}
        JO{"Jordanija"}
        JP{"Japonska"}
        KE{"Kenija"}
        KG{"Kirgizistan"}
        KH{"Kambodža"}
        KI{"Kiribati"}
        KM{"Komori"}
        KN{"Saint Kitts in Nevis"}
        KP{"Severna Koreja"}
        KR{"Južna Koreja"}
        KW{"Kuvajt"}
        KY{"Kajmanski otoki"}
        KZ{"Kazahstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"Saint Lucia"}
        LI{"Lihtenštajn"}
        LK{"Šrilanka"}
        LR{"Liberija"}
        LS{"Lesoto"}
        LT{"Litva"}
        LU{"Luksemburg"}
        LV{"Latvija"}
        LY{"Libija"}
        MA{"Maroko"}
        MC{"Monako"}
        MD{"Moldavija"}
        ME{"Črna gora"}
        MF{"Saint Martin"}
        MG{"Madagaskar"}
        MH{"Marshallovi otoki"}
        MK{"Makedonija"}
        ML{"Mali"}
        MM{"Mjanmar [Burma]"}
        MN{"Mongolija"}
        MO{"Posebno administrativno območje LR Kitajske Macao"}
        MP{"Severni Marianski otoki"}
        MQ{"Martinik"}
        MR{"Mavretanija"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldivi"}
        MW{"Malavi"}
        MX{"Mehika"}
        MY{"Malezija"}
        MZ{"Mozambik"}
        NA{"Namibija"}
        NC{"Nova Kaledonija"}
        NE{"Niger"}
        NF{"Norfolški otok"}
        NG{"Nigerija"}
        NI{"Nikaragva"}
        NL{"Nizozemska"}
        NO{"Norveška"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nova Zelandija"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Francoska Polinezija"}
        PG{"Papua Nova Gvineja"}
        PH{"Filipini"}
        PK{"Pakistan"}
        PL{"Poljska"}
        PM{"Saint Pierre in Miquelon"}
        PN{"Pitcairn"}
        PR{"Portoriko"}
        PS{"Palestinsko ozemlje"}
        PT{"Portugalska"}
        PW{"Palau"}
        PY{"Paragvaj"}
        QA{"Katar"}
        QO{"Ostala oceanija"}
        RE{"Reunion"}
        RO{"Romunija"}
        RS{"Srbija"}
        RU{"Rusija"}
        RW{"Ruanda"}
        SA{"Saudova Arabija"}
        SB{"Salomonovi otoki"}
        SC{"Sejšeli"}
        SD{"Sudan"}
        SE{"Švedska"}
        SG{"Singapur"}
        SH{"Sveta Helena"}
        SI{"Slovenija"}
        SJ{"Svalbard in Jan Mayen"}
        SK{"Slovaška"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalija"}
        SR{"Surinam"}
        SS{"Južni Sudan"}
        ST{"Sao Tome in Principe"}
        SV{"Salvador"}
        SX{"Sint Maarten"}
        SY{"Sirija"}
        SZ{"Svazi"}
        TA{"Tristan da Cunha"}
        TC{"Otočji Turks in Caicos"}
        TD{"Čad"}
        TF{"Francosko južno ozemlje"}
        TG{"Togo"}
        TH{"Tajska"}
        TJ{"Tadžikistan"}
        TK{"Tokelau"}
        TL{"Vzhodni Timor"}
        TM{"Turkmenistan"}
        TN{"Tunizija"}
        TO{"Tonga"}
        TR{"Turčija"}
        TT{"Trinidad in Tobago"}
        TV{"Tuvalu"}
        TW{"Tajvan"}
        TZ{"Tanzanija"}
        UA{"Ukrajina"}
        UG{"Uganda"}
        UM{"Druga ameriška ozemlja v Tihem oceanu"}
        US{"Združene države Amerike"}
        UY{"Urugvaj"}
        UZ{"Uzbekistan"}
        VA{"Vatikan"}
        VC{"Saint Vincent in Grenadine"}
        VE{"Venezuela"}
        VG{"Britanski Deviški otoki"}
        VI{"Ameriški Deviški otoki"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis in Futuna"}
        WS{"Samoa"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Južnoafriška republika"}
        ZM{"Zambija"}
        ZW{"Zimbabve"}
        ZZ{"Neznano ali neveljavno območje"}
    }
    Version{"2.0.82.45"}
}
