﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/rm.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/rm.xml
 */
rm{
    Countries{
        001{"mund"}
        002{"Africa"}
        003{"America dal Nord"}
        005{"America dal Sid"}
        009{"Oceania"}
        011{"Africa dal Vest"}
        013{"America Centrala"}
        014{"Africa da l'Ost"}
        015{"Africa dal Nord"}
        017{"Africa Centrala"}
        018{"Africa Meridiunala"}
        019{"America dal Nord, America Centrala ed America dal Sid"}
        029{"Caribica"}
        030{"Asia da l'Ost"}
        034{"Asia dal Sid"}
        035{"Asia dal Sidost"}
        039{"Europa dal Sid"}
        053{"Australia e Nova Zelanda"}
        054{"Melanesia"}
        057{"Regiun Micronesica"}
        061{"Polinesia"}
        142{"Asia"}
        143{"Asia Centrala"}
        145{"Asia dal Vest"}
        150{"Europa"}
        151{"Europa Orientala"}
        154{"Europa dal Nord"}
        155{"Europa dal Vest"}
        419{"America Latina"}
        AD{"Andorra"}
        AE{"Emirats Arabs Unids"}
        AF{"Afghanistan"}
        AG{"Antigua e Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Antillas Ollandaisas"}
        AO{"Angola"}
        AQ{"Antarctica"}
        AR{"Argentinia"}
        AS{"Samoa Americana"}
        AT{"Austria"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Inslas Aland"}
        AZ{"Aserbaidschan"}
        BA{"Bosnia ed Erzegovina"}
        BB{"Barbados"}
        BD{"Bangladesch"}
        BE{"Belgia"}
        BF{"Burkina Faso"}
        BG{"Bulgaria"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Son Barthélemy"}
        BM{"Bermudas"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BR{"Brasila"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Insla Bouvet"}
        BW{"Botswana"}
        BY{"Bielorussia"}
        BZ{"Belize"}
        CA{"Canada"}
        CC{"Inslas Cocos"}
        CD{"Republica Democratica dal Congo"}
        CF{"Republica Centralafricana"}
        CG{"Congo"}
        CH{"Svizra"}
        CI{"Costa d'Ivur"}
        CK{"Inslas Cook"}
        CL{"Chile"}
        CM{"Camerun"}
        CN{"China"}
        CO{"Columbia"}
        CR{"Costa Rica"}
        CU{"Cuba"}
        CV{"Cap Verd"}
        CX{"Insla da Christmas"}
        CY{"Cipra"}
        CZ{"Republica Tscheca"}
        DE{"Germania"}
        DJ{"Dschibuti"}
        DK{"Danemarc"}
        DM{"Dominica"}
        DO{"Republica Dominicana"}
        DZ{"Algeria"}
        EC{"Ecuador"}
        EE{"Estonia"}
        EG{"Egipta"}
        EH{"Sahara Occidentala"}
        ER{"Eritrea"}
        ES{"Spagna"}
        ET{"Etiopia"}
        EU{"Uniun europeica"}
        FI{"Finlanda"}
        FJ{"Fidschi"}
        FK{"Inslas dal Falkland"}
        FM{"Micronesia"}
        FO{"Inslas Feroe"}
        FR{"Frantscha"}
        GA{"Gabun"}
        GB{"Reginavel Unì"}
        GD{"Grenada"}
        GE{"Georgia"}
        GF{"Guyana Franzosa"}
        GG{"Guernsey"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Grönlanda"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Guinea Equatoriala"}
        GR{"Grezia"}
        GS{"Georgia dal Sid e las Inslas Sandwich dal Sid"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea-Bissau"}
        GY{"Guyana"}
        HK{"Regiun d'administraziun speziala da Hongkong, China"}
        HM{"Inslas da Heard e da McDonlad"}
        HN{"Honduras"}
        HR{"Croazia"}
        HT{"Haiti"}
        HU{"Ungaria"}
        ID{"Indonesia"}
        IE{"Irlanda"}
        IL{"Israel"}
        IM{"Insla da Man"}
        IN{"India"}
        IO{"Territori Britannic en l'Ocean Indic"}
        IQ{"Irac"}
        IR{"Iran"}
        IS{"Islanda"}
        IT{"Italia"}
        JE{"Jersey"}
        JM{"Giamaica"}
        JO{"Jordania"}
        JP{"Giapun"}
        KE{"Kenia"}
        KG{"Kirghisistan"}
        KH{"Cambodscha"}
        KI{"Kiribati"}
        KM{"Comoras"}
        KN{"Saint Kitts e Nevis"}
        KP{"Corea dal Nord"}
        KR{"Corea dal Sid"}
        KW{"Kuwait"}
        KY{"Inslas Cayman"}
        KZ{"Kasachstan"}
        LA{"Laos"}
        LB{"Libanon"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Lituania"}
        LU{"Luxemburg"}
        LV{"Lettonia"}
        LY{"Libia"}
        MA{"Maroc"}
        MC{"Monaco"}
        MD{"Moldavia"}
        ME{"Montenegro"}
        MF{"Saint Martin"}
        MG{"Madagascar"}
        MH{"Inslas da Marshall"}
        MK{"Macedonia"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolia"}
        MO{"Regiun d'administraziun speziala Macao, China"}
        MP{"Inslas Mariannas dal Nord"}
        MQ{"Martinique"}
        MR{"Mauretania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldivas"}
        MW{"Malawi"}
        MX{"Mexico"}
        MY{"Malaisia"}
        MZ{"Mosambic"}
        NA{"Namibia"}
        NC{"Nova Caledonia"}
        NE{"Niger"}
        NF{"Insla Norfolk"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Pajais Bass"}
        NO{"Norvegia"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nova Zelanda"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Polinesia Franzosa"}
        PG{"Papua Nova Guinea"}
        PH{"Filippinas"}
        PK{"Pakistan"}
        PL{"Pologna"}
        PM{"Saint Pierre e Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Territori Palestinais"}
        PT{"Portugal"}
        PW{"Palau"}
        PY{"Paraguai"}
        QA{"Katar"}
        QO{"Oceania Periferica"}
        RE{"Réunion"}
        RO{"Rumenia"}
        RS{"Serbia"}
        RU{"Russia"}
        RW{"Ruanda"}
        SA{"Arabia Saudita"}
        SB{"Salomonas"}
        SC{"Seychellas"}
        SD{"Sudan"}
        SE{"Svezia"}
        SG{"Singapur"}
        SH{"Sontg'Elena"}
        SI{"Slovenia"}
        SJ{"Svalbard e Jan Mayen"}
        SK{"Slovachia"}
        SL{"Sierra Leone"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SR{"Surinam"}
        ST{"São Tomé e Principe"}
        SV{"El Salvador"}
        SY{"Siria"}
        SZ{"Swaziland"}
        TC{"Inslas Turks e Caicos"}
        TD{"Tschad"}
        TF{"Territoris Franzos Meridiunals"}
        TG{"Togo"}
        TH{"Tailanda"}
        TJ{"Tadschikistan"}
        TK{"Tokelau"}
        TL{"Timor da l'Ost"}
        TM{"Turkmenistan"}
        TN{"Tunesia"}
        TO{"Tonga"}
        TR{"Tirchia"}
        TT{"Trinidad e Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tansania"}
        UA{"Ucraina"}
        UG{"Uganda"}
        UM{"Inslas pitschnas perifericas dals Stadis Unids da l'America"}
        US{"Stadis Unids da l'America"}
        UY{"Uruguay"}
        UZ{"Usbekistan"}
        VA{"Citad dal Vatican"}
        VC{"Saint Vincent e las Grenadinas"}
        VE{"Venezuela"}
        VG{"Inslas Verginas Britannicas"}
        VI{"Inslas Verginas Americanas"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis e Futuna"}
        WS{"Samoa"}
        YE{"Jemen"}
        YT{"Mayotte"}
        ZA{"Africa dal Sid"}
        ZM{"Sambia"}
        ZW{"Simbabwe"}
        ZZ{"Regiun betg encouschenta u nunvalaivla"}
    }
    Version{"2.0.78.47"}
}
