﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/lu.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/lu.xml
 */
lu{
    AuxExemplarCharacters{"[g r x]"}
    ExemplarCharacters{
        "[a á à b c d e é è ɛ {ɛ\u0301} {ɛ\u0300} f h i í ì j k l m n {ng} {ny} o ó ò"
        " ɔ {ɔ\u0301} {ɔ\u0300} p {ph} q s {shi} t u ú ù v w y z]"
    }
    ExemplarCharactersIndex{"[A B C D E F H I J K L M N O P Q S T U V W Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
                decimalFormat{"#,##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{
                "Dinda",
                "Dilolo",
            }
            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{
                        "Lum",
                        "Nko",
                        "Ndy",
                        "Ndg",
                        "Njw",
                        "Ngv",
                        "Lub",
                    }
                    wide{
                        "Lumingu",
                        "Nkodya",
                        "Ndàayà",
                        "Ndangù",
                        "Njòwa",
                        "Ngòvya",
                        "Lubingu",
                    }
                }
                stand-alone{
                    narrow{
                        "L",
                        "N",
                        "N",
                        "N",
                        "N",
                        "N",
                        "L",
                    }
                }
            }
            eras{
                abbreviated{
                    "kmp. Y.K.",
                    "kny. Y. K.",
                }
                wide{
                    "Kumpala kwa Yezu Kli",
                    "Kunyima kwa Yezu Kli",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Cio",
                        "Lui",
                        "Lus",
                        "Muu",
                        "Lum",
                        "Luf",
                        "Kab",
                        "Lush",
                        "Lut",
                        "Lun",
                        "Kas",
                        "Cis",
                    }
                    wide{
                        "Ciongo",
                        "Lùishi",
                        "Lusòlo",
                        "Mùuyà",
                        "Lumùngùlù",
                        "Lufuimi",
                        "Kabàlàshìpù",
                        "Lùshìkà",
                        "Lutongolo",
                        "Lungùdi",
                        "Kaswèkèsè",
                        "Ciswà",
                    }
                }
                stand-alone{
                    narrow{
                        "C",
                        "L",
                        "L",
                        "M",
                        "L",
                        "L",
                        "K",
                        "L",
                        "L",
                        "L",
                        "K",
                        "C",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "M1",
                        "M2",
                        "M3",
                        "M4",
                    }
                    wide{
                        "Mueji 1",
                        "Mueji 2",
                        "Mueji 3",
                        "Mueji 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"Dituku"}
            relative{
                "-1"{"Makelela"}
                "0"{"Lelu"}
                "1"{"Malaba"}
            }
        }
        dayperiod{
            dn{"Mutantshi wa diba"}
        }
        era{
            dn{"Tshipungu"}
        }
        hour{
            dn{"Diba"}
        }
        minute{
            dn{"Kasunsu"}
        }
        month{
            dn{"Ngondo"}
        }
        second{
            dn{"Kasunsukusu"}
        }
        week{
            dn{"Lubingu"}
        }
        weekday{
            dn{"Dituku dia lubingu"}
        }
        year{
            dn{"Tshidimu"}
        }
        zone{
            dn{"Nzeepu"}
        }
    }
}
