diff options
author | Dean Karn <Dean.Karn@metricaid.com> | 2016-11-08 19:14:13 +0300 |
---|---|---|
committer | Dean Karn <Dean.Karn@metricaid.com> | 2016-11-08 19:14:13 +0300 |
commit | 7832011dcf5c8b82caa7d6b379c5df17d5681fea (patch) | |
tree | b2feec7ef734b652acf3ac50d3bf8f90623eba63 /ru_KZ | |
parent | 23da3897c15437bd43dc8d2bc5f49ac4849e6c32 (diff) |
Correct some issues + Add Russian testsv0.10.2
- corrected handling of single quite in date formats, index was off
causing quotes to appear in text
- corrected bug in plurals rules mod != rules were generating mod10 < 12
&& mod10 >14, when it should be (mod10 < 12 || mod10 > 14)
- added code to sort plural rules, no real issue just now print in order
- override russian percent format CLDR contains space between # and %
but should be no space.
Russian tests were added, thanks @nikolay-turpitko.
- updated tests to cover 100% of range rules.
Diffstat (limited to 'ru_KZ')
-rw-r--r-- | ru_KZ/ru_KZ.go | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/ru_KZ/ru_KZ.go b/ru_KZ/ru_KZ.go index 347150d2..b4447baf 100644 --- a/ru_KZ/ru_KZ.go +++ b/ru_KZ/ru_KZ.go @@ -18,7 +18,6 @@ type ru_KZ struct { group string minus string percent string - percentSuffix string perMille string timeSeparator string inifinity string @@ -56,8 +55,7 @@ func New() locales.Translator { perMille: "‰", timeSeparator: ":", inifinity: "∞", - 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 ", "BYR ", "BZD ", "CAD ", "CDF ", "CHE ", "CHF ", "CHW ", "CLE ", "CLF ", "CLP ", "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 ", "₸", "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 ", "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 ", "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 ", "UZS ", "VEB ", "VEF ", "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 "}, - percentSuffix: " ", + 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", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "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", "₸", "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", "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", "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", "UZS", "VEB", "VEF", "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"}, currencyPositiveSuffix: " ", currencyNegativeSuffix: " ", monthsAbbreviated: []string{"", "янв.", "февр.", "мар.", "апр.", "мая", "июн.", "июл.", "авг.", "сент.", "окт.", "нояб.", "дек."}, @@ -73,7 +71,7 @@ func New() locales.Translator { erasAbbreviated: []string{"до н. э.", "н. э."}, erasNarrow: []string{"до н.э.", "н.э."}, erasWide: []string{"до Рождества Христова", "от Рождества Христова"}, - timezones: map[string]string{"MYT": "Малайзия", "MESZ": "Центральная Европа, летнее время", "ChST": "Чаморро", "UYST": "Уругвай, летнее время", "BT": "Бутан", "EDT": "Восточная Америка, летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "HADT": "Гавайско-алеутское летнее время", "TMT": "Туркмения, стандартное время", "TMST": "Туркмения, летнее время", "HAT": "Ньюфаундленд, летнее время", "MST": "Горное стандартное время (США)", "AWST": "Западная Австралия, стандартное время", "WITA": "Центральная Индонезия", "PST": "Тихоокеанское стандартное время", "COST": "Колумбия, летнее время", "OESZ": "Восточная Европа, летнее время", "EAT": "Восточная Африка", "HKST": "Гонконг, летнее время", "JST": "Япония, стандартное время", "JDT": "Япония, летнее время", "EST": "Восточная Америка, стандартное время", "HAST": "Гавайско-алеутское стандартное время", "GMT": "Среднее время по Гринвичу", "ACST": "Центральная Австралия, стандартное время", "VET": "Венесуэла", "ADT": "Атлантическое летнее время", "NZDT": "Новая Зеландия, летнее время", "BOT": "Боливия", "AEST": "Восточная Австралия, стандартное время", "LHDT": "Лорд-Хау, летнее время", "SRT": "Суринам", "NZST": "Новая Зеландия, стандартное время", "WIB": "Западная Индонезия", "WAT": "Западная Африка, стандартное время", "OEZ": "Восточная Европа, стандартное время", "∅∅∅": "Бразилия, летнее время", "WART": "Западная Аргентина, стандартное время", "GFT": "Французская Гвиана", "COT": "Колумбия, стандартное время", "UYT": "Уругвай, стандартное время", "HNT": "Ньюфаундленд, стандартное время", "WEZ": "Западная Европа, стандартное время", "CHAST": "Чатем, стандартное время", "AST": "Атлантическое стандартное время", "ACWST": "Центральная Австралия, западное стандартное время", "IST": "Индия", "PDT": "Тихоокеанское летнее время", "MEZ": "Центральная Европа, стандартное время", "WIT": "Восточная Индонезия", "LHST": "Лорд-Хау, стандартное время", "MDT": "Горное летнее время (США)", "CDT": "Центральная Америка, летнее время", "ACDT": "Центральная Австралия, летнее время", "AWDT": "Западная Австралия, летнее время", "WESZ": "Западная Европа, летнее время", "GYT": "Гайана", "WARST": "Западная Аргентина, летнее время", "AKST": "Аляска, стандартное время", "ART": "Аргентина, стандартное время", "CAT": "Центральная Африка", "WAST": "Западная Африка, летнее время", "SGT": "Сингапур", "CLT": "Чили, стандартное время", "CHADT": "Чатем, летнее время", "SAST": "Южная Африка", "CST": "Центральная Америка, стандартное время", "AEDT": "Восточная Австралия, летнее время", "CLST": "Чили, летнее время", "HKT": "Гонконг, стандартное время", "ECT": "Эквадор", "AKDT": "Аляска, летнее время", "ARST": "Аргентина, летнее время"}, + timezones: map[string]string{"HAST": "Гавайско-алеутское стандартное время", "LHDT": "Лорд-Хау, летнее время", "TMST": "Туркмения, летнее время", "PDT": "Тихоокеанское летнее время", "CLT": "Чили, стандартное время", "MST": "Горное стандартное время (США)", "AEDT": "Восточная Австралия, летнее время", "CHADT": "Чатем, летнее время", "WART": "Западная Аргентина, стандартное время", "SAST": "Южная Африка", "VET": "Венесуэла", "CDT": "Центральная Америка, летнее время", "SGT": "Сингапур", "GFT": "Французская Гвиана", "HAT": "Ньюфаундленд, летнее время", "AKST": "Аляска, стандартное время", "HKT": "Гонконг, стандартное время", "MESZ": "Центральная Европа, летнее время", "IST": "Индия", "ChST": "Чаморро", "AEST": "Восточная Австралия, стандартное время", "WITA": "Центральная Индонезия", "BOT": "Боливия", "ACST": "Центральная Австралия, стандартное время", "MYT": "Малайзия", "WAT": "Западная Африка, стандартное время", "MEZ": "Центральная Европа, стандартное время", "PST": "Тихоокеанское стандартное время", "COT": "Колумбия, стандартное время", "SRT": "Суринам", "EAT": "Восточная Африка", "EDT": "Восточная Америка, летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "TMT": "Туркмения, стандартное время", "NZDT": "Новая Зеландия, летнее время", "ADT": "Атлантическое летнее время", "WAST": "Западная Африка, летнее время", "CLST": "Чили, летнее время", "WARST": "Западная Аргентина, летнее время", "WIT": "Восточная Индонезия", "EST": "Восточная Америка, стандартное время", "JST": "Япония, стандартное время", "CHAST": "Чатем, стандартное время", "CAT": "Центральная Африка", "UYST": "Уругвай, летнее время", "AST": "Атлантическое стандартное время", "WESZ": "Западная Европа, летнее время", "AWST": "Западная Австралия, стандартное время", "OESZ": "Восточная Европа, летнее время", "JDT": "Япония, летнее время", "BT": "Бутан", "WEZ": "Западная Европа, стандартное время", "ART": "Аргентина, стандартное время", "HADT": "Гавайско-алеутское летнее время", "∅∅∅": "Перу, летнее время", "HKST": "Гонконг, летнее время", "WIB": "Западная Индонезия", "ACWST": "Центральная Австралия, западное стандартное время", "HNT": "Ньюфаундленд, стандартное время", "ACDT": "Центральная Австралия, летнее время", "MDT": "Горное летнее время (США)", "GMT": "Среднее время по Гринвичу", "LHST": "Лорд-Хау, стандартное время", "ECT": "Эквадор", "GYT": "Гайана", "ARST": "Аргентина, летнее время", "OEZ": "Восточная Европа, стандартное время", "CST": "Центральная Америка, стандартное время", "UYT": "Уругвай, стандартное время", "AKDT": "Аляска, летнее время", "NZST": "Новая Зеландия, стандартное время", "COST": "Колумбия, летнее время", "AWDT": "Западная Австралия, летнее время"}, } } @@ -107,7 +105,7 @@ func (ru *ru_KZ) CardinalPluralRule(num float64, v uint64) locales.PluralRule { if v == 0 && iMod10 == 1 && iMod100 != 11 { return locales.PluralRuleOne - } else if v == 0 && iMod10 >= 2 && iMod10 <= 4 && iMod100 < 12 && iMod100 > 14 { + } else if v == 0 && iMod10 >= 2 && iMod10 <= 4 && (iMod100 < 12 || iMod100 > 14) { return locales.PluralRuleFew } else if (v == 0 && iMod10 == 0) || (v == 0 && iMod10 >= 5 && iMod10 <= 9) || (v == 0 && iMod100 >= 11 && iMod100 <= 14) { return locales.PluralRuleMany @@ -280,7 +278,7 @@ func (ru *ru_KZ) FmtNumber(num float64, v uint64) string { // NOTE: 'num' passed into FmtPercent is assumed to be in percent already func (ru *ru_KZ) FmtPercent(num float64, v uint64) string { s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64) - l := len(s) + 5 + l := len(s) + 3 b := make([]byte, 0, l) for i := len(s) - 1; i >= 0; i-- { @@ -302,8 +300,6 @@ func (ru *ru_KZ) FmtPercent(num float64, v uint64) string { b[i], b[j] = b[j], b[i] } - b = append(b, ru.percentSuffix...) - b = append(b, ru.percent...) return string(b) @@ -474,8 +470,8 @@ func (ru *ru_KZ) FmtDateMedium(t time.Time) string { b = append(b, ru.monthsAbbreviated[t.Month()]...) b = append(b, []byte{0x20}...) b = strconv.AppendInt(b, int64(t.Year()), 10) - b = append(b, []byte{}...) - b = append(b, []byte{0x27, 0xd0, 0xb3, 0x27, 0x2e}...) + b = append(b, []byte{0x20, 0xd0, 0xb3}...) + b = append(b, []byte{0x2e}...) return string(b) } @@ -490,8 +486,8 @@ func (ru *ru_KZ) FmtDateLong(t time.Time) string { b = append(b, ru.monthsWide[t.Month()]...) b = append(b, []byte{0x20}...) b = strconv.AppendInt(b, int64(t.Year()), 10) - b = append(b, []byte{}...) - b = append(b, []byte{0x27, 0xd0, 0xb3, 0x27, 0x2e}...) + b = append(b, []byte{0x20, 0xd0, 0xb3}...) + b = append(b, []byte{0x2e}...) return string(b) } @@ -508,8 +504,8 @@ func (ru *ru_KZ) FmtDateFull(t time.Time) string { b = append(b, ru.monthsWide[t.Month()]...) b = append(b, []byte{0x20}...) b = strconv.AppendInt(b, int64(t.Year()), 10) - b = append(b, []byte{}...) - b = append(b, []byte{0x27, 0xd0, 0xb3, 0x27, 0x2e}...) + b = append(b, []byte{0x20, 0xd0, 0xb3}...) + b = append(b, []byte{0x2e}...) return string(b) } |