﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
fr_CH{
    NumberElements{
        latn{
            patterns{
                percentFormat{"#,##0%"}
            }
            symbols{
                currencyDecimal{"."}
            }
        }
    }
    calendar{
        generic{
            DateTimePatterns{
                "HH.mm:ss 'h' zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd.MM.y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                MEd{"E, dd.MM."}
                MMdd{"dd.MM"}
                Md{"dd.MM."}
                yM{"MM.y GGGGG"}
                yMEd{"E, dd.MM.y GGGGG"}
                yMd{"dd.MM.y GGGGG"}
            }
            intervalFormats{
                M{
                    M{"M–M"}
                }
                MEd{
                    M{"E, dd.MM – E, dd.MM"}
                    d{"E, dd.MM – E, dd.MM"}
                }
                MMMEd{
                    M{"E, d MMM 'au' E, d MMM"}
                    d{"E, d 'au' E, d MMM"}
                }
                MMMd{
                    M{"d MMM 'au' d MMM"}
                }
                Md{
                    M{"dd.MM – dd.MM"}
                    d{"dd.MM – dd.MM"}
                }
                fallback{"du {0} au {1}"}
                yM{
                    M{"MM.y – MM.y GGGGG"}
                    y{"MM.y – MM.y GGGGG"}
                }
                yMEd{
                    M{"E, dd.MM.y – E, dd.MM.y GGGGG"}
                    d{"E, dd.MM.y – E, dd.MM.y GGGGG"}
                    y{"E, dd.MM.y – E, dd.MM.y GGGGG"}
                }
                yMMM{
                    y{"MMM y 'a'` MMM y G"}
                }
                yMMMEd{
                    M{"E, d MMM 'au' E, d MMM y G"}
                    d{"E, d 'au' E, d MMM y G"}
                    y{"E, d MMM y 'au' E, d MMM y G"}
                }
                yMMMd{
                    M{"d MMM 'au' d MMM y G"}
                    y{"d MMM y 'au' d MMM y G"}
                }
                yMd{
                    M{"dd.MM.y – dd.MM.y GGGGG"}
                    d{"dd.MM.y – dd.MM.y GGGGG"}
                    y{"dd.MM.y – dd.MM.y GGGGG"}
                }
            }
        }
        gregorian{
            DateTimePatterns{
                "HH.mm:ss 'h' zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd.MM.yy",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1} {0}",
            }
            DateTimeSkeletons{
                "HHmmsszzzz",
                "HHmmssz",
                "HHmmss",
                "HHmm",
                "yMMMMEEEEd",
                "yMMMMd",
                "yMMMd",
                "yyMMdd",
            }
            availableFormats{
                MEd{"E, dd.MM."}
                MMdd{"dd.MM"}
                Md{"dd.MM."}
                yM{"MM.y"}
                yMEd{"E, dd.MM.y"}
                yMd{"dd.MM.y"}
            }
            dayPeriod{
                format{
                    abbreviated{
                        afternoon1{"de l’ap.m."}
                        evening1{"du soir"}
                        midnight{"min."}
                        morning1{"du mat."}
                        night1{"du mat."}
                        noon{"midi"}
                    }
                    narrow{
                        afternoon1{"de l’ap.m."}
                        evening1{"du soir"}
                        midnight{"min."}
                        morning1{"du mat."}
                        night1{"du mat."}
                        noon{"midi"}
                    }
                }
                stand-alone{
                    abbreviated{
                        midnight{"min."}
                    }
                    narrow{
                        midnight{"min."}
                    }
                }
            }
            intervalFormats{
                MEd{
                    M{"E, dd.MM – E, dd.MM"}
                    d{"E, dd.MM – E, dd.MM"}
                }
                Md{
                    M{"dd.MM – dd.MM"}
                    d{"dd.MM – dd.MM"}
                }
                yM{
                    M{"MM.y – MM.y"}
                    y{"MM.y – MM.y"}
                }
                yMEd{
                    M{"E, dd.MM.y – E, dd.MM.y"}
                    d{"E, dd.MM.y – E, dd.MM.y"}
                    y{"E, dd.MM.y – E, dd.MM.y"}
                }
                yMd{
                    M{"dd.MM.y – dd.MM.y"}
                    d{"dd.MM.y – dd.MM.y"}
                    y{"dd.MM.y – dd.MM.y"}
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"›"}
        alternateQuotationStart{"‹"}
    }
}
