﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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>/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]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.0.92.87"}
    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"}
        }
    }
}
