﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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>/common/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.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{
                "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"}
        }
    }
}
