﻿// ***************************************************************************
// *
// * Copyright (C) 2016 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/rn.xml
// *
// ***************************************************************************
rn{
    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]"}
    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]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.1.23.7"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "d/M/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "Z.MU.",
                "Z.MW.",
            }
            AmPmMarkersAbbr{
                "Z.MU.",
                "Z.MW.",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y",
                "d MMMM y",
                "d MMM y",
                "d/M/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "cu.",
                        "mbe.",
                        "kab.",
                        "gtu.",
                        "kan.",
                        "gnu.",
                        "gnd.",
                    }
                    wide{
                        "Ku w’indwi",
                        "Ku wa mbere",
                        "Ku wa kabiri",
                        "Ku wa gatatu",
                        "Ku wa kane",
                        "Ku wa gatanu",
                        "Ku wa gatandatu",
                    }
                }
            }
            eras{
                abbreviated{
                    "Mb.Y.",
                    "Ny.Y",
                }
                wide{
                    "Mbere ya Yezu",
                    "Nyuma ya Yezu",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Mut.",
                        "Gas.",
                        "Wer.",
                        "Mat.",
                        "Gic.",
                        "Kam.",
                        "Nya.",
                        "Kan.",
                        "Nze.",
                        "Ukw.",
                        "Ugu.",
                        "Uku.",
                    }
                    wide{
                        "Nzero",
                        "Ruhuhuma",
                        "Ntwarante",
                        "Ndamukiza",
                        "Rusama",
                        "Ruheshi",
                        "Mukakaro",
                        "Nyandagaro",
                        "Nyakanga",
                        "Gitugutu",
                        "Munyonyo",
                        "Kigarama",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "I1",
                        "I2",
                        "I3",
                        "I4",
                    }
                    wide{
                        "Igice ca mbere c’umwaka",
                        "Igice ca kabiri c’umwaka",
                        "Igice ca gatatu c’umwaka",
                        "Igice ca kane c’umwaka",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"’"}
        quotationEnd{"”"}
        quotationStart{"”"}
    }
    fields{
        day{
            dn{"Umusi"}
            relative{
                "-1"{"Ejo (haheze)"}
                "0"{"Uyu musi"}
                "1"{"Ejo (hazoza)"}
            }
        }
        dayperiod{
            dn{"M.s/N.s"}
        }
        era{
            dn{"Igihe"}
        }
        hour{
            dn{"Isaha"}
        }
        minute{
            dn{"Umunota"}
        }
        month{
            dn{"Ukwezi"}
        }
        second{
            dn{"Isegonda"}
        }
        week{
            dn{"Indwi, Iyinga"}
        }
        weekday{
            dn{"Iminsi y’iyinga"}
        }
        year{
            dn{"Umwaka"}
        }
        zone{
            dn{"Isaha yo mukarere"}
        }
    }
}
