﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/ebu.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/ebu.xml
 */
ebu{
    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;(¤#,##0.00)"}
            }
        }
    }
    Version{"2.0.45.90"}
    calendar{
        gregorian{
            AmPmMarkers{
                "KI",
                "UT",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd/MM/yyyy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, MMM d, y"}
                yMMMM{"MMMM y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Kma",
                        "Tat",
                        "Ine",
                        "Tan",
                        "Arm",
                        "Maa",
                        "NMM",
                    }
                    wide{
                        "Kiumia",
                        "Njumatatu",
                        "Njumaine",
                        "Njumatano",
                        "Aramithi",
                        "Njumaa",
                        "NJumamothii",
                    }
                }
                stand-alone{
                    narrow{
                        "K",
                        "N",
                        "N",
                        "N",
                        "A",
                        "M",
                        "N",
                    }
                }
            }
            eras{
                abbreviated{
                    "MK",
                    "TK",
                }
                wide{
                    "Mbere ya Kristo",
                    "Thutha wa Kristo",
                }
            }
            fields{
                day{
                    dn{"Mũthenya"}
                    relative{
                        "-1"{"Ĩgoro"}
                        "0"{"Ũmũnthĩ"}
                        "1"{"Rũciũ"}
                    }
                }
                dayperiod{
                    dn{"Mũthenya"}
                }
                era{
                    dn{"Ivinda"}
                }
                hour{
                    dn{"Ithaa"}
                }
                minute{
                    dn{"Ndagĩka"}
                }
                month{
                    dn{"Mweri"}
                }
                second{
                    dn{"Sekondi"}
                }
                week{
                    dn{"Kiumia"}
                }
                weekday{
                    dn{"Mũthenya kiumia-inĩ"}
                }
                year{
                    dn{"Mwaka"}
                }
                zone{
                    dn{"Gĩthaa"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Mbe",
                        "Kai",
                        "Kat",
                        "Kan",
                        "Gat",
                        "Gan",
                        "Mug",
                        "Knn",
                        "Ken",
                        "Iku",
                        "Imw",
                        "Igi",
                    }
                    wide{
                        "Mweri wa mbere",
                        "Mweri wa kaĩri",
                        "Mweri wa kathatũ",
                        "Mweri wa kana",
                        "Mweri wa gatano",
                        "Mweri wa gatantatũ",
                        "Mweri wa mũgwanja",
                        "Mweri wa kanana",
                        "Mweri wa kenda",
                        "Mweri wa ikũmi",
                        "Mweri wa ikũmi na ũmwe",
                        "Mweri wa ikũmi na Kaĩrĩ",
                    }
                }
                stand-alone{
                    narrow{
                        "M",
                        "K",
                        "K",
                        "K",
                        "G",
                        "G",
                        "M",
                        "K",
                        "K",
                        "I",
                        "I",
                        "I",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1",
                        "K1",
                        "K1",
                        "K1",
                    }
                    wide{
                        "Kuota ya mbere",
                        "Kuota ya Kaĩrĩ",
                        "Kuota ya kathatu",
                        "Kuota ya kana",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"'"}
        quotationStart{"'"}
    }
}
