﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/sw.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/sw.xml
 */
sw{
    AuxExemplarCharacters{"[c q x]"}
    ExemplarCharacters{"[a b {ch} d e f g h i j k l m n o p r s t u v w y z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00;(¤#,##0.00)"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            patternsLong{
                decimalFormat{
                    1000{
                        one{"Elfu 0"}
                        other{"Elfu 0"}
                    }
                    10000{
                        one{"Elfu 00"}
                        other{"Elfu 00"}
                    }
                    100000{
                        one{"Elfu 000"}
                        other{"Elfu 000"}
                    }
                    1000000{
                        one{"Milioni 0"}
                        other{"Milioni 0"}
                    }
                    10000000{
                        one{"Milioni 00"}
                        other{"Milioni 00"}
                    }
                    100000000{
                        one{"Milioni 000"}
                        other{"Milioni 000"}
                    }
                    1000000000{
                        one{"Bilioni 0"}
                        other{"Bilioni 0"}
                    }
                    10000000000{
                        one{"Bilioni 00"}
                        other{"Bilioni 00"}
                    }
                    100000000000{
                        one{"Bilioni 000"}
                        other{"Bilioni 000"}
                    }
                    1000000000000{
                        one{"Trilioni 0"}
                        other{"Trilioni 0"}
                    }
                    10000000000000{
                        one{"Trilioni 00"}
                        other{"Trilioni 00"}
                    }
                    100000000000000{
                        one{"Trilioni 000"}
                        other{"Trilioni 000"}
                    }
                }
            }
            patternsShort{
                decimalFormat{
                    1000{
                        one{"elfu 0"}
                        other{"elfu 0"}
                    }
                    10000{
                        one{"elfu 00"}
                        other{"elfu 00"}
                    }
                    100000{
                        one{"laki0"}
                        other{"laki0"}
                    }
                    1000000{
                        one{"M0"}
                        other{"M0"}
                    }
                    10000000{
                        one{"M00"}
                        other{"M00"}
                    }
                    100000000{
                        one{"M000"}
                        other{"M000"}
                    }
                    1000000000{
                        one{"B0"}
                        other{"B0"}
                    }
                    10000000000{
                        one{"B00"}
                        other{"B00"}
                    }
                    100000000000{
                        one{"B000"}
                        other{"B000"}
                    }
                    1000000000000{
                        one{"T0"}
                        other{"T0"}
                    }
                    10000000000000{
                        one{"T00"}
                        other{"T00"}
                    }
                    100000000000000{
                        one{"T000"}
                        other{"T000"}
                    }
                }
            }
            symbols{
                decimal{"."}
                exponential{"E"}
                group{","}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.75.94"}
    calendar{
        gregorian{
            AmPmMarkers{
                "asubuhi",
                "alasiri",
            }
            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{"d E"}
                H{"HH"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"LLL"}
                MMMEd{"E, d MMM"}
                MMMMEd{"E, d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"d-M"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "J2",
                        "J3",
                        "J4",
                        "J5",
                        "Alh",
                        "Ij",
                        "J1",
                    }
                    short{
                        "Jumapili",
                        "Jumatatu",
                        "Jumanne",
                        "Jumatano",
                        "Alhamisi",
                        "Ijumaa",
                        "Jumamosi",
                    }
                    wide{
                        "Jumapili",
                        "Jumatatu",
                        "Jumanne",
                        "Jumatano",
                        "Alhamisi",
                        "Ijumaa",
                        "Jumamosi",
                    }
                }
                stand-alone{
                    narrow{
                        "2",
                        "3",
                        "4",
                        "5",
                        "A",
                        "I",
                        "1",
                    }
                    short{
                        "Jumapili",
                        "Jumatatu",
                        "Jumanne",
                        "Jumatano",
                        "Alhamisi",
                        "Ijumaa",
                        "Jumamosi",
                    }
                }
            }
            eras{
                abbreviated{
                    "KK",
                    "BK",
                }
                wide{
                    "Kabla ya Kristo",
                    "Baada ya Kristo",
                }
            }
            fields{
                day{
                    dn{"Siku"}
                    relative{
                        "-1"{"Jana"}
                        "-2"{"Mtondo"}
                        "0"{"Leo"}
                        "1"{"Kesho"}
                        "2"{"Kesho kutwa"}
                    }
                }
                dayperiod{
                    dn{"Muda wa siku"}
                }
                era{
                    dn{"Enzi"}
                }
                hour{
                    dn{"Saa"}
                }
                minute{
                    dn{"Dakika"}
                }
                month{
                    dn{"Mwezi"}
                    relative{
                        "-1"{"Mwezi uliopita"}
                        "0"{"Mwezi huu"}
                        "1"{"Mwezi ujao"}
                    }
                }
                second{
                    dn{"Sekunde"}
                }
                week{
                    dn{"Wiki"}
                    relative{
                        "-1"{"Wiki iliyopita"}
                        "0"{"Wiki hii"}
                        "1"{"Wiki ijayo"}
                    }
                }
                weekday{
                    dn{"Siku ya wiki"}
                }
                year{
                    dn{"Mwaka"}
                    relative{
                        "-1"{"Mwaka uliopita"}
                        "0"{"Mwaka huu"}
                        "1"{"Mwaka ujao"}
                    }
                }
                zone{
                    dn{"Majira ya saa"}
                }
            }
            intervalFormats{
                H{
                    H{"HH – HH"}
                }
                Hm{
                    H{"HH:mm - HH:mm"}
                    m{"HH:mm – HH:mm"}
                }
                Hmv{
                    H{"HH:mm – HH:mm v"}
                    m{"HH:mm - HH:mm v"}
                }
                Hv{
                    H{"HH – HH v"}
                }
                M{
                    M{"M - M"}
                }
                MEd{
                    M{"E, d/M - E, d/M"}
                    d{"E, d/M - E, d/M"}
                }
                MMM{
                    M{"MMM - MMM"}
                }
                MMMEd{
                    M{"E, d MMM - E, d MMM"}
                    d{"E, d MMM - E, d MMM"}
                }
                MMMd{
                    M{"d MMM - d MMM"}
                    d{"d - d MMM"}
                }
                Md{
                    M{"d/M - d/M"}
                    d{"d/M - d/M"}
                }
                d{
                    d{"d - d"}
                }
                h{
                    a{"h a – h a"}
                    h{"h – h a"}
                }
                hm{
                    a{"h:mm a – h:mm a"}
                    h{"h:mm–h:mm a"}
                    m{"h:mm – h:mm a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                    h{"h:mm - h:mm a v"}
                    m{"h:mm - h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h – h a v"}
                }
                y{
                    y{"y - y"}
                }
                yM{
                    M{"M/yy - M/yy"}
                    y{"M/yy - M/yy"}
                }
                yMEd{
                    M{"E, d/M/yy - E, d/M/yy"}
                    d{"E, d/M/yy - E, d/M/yy"}
                    y{"E, d/M/yy - E, d/M/yy"}
                }
                yMMM{
                    M{"MMM - MMM y"}
                    y{"MMM y - MMM y"}
                }
                yMMMEd{
                    M{"E, d MMM - E, d MMM y"}
                    d{"E, d MMM - E, d MMM y"}
                    y{"E, d MMM y - E, d MMM y"}
                }
                yMMMM{
                    M{"MMMM-MMMM y"}
                    y{"MMMM y – MMMM y"}
                }
                yMMMd{
                    M{"d MMM - d MMM y"}
                    d{"d - d MMM y"}
                    y{"d MMM y - d MMM y"}
                }
                yMd{
                    M{"d/M/yy - d/M/yy"}
                    d{"d/M/yy - d/M/yy"}
                    y{"d/M/yy - d/M/yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mac",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Jul",
                        "Ago",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Des",
                    }
                    wide{
                        "Januari",
                        "Februari",
                        "Machi",
                        "Aprili",
                        "Mei",
                        "Juni",
                        "Julai",
                        "Agosti",
                        "Septemba",
                        "Oktoba",
                        "Novemba",
                        "Desemba",
                    }
                }
                stand-alone{
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "Robo 1",
                        "Robo 2",
                        "Robo 3",
                        "Robo 4",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    listPattern{
        standard{
            2{"{0} na {1}"}
            end{"{0}, na {1}"}
            middle{"{0}, {1}"}
            start{"{0}, {1}"}
        }
    }
    measurementSystemNames{
        UK{"Uingereza"}
        US{"Marekani"}
        metric{"Mfumo wa Mita"}
    }
    units{
        day{
            one{"siku {0}"}
            other{"siku {0}"}
        }
        day-future{
            one{"Baada ya siku {0}"}
            other{"Baada ya siku {0}"}
        }
        day-past{
            one{"Siku {0} iliyopita"}
            other{"Siku {0} zilizopita"}
        }
        hour{
            one{"saa {0}"}
            other{"masaa {0}"}
        }
        hour-future{
            one{"Baada ya saa {0}"}
            other{"Baada ya masaa {0}"}
        }
        hour-past{
            one{"Saa {0} lililopita"}
            other{"Masaa {0} yaliyopita"}
        }
        minute{
            one{"dakika {0}"}
            other{"dakika {0}"}
        }
        minute-future{
            one{"Baada ya dakika {0}"}
            other{"Baada ya dakika {0}"}
        }
        minute-past{
            one{"Dakina {0} iliyopita"}
            other{"Dakika {0} zilizopita"}
        }
        month{
            one{"mwezi {0}"}
            other{"miezi {0}"}
        }
        month-future{
            one{"Baada ya mwezi {0}"}
            other{"Baada ya miezi {0}"}
        }
        month-past{
            one{"Miezi {0} iliyopita"}
            other{"Miezi {0} iliyopita"}
        }
        second{
            one{"sekunde {0}"}
            other{"sekunde {0}"}
        }
        second-future{
            one{"Baada ya sekunde {0}"}
            other{"Baada ya sekunde {0}"}
        }
        second-past{
            one{"Sekunde {0} iliyopita"}
            other{"Sekunde {0} zilizopita"}
        }
        week{
            one{"wiki {0}"}
            other{"wiki {0}"}
        }
        week-future{
            one{"Baada ya wiki {0}"}
            other{"Baada ya wiki {0}"}
        }
        week-past{
            one{"Wiki {0} iliyopita"}
            other{"Wiki {0} zilizopita"}
        }
        year{
            one{"mwaka {0}"}
            other{"miaka {0}"}
        }
        year-future{
            one{"Baada ya mwaka {0}"}
            other{"Baada ya miaka {0}"}
        }
        year-past{
            one{"Mwaka {0} uliopita"}
            other{"Miaka {0} iliyopita"}
        }
    }
    unitsShort{
        day{
            one{"siku {0}"}
            other{"siku {0}"}
        }
        hour{
            one{"saa {0}"}
            other{"masaa {0}"}
        }
        minute{
            one{"dakika {0}"}
            other{"dakika {0}"}
        }
        month{
            one{"mwezi {0}"}
            other{"miezi {0}"}
        }
        second{
            one{"sekunde {0}"}
            other{"sekunde {0}"}
        }
        week{
            one{"wiki {0}"}
            other{"wiki {0}"}
        }
        year{
            one{"mwaka {0}"}
            other{"miaka {0}"}
        }
    }
}
