﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/ca.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/ca.xml
 */
ca{
    AuxExemplarCharacters{"[á ă â å ä ã ā æ ĕ ê ë ē ì ĭ î ī ñ º ŏ ô ö ø ō œ ù ŭ û ū ÿ]"}
    ExemplarCharacters{"[a à b c ç d e é è f g h i í ï j k l ŀ m n o ó ò p q r s t u ú ü v w x y z]"}
    ExemplarCharactersCurrency{"[a b c č d e f g h i j k l ł m n o º p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{"."}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.64.92"}
    calendar{
        gregorian{
            AmPmMarkers{
                "a.m.",
                "p.m.",
            }
            DateTimePatterns{
                "H:mm:ss zzzz",
                "H:mm:ss z",
                "H:mm:ss",
                "H:mm",
                "EEEE d MMMM 'de' y",
                "d MMMM 'de' y",
                "dd/MM/yyyy",
                "dd/MM/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                H{"H"}
                Hm{"H:mm"}
                Hms{"H:mm:ss"}
                M{"L"}
                MEd{"E d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMMEd{"E d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                mmss{"mm:ss"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/yyyy"}
                yMEd{"E d/M/yyyy"}
                yMMM{"LLL y"}
                yMMMEd{"E d MMM y"}
                yMMMM{"LLLL 'de' y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/yyyy"}
                yQ{"Q yyyy"}
                yQQQ{"QQQ y"}
                yyQ{"Q yy"}
                yyyyMM{"MM/yyyy"}
            }
            dayNames{
                format{
                    abbreviated{
                        "dg.",
                        "dl.",
                        "dt.",
                        "dc.",
                        "dj.",
                        "dv.",
                        "ds.",
                    }
                    narrow{
                        "G",
                        "l",
                        "T",
                        "C",
                        "J",
                        "V",
                        "S",
                    }
                    wide{
                        "diumenge",
                        "dilluns",
                        "dimarts",
                        "dimecres",
                        "dijous",
                        "divendres",
                        "dissabte",
                    }
                }
                stand-alone{
                    abbreviated{
                        "dg",
                        "dl",
                        "dt",
                        "dc",
                        "dj",
                        "dv",
                        "ds",
                    }
                    narrow{
                        "g",
                        "l",
                        "t",
                        "c",
                        "j",
                        "v",
                        "s",
                    }
                    wide{
                        "Diumenge",
                        "Dilluns",
                        "Dimarts",
                        "Dimecres",
                        "Dijous",
                        "Divendres",
                        "Dissabte",
                    }
                }
            }
            eras{
                abbreviated{
                    "aC",
                    "dC",
                }
            }
            fields{
                day{
                    dn{"dia"}
                    relative{
                        "-1"{"ahir"}
                        "-2"{"abans d'ahir"}
                        "0"{"avui"}
                        "1"{"demà"}
                        "2"{"demà passat"}
                    }
                }
                dayperiod{
                    dn{"a.m./p.m."}
                }
                era{
                    dn{"era"}
                }
                hour{
                    dn{"hora"}
                }
                minute{
                    dn{"minut"}
                }
                month{
                    dn{"mes"}
                    relative{
                        "-1"{"Últim mes"}
                        "0"{"Aquest mes"}
                        "1"{"Mes següent"}
                    }
                }
                second{
                    dn{"segon"}
                }
                week{
                    dn{"setmana"}
                    relative{
                        "-1"{"Última setmana"}
                        "0"{"Aquesta setmana"}
                        "1"{"Setmana següent"}
                    }
                }
                weekday{
                    dn{"dia de la setmana"}
                }
                year{
                    dn{"any"}
                    relative{
                        "-1"{"Última any"}
                        "0"{"Aquest any"}
                        "1"{"Any següent"}
                    }
                }
                zone{
                    dn{"zona"}
                }
            }
            intervalFormats{
                H{
                    H{"H-H"}
                    a{"HH-HH"}
                }
                Hm{
                    H{"HH:mm-HH:mm"}
                    a{"HH:mm-HH:mm"}
                    m{"HH:mm-HH:mm"}
                }
                Hmv{
                    H{"HH:mm-HH:mm v"}
                    a{"HH:mm-HH:mm v"}
                    m{"HH:mm-HH:mm v"}
                }
                Hv{
                    H{"H-H v"}
                    a{"HH-HH v"}
                }
                M{
                    M{"M-M"}
                }
                MEd{
                    M{"E dd/MM - E dd/MM"}
                    d{"E dd/MM - E dd/MM"}
                }
                MMM{
                    M{"LLL-LLL"}
                }
                MMMEd{
                    M{"E d MMM - E d MMM"}
                    d{"E d - E d MMM"}
                }
                MMMd{
                    M{"d MMM - d MMM"}
                    d{"d-d MMM"}
                }
                Md{
                    M{"dd/MM - dd/MM"}
                    d{"dd/MM - dd/MM"}
                }
                d{
                    d{"d-d"}
                }
                fallback{"{0} - {1}"}
                h{
                    a{"h a - h a"}
                    h{"h-h a"}
                }
                hm{
                    a{"h:mm a -h:mm a"}
                    h{"h:mm-h:mm a"}
                    m{"h:mm-h:mm a"}
                }
                hmv{
                    a{"h:mm a - h:mm a v"}
                    h{"h:mm-h:mm a v"}
                    m{"h:mm-h:mm a v"}
                }
                hv{
                    a{"h a - h a v"}
                    h{"h-h a v"}
                }
                y{
                    y{"y-y"}
                }
                yM{
                    M{"MM/yy - MM/yy"}
                    y{"MM/yy - MM/yy"}
                }
                yMEd{
                    M{"E dd/MM/yy - E dd/MM/yy"}
                    d{"E dd/MM/yy - E dd/MM/yy"}
                    y{"E dd/MM/yy - E dd/MM/yy"}
                }
                yMMM{
                    M{"LLL-LLL 'de' y"}
                    y{"LLL 'de' y - LLL 'de' y"}
                }
                yMMMEd{
                    M{"E d MMM - E d MMM 'de' y"}
                    d{"E d - E d MMM 'de' y"}
                    y{"E d MMM 'de' y - E d MMM 'de' y"}
                }
                yMMMM{
                    M{"LLLL-LLLL 'de' y"}
                    y{"LLLL 'de' y - LLLL 'de' y"}
                }
                yMMMd{
                    M{"d MMM - d MMM 'de' y"}
                    d{"d-d MMM 'de' y"}
                    y{"d MMM 'de' y - d MMM 'de' y"}
                }
                yMd{
                    M{"dd/MM/yy - dd/MM/yy"}
                    d{"dd/MM/yy - dd/MM/yy"}
                    y{"dd/MM/yy - dd/MM/yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "de gen.",
                        "de febr.",
                        "de març",
                        "d’abr.",
                        "de maig",
                        "de juny",
                        "de jul.",
                        "d’ag.",
                        "de set.",
                        "d’oct.",
                        "de nov.",
                        "de des.",
                    }
                    narrow{
                        "G",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "G",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                    wide{
                        "de gener",
                        "de febrer",
                        "de març",
                        "d’abril",
                        "de maig",
                        "de juny",
                        "de juliol",
                        "d’agost",
                        "de setembre",
                        "d’octubre",
                        "de novembre",
                        "de desembre",
                    }
                }
                stand-alone{
                    abbreviated{
                        "gen.",
                        "febr.",
                        "març",
                        "abr.",
                        "maig",
                        "juny",
                        "jul.",
                        "ag.",
                        "set.",
                        "oct.",
                        "nov.",
                        "des.",
                    }
                    narrow{
                        "g",
                        "f",
                        "m",
                        "a",
                        "m",
                        "j",
                        "j",
                        "a",
                        "s",
                        "o",
                        "n",
                        "d",
                    }
                    wide{
                        "gener",
                        "febrer",
                        "març",
                        "abril",
                        "maig",
                        "juny",
                        "juliol",
                        "agost",
                        "setembre",
                        "octubre",
                        "novembre",
                        "desembre",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "1T",
                        "2T",
                        "3T",
                        "4T",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1r trimestre",
                        "2n trimestre",
                        "3r trimestre",
                        "4t trimestre",
                    }
                }
                stand-alone{
                    abbreviated{
                        "1T",
                        "2T",
                        "3T",
                        "4T",
                    }
                    wide{
                        "1r trimestre",
                        "2n trimestre",
                        "3r trimestre",
                        "4t trimestre",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"»"}
        alternateQuotationStart{"«"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    listPattern{
        standard{
            2{"{0} i {1}"}
            end{"{0} i {1}"}
        }
    }
    measurementSystemNames{
        UK{"anglosaxó"}
        US{"imperial"}
        metric{"mètric"}
    }
    units{
        day{
            one{"{0} dia"}
            other{"{0} dies"}
        }
        day-future{
            0{"D'aquí a 0 dies"}
            1{"D'aquí a 1 dia"}
            one{"D'aquí a {0} dia"}
            other{"D'aquí a {0} dies"}
        }
        day-past{
            0{"Fa 0 dies"}
            1{"Fa 1 dia"}
            one{"Fa {0} dia"}
            other{"Fa {0} dies"}
        }
        hour{
            one{"{0} hora"}
            other{"{0} hores"}
        }
        hour-future{
            0{"D'aquí a 0 hores"}
            1{"D'aquí a 1 hora"}
            one{"D'aquí a {0} hora"}
            other{"D'aquí a {0} hores"}
        }
        hour-past{
            0{"Fa 0 hores"}
            1{"Fa 1 hora"}
            one{"Fa {0} hora"}
            other{"Fa {0} hores"}
        }
        minute{
            one{"{0} minut"}
            other{"{0} minuts"}
        }
        minute-future{
            0{"D'aquí a 0 minuts"}
            1{"D'aquí a 1 minut"}
            one{"D'aquí a {0} minut"}
            other{"D'aquí a {0} minuts"}
        }
        minute-past{
            0{"Fa 0 minuts"}
            1{"Fa 1 minut"}
            one{"Fa {0} minut"}
            other{"Fa {0} minuts"}
        }
        month{
            one{"{0} mes"}
            other{"{0} mesos"}
        }
        month-future{
            0{"D'aquí a 0 mesos"}
            1{"D'aquí a 1 mes"}
            one{"D'aquí a {0} mes"}
            other{"D'aquí a {0} mesos"}
        }
        month-past{
            0{"Fa 0 mesos"}
            1{"Fa 1 mes"}
            one{"Fa {0} mes"}
            other{"Fa {0} mesos"}
        }
        second{
            one{"{0} segon"}
            other{"{0} segons"}
        }
        second-future{
            0{"D'aquí a 0 segons"}
            1{"D'aquí a 1 segon"}
            one{"D'aquí a {0} segon"}
            other{"D'aquí a {0} segons"}
        }
        second-past{
            0{"Fa 0 segons"}
            1{"Fa 1 segon"}
            one{"Fa {0} segon"}
            other{"Fa {0} segons"}
        }
        week{
            one{"{0} setmana"}
            other{"{0} setmanes"}
        }
        week-future{
            0{"D'aquí a 0 setmanes"}
            1{"D'aquí a 1 setmana"}
            one{"D'aquí a {0} setmana"}
            other{"D'aquí a {0} setmanes"}
        }
        week-past{
            0{"Fa 0 setmanes"}
            1{"Fa 1 setmana"}
            one{"Fa {0} setmana"}
            other{"Fa {0} setmanes"}
        }
        year{
            one{"{0} any"}
            other{"{0} anys"}
        }
        year-future{
            0{"D'aquí a 0 anys"}
            1{"D'aquí a 1 any"}
            one{"D'aquí a {0} any"}
            other{"D'aquí a {0} anys"}
        }
        year-past{
            0{"Fa 0 anys"}
            1{"Fa 1 any"}
            one{"Fa {0} any"}
            other{"Fa {0} anys"}
        }
    }
    unitsShort{
        day{
            one{"{0} dia"}
            other{"{0} dies"}
        }
        hour{
            one{"{0} h"}
            other{"{0} h"}
        }
        minute{
            one{"{0} m"}
            other{"{0} m"}
        }
        month{
            one{"{0} mes"}
            other{"{0} mesos"}
        }
        second{
            one{"{0} s"}
            other{"{0} s"}
        }
        week{
            one{"{0} setmana"}
            other{"{0} setmanes"}
        }
        year{
            one{"{0} any"}
            other{"{0} anys"}
        }
    }
}
