﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/kln.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/kln.xml
 */
kln{
    AuxExemplarCharacters{"[f q v x z]"}
    ExemplarCharacters{"[a b c d e g h i j k l m n o p r s t u w y]"}
    ExemplarCharactersIndex{"[A B C D E G H I J K L M N O P R S T U W Y]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00"}
            }
        }
    }
    Version{"2.0.84.55"}
    calendar{
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y GGGGG",
                "{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{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "Beet",
                "Kemo",
            }
            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/y",
                "{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{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Tis",
                        "Tai",
                        "Aen",
                        "Som",
                        "Ang",
                        "Mut",
                        "Loh",
                    }
                    wide{
                        "Betutab tisap",
                        "Betut netai",
                        "Betutab aeng'",
                        "Betutab somok",
                        "Betutab ang'wan",
                        "Betutab mut",
                        "Betutab lo",
                    }
                }
                stand-alone{
                    narrow{
                        "T",
                        "T",
                        "A",
                        "S",
                        "A",
                        "M",
                        "L",
                    }
                }
            }
            eras{
                abbreviated{
                    "AM",
                    "KO",
                }
                wide{
                    "Amait kesich Jesu",
                    "Kokakesich Jesu",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Mul",
                        "Nga",
                        "Kip",
                        "Iwa",
                        "Nge",
                        "Wak",
                        "Rop",
                        "Kog",
                        "Bur",
                        "Epe",
                        "Tai",
                        "Aen",
                    }
                    wide{
                        "Mulgul",
                        "Ng'atyato",
                        "Kiptamo",
                        "Iwat kut",
                        "Ng'eiyet",
                        "Waki",
                        "Roptui",
                        "Kipkogaga",
                        "Buret",
                        "Epeso",
                        "Kipsunde netai",
                        "Kipsunde nebo aeng",
                    }
                }
                stand-alone{
                    narrow{
                        "M",
                        "N",
                        "K",
                        "I",
                        "N",
                        "W",
                        "R",
                        "K",
                        "B",
                        "E",
                        "K",
                        "K",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "R1",
                        "R2",
                        "R3",
                        "R4",
                    }
                    wide{
                        "Robo netai",
                        "Robo nebo aeng'",
                        "Robo nebo somok",
                        "Robo nebo ang'wan",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"Betut"}
            relative{
                "-1"{"Amut"}
                "0"{"Raini"}
                "1"{"Mutai"}
            }
        }
        dayperiod{
            dn{"BE/KE"}
        }
        era{
            dn{"Ibinta"}
        }
        hour{
            dn{"Sait"}
        }
        minute{
            dn{"Minitit"}
        }
        month{
            dn{"Arawet"}
        }
        second{
            dn{"Sekondit"}
        }
        week{
            dn{"Wikit"}
        }
        weekday{
            dn{"Betutab wikit"}
        }
        year{
            dn{"Kenyit"}
        }
        zone{
            dn{"Saitab sonit"}
        }
    }
}
