// ***************************************************************************
// *
// *   Copyright (C) 1997-2004, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

ca {
    Version { "4.0" }
    Countries { 
        AD { "Andorra" }
        AE { "Uni\u00F3 dels Emirats \u00C0rabs" }
        AF { "Afganistan" }
        AI { "Anguilla" }
        AL { "Alb\u00E0nia" }
        AM { "Arm\u00E8nia" }
        AN { "Antilles Holandeses" }
        AO { "Angola" }
        AR { "Argentina" }
        AT { "\u00C2ustria" }
        AU { "Austr\u00E0lia" }
        AW { "Aruba" }
        AZ { "Azerbaidjan" }
        BA { "B\u00F2snia i Hercegovina" }
        BB { "Barbados" }
        BD { "Bangla Desh" }
        BE { "B\u00E8lgica" }
        BF { "Burkina Faso" }
        BG { "Bulg\u00E0ria" }
        BH { "Bahrain" }
        BI { "Burundi" }
        BJ { "Benin" }
        BM { "Bermudes" }
        BN { "Brunei" }
        BO { "Bol\u00EDvia" }
        BR { "Brasil" }
        BS { "Bahames" }
        BT { "Bhutan" }
        BW { "Botswana" }
        BY { "Bielor\u00FAssia" }
        BZ { "Belize" }
        CA { "Canad\u00E0" }
        CF { "Rep\u00FAblica Centrafricana" }
        CG { "Congo" }
        CH { "Switzerland" }
        CI { "Costa d\u2019Ivori" }
        CL { "Xile" }
        CM { "Camerun" }
        CN { "Xina" }
        CO { "Col\u00F2mbia" }
        CR { "Costa Rica" }
        CU { "Cuba" }
        CV { "Cap Verd" }
        CY { "Xipre" }
        CZ { "Rep\u00FAblica Txeca" }
        DE { "Alemanya" }
        DJ { "Djibouti" }
        DK { "Dinamarca" }
        DM { "Dominica" }
        DO { "Rep\u00FAblica Dominicana" }
        DZ { "Alg\u00E8ria" }
        EC { "Equador" }
        EE { "Est\u00F2nia" }
        EG { "Egipte" }
        EH { "S\u00E0hara Occidental" }
        ER { "Eritrea" }
        ES { "Espanya" }
        ET { "Eti\u00F2pia" }
        FI { "Finl\u00E0ndia" }
        FJ { "Fiji" }
        FM { "Micron\u00E8sia" }
        FR { "Fran\u00E7a" }
        GA { "Gabon" }
        GB { "Regne Unit" }
        GE { "Ge\u00F2rgia" }
        GF { "Guaiana Francesa" }
        GH { "Ghana" }
        GM { "G\u00E0mbia" }
        GN { "Guinea" }
        GP { "Guadeloupe" }
        GQ { "Guinea Equatorial" }
        GR { "Gr\u00E8cia" }
        GT { "Guatemala" }
        GW { "Guinea Bissau" }
        GY { "Guyana" }
        HK { "Hong Kong" }
        HN { "Hondures" }
        HR { "Cro\u00E0cia" }
        HT { "Hait\u00ED" }
        HU { "Hongria" }
        ID { "Indon\u00E8sia" }
        IE { "Irlanda" }
        IL { "Israel" }
        IN { "\u00CDndia" }
        IQ { "Iraq" }
        IR { "Iran" }
        IS { "Isl\u00E0ndia" }
        IT { "It\u00E0lia" }
        JM { "Jamaica" }
        JO { "Jord\u00E0nia" }
        JP { "Jap\u00F3" }
        KE { "Kenya" }
        KG { "Kirgizistan" }
        KH { "Cambodja" }
        KI { "Kiribati" }
        KM { "Comores" }
        KP { "Corea del Nord" }
        KR { "Corea del Sud" }
        KW { "Kuwait" }
        KZ { "Kazakhstan" }
        LA { "Laos" }
        LB { "L\u00EDban" }
        LI { "Liechtenstein" }
        LK { "Sri Lanka" }
        LR { "Lib\u00E8ria" }
        LS { "Lesotho" }
        LT { "Litu\u00E0nia" }
        LU { "Luxemburg" }
        LV { "Let\u00F2nia" }
        LY { "L\u00EDbia" }
        MA { "Marroc" }
        MC { "M\u00F2naco" }
        MD { "Mold\u00E0via" }
        MG { "Madagascar" }
        MK { "Maced\u00F2nia" }
        ML { "Mali" }
        MM { "Myanmar" }
        MN { "Mong\u00F2lia" }
        MQ { "Martinica" }
        MR { "Maurit\u00E0nia" }
        MS { "Montserrat" }
        MT { "Malta" }
        MU { "Maurici" }
        MX { "M\u00E8xic" }
        MY { "Mal\u00E0isia" }
        MZ { "Mo\u00E7ambic" }
        NA { "Nam\u00EDbia" }
        NC { "Nova Caled\u00F2nia" }
        NE { "N\u00EDger" }
        NG { "Nig\u00E8ria" }
        NI { "Nicaragua" }
        NL { "Pa\u00EFsos Baixos" }
        NO { "Noruega" }
        NP { "Nepal" }
        NU { "Niue" }
        NZ { "Nova Zelanda" }
        OM { "Oman" }
        PA { "Panam\u00E0" }
        PE { "Per\u00FA" }
        PF { "Polin\u00E8sia Francesa" }
        PG { "Papua Nova Guinea" }
        PH { "Filipines" }
        PK { "Pakistan" }
        PL { "Pol\u00F2nia" }
        PR { "Puerto Rico" }
        PT { "Portugal" }
        PY { "Paraguai" }
        QA { "Qatar" }
        RO { "Romania" }
        RU { "R\u00FAssia" }
        RW { "Rwanda" }
        SA { "Ar\u00E0bia Saud\u00ED" }
        SC { "Seychelles" }
        SD { "Sudan" }
        SE { "Su\u00E8cia" }
        SG { "Singapur" }
        SI { "Eslov\u00E8nia" }
        SK { "Eslov\u00E0quia" }
        SL { "Sierra Leone" }
        SN { "Senegal" }
        SO { "Som\u00E0lia" }
        SP { "S\u00E8rbia" }
        SR { "Surinam" }
        SV { "El Salvador" }
        SY { "S\u00EDria" }
        SZ { "Swazil\u00E0ndia" }
        TD { "Txad" }
        TF { "Territoris Meridionals Francesos" }
        TG { "Togo" }
        TH { "Tail\u00E0ndia" }
        TJ { "Tadjikistan" }
        TK { "Tokelau" }
        TL { "Timor" }
        TM { "Turkmenistan" }
        TN { "Tun\u00EDsia" }
        TO { "Tonga" }
        TR { "Turquia" }
        TT { "Trinitat i Tobago" }
        TW { "Taiwan" }
        TZ { "Tanz\u00E0nia" }
        UA { "Ucra\u00EFna" }
        UG { "Uganda" }
        US { "Estats Units" }
        UY { "Uruguai" }
        UZ { "Uzbekistan" }
        VA { "Vatic\u00E0" }
        VE { "Vene\u00E7uela" }
        VG { "Illes Verges Brit\u00E0niques" }
        VI { "Illes Verges dels USA" }
        VN { "Vietnam" }
        VU { "Vanuatu" }
        YE { "Iemen" }
        YT { "Mayotte" }
        YU { "Iugosl\u00E0via" }
        ZA { "Sud-\u00E0frica" }
        ZM { "Z\u00E0mbia" }
        ZW { "Zimbabwe" }
    }
    Languages { 
        aa { "\u00E0far" }
        ab { "abkhaz" }
        af { "afrikaans" }
        am { "amh\u00E0ric" }
        ar { "\u00E2rab" }
        as { "assam\u00E8s" }
        ay { "aimara" }
        az { "\u00E0zeri" }
        ba { "baixkir" }
        be { "bielor\u00FAs" }
        bg { "b\u00FAlgar" }
        bh { "bihari" }
        bi { "bislama" }
        bn { "bengal\u00ED" }
        bo { "tibet\u00E0" }
        br { "bret\u00F3" }
        ca { "catal\u00E0" }
        co { "cors" }
        cs { "txec" }
        cy { "gal\u00B7l\u00E8s" }
        da { "dan\u00E8s" }
        de { "alemany" }
        dz { "bhutan\u00E8s" }
        el { "grec" }
        en { "angl\u00E8s" }
        eo { "esperanto" }
        es { "espanyol" }
        et { "estoni\u00E0" }
        eu { "basc" }
        fa { "persa" }
        fi { "fin\u00E8s" }
        fj { "fiji\u00E0" }
        fo { "fero\u00E8s" }
        fr { "franc\u00E8s" }
        fy { "fris\u00F3" }
        ga { "irland\u00E8s" }
        gd { "escoc\u00E8s" }
        gl { "gallec" }
        gn { "guaran\u00ED" }
        gu { "gujarati" }
        ha { "hausa" }
        he { "hebreu" }
        hi { "hindi" }
        hr { "croat" }
        hu { "hongar\u00E8s" }
        hy { "armeni" }
        ia { "interlingua" }
        id { "indonesi" }
        ie { "interlingue" }
        ik { "inupiak" }
        is { "island\u00E8s" }
        it { "itali\u00E0" }
        iu { "inuktitut" }
        ja { "japon\u00E8s" }
        jv { "javan\u00E8s" }
        ka { "georgi\u00E0" }
        kk { "kazakh" }
        kl { "greenland\u00E8s" }
        km { "cambodj\u00E0" }
        kn { "kannada" }
        ko { "core\u00E0" }
        ks { "caixmiri" }
        ku { "kurd" }
        ky { "kirgu\u00EDs" }
        la { "llat\u00ED" }
        ln { "lingala" }
        lo { "laosi\u00E0" }
        lt { "litu\u00E0" }
        lv { "let\u00F3" }
        mg { "malgaix" }
        mi { "maori" }
        mk { "macedoni" }
        ml { "malaialam" }
        mn { "mongol" }
        mo { "moldau" }
        mr { "marathi" }
        ms { "malai" }
        mt { "malt\u00E8s" }
        my { "birm\u00E0" }
        na { "nauru\u00E0" }
        ne { "nepal\u00E8s" }
        nl { "neerland\u00E8s" }
        no { "noruec" }
        oc { "occit\u00E0" }
        om { "oromo (afan)" }
        or { "oriya" }
        pa { "panjabi" }
        pl { "polon\u00E8s" }
        ps { "paixto" }
        pt { "portugu\u00E8s" }
        qu { "qu\u00E8txua" }
        rm { "retorom\u00E0nic" }
        rn { "kirundi" }
        ro { "roman\u00E8s" }
        ru { "rus" }
        rw { "kinyarwanda" }
        sa { "s\u00E0nscrit" }
        sd { "sindhi" }
        sg { "sango" }
        sh { "serbo-croat" }
        si { "sinhal\u00E8s" }
        sk { "eslovac" }
        sl { "eslov\u00E8" }
        sm { "samo\u00E0" }
        sn { "shona" }
        so { "somali" }
        sq { "alban\u00E8s" }
        sr { "serbi" }
        ss { "siswati" }
        st { "sotho" }
        su { "sundan\u00E8s" }
        sv { "suec" }
        sw { "swahili" }
        ta { "t\u00E0mil" }
        te { "telugu" }
        tg { "tadjik" }
        th { "thai" }
        ti { "tigrinya" }
        tk { "turcman" }
        tl { "tag\u00E0log" }
        tn { "tswana" }
        to { "tonga" }
        tr { "turc" }
        ts { "tsonga" }
        tt { "t\u00E0tar" }
        tw { "twi" }
        ug { "uigur" }
        uk { "ucra\u00EFn\u00E8s" }
        ur { "urd\u00FA" }
        uz { "uzbek" }
        vi { "vietnamita" }
        vo { "volapuk" }
        wo { "w\u00F2lof" }
        xh { "xosa" }
        yi { "jiddish" }
        yo { "ioruba" }
        za { "zhuang" }
        zh { "xin\u00E9s" }
        zu { "zulu" }
    }
    NumberElements { 
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    localPatternChars { "GuMtkHmsSEDFwWahKzUeygAZ" }

    LocaleScript{ 
                "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z \u00e9 \u00ed \u00f3 \u00fa \u00e0 \u00e8 \u00f2 \u00ef \u00fc \u0140 \u00e7 \u00f1]" }

    // Currency display names
    Currencies {
        ESP { 
            "\u20A7", "ESP" ,                
            :array{
                "\u00A4 #,##0;-\u00A4 #,##0", /*currency pattern*/  
                ",",  /*decimal sperator*/ 
                "." /*grouping separator*/
            }
        } // Spanish Peseta
    }
    calendar{
        gregorian{
            DateTimePatterns{
                "HH:mm:ss z",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE dd MMMM yyyy",
                "d MMMM yyyy",
                "dd/MM/yyyy",
                "dd/MM/yy",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "dg.",
                        "dl.",
                        "dt.",
                        "dc.",
                        "dj.",
                        "dv.",
                        "ds.",
                    }
                    wide{
                        "diumenge",
                        "dilluns",
                        "dimarts",
                        "dimecres",
                        "dijous",
                        "divendres",
                        "dissabte",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "gen.",
                        "feb.",
                        "mar\u00E7",
                        "abr.",
                        "maig",
                        "juny",
                        "jul.",
                        "ag.",
                        "set.",
                        "oct.",
                        "nov.",
                        "des.",
                    }
                    wide{
                        "gener",
                        "febrer",
                        "mar\u00E7",
                        "abril",
                        "maig",
                        "juny",
                        "juliol",
                        "agost",
                        "setembre",
                        "octubre",
                        "novembre",
                        "desembre",
                    }
                }
            }
        }
    }
}
