﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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>/common/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.95.33"}
}
