﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/se.xml
// *
// ***************************************************************************
se{
    Countries{
        001{"máilbmi"}
        002{"Afrihkká"}
        003{"dávvi-Amerihkká ja gaska-Amerihkká"}
        005{"mátta-Amerihkká"}
        009{"Oseania"}
        011{"oarji-Afrihkká"}
        013{"gaska-Amerihkká"}
        014{"nuorta-Afrihkká"}
        015{"davvi-Afrihkká"}
        017{"gaska-Afrihkká"}
        018{"mátta-Afrihkká"}
        019{"Amerihkká"}
        021{"dávvi-Amerihkká"}
        029{"Karibia"}
        030{"nuorta-Ásia"}
        034{"mátta-Ásia"}
        035{"mátta-nuorta-Ásia"}
        039{"mátta-Eurohpá"}
        053{"Austrália ja Ođđa-Selánda"}
        054{"Melanesia"}
        057{"Mikronesia guovllus"}
        061{"Polynesia"}
        142{"Ásia"}
        143{"gaska-Ásia"}
        145{"oarji-Ásia"}
        150{"Eurohpá"}
        151{"nuorta-Eurohpá"}
        154{"davvi-Eurohpá"}
        155{"oarji-Eurohpá"}
        419{"lulli-Amerihkká"}
        AC{"Ascension"}
        AD{"Andorra"}
        AE{"Ovttastuvvan Arábaemiráhtat"}
        AF{"Afghanistan"}
        AG{"Antigua ja Barbuda"}
        AI{"Anguilla"}
        AL{"Albánia"}
        AM{"Armenia"}
        AO{"Angola"}
        AQ{"Antárktis"}
        AR{"Argentina"}
        AS{"Amerihká Samoa"}
        AT{"Nuortariika"}
        AU{"Austrália"}
        AW{"Aruba"}
        AX{"Ålánda"}
        AZ{"Aserbaižan"}
        BA{"Bosnia-Hercegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgia"}
        BF{"Burkina Faso"}
        BG{"Bulgária"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Saint Barthélemy"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BR{"Brasil"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Bouvet-sullot"}
        BW{"Botswana"}
        BY{"Vilges-Ruošša"}
        BZ{"Belize"}
        CA{"Kanáda"}
        CC{"Cocos-sullot"}
        CD{"Kongo-Kinshasa"}
        CF{"Gaska-Afrihká dásseváldi"}
        CG{"Kongo-Brazzaville"}
        CH{"Šveica"}
        CI{"Elfenbenariddu"}
        CK{"Cook-sullot"}
        CL{"Čiile"}
        CM{"Kamerun"}
        CN{"Kiinná"}
        CO{"Kolombia"}
        CP{"Clipperton-sullot"}
        CR{"Costa Rica"}
        CU{"Kuba"}
        CV{"Kap Verde"}
        CW{"Curaçao"}
        CX{"Juovllat-sullot"}
        CY{"Kypros"}
        CZ{"Čeahkka"}
        DE{"Duiska"}
        DG{"Diego Garcia"}
        DJ{"Djibouti"}
        DK{"Dánmárku"}
        DM{"Dominica"}
        DO{"Dominikána dásseváldi"}
        DZ{"Algeria"}
        EA{"Ceuta ja Melilla"}
        EC{"Ecuador"}
        EE{"Estlánda"}
        EG{"Egypta"}
        EH{"Oarje-Sahára"}
        ER{"Eritrea"}
        ES{"Spánia"}
        ET{"Etiopia"}
        EU{"Eurohpa Uniovdna"}
        FI{"Suopma"}
        FJ{"Fijisullot"}
        FK{"Falklandsullot"}
        FM{"Mikronesia"}
        FO{"Fearsullot"}
        FR{"Frankriika"}
        GA{"Gabon"}
        GB{"Stuorra-Británnia"}
        GD{"Grenada"}
        GE{"Georgia"}
        GF{"Frankriikka Guayana"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Kalaallit Nunaat"}
        GM{"Gámbia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Ekvatoriála Guinea"}
        GR{"Greika"}
        GS{"Lulli Georgia ja Lulli Sandwich-sullot"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Hongkong"}
        HM{"Heard- ja McDonald-sullot"}
        HN{"Honduras"}
        HR{"Kroátia"}
        HT{"Haiti"}
        HU{"Ungár"}
        IC{"Kanáriasullot"}
        ID{"Indonesia"}
        IE{"Irlánda"}
        IL{"Israel"}
        IM{"Mann-sullot"}
        IN{"India"}
        IQ{"Irak"}
        IR{"Iran"}
        IS{"Islánda"}
        IT{"Itália"}
        JE{"Jersey"}
        JM{"Jamaica"}
        JO{"Jordánia"}
        JP{"Japána"}
        KE{"Kenia"}
        KG{"Kirgisistan"}
        KH{"Kambodža"}
        KI{"Kiribati"}
        KM{"Komoros"}
        KN{"Saint Kitts ja Nevis"}
        KP{"Davvi-Korea"}
        KR{"Mátta-Korea"}
        KW{"Kuwait"}
        KY{"Cayman-sullot"}
        KZ{"Kasakstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Lietuva"}
        LU{"Luxembourg"}
        LV{"Látvia"}
        LY{"Libya"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Moldávia"}
        ME{"Montenegro"}
        MF{"Frankriikka Saint Martin"}
        MG{"Madagaskar"}
        MH{"Marshallsullot"}
        MK{"Makedonia"}
        ML{"Mali"}
        MM{"Burma"}
        MN{"Mongolia"}
        MO{"Makáo"}
        MP{"Davvi-Mariánat"}
        MQ{"Martinique"}
        MR{"Mauretánia"}
        MS{"Montserrat"}
        MT{"Málta"}
        MU{"Mauritius"}
        MV{"Malediivvat"}
        MW{"Malawi"}
        MX{"Meksiko"}
        MY{"Malesia"}
        MZ{"Mosambik"}
        NA{"Namibia"}
        NC{"Ođđa-Kaledonia"}
        NE{"Niger"}
        NF{"Norfolksullot"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Vuolleeatnamat"}
        NO{"Norga"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Ođđa-Selánda"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Frankriikka Polynesia"}
        PG{"Papua-Ođđa-Guinea"}
        PH{"Filippiinnat"}
        PK{"Pakistan"}
        PL{"Polen"}
        PM{"Saint Pierre ja Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palestina"}
        PT{"Portugála"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        RE{"Réunion"}
        RO{"Románia"}
        RS{"Serbia"}
        RU{"Ruošša"}
        RW{"Rwanda"}
        SA{"Saudi-Arábia"}
        SB{"Salomon-sullot"}
        SC{"Seychellsullot"}
        SD{"Davvisudan"}
        SE{"Ruoŧŧa"}
        SG{"Singapore"}
        SH{"Saint Helena"}
        SI{"Slovenia"}
        SJ{"Svalbárda ja Jan Mayen"}
        SK{"Slovákia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somália"}
        SR{"Surinam"}
        SS{"Máttasudan"}
        ST{"São Tomé ja Príncipe"}
        SV{"El Salvador"}
        SX{"Vuolleeatnamat Saint Martin"}
        SY{"Syria"}
        SZ{"Svazieana"}
        TA{"Tristan da Cunha"}
        TC{"Turks ja Caicos-sullot"}
        TD{"Tčad"}
        TG{"Togo"}
        TH{"Thaieana"}
        TJ{"Tažikistan"}
        TK{"Tokelau"}
        TL{"Nuorta-Timor"}
        TM{"Turkmenistan"}
        TN{"Tunisia"}
        TO{"Tonga"}
        TR{"Durka"}
        TT{"Trinidad ja Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzánia"}
        UA{"Ukraina"}
        UG{"Uganda"}
        US{"Amerihká ovttastuvvan stáhtat"}
        UY{"Uruguay"}
        UZ{"Usbekistan"}
        VA{"Vatikána"}
        VC{"Saint Vincent ja Grenadine"}
        VE{"Venezuela"}
        VG{"Brittania Virgin-sullot"}
        VI{"AOS Virgin-sullot"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis ja Futuna"}
        WS{"Samoa"}
        XK{"Kosovo"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Mátta-Afrihká"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
        ZZ{"dovdameahttun guovlu"}
    }
    Countries%short{
        GB{"Stuorra-Británnia"}
        HK{"Hongkong"}
        MO{"Makáo"}
        PS{"Palestina"}
        US{"USA"}
    }
    Version{"2.1.15.45"}
}
