﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/es_MX.xml
// *
// ***************************************************************************
es_MX{
    %%Parent{"es_419"}
    Countries{
        005{"Sudamérica"}
        011{"África Occidental"}
        014{"África Oriental"}
        015{"África del Norte"}
        017{"África Central"}
        018{"África del Sur"}
        019{"Américas"}
        021{"América Septentrional"}
        030{"Asia Oriental"}
        034{"Asia del Sur"}
        035{"Sudeste Asiático"}
        039{"Europa del Sur"}
        143{"Asia Central"}
        145{"Asia Occidental"}
        151{"Europa Oriental"}
        154{"Europa del Norte"}
        155{"Europa Occidental"}
        BA{"Bosnia-Herzegovina"}
        BD{"Bangladesh"}
        CC{"Islas Cocos (Keeling)"}
        CG{"Congo Brazzaville"}
        CX{"Isla de Navidad"}
        GG{"Guernsey"}
        GS{"Islas Georgias del Sur y Sandwich del Sur"}
        GW{"Guinea-Bissau"}
        HK{
            "Región Administrativa Especial de Hong Kong de la República Popular Chin"
            "a"
        }
        IC{"Islas Canarias"}
        MO{"Región Administrativa Especial de Macao de la República Popular China"}
        PW{"Palaos"}
        QA{"Qatar"}
        QO{"Islas Ultramarinas"}
        TA{"Tristán de Acuña"}
        UM{"Islas UltramarinasMenores de Estados Unidos"}
        VI{"Islas Vírgenes de los Estados Unidos"}
    }
    CountriesShort{
        GB{"RU"}
    }
    Version{"2.1.8.19"}
}
