﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fr_CA.xml
// *
// ***************************************************************************
fr_CA{
    NumberElements{
        latn{
            patternsShort{
                decimalFormat{
                    1000000000{
                        one{"0 G"}
                        other{"0 G"}
                    }
                    10000000000{
                        one{"00 G"}
                        other{"00 G"}
                    }
                    100000000000{
                        one{"000 G"}
                        other{"000 G"}
                    }
                    1000000000000{
                        one{"0 T"}
                        other{"0 T"}
                    }
                    10000000000000{
                        one{"00 T"}
                        other{"00 T"}
                    }
                    100000000000000{
                        one{"000 T"}
                        other{"000 T"}
                    }
                }
            }
        }
    }
    Version{"2.1.8.19"}
    calendar{
        generic{
            DateTimePatterns{
                "HH 'h' mm 'min' ss 's' zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "G y-MM-dd",
                "GGGGG yy-MM-dd",
                "{1} {0}",
                "{1} 'à' {0}",
                "{1} 'à' {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                MEd{"E M-d"}
                MMd{"MM-d"}
                MMdd{"MM-dd"}
                Md{"M-d"}
                yyyyM{"G y-MM"}
                yyyyMEd{"E G y-MM-dd"}
                yyyyMM{"G y-MM"}
                yyyyMd{"G y-MM-dd"}
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                M{
                    M{"M–M"}
                }
                MEd{
                    M{"E MM-dd – E MM-dd"}
                    d{"E MM-dd – E MM-dd"}
                }
                MMMEd{
                    d{"E d – E d MMM"}
                }
                Md{
                    M{"MM-dd – MM-dd"}
                    d{"MM-dd – MM-dd"}
                }
                d{
                    d{"d–d"}
                }
                h{
                    h{"h–h a"}
                }
                hm{
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    h{"h–h a v"}
                }
                y{
                    y{"G y–y"}
                }
                yM{
                    M{"G y-MM – y-MM"}
                    y{"G y-MM – y-MM"}
                }
                yMEd{
                    M{"'du' E y-MM-dd 'au' E y-MM-dd G"}
                    d{"'du' E y-MM-dd 'au' E y-MM-dd G"}
                    y{"'du' E y-MM-dd 'au' E y-MM-dd G"}
                }
                yMMM{
                    y{"'de' MMM y 'à' MMM y G"}
                }
                yMMMEd{
                    M{"'du' E d MMM 'au' E d MMM y G"}
                    d{"'du' E d 'au' E d MMM y G"}
                    y{"'du' E d MMM y 'au' E d MMM y G"}
                }
                yMMMd{
                    M{"'du' d MMM 'au' d MMM y G"}
                    y{"'du' d MMM y 'au' d MMM y G"}
                }
                yMd{
                    M{"G y-MM-dd – y-MM-dd"}
                    d{"G y-MM-dd – y-MM-dd"}
                    y{"G y-MM-dd – y-MM-dd"}
                }
            }
        }
        gregorian{
            AmPmMarkersNarrow{
                "a",
                "p",
            }
            DateTimePatterns{
                "HH 'h' mm 'min' ss 's' zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y",
                "d MMMM y",
                "y-MM-dd",
                "yy-MM-dd",
                "{1} {0}",
                "{1} 'à' {0}",
                "{1} 'à' {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                MEd{"E M-d"}
                MMd{"MM-d"}
                MMdd{"MM-dd"}
                Md{"M-d"}
                yM{"y-MM"}
                yMEd{"E y-MM-dd"}
                yMM{"y-MM"}
                yMd{"y-MM-dd"}
            }
            dayNames{
                stand-alone{
                    abbreviated{
                        "dim.",
                        "lun.",
                        "mar.",
                        "mer.",
                        "jeu.",
                        "ven.",
                        "sam.",
                    }
                    short{
                        "dim.",
                        "lun.",
                        "mar.",
                        "mer.",
                        "jeu.",
                        "ven.",
                        "sam.",
                    }
                    wide{
                        "dimanche",
                        "lundi",
                        "mardi",
                        "mercredi",
                        "jeudi",
                        "vendredi",
                        "samedi",
                    }
                }
            }
            eras{
                wide%variant{
                    "avant l’ère commune",
                    "ère commune",
                }
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                MEd{
                    M{"E MM-dd – E MM-dd"}
                    d{"E MM-dd – E MM-dd"}
                }
                Md{
                    M{"MM-dd – MM-dd"}
                    d{"MM-dd – MM-dd"}
                }
                d{
                    d{"d–d"}
                }
                h{
                    a{"h 'h' a – h 'h' a"}
                    h{"h–h a"}
                }
                hm{
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    h{"h:mm–h:mm a v"}
                    m{"h:mm–h:mm a v"}
                }
                hv{
                    a{"h 'h' a – h 'h' a v"}
                    h{"h–h a v"}
                }
                yM{
                    M{"y-MM – y-MM"}
                    y{"y-MM – y-MM"}
                }
                yMEd{
                    M{"'du' E y-MM-dd 'au' E y-MM-dd"}
                    d{"'du' E y-MM-dd 'au' E y-MM-dd"}
                    y{"'du' E y-MM-dd 'au' E y-MM-dd"}
                }
                yMMM{
                    y{"'de' MMM y 'à' MMM y"}
                }
                yMMMEd{
                    M{"'du' E d MMM 'au' E d MMM y"}
                    d{"'du' E d 'au' E d MMM y"}
                    y{"'du' E d MMM y 'au' E d MMM y"}
                }
                yMMMd{
                    M{"'du' d MMM 'au' d MMM y"}
                    y{"'du' d MMM y 'au' d MMM y"}
                }
                yMd{
                    M{"y-MM-dd – y-MM-dd"}
                    d{"y-MM-dd – y-MM-dd"}
                    y{"y-MM-dd – y-MM-dd"}
                }
            }
            monthNames{
                stand-alone{
                    abbreviated{
                        "janv.",
                        "févr.",
                        "mars",
                        "avr.",
                        "mai",
                        "juin",
                        "juil.",
                        "août",
                        "sept.",
                        "oct.",
                        "nov.",
                        "déc.",
                    }
                    wide{
                        "janvier",
                        "février",
                        "mars",
                        "avril",
                        "mai",
                        "juin",
                        "juillet",
                        "août",
                        "septembre",
                        "octobre",
                        "novembre",
                        "décembre",
                    }
                }
            }
        }
        islamic{
            DateTimePatterns{
                "HH 'h' mm 'min' ss 's' zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "y-MM-dd GGGGG",
                "{1} {0}",
                "{1} 'à' {0}",
                "{1} 'à' {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                MEd{"E d MMM"}
                Md{"MM-dd"}
                yyyyM{"y-MM GGGGG"}
                yyyyMEd{"E y-MM-dd GGGGG"}
                yyyyMd{"y-MM-dd GGGGG"}
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"›"}
        alternateQuotationStart{"‹"}
    }
    durationUnits{
        hm{"h:mm"}
        hms{"h:mm:ss"}
        ms{"m:ss"}
    }
    fields{
        day{
            relativeTime{
                future{
                    one{"Dans {0} jour"}
                    other{"Dans {0} jours"}
                }
                past{
                    one{"Il y a {0} jour"}
                    other{"Il y a {0} jours"}
                }
            }
        }
        day-short{
            relativeTime{
                future{
                    one{"dans {0} j"}
                    other{"dans {0} j"}
                }
            }
        }
        dayperiod{
            dn{"système horaire"}
        }
        fri-narrow{
            relative{
                "-1"{"ven. dernier"}
                "0"{"ce ven."}
                "1"{"ven. prochain"}
            }
        }
        hour{
            relativeTime{
                future{
                    one{"Dans {0} heure"}
                    other{"Dans {0} heures"}
                }
                past{
                    one{"Il y a {0} heure"}
                    other{"Il y a {0} heures"}
                }
            }
        }
        minute{
            relativeTime{
                future{
                    one{"Dans {0} minute"}
                    other{"Dans {0} minutes"}
                }
                past{
                    one{"Il y a {0} minute"}
                    other{"Il y a {0} minutes"}
                }
            }
        }
        mon-narrow{
            relative{
                "-1"{"lun. dernier"}
                "0"{"ce lun."}
                "1"{"lun. prochain"}
            }
        }
        month{
            relativeTime{
                future{
                    one{"Dans {0} mois"}
                    other{"Dans {0} mois"}
                }
                past{
                    one{"Il y a {0} mois"}
                    other{"Il y a {0} mois"}
                }
            }
        }
        month-narrow{
            dn{"m."}
        }
        sat-narrow{
            relative{
                "-1"{"sam. dernier"}
                "0"{"ce sam."}
                "1"{"sam. prochain"}
            }
        }
        second{
            relativeTime{
                future{
                    one{"Dans {0} seconde"}
                    other{"Dans {0} secondes"}
                }
                past{
                    one{"Il y a {0} seconde"}
                    other{"Il y a {0} secondes"}
                }
            }
        }
        second-narrow{
            relativeTime{
                future{
                    one{"+ {0} s"}
                    other{"+{0} s"}
                }
            }
        }
        sun-narrow{
            relative{
                "-1"{"dim. dernier"}
                "0"{"ce dim."}
                "1"{"dim. prochain"}
            }
        }
        thu-narrow{
            relative{
                "-1"{"jeu. dernier"}
                "0"{"ce jeu."}
                "1"{"jeu. prochain"}
            }
        }
        tue-narrow{
            relative{
                "-1"{"mar. dernier"}
                "0"{"ce mar."}
                "1"{"mar. prochain"}
            }
        }
        wed-narrow{
            relative{
                "-1"{"mer. dernier"}
                "0"{"ce mer."}
                "1"{"ce mer."}
            }
        }
        week{
            relativeTime{
                future{
                    one{"Dans {0} semaine"}
                    other{"Dans {0} semaines"}
                }
                past{
                    one{"Il y a {0} semaine"}
                    other{"Il y a {0} semaines"}
                }
            }
        }
        year{
            relativeTime{
                future{
                    one{"Dans {0} an"}
                    other{"Dans {0} ans"}
                }
                past{
                    one{"Il y a {0} an"}
                    other{"Il y a {0} ans"}
                }
            }
        }
    }
    transformNames{
        Numeric{"Chiffres"}
        x-Fullwidth{"Pleine largeur"}
        x-Halfwidth{"Demie largeur"}
        x-Publishing{"Édition"}
    }
}
