﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/sbp.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/sbp.xml
 */
sbp{
    AuxExemplarCharacters{"[q r x z]"}
    ExemplarCharacters{"[a b c d e f g h i j k l m n o p s t u v w y]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P S T U V W Y]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
            }
            symbols{
                decimal{"."}
                group{","}
            }
        }
    }
    Version{"2.0.74.65"}
    calendar{
        gregorian{
            AmPmMarkers{
                "Lwamilawu",
                "Pashamihe",
            }
            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{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMd{"MMM d y"}
                yMd{"M/d/y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Mul",
                        "Jtt",
                        "Jnn",
                        "Jtn",
                        "Alh",
                        "Iju",
                        "Jmo",
                    }
                    wide{
                        "Mulungu",
                        "Jumatatu",
                        "Jumanne",
                        "Jumatano",
                        "Alahamisi",
                        "Ijumaa",
                        "Jumamosi",
                    }
                }
                stand-alone{
                    narrow{
                        "M",
                        "J",
                        "J",
                        "J",
                        "A",
                        "I",
                        "J",
                    }
                }
            }
            eras{
                abbreviated{
                    "AK",
                    "PK",
                }
                wide{
                    "Ashanali uKilisito",
                    "Pamwandi ya Kilisto",
                }
            }
            fields{
                day{
                    dn{"Lusiku"}
                    relative{
                        "-1"{"Imehe"}
                        "0"{"Ineng'uni"}
                        "1"{"Pamulaawu"}
                    }
                }
                dayperiod{
                    dn{"Uluhaavi lwa lusiku"}
                }
                era{
                    dn{"Uluhaavi lwa"}
                }
                hour{
                    dn{"Ilisala"}
                }
                minute{
                    dn{"Idakika"}
                }
                month{
                    dn{"Mwesi"}
                }
                second{
                    dn{"Isekunde"}
                }
                week{
                    dn{"Ilijuma"}
                }
                weekday{
                    dn{"Ulusiku lwa Lijuma"}
                }
                year{
                    dn{"Mwakha"}
                }
                zone{
                    dn{"Uluhaavi lwa lisaa"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Mup",
                        "Mwi",
                        "Msh",
                        "Mun",
                        "Mag",
                        "Muj",
                        "Msp",
                        "Mpg",
                        "Mye",
                        "Mok",
                        "Mus",
                        "Muh",
                    }
                    wide{
                        "Mupalangulwa",
                        "Mwitope",
                        "Mushende",
                        "Munyi",
                        "Mushende Magali",
                        "Mujimbi",
                        "Mushipepo",
                        "Mupuguto",
                        "Munyense",
                        "Mokhu",
                        "Musongandembwe",
                        "Muhaano",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "L1",
                        "L2",
                        "L3",
                        "L4",
                    }
                    wide{
                        "Lobo 1",
                        "Lobo 2",
                        "Lobo 3",
                        "Lobo 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
}
