﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/gsw.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/gsw.xml
 */
gsw{
    Countries{
        001{"Wält"}
        002{"Afrika"}
        003{"Nordameerika"}
        005{"Süüdameerika"}
        009{"Ozeaanie"}
        011{"Weschtafrika"}
        013{"Mittelameerika"}
        014{"Oschtafrika"}
        015{"Nordafrika"}
        017{"Zentraalafrika"}
        018{"Süüdlichs Afrika"}
        019{"Nord-, Mittel- und Süüdameerika"}
        021{"Nördlichs Ameerika"}
        029{"Karibik"}
        030{"Oschtaasie"}
        034{"Süüdaasie"}
        035{"Süüdoschtaasie"}
        039{"Süüdeuropa"}
        053{"Auschtraalie und Nöiseeland"}
        054{"Melaneesie"}
        057{"Mikroneesischs Inselgebiet"}
        061{"Polineesie"}
        062{"Süüd-Zentraalaasie"}
        142{"Aasie"}
        143{"Zentraalaasie"}
        145{"Weschtaasie"}
        150{"Euroopa"}
        151{"Oschteuroopa"}
        154{"Nordeuroopa"}
        155{"Weschteuroopa"}
        172{"Gmäinschaft vo Unabhängige Schtaate"}
        419{"Latiinameerika und Karibik"}
        830{"Kanaalinsle"}
        AD{"Andorra"}
        AE{"Veräinigti Arabischi Emiräät"}
        AF{"Afganischtan"}
        AG{"Antigua und Barbuda"}
        AI{"Anguilla"}
        AL{"Albaanie"}
        AM{"Armeenie"}
        AN{"Niderländischi Antille"}
        AO{"Angoola"}
        AQ{"Antarktis"}
        AR{"Argentiinie"}
        AS{"Amerikaanisch-Samoa"}
        AT{"Ööschtriich"}
        AU{"Auschtraalie"}
        AW{"Aruba"}
        AX{"Aaland-Insle"}
        AZ{"Aserbäidschan"}
        BA{"Bosnie und Herzegowina"}
        BB{"Barbados"}
        BD{"Bangladesch"}
        BE{"Belgie"}
        BF{"Burkina Faaso"}
        BG{"Bulgaarie"}
        BH{"Bachräin"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"St. Barthelemi"}
        BM{"Bermuuda"}
        BN{"Brunäi Tarussalam"}
        BO{"Boliivie"}
        BR{"Brasilie"}
        BS{"Bahaamas"}
        BT{"Bhutan"}
        BV{"Bouvet-Insle"}
        BW{"Botswana"}
        BY{"Wiissrussland"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Kokos-Insle"}
        CD{"Temokraatischi Republik Kongo"}
        CF{"Zentraalafrikaanischi Republik"}
        CG{"Kongo"}
        CH{"Schwiiz"}
        CI{"Elfebäiküschte"}
        CK{"Cook-Insle"}
        CL{"Tschile"}
        CM{"Kamerun"}
        CN{"Chiina"}
        CO{"Kolumbie"}
        CR{"Coschta Rica"}
        CS{"Särbie und Monteneegro"}
        CU{"Kuba"}
        CV{"Kap Verde"}
        CX{"Wienachts-Insle"}
        CY{"Tsüpere"}
        CZ{"Tschechischi Republik"}
        DE{"Tüütschland"}
        DJ{"Tschibuuti"}
        DK{"Tänemark"}
        DM{"Tominica"}
        DO{"Tominikaanischi Republik"}
        DZ{"Algeerie"}
        EC{"Ecuador"}
        EE{"Eestland"}
        EG{"Ägüpte"}
        EH{"Weschtsahara"}
        ER{"Äritreea"}
        ES{"Schpanie"}
        ET{"Äzioopie"}
        EU{"Europääischi Unioon"}
        FI{"Finnland"}
        FJ{"Fitschi"}
        FK{"Falkland-Insle"}
        FM{"Mikroneesie"}
        FO{"Färöer"}
        FR{"Frankriich"}
        GA{"Gabun"}
        GB{"Veräinigts Chönigriich"}
        GD{"Grenada"}
        GE{"Geoorgie"}
        GF{"Französisch-Guäjaana"}
        GG{"Gäärnsi"}
        GH{"Gaana"}
        GI{"Gibraltar"}
        GL{"Gröönland"}
        GM{"Gambia"}
        GN{"Gineea"}
        GP{"Guadälup"}
        GQ{"Äquatoriaalgineea"}
        GR{"Griecheland"}
        GS{"Süüdgeorgie und d’süüdlichi Sändwitsch-Insle"}
        GT{"Guatemaala"}
        GU{"Guam"}
        GW{"Gineea-Bissau"}
        GY{"Guäjaana"}
        HK{"Sonderverwaltigszone Hongkong"}
        HM{"Höörd- und MäcDonald-Insle"}
        HN{"Honduras"}
        HR{"Kroaazie"}
        HT{"Haiti"}
        HU{"Ungarn"}
        ID{"Indoneesie"}
        IE{"Irland"}
        IL{"Israel"}
        IM{"Insle vo Män"}
        IN{"Indie"}
        IO{"Britischs Territoorium im Indische Oozean"}
        IQ{"Iraak"}
        IR{"Iraan"}
        IS{"Iisland"}
        IT{"Itaalie"}
        JE{"Dschörsi"}
        JM{"Dschamäika"}
        JO{"Jordaanie"}
        JP{"Japan"}
        KE{"Keenia"}
        KG{"Kirgiisischtan"}
        KH{"Kambodscha"}
        KI{"Kiribaati"}
        KM{"Komoore"}
        KN{"St. Kitts und Niuwis"}
        KP{"Demokraatischi Volksrepublik Koreea"}
        KR{"Republik Koreea"}
        KW{"Kuwäit"}
        KY{"Käimän-Insle"}
        KZ{"Kasachschtan"}
        LA{"Laaos"}
        LB{"Libanon"}
        LC{"Sankta Lutschiia"}
        LI{"Liächteschtäi"}
        LK{"Schri Lanka"}
        LR{"Libeeria"}
        LS{"Lesooto"}
        LT{"Littaue"}
        LU{"Luxemburg"}
        LV{"Lettland"}
        LY{"Lüübie"}
        MA{"Marokko"}
        MC{"Monaco"}
        MD{"Republik Moldau"}
        ME{"Monteneegro"}
        MF{"St. Martin"}
        MG{"Madagaschkar"}
        MH{"Marshallinsle"}
        MK{"Mazedoonie"}
        ML{"Maali"}
        MM{"Müanmar"}
        MN{"Mongolei"}
        MO{"Sonderverwaltigszone Macao"}
        MP{"Nördlichi Mariaane"}
        MQ{"Martinigg"}
        MR{"Mauretaanie"}
        MS{"Moosörrat"}
        MT{"Malta"}
        MU{"Mauriizius"}
        MV{"Malediiwe"}
        MW{"Malaawi"}
        MX{"Mexiko"}
        MY{"Malaisia"}
        MZ{"Mosambik"}
        NA{"Namiibia"}
        NC{"Nöikaledoonie"}
        NE{"Niger"}
        NF{"Norfolk-Insle"}
        NG{"Nigeeria"}
        NI{"Nicaraagua"}
        NL{"Niderland"}
        NO{"Norweege"}
        NP{"Neepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nöiseeland"}
        OM{"Omaan"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Französisch-Polineesie"}
        PG{"Papua-Neuguinea"}
        PH{"Philippiine"}
        PK{"Pakischtan"}
        PL{"Poole"}
        PM{"St. Pierr und Miggelo"}
        PN{"Pitggäärn"}
        PR{"Puerto Riggo"}
        PS{"Paläschtinänsischi Gebiet"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguai"}
        QA{"Ggatar"}
        QO{"Üssers Ozeaanie"}
        RE{"Reünioon"}
        RO{"Rumäänie"}
        RS{"Särbie"}
        RU{"Russischi Föderazioon"}
        RW{"Ruanda"}
        SA{"Saudi-Araabie"}
        SB{"Salomoone"}
        SC{"Seischälle"}
        SD{"Sudan"}
        SE{"Schweede"}
        SG{"Singapuur"}
        SH{"St. Helena"}
        SI{"Sloweenie"}
        SJ{"Svalbard und Jaan Määie"}
        SK{"Slowakäi"}
        SL{"Sierra Leoone"}
        SM{"San Mariino"}
        SN{"Senegal"}
        SO{"Somaalia"}
        SR{"Surinam"}
        ST{"Sao Tome und Prinssipe"}
        SV{"El Salvador"}
        SY{"Süürie"}
        SZ{"Swasiland"}
        TC{"Törks- und Gaiggos-Insle"}
        TD{"Tschad"}
        TF{"Französischi Süüd- und Antarktisgebiet"}
        TG{"Toogo"}
        TH{"Thailand"}
        TJ{"Tadschikischtan"}
        TK{"Tokelau"}
        TL{"Oschttimor"}
        TM{"Turkmeenischtan"}
        TN{"Tuneesie"}
        TO{"Tonga"}
        TR{"Türggei"}
        TT{"Trinidad und Tobaago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tansaniia"}
        UA{"Ukraiine"}
        UG{"Uganda"}
        UM{"Amerikanisch-Ozeaanie"}
        US{"Veräinigti Schtaate"}
        UY{"Uruguay"}
        UZ{"Uschbeekischtan"}
        VA{"Vatikanstadt"}
        VC{"Sankt Wässä und d’Grönadiine"}
        VE{"Venezueela"}
        VG{"Britischi Jungfere-Insle"}
        VI{"Amerikaanischi Jungfere-Insle"}
        VN{"Wietnam"}
        VU{"Wanuatu"}
        WF{"Wallis und Futuuna"}
        WS{"Samooa"}
        YE{"Jeeme"}
        YT{"Majott"}
        ZA{"Süüdafrika"}
        ZM{"Sambia"}
        ZW{"Simbabwe"}
        ZZ{"Unbekannti oder ungültigi Regioon"}
    }
    Version{"2.0.57.98"}
}
