func (ebu *ebu_KE) FmtDateLong(t time.Time) string {
	b := make([]byte, 0, 32)
	b = strconv.AppendInt(b, int64(t.Day()), 10)
	b = append(b, []byte{0x20}...)
	b = append(b, ebu.monthsWide[t.Month()]...)
	b = append(b, []byte{0x20}...)
	if t.Year() > 0 {
		b = strconv.AppendInt(b, int64(t.Year()), 10)
	} else {
		b = strconv.AppendInt(b, int64(-t.Year()), 10)
	}
	return string(b)
}
FmtDateLong returns the long date representation of 't' for 'ebu_KE'
package ebu_KE
import (
	"math"
	"strconv"
	"time"
	"github.com/go-playground/locales"
	"github.com/go-playground/locales/currency"
)
type ebu_KE struct {
	locale                 string
	pluralsCardinal        []locales.PluralRule
	pluralsOrdinal         []locales.PluralRule
	pluralsRange           []locales.PluralRule
	decimal                string
	group                  string
	minus                  string
	percent                string
	perMille               string
	timeSeparator          string
	inifinity              string
	currencies             []string  
	currencyNegativePrefix string
	currencyNegativeSuffix string
	monthsAbbreviated      []string
	monthsNarrow           []string
	monthsWide             []string
	daysAbbreviated        []string
	daysNarrow             []string
	daysShort              []string
	daysWide               []string
	periodsAbbreviated     []string
	periodsNarrow          []string
	periodsShort           []string
	periodsWide            []string
	erasAbbreviated        []string
	erasNarrow             []string
	erasWide               []string
	timezones              map[string]string
}
func New() locales.Translator {
	return &ebu_KE{
		locale:                 "ebu_KE",
		pluralsCardinal:        nil,
		pluralsOrdinal:         nil,
		pluralsRange:           nil,
		timeSeparator:          ":",
		currencies:             []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNH", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MRU", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "STN", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UYW", "UZS", "VEB", "VEF", "VES", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
		currencyNegativePrefix: "(",
		currencyNegativeSuffix: ")",
		monthsAbbreviated:      []string{"", "Mbe", "Kai", "Kat", "Kan", "Gat", "Gan", "Mug", "Knn", "Ken", "Iku", "Imw", "Igi"},
		monthsNarrow:           []string{"", "M", "K", "K", "K", "G", "G", "M", "K", "K", "I", "I", "I"},
		monthsWide:             []string{"", "Mweri wa mbere", "Mweri wa kaĩri", "Mweri wa kathatũ", "Mweri wa kana", "Mweri wa gatano", "Mweri wa gatantatũ", "Mweri wa mũgwanja", "Mweri wa kanana", "Mweri wa kenda", "Mweri wa ikũmi", "Mweri wa ikũmi na ũmwe", "Mweri wa ikũmi na Kaĩrĩ"},
		daysAbbreviated:        []string{"Kma", "Tat", "Ine", "Tan", "Arm", "Maa", "NMM"},
		daysNarrow:             []string{"K", "N", "N", "N", "A", "M", "N"},
		daysWide:               []string{"Kiumia", "Njumatatu", "Njumaine", "Njumatano", "Aramithi", "Njumaa", "NJumamothii"},
		periodsAbbreviated:     []string{"KI", "UT"},
		periodsWide:            []string{"KI", "UT"},
		erasAbbreviated:        []string{"MK", "TK"},
		erasNarrow:             []string{"", ""},
		erasWide:               []string{"Mbere ya Kristo", "Thutha wa Kristo"},
		timezones:              map[string]string{"ACDT": "ACDT", "ACST": "ACST", "ACWDT": "ACWDT", "ACWST": "ACWST", "ADT": "ADT", "AEDT": "AEDT", "AEST": "AEST", "AKDT": "AKDT", "AKST": "AKST", "ARST": "ARST", "ART": "ART", "AST": "AST", "AWDT": "AWDT", "AWST": "AWST", "BOT": "BOT", "BT": "BT", "CAT": "CAT", "CDT": "CDT", "CHADT": "CHADT", "CHAST": "CHAST", "CLST": "CLST", "CLT": "CLT", "COST": "COST", "COT": "COT", "CST": "CST", "ChST": "ChST", "EAT": "EAT", "ECT": "ECT", "EDT": "EDT", "EST": "EST", "GFT": "GFT", "GMT": "GMT", "GST": "GST", "GYT": "GYT", "HADT": "HADT", "HAST": "HAST", "HAT": "HAT", "HECU": "HECU", "HEEG": "HEEG", "HENOMX": "HENOMX", "HEOG": "HEOG", "HEPM": "HEPM", "HEPMX": "HEPMX", "HKST": "HKST", "HKT": "HKT", "HNCU": "HNCU", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HNOG": "HNOG", "HNPM": "HNPM", "HNPMX": "HNPMX", "HNT": "HNT", "IST": "IST", "JDT": "JDT", "JST": "JST", "LHDT": "LHDT", "LHST": "LHST", "MDT": "MDT", "MESZ": "MESZ", "MEZ": "MEZ", "MST": "MST", "MYT": "MYT", "NZDT": "NZDT", "NZST": "NZST", "OESZ": "OESZ", "OEZ": "OEZ", "PDT": "PDT", "PST": "PST", "SAST": "SAST", "SGT": "SGT", "SRT": "SRT", "TMST": "TMST", "TMT": "TMT", "UYST": "UYST", "UYT": "UYT", "VET": "VET", "WARST": "WARST", "WART": "WART", "WAST": "WAST", "WAT": "WAT", "WESZ": "WESZ", "WEZ": "WEZ", "WIB": "WIB", "WIT": "WIT", "WITA": "WITA", "∅∅∅": "∅∅∅"},
	}
}
func (ebu *ebu_KE) Locale() string {
	return ebu.locale
}
func (ebu *ebu_KE) PluralsCardinal() []locales.PluralRule {
	return ebu.pluralsCardinal
}
func (ebu *ebu_KE) PluralsOrdinal() []locales.PluralRule {
	return ebu.pluralsOrdinal
}
func (ebu *ebu_KE) PluralsRange() []locales.PluralRule {
	return ebu.pluralsRange
}
func (ebu *ebu_KE) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
	return locales.PluralRuleUnknown
}
func (ebu *ebu_KE) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
	return locales.PluralRuleUnknown
}
func (ebu *ebu_KE) RangePluralRule(num1 float64, v1 uint64, num2 float64, v2 uint64) locales.PluralRule {
	return locales.PluralRuleUnknown
}
func (ebu *ebu_KE) MonthAbbreviated(month time.Month) string {
	return ebu.monthsAbbreviated[month]
}
func (ebu *ebu_KE) MonthsAbbreviated() []string {
	return ebu.monthsAbbreviated[1:]
}
func (ebu *ebu_KE) MonthNarrow(month time.Month) string {
	return ebu.monthsNarrow[month]
}
func (ebu *ebu_KE) MonthsNarrow() []string {
	return ebu.monthsNarrow[1:]
}
func (ebu *ebu_KE) MonthWide(month time.Month) string {
	return ebu.monthsWide[month]
}
func (ebu *ebu_KE) MonthsWide() []string {
	return ebu.monthsWide[1:]
}
func (ebu *ebu_KE) WeekdayAbbreviated(weekday time.Weekday) string {
	return ebu.daysAbbreviated[weekday]
}
func (ebu *ebu_KE) WeekdaysAbbreviated() []string {
	return ebu.daysAbbreviated
}
func (ebu *ebu_KE) WeekdayNarrow(weekday time.Weekday) string {
	return ebu.daysNarrow[weekday]
}
func (ebu *ebu_KE) WeekdaysNarrow() []string {
	return ebu.daysNarrow
}
func (ebu *ebu_KE) WeekdayShort(weekday time.Weekday) string {
	return ebu.daysShort[weekday]
}
func (ebu *ebu_KE) WeekdaysShort() []string {
	return ebu.daysShort
}
func (ebu *ebu_KE) WeekdayWide(weekday time.Weekday) string {
	return ebu.daysWide[weekday]
}
func (ebu *ebu_KE) WeekdaysWide() []string {
	return ebu.daysWide
}
func (ebu *ebu_KE) Decimal() string {
	return ebu.decimal
}
func (ebu *ebu_KE) Group() string {
	return ebu.group
}
func (ebu *ebu_KE) Minus() string {
	return ebu.minus
}
func (ebu *ebu_KE) FmtNumber(num float64, v uint64) string {
	return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
}
func (ebu *ebu_KE) FmtPercent(num float64, v uint64) string {
	return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
}
func (ebu *ebu_KE) FmtCurrency(num float64, v uint64, currency currency.Type) string {
	s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
	symbol := ebu.currencies[currency]
	l := len(s) + len(symbol) + 0
	count := 0
	inWhole := v == 0
	b := make([]byte, 0, l)
	for i := len(s) - 1; i >= 0; i-- {
		if s[i] == '.' {
			b = append(b, ebu.decimal[0])
			inWhole = true
			continue
		}
		if inWhole {
			if count == 3 {
				b = append(b, ebu.group[0])
				count = 1
			} else {
				count++
			}
		}
		b = append(b, s[i])
	}
	for j := len(symbol) - 1; j >= 0; j-- {
		b = append(b, symbol[j])
	}
	if num < 0 {
		b = append(b, ebu.minus[0])
	}
	for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
		b[i], b[j] = b[j], b[i]
	}
	if int(v) < 2 {
		if v == 0 {
			b = append(b, ebu.decimal...)
		}
		for i := 0; i < 2-int(v); i++ {
			b = append(b, '0')
		}
	}
	return string(b)
}
func (ebu *ebu_KE) FmtAccounting(num float64, v uint64, currency currency.Type) string {
	s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
	symbol := ebu.currencies[currency]
	l := len(s) + len(symbol) + 2
	count := 0
	inWhole := v == 0
	b := make([]byte, 0, l)
	for i := len(s) - 1; i >= 0; i-- {
		if s[i] == '.' {
			b = append(b, ebu.decimal[0])
			inWhole = true
			continue
		}
		if inWhole {
			if count == 3 {
				b = append(b, ebu.group[0])
				count = 1
			} else {
				count++
			}
		}
		b = append(b, s[i])
	}
	if num < 0 {
		for j := len(symbol) - 1; j >= 0; j-- {
			b = append(b, symbol[j])
		}
		b = append(b, ebu.currencyNegativePrefix[0])
	} else {
		for j := len(symbol) - 1; j >= 0; j-- {
			b = append(b, symbol[j])
		}
	}
	for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
		b[i], b[j] = b[j], b[i]
	}
	if int(v) < 2 {
		if v == 0 {
			b = append(b, ebu.decimal...)
		}
		for i := 0; i < 2-int(v); i++ {
			b = append(b, '0')
		}
	}
	if num < 0 {
		b = append(b, ebu.currencyNegativeSuffix...)
	}
	return string(b)
}
func (ebu *ebu_KE) FmtDateShort(t time.Time) string {
	b := make([]byte, 0, 32)
	if t.Day() < 10 {
		b = append(b, '0')
	}
	b = strconv.AppendInt(b, int64(t.Day()), 10)
	b = append(b, []byte{0x2f}...)
	if t.Month() < 10 {
		b = append(b, '0')
	}
	b = strconv.AppendInt(b, int64(t.Month()), 10)
	b = append(b, []byte{0x2f}...)
	if t.Year() > 0 {
		b = strconv.AppendInt(b, int64(t.Year()), 10)
	} else {
		b = strconv.AppendInt(b, int64(-t.Year()), 10)
	}
	return string(b)
}
func (ebu *ebu_KE) FmtDateMedium(t time.Time) string {
	b := make([]byte, 0, 32)
	b = strconv.AppendInt(b, int64(t.Day()), 10)
	b = append(b, []byte{0x20}...)
	b = append(b, ebu.monthsAbbreviated[t.Month()]...)
	b = append(b, []byte{0x20}...)
	if t.Year() > 0 {
		b = strconv.AppendInt(b, int64(t.Year()), 10)
	} else {
		b = strconv.AppendInt(b, int64(-t.Year()), 10)
	}
	return string(b)
}