﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/rn.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/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]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.0.82.45"}
    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.",
            }
            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"}
        }
    }
}
