﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/br.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/br.xml
 */
br{
    AuxExemplarCharacters{"[á à ă â å ä ã ā æ c ç é è ĕ ë ē í ì ĭ î ï ī ó ò ŏ ô ö ø ō œ q ú ŭ û ü ū ÿ]"}
    ExemplarCharacters{"[a b {ch} {cʼh} d e ê f g h i j k l m n ñ o p 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 R S T U V W X Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.0.92.75"}
    calendar{
        gregorian{
            dayNames{
                format{
                    abbreviated{
                        "sul",
                        "lun",
                        "meu.",
                        "mer.",
                        "yaou",
                        "gwe.",
                        "sad.",
                    }
                    narrow{
                        "su",
                        "lu",
                        "mz",
                        "mc",
                        "ya",
                        "gw",
                        "sa",
                    }
                    wide{
                        "Sul",
                        "Lun",
                        "Meurzh",
                        "Mercʼher",
                        "Yaou",
                        "Gwener",
                        "Sadorn",
                    }
                }
                stand-alone{
                    abbreviated{
                        "sul",
                        "lun",
                        "meu.",
                        "mer.",
                        "yaou",
                        "gwe.",
                        "sad.",
                    }
                    narrow{
                        "su",
                        "lu",
                        "mz",
                        "mc",
                        "ya",
                        "gw",
                        "sa",
                    }
                    wide{
                        "Sul",
                        "Lun",
                        "Meurzh",
                        "Mercʼher",
                        "Yaou",
                        "Gwener",
                        "Sadorn",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Gen",
                        "Cʼhwe",
                        "Meur",
                        "Ebr",
                        "Mae",
                        "Mezh",
                        "Goue",
                        "Eost",
                        "Gwen",
                        "Here",
                        "Du",
                        "Ker",
                    }
                    wide{
                        "Genver",
                        "Cʼhwevrer",
                        "Meurzh",
                        "Ebrel",
                        "Mae",
                        "Mezheven",
                        "Gouere",
                        "Eost",
                        "Gwengolo",
                        "Here",
                        "Du",
                        "Kerzu",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Gen",
                        "Cʼhwe",
                        "Meur",
                        "Ebr",
                        "Mae",
                        "Mezh",
                        "Goue",
                        "Eost",
                        "Gwen",
                        "Here",
                        "Du",
                        "Ker",
                    }
                    wide{
                        "Genver",
                        "Cʼhwevrer",
                        "Meurzh",
                        "Ebrel",
                        "Mae",
                        "Mezheven",
                        "Gouere",
                        "Eost",
                        "Gwengolo",
                        "Here",
                        "Du",
                        "Kerzu",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"›"}
        alternateQuotationStart{"‹"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            relative{
                "-1"{"decʼh"}
                "-2"{"dercʼhent-decʼh"}
                "0"{"hiziv"}
                "1"{"warcʼhoazh"}
            }
        }
        hour{
            dn{"eur"}
        }
        minute{
            dn{"munut"}
        }
        month{
            dn{"miz"}
        }
        second{
            dn{"eilenn"}
        }
        week{
            dn{"sizhun"}
        }
    }
    measurementSystemNames{
        UK{"RU"}
        US{"SU"}
        metric{"metrek"}
    }
}
