﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/lg.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/lg.xml
 */
lg{
    AuxExemplarCharacters{"[h q x]"}
    ExemplarCharacters{"[a b c d e f g i j k l m n {ny} ŋ o p r s t u v w y z]"}
    ExemplarCharactersIndex{"[A B C D E F G I J K L M N Ŋ O P R S T U V W Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
            }
        }
    }
    Version{"2.0.53.5"}
    calendar{
        gregorian{
            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{
                        "Sab",
                        "Bal",
                        "Lw2",
                        "Lw3",
                        "Lw4",
                        "Lw5",
                        "Lw6",
                    }
                    wide{
                        "Sabbiiti",
                        "Balaza",
                        "Lwakubiri",
                        "Lwakusatu",
                        "Lwakuna",
                        "Lwakutaano",
                        "Lwamukaaga",
                    }
                }
                stand-alone{
                    narrow{
                        "S",
                        "B",
                        "L",
                        "L",
                        "L",
                        "L",
                        "L",
                    }
                }
            }
            eras{
                abbreviated{
                    "BC",
                    "AD",
                }
                wide{
                    "Kulisito nga tannaza",
                    "Bukya Kulisito Azaal",
                }
            }
            fields{
                day{
                    dn{"Lunaku"}
                    relative{
                        "-1"{"Ggulo"}
                        "0"{"Lwaleero"}
                        "1"{"Nkya"}
                    }
                }
                dayperiod{
                    dn{"AM/PM"}
                }
                era{
                    dn{"Mulembe"}
                }
                hour{
                    dn{"Saawa"}
                }
                minute{
                    dn{"Dakiika"}
                }
                month{
                    dn{"Mwezi"}
                }
                second{
                    dn{"Kasikonda"}
                }
                week{
                    dn{"Sabbiiti"}
                }
                weekday{
                    dn{"Lunaku lw'omu sabbiiti"}
                }
                year{
                    dn{"Mwaka"}
                }
                zone{
                    dn{"Ssaawa za:"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apu",
                        "Maa",
                        "Juu",
                        "Jul",
                        "Agu",
                        "Seb",
                        "Oki",
                        "Nov",
                        "Des",
                    }
                    wide{
                        "Janwaliyo",
                        "Febwaliyo",
                        "Marisi",
                        "Apuli",
                        "Maayi",
                        "Juuni",
                        "Julaayi",
                        "Agusito",
                        "Sebuttemba",
                        "Okitobba",
                        "Novemba",
                        "Desemba",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Kya1",
                        "Kya2",
                        "Kya3",
                        "Kya4",
                    }
                    wide{
                        "Kyakuna 1",
                        "Kyakuna 2",
                        "Kyakuna 3",
                        "Kyakuna 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"'"}
        quotationStart{"'"}
    }
}
