diff options
Diffstat (limited to 'ast/ast.go')
-rw-r--r-- | ast/ast.go | 213 |
1 files changed, 91 insertions, 122 deletions
@@ -14,31 +14,31 @@ type ast struct { pluralsCardinal []locales.PluralRule pluralsOrdinal []locales.PluralRule pluralsRange []locales.PluralRule - decimal []byte - group []byte - minus []byte - percent []byte - perMille []byte - timeSeparator []byte - inifinity []byte - currencies [][]byte // idx = enum of currency code - currencyPositiveSuffix []byte - currencyNegativeSuffix []byte - monthsAbbreviated [][]byte - monthsNarrow [][]byte - monthsWide [][]byte - daysAbbreviated [][]byte - daysNarrow [][]byte - daysShort [][]byte - daysWide [][]byte - periodsAbbreviated [][]byte - periodsNarrow [][]byte - periodsShort [][]byte - periodsWide [][]byte - erasAbbreviated [][]byte - erasNarrow [][]byte - erasWide [][]byte - timezones map[string][]byte + decimal string + group string + minus string + percent string + perMille string + timeSeparator string + inifinity string + currencies []string // idx = enum of currency code + currencyPositiveSuffix 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 } // New returns a new instance of translator for the 'ast' locale @@ -48,29 +48,29 @@ func New() locales.Translator { pluralsCardinal: []locales.PluralRule{2, 6}, pluralsOrdinal: nil, pluralsRange: nil, - decimal: []byte{0xd9, 0xab}, - group: []byte{0xd9, 0xac}, - minus: []byte{0xe2, 0x80, 0x8f, 0x2d}, - percent: []byte{0xd9, 0xaa}, - perMille: []byte{0xd8, 0x89}, - timeSeparator: []byte{0x3a}, - currencies: [][]uint8{{0x41, 0x44, 0x50}, {0x41, 0x45, 0x44}, {0x41, 0x46, 0x41}, {0x41, 0x46, 0x4e}, {0x41, 0x4c, 0x4b, 0x20}, {0x41, 0x4c, 0x4c}, {0x41, 0x4d, 0x44}, {0x41, 0x4e, 0x47}, {0x41, 0x4f, 0x41}, {0x41, 0x4f, 0x4b}, {0x41, 0x4f, 0x4e}, {0x41, 0x4f, 0x52}, {0x41, 0x52, 0x41}, {0x41, 0x52, 0x4c}, {0x41, 0x52, 0x4d}, {0x41, 0x52, 0x50}, {0x41, 0x52, 0x53}, {0x41, 0x54, 0x53}, {0x41, 0x24}, {0x41, 0x57, 0x47}, {0x41, 0x5a, 0x4d}, {0x41, 0x5a, 0x4e}, {0x42, 0x41, 0x44}, {0x42, 0x41, 0x4d}, {0x42, 0x41, 0x4e}, {0x42, 0x42, 0x44}, {0x42, 0x44, 0x54}, {0x42, 0x45, 0x43}, {0x42, 0x45, 0x46}, {0x42, 0x45, 0x4c}, {0x42, 0x47, 0x4c}, {0x42, 0x47, 0x4d}, {0x42, 0x47, 0x4e}, {0x42, 0x47, 0x4f}, {0x42, 0x48, 0x44}, {0x42, 0x49, 0x46}, {0x42, 0x4d, 0x44}, {0x42, 0x4e, 0x44}, {0x42, 0x4f, 0x42}, {0x42, 0x4f, 0x4c}, {0x42, 0x4f, 0x50}, {0x42, 0x4f, 0x56}, {0x42, 0x52, 0x42}, {0x42, 0x52, 0x43}, {0x42, 0x52, 0x45}, {0x52, 0x24}, {0x42, 0x52, 0x4e}, {0x42, 0x52, 0x52}, {0x42, 0x52, 0x5a}, {0x42, 0x53, 0x44}, {0x42, 0x54, 0x4e}, {0x42, 0x55, 0x4b}, {0x42, 0x57, 0x50}, {0x42, 0x59, 0x42}, {0x42, 0x59, 0x52}, {0x42, 0x5a, 0x44}, {0x43, 0x41, 0x24}, {0x43, 0x44, 0x46}, {0x43, 0x48, 0x45}, {0x43, 0x48, 0x46}, {0x43, 0x48, 0x57}, {0x43, 0x4c, 0x45}, {0x43, 0x4c, 0x46}, {0x43, 0x4c, 0x50}, {0x43, 0x4e, 0x58, 0x20}, {0x43, 0x4e, 0xc2, 0xa5}, {0x43, 0x4f, 0x50}, {0x43, 0x4f, 0x55}, {0x43, 0x52, 0x43}, {0x43, 0x53, 0x44}, {0x43, 0x53, 0x4b}, {0x43, 0x55, 0x43}, {0x43, 0x55, 0x50}, {0x43, 0x56, 0x45}, {0x43, 0x59, 0x50}, {0x43, 0x5a, 0x4b}, {0x44, 0x44, 0x4d}, {0x44, 0x45, 0x4d}, {0x44, 0x4a, 0x46}, {0x44, 0x4b, 0x4b}, {0x44, 0x4f, 0x50}, {0x44, 0x5a, 0x44}, {0x45, 0x43, 0x53}, {0x45, 0x43, 0x56}, {0x45, 0x45, 0x4b}, {0x45, 0x47, 0x50}, {0x45, 0x52, 0x4e}, {0x45, 0x53, 0x41}, {0x45, 0x53, 0x42}, {0x45, 0x53, 0x50}, {0x45, 0x54, 0x42}, {0xe2, 0x82, 0xac}, {0x46, 0x49, 0x4d}, {0x46, 0x4a, 0x44}, {0x46, 0x4b, 0x50}, {0x46, 0x52, 0x46}, {0xc2, 0xa3}, {0x47, 0x45, 0x4b}, {0x47, 0x45, 0x4c}, {0x47, 0x48, 0x43}, {0x47, 0x48, 0x53}, {0x47, 0x49, 0x50}, {0x47, 0x4d, 0x44}, {0x47, 0x4e, 0x46}, {0x47, 0x4e, 0x53}, {0x47, 0x51, 0x45}, {0x47, 0x52, 0x44}, {0x47, 0x54, 0x51}, {0x47, 0x57, 0x45}, {0x47, 0x57, 0x50}, {0x47, 0x59, 0x44}, {0x48, 0x4b, 0x24}, {0x48, 0x4e, 0x4c}, {0x48, 0x52, 0x44}, {0x48, 0x52, 0x4b}, {0x48, 0x54, 0x47}, {0x48, 0x55, 0x46}, {0x49, 0x44, 0x52}, {0x49, 0x45, 0x50}, {0x49, 0x4c, 0x50}, {0x49, 0x4c, 0x52, 0x20}, {0xe2, 0x82, 0xaa}, {0xe2, 0x82, 0xb9}, {0x49, 0x51, 0x44}, {0x49, 0x52, 0x52}, {0x49, 0x53, 0x4a, 0x20}, {0x49, 0x53, 0x4b}, {0x49, 0x54, 0x4c}, {0x4a, 0x4d, 0x44}, {0x4a, 0x4f, 0x44}, {0xc2, 0xa5}, {0x4b, 0x45, 0x53}, {0x4b, 0x47, 0x53}, {0x4b, 0x48, 0x52}, {0x4b, 0x4d, 0x46}, {0x4b, 0x50, 0x57}, {0x4b, 0x52, 0x48}, {0x4b, 0x52, 0x4f}, {0xe2, 0x82, 0xa9}, {0x4b, 0x57, 0x44}, {0x4b, 0x59, 0x44}, {0x4b, 0x5a, 0x54}, {0x4c, 0x41, 0x4b}, {0x4c, 0x42, 0x50}, {0x4c, 0x4b, 0x52}, {0x4c, 0x52, 0x44}, {0x4c, 0x53, 0x4c}, {0x4c, 0x54, 0x4c}, {0x4c, 0x54, 0x54}, {0x4c, 0x55, 0x43}, {0x4c, 0x55, 0x46}, {0x4c, 0x55, 0x4c}, {0x4c, 0x56, 0x4c}, {0x4c, 0x56, 0x52}, {0x4c, 0x59, 0x44}, {0x4d, 0x41, 0x44}, {0x4d, 0x41, 0x46}, {0x4d, 0x43, 0x46}, {0x4d, 0x44, 0x43}, {0x4d, 0x44, 0x4c}, {0x4d, 0x47, 0x41}, {0x4d, 0x47, 0x46}, {0x4d, 0x4b, 0x44}, {0x4d, 0x4b, 0x4e}, {0x4d, 0x4c, 0x46}, {0x4d, 0x4d, 0x4b}, {0x4d, 0x4e, 0x54}, {0x4d, 0x4f, 0x50}, {0x4d, 0x52, 0x4f}, {0x4d, 0x54, 0x4c}, {0x4d, 0x54, 0x50}, {0x4d, 0x55, 0x52}, {0x4d, 0x56, 0x50, 0x20}, {0x4d, 0x56, 0x52}, {0x4d, 0x57, 0x4b}, {0x4d, 0x58, 0x24}, {0x4d, 0x58, 0x50}, {0x4d, 0x58, 0x56}, {0x4d, 0x59, 0x52}, {0x4d, 0x5a, 0x45}, {0x4d, 0x5a, 0x4d}, {0x4d, 0x5a, 0x4e}, {0x4e, 0x41, 0x44}, {0x4e, 0x47, 0x4e}, {0x4e, 0x49, 0x43}, {0x4e, 0x49, 0x4f}, {0x4e, 0x4c, 0x47}, {0x4e, 0x4f, 0x4b}, {0x4e, 0x50, 0x52}, {0x4e, 0x5a, 0x24}, {0x4f, 0x4d, 0x52}, {0x50, 0x41, 0x42}, {0x50, 0x45, 0x49}, {0x50, 0x45, 0x4e}, {0x50, 0x45, 0x53}, {0x50, 0x47, 0x4b}, {0x50, 0x48, 0x50}, {0x50, 0x4b, 0x52}, {0x50, 0x4c, 0x4e}, {0x50, 0x4c, 0x5a}, {0x50, 0x54, 0x45}, {0x50, 0x59, 0x47}, {0x51, 0x41, 0x52}, {0x52, 0x48, 0x44}, {0x52, 0x4f, 0x4c}, {0x52, 0x4f, 0x4e}, {0x52, 0x53, 0x44}, {0x52, 0x55, 0x42}, {0x52, 0x55, 0x52}, {0x52, 0x57, 0x46}, {0x53, 0x41, 0x52}, {0x53, 0x42, 0x44}, {0x53, 0x43, 0x52}, {0x53, 0x44, 0x44}, {0x53, 0x44, 0x47}, {0x53, 0x44, 0x50}, {0x53, 0x45, 0x4b}, {0x53, 0x47, 0x44}, {0x53, 0x48, 0x50}, {0x53, 0x49, 0x54}, {0x53, 0x4b, 0x4b}, {0x53, 0x4c, 0x4c}, {0x53, 0x4f, 0x53}, {0x53, 0x52, 0x44}, {0x53, 0x52, 0x47}, {0x53, 0x53, 0x50}, {0x53, 0x54, 0x44}, {0x53, 0x55, 0x52}, {0x53, 0x56, 0x43}, {0x53, 0x59, 0x50}, {0x53, 0x5a, 0x4c}, {0xe0, 0xb8, 0xbf}, {0x54, 0x4a, 0x52}, {0x54, 0x4a, 0x53}, {0x54, 0x4d, 0x4d}, {0x54, 0x4d, 0x54}, {0x54, 0x4e, 0x44}, {0x54, 0x4f, 0x50}, {0x54, 0x50, 0x45}, {0x54, 0x52, 0x4c}, {0x54, 0x52, 0x59}, {0x54, 0x54, 0x44}, {0x4e, 0x54, 0x24}, {0x54, 0x5a, 0x53}, {0x55, 0x41, 0x48}, {0x55, 0x41, 0x4b}, {0x55, 0x47, 0x53}, {0x55, 0x47, 0x58}, {0x24}, {0x55, 0x53, 0x4e}, {0x55, 0x53, 0x53}, {0x55, 0x59, 0x49}, {0x55, 0x59, 0x50}, {0x55, 0x59, 0x55}, {0x55, 0x5a, 0x53}, {0x56, 0x45, 0x42}, {0x56, 0x45, 0x46}, {0xe2, 0x82, 0xab}, {0x56, 0x4e, 0x4e}, {0x56, 0x55, 0x56}, {0x57, 0x53, 0x54}, {0x46, 0x43, 0x46, 0x41}, {0x58, 0x41, 0x47}, {0x58, 0x41, 0x55}, {0x58, 0x42, 0x41}, {0x58, 0x42, 0x42}, {0x58, 0x42, 0x43}, {0x58, 0x42, 0x44}, {0x45, 0x43, 0x24}, {0x58, 0x44, 0x52}, {0x58, 0x45, 0x55}, {0x58, 0x46, 0x4f}, {0x58, 0x46, 0x55}, {0x43, 0x46, 0x41}, {0x58, 0x50, 0x44}, {0x43, 0x46, 0x50, 0x46}, {0x58, 0x50, 0x54}, {0x58, 0x52, 0x45}, {0x58, 0x53, 0x55}, {0x58, 0x54, 0x53}, {0x58, 0x55, 0x41}, {0x58, 0x58, 0x58}, {0x59, 0x44, 0x44}, {0x59, 0x45, 0x52}, {0x59, 0x55, 0x44}, {0x59, 0x55, 0x4d}, {0x59, 0x55, 0x4e}, {0x59, 0x55, 0x52}, {0x5a, 0x41, 0x4c}, {0x5a, 0x41, 0x52}, {0x5a, 0x4d, 0x4b}, {0x5a, 0x4d, 0x57}, {0x5a, 0x52, 0x4e}, {0x5a, 0x52, 0x5a}, {0x5a, 0x57, 0x44}, {0x5a, 0x57, 0x4c}, {0x5a, 0x57, 0x52}}, - currencyPositiveSuffix: []byte{0xc2, 0xa0}, - currencyNegativeSuffix: []byte{0xc2, 0xa0}, - monthsAbbreviated: [][]uint8{[]uint8(nil), {0x78, 0x69, 0x6e}, {0x66, 0x65, 0x62}, {0x6d, 0x61, 0x72}, {0x61, 0x62, 0x72}, {0x6d, 0x61, 0x79}, {0x78, 0x75, 0x6e}, {0x78, 0x6e, 0x74}, {0x61, 0x67, 0x6f}, {0x73, 0x65, 0x74}, {0x6f, 0x63, 0x68}, {0x70, 0x61, 0x79}, {0x61, 0x76, 0x69}}, - monthsNarrow: [][]uint8{[]uint8(nil), {0x58}, {0x46}, {0x4d}, {0x41}, {0x4d}, {0x58}, {0x58}, {0x41}, {0x53}, {0x4f}, {0x50}, {0x41}}, - monthsWide: [][]uint8{[]uint8(nil), {0x64, 0x65, 0x20, 0x78, 0x69, 0x6e, 0x65, 0x72, 0x75}, {0x64, 0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75}, {0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x7a, 0x75}, {0x64, 0xe2, 0x80, 0x99, 0x61, 0x62, 0x72, 0x69, 0x6c}, {0x64, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x75}, {0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, 0x75}, {0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75}, {0x64, 0xe2, 0x80, 0x99, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x75}, {0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65}, {0x64, 0xe2, 0x80, 0x99, 0x6f, 0x63, 0x68, 0x6f, 0x62, 0x72, 0x65}, {0x64, 0x65, 0x20, 0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73}, {0x64, 0xe2, 0x80, 0x99, 0x61, 0x76, 0x69, 0x65, 0x6e, 0x74, 0x75}}, - daysAbbreviated: [][]uint8{{0x64, 0x6f, 0x6d}, {0x6c, 0x6c, 0x75}, {0x6d, 0x61, 0x72}, {0x6d, 0x69, 0xc3, 0xa9}, {0x78, 0x75, 0x65}, {0x76, 0x69, 0x65}, {0x73, 0xc3, 0xa1, 0x62}}, - daysNarrow: [][]uint8{{0x44}, {0x4c}, {0x4d}, {0x4d}, {0x58}, {0x56}, {0x53}}, - daysShort: [][]uint8{{0x64, 0x6f}, {0x6c, 0x6c}, {0x6d, 0x61}, {0x6d, 0x69}, {0x78, 0x75}, {0x76, 0x69}, {0x73, 0xc3, 0xa1}}, - daysWide: [][]uint8{{0x64, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x75}, {0x6c, 0x6c, 0x75, 0x6e, 0x65, 0x73}, {0x6d, 0x61, 0x72, 0x74, 0x65, 0x73}, {0x6d, 0x69, 0xc3, 0xa9, 0x72, 0x63, 0x6f, 0x6c, 0x65, 0x73}, {0x78, 0x75, 0x65, 0x76, 0x65, 0x73}, {0x76, 0x69, 0x65, 0x6e, 0x72, 0x65, 0x73}, {0x73, 0xc3, 0xa1, 0x62, 0x61, 0x64, 0x75}}, - periodsAbbreviated: [][]uint8{{0x41, 0x4d}, {0x50, 0x4d}}, - periodsNarrow: [][]uint8{{0x61}, {0x70}}, - periodsWide: [][]uint8{{0x64, 0x65, 0x20, 0x6c, 0x61, 0x20, 0x6d, 0x61, 0xc3, 0xb1, 0x61, 0x6e, 0x61}, {0x64, 0x65, 0x20, 0x6c, 0x61, 0x20, 0x74, 0x61, 0x72, 0x64, 0x69}}, - erasAbbreviated: [][]uint8{{0x61, 0x2e, 0x43, 0x2e}, {0x64, 0x2e, 0x43, 0x2e}}, - erasNarrow: [][]uint8{{0x61, 0x43}, {0x64, 0x43}}, - erasWide: [][]uint8{{0x61, 0x2e, 0x43, 0x2e}, {0x64, 0x65, 0x73, 0x70, 0x75, 0xc3, 0xa9, 0x73, 0x20, 0x64, 0x65, 0x20, 0x43, 0x72, 0x69, 0x73, 0x74, 0x75}}, - timezones: map[string][]uint8{"MESZ": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x61, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c}, "ART": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x72, 0x78, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61}, "CLST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6c, 0x65}, "GFT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4c, 0x61, 0x20, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61, 0x20, 0x46, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x61}, "WAT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0xc3, 0x81, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x6f, 0x65, 0x73, 0x74, 0x65}, "COST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x43, 0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61}, "CHAST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x43, 0x68, 0x61, 0x74, 0x68, 0x61, 0x6d}, "EST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x73, 0x74, 0x65, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x75}, "ACWST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x6f, 0x65, 0x73, 0x74, 0x65}, "ACWDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x6f, 0x65, 0x73, 0x74, 0x65}, "AWDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x6f, 0x65, 0x73, 0x74, 0x65}, "BT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x42, 0x75, 0x74, 0xc3, 0xa1, 0x6e}, "PDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x50, 0x61, 0x63, 0xc3, 0xad, 0x66, 0x69, 0x63, 0x75, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x75}, "UYT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x55, 0x72, 0x75, 0x67, 0x75, 0xc3, 0xa1, 0x69}, "WEZ": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x61, 0x20, 0x4f, 0x63, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x61, 0x6c}, "VET": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x56, 0x65, 0x6e, 0x65, 0x7a, 0x75, 0x65, 0x6c, 0x61}, "CAT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0xc3, 0x81, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c}, "WAST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0xc3, 0x81, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x6f, 0x65, 0x73, 0x74, 0x65}, "MDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x20, 0x6d, 0x6f, 0x6e, 0x74, 0x61, 0xc3, 0xb1, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x65, 0x73}, "PST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x50, 0x61, 0x63, 0xc3, 0xad, 0x66, 0x69, 0x63, 0x75, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x75}, "AST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x41, 0x74, 0x6c, 0xc3, 0xa1, 0x6e, 0x74, 0x69, 0x63, 0x75}, "OESZ": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x45, 0x73, 0x74, 0x65}, "HAT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4e, 0x65, 0x77, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x6c, 0x61, 0x6e, 0x64}, "WARST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x6f, 0x63, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x72, 0x78, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61}, "ECT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x45, 0x63, 0x75, 0x61, 0x64, 0x6f, 0x72}, "MEZ": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x61, 0x20, 0x43, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c}, "MST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x6c, 0x65, 0x73, 0x20, 0x6d, 0x6f, 0x6e, 0x74, 0x61, 0xc3, 0xb1, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x65, 0x73}, "CLT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x43, 0x68, 0x69, 0x6c, 0x65}, "AKDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x6c, 0x61, 0x73, 0x6b, 0x61}, "EDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x73, 0x74, 0x65, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x75}, "NZST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x4e, 0x75, 0x65, 0x76, 0x61, 0x20, 0x5a, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x61}, "LHDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4c, 0x6f, 0x72, 0x64, 0x20, 0x48, 0x6f, 0x77, 0x65}, "WART": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x6f, 0x63, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x72, 0x78, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61}, "TMST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x54, 0x75, 0x72, 0x6b, 0x6d, 0x65, 0x6e, 0x69, 0x73, 0x74, 0xc3, 0xa1, 0x6e}, "HKST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0xe1, 0xb8, 0xa4, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67}, "HAST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x48, 0x61, 0x77, 0x61, 0x69, 0x69, 0x2d, 0x41, 0x6c, 0x65, 0x75, 0x74, 0x69, 0x61, 0x6e, 0x65, 0x73}, "CHADT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x43, 0x68, 0x61, 0x74, 0x68, 0x61, 0x6d}, "GMT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x64, 0x65, 0x20, 0x47, 0x72, 0x65, 0x65, 0x6e, 0x77, 0x69, 0x63, 0x68}, "NZDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4e, 0x75, 0x65, 0x76, 0x61, 0x20, 0x5a, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x61}, "ACDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c}, "WIT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x73, 0x74, 0x65}, "LHST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x4c, 0x6f, 0x72, 0x64, 0x20, 0x48, 0x6f, 0x77, 0x65}, "IST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x6c, 0x61, 0x20, 0x49, 0x6e, 0x64, 0x69, 0x61}, "TMT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x54, 0x75, 0x72, 0x6b, 0x6d, 0x65, 0x6e, 0x69, 0x73, 0x74, 0xc3, 0xa1, 0x6e}, "COT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x43, 0x6f, 0x6c, 0x6f, 0x6d, 0x62, 0x69, 0x61}, "ARST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x72, 0x78, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x61}, "JDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x58, 0x61, 0x70, 0xc3, 0xb3, 0x6e}, "MYT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x6c, 0x61, 0x73, 0x69, 0x61}, "AEDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x73, 0x74, 0x65}, "CDT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x61}, "HADT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x48, 0x61, 0x77, 0x61, 0x69, 0x69, 0x2d, 0x41, 0x6c, 0x65, 0x75, 0x74, 0x69, 0x61, 0x6e, 0x65, 0x73}, "ADT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x41, 0x74, 0x6c, 0xc3, 0xa1, 0x6e, 0x74, 0x69, 0x63, 0x75}, "SRT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x53, 0x75, 0x72, 0x69, 0x6e, 0x61, 0x6d}, "HKT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0xe1, 0xb8, 0xa4, 0x6f, 0x6e, 0x67, 0x20, 0x4b, 0x6f, 0x6e, 0x67}, "SAST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x53, 0x75, 0x64, 0xc3, 0xa1, 0x66, 0x72, 0x69, 0x63, 0x61}, "WIB": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x6f, 0x65, 0x73, 0x74, 0x65}, "EAT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0xc3, 0x81, 0x66, 0x72, 0x69, 0x63, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x73, 0x74, 0x65}, "SGT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x75, 0x72}, "AKST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x6c, 0x61, 0x73, 0x6b, 0x61}, "HNT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x4e, 0x65, 0x77, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x6c, 0x61, 0x6e, 0x64}, "AEST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x65, 0x73, 0x74, 0x65}, "BOT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x42, 0x6f, 0x6c, 0x69, 0x76, 0x69, 0x61}, "OEZ": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x45, 0x73, 0x74, 0x65}, "JST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x58, 0x61, 0x70, 0xc3, 0xb3, 0x6e}, "WESZ": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x45, 0x75, 0x72, 0x6f, 0x70, 0x61, 0x20, 0x4f, 0x63, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x61, 0x6c}, "AWST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x6f, 0x65, 0x73, 0x74, 0x65}, "ACST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c}, "WITA": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0xe2, 0x80, 0x99, 0x49, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c}, "CST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x72, 0x74, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x61}, "UYST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x6c, 0x20, 0x55, 0x72, 0x75, 0x67, 0x75, 0xc3, 0xa1, 0x69}, "ChST": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x65, 0x73, 0x74, 0xc3, 0xa1, 0x6e, 0x64, 0x61, 0x72, 0x20, 0x64, 0x65, 0x20, 0x43, 0x68, 0x61, 0x6d, 0x6f, 0x72, 0x72, 0x6f}, "GYT": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x64, 0x65, 0x20, 0x4c, 0x61, 0x20, 0x47, 0x75, 0x79, 0x61, 0x6e, 0x61}, "∅∅∅": {0x48, 0x6f, 0x72, 0x61, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x69, 0x65, 0x67, 0x61, 0x20, 0x64, 0x65, 0x20, 0x42, 0x72, 0x61, 0x73, 0x69, 0x6c, 0x69, 0x61}}, + decimal: "٫", + group: "٬", + minus: "-", + percent: "٪", + perMille: "؉", + timeSeparator: ":", + currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK ", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "A$", "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", "R$", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYR", "BZD", "CA$", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX ", "CN¥", "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", "€", "FIM", "FJD", "FKP", "FRF", "£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HK$", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR ", "₪", "₹", "IQD", "IRR", "ISJ ", "ISK", "ITL", "JMD", "JOD", "¥", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "₩", "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", "MTL", "MTP", "MUR", "MVP ", "MVR", "MWK", "MX$", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZ$", "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", "฿", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "NT$", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "₫", "VNN", "VUV", "WST", "FCFA", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "EC$", "XDR", "XEU", "XFO", "XFU", "CFA", "XPD", "CFPF", "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{"", "xin", "feb", "mar", "abr", "may", "xun", "xnt", "ago", "set", "och", "pay", "avi"}, + monthsNarrow: []string{"", "X", "F", "M", "A", "M", "X", "X", "A", "S", "O", "P", "A"}, + monthsWide: []string{"", "de xineru", "de febreru", "de marzu", "d’abril", "de mayu", "de xunu", "de xunetu", "d’agostu", "de setiembre", "d’ochobre", "de payares", "d’avientu"}, + daysAbbreviated: []string{"dom", "llu", "mar", "mié", "xue", "vie", "sáb"}, + daysNarrow: []string{"D", "L", "M", "M", "X", "V", "S"}, + daysShort: []string{"do", "ll", "ma", "mi", "xu", "vi", "sá"}, + daysWide: []string{"domingu", "llunes", "martes", "miércoles", "xueves", "vienres", "sábadu"}, + periodsAbbreviated: []string{"AM", "PM"}, + periodsNarrow: []string{"a", "p"}, + periodsWide: []string{"de la mañana", "de la tardi"}, + erasAbbreviated: []string{"a.C.", "d.C."}, + erasNarrow: []string{"aC", "dC"}, + erasWide: []string{"a.C.", "después de Cristu"}, + timezones: map[string]string{"CHAST": "Hora estándar de Chatham", "VET": "Hora de Venezuela", "AEST": "Hora estándar d’Australia del este", "AST": "Hora estándar del Atlánticu", "BT": "Hora de Bután", "PDT": "Hora braniega del Pacíficu norteamericanu", "HAT": "Hora braniega de Newfoundland", "EAT": "Hora d’África del este", "JST": "Hora estándar de Xapón", "JDT": "Hora braniega de Xapón", "HADT": "Hora braniega de Hawaii-Aleutianes", "WIB": "Hora d’Indonesia del oeste", "HNT": "Hora estándar de Newfoundland", "ADT": "Hora braniega del Atlánticu", "WAT": "Hora estándar d’África del oeste", "ChST": "Hora estándar de Chamorro", "∅∅∅": "Hora braniega de Brasilia", "OEZ": "Hora estándar d’Europa del Este", "AEDT": "Hora braniega d’Australia del este", "SRT": "Hora del Surinam", "SGT": "Hora estándar de Singapur", "IST": "Hora estándar de la India", "GFT": "Hora de La Guyana Francesa", "WESZ": "Hora braniega d’Europa Occidental", "WIT": "Hora d’Indonesia del este", "OESZ": "Hora braniega d’Europa del Este", "BOT": "Hora de Bolivia", "SAST": "Hora de Sudáfrica", "LHDT": "Hora braniega de Lord Howe", "NZDT": "Hora braniega de Nueva Zelanda", "WARST": "Hora braniega occidental d’Arxentina", "MDT": "Hora braniega de Macáu", "ART": "Hora estándar d’Arxentina", "EST": "Hora estándar del este norteamericanu", "MESZ": "Hora braniega d’Europa Central", "CHADT": "Hora braniega de Chatham", "LHST": "Hora estándar de Lord Howe", "CDT": "Hora braniega central norteamericana", "MEZ": "Hora estándar d’Europa Central", "CLST": "Hora braniega de Chile", "COT": "Hora estándar de Colombia", "MST": "Hora estándar de Macáu", "AKST": "Hora estándar d’Alaska", "ACST": "Hora estándar d’Australia central", "UYT": "Hora estándar del Uruguái", "ECT": "Hora d’Ecuador", "HKST": "Hora braniega de Ḥong Kong", "WART": "Hora estándar occidental d’Arxentina", "UYST": "Hora braniega del Uruguái", "ACWDT": "Hora braniega d’Australia central del oeste", "ARST": "Hora braniega d’Arxentina", "MYT": "Hora de Malasia", "PST": "Hora estándar del Pacíficu norteamericanu", "COST": "Hora braniega de Colombia", "HAST": "Hora estándar de Hawaii-Aleutianes", "TMST": "Hora braniega del Turkmenistán", "TMT": "Hora estándar del Turkmenistán", "ACDT": "Hora braniega d’Australia central", "AKDT": "Hora braniega d’Alaska", "AWST": "Hora estándar d’Australia del oeste", "EDT": "Hora braniega del este norteamericanu", "WITA": "Hora d’Indonesia central", "GMT": "Hora media de Greenwich", "WAST": "Hora braniega d’África del oeste", "HKT": "Hora estándar de Ḥong Kong", "ACWST": "Hora estándar d’Australia central del oeste", "CST": "Hora estándar central norteamericana", "NZST": "Hora estándar de Nueva Zelanda", "CLT": "Hora estándar de Chile", "WEZ": "Hora estándar d’Europa Occidental", "CAT": "Hora d’África central", "AWDT": "Hora braniega d’Australia del oeste", "GYT": "Hora de La Guyana"}, } } @@ -118,82 +118,80 @@ func (ast *ast) RangePluralRule(num1 float64, v1 uint64, num2 float64, v2 uint64 } // MonthAbbreviated returns the locales abbreviated month given the 'month' provided -func (ast *ast) MonthAbbreviated(month time.Month) []byte { +func (ast *ast) MonthAbbreviated(month time.Month) string { return ast.monthsAbbreviated[month] } // MonthsAbbreviated returns the locales abbreviated months -func (ast *ast) MonthsAbbreviated() [][]byte { +func (ast *ast) MonthsAbbreviated() []string { return ast.monthsAbbreviated[1:] } // MonthNarrow returns the locales narrow month given the 'month' provided -func (ast *ast) MonthNarrow(month time.Month) []byte { +func (ast *ast) MonthNarrow(month time.Month) string { return ast.monthsNarrow[month] } // MonthsNarrow returns the locales narrow months -func (ast *ast) MonthsNarrow() [][]byte { +func (ast *ast) MonthsNarrow() []string { return ast.monthsNarrow[1:] } // MonthWide returns the locales wide month given the 'month' provided -func (ast *ast) MonthWide(month time.Month) []byte { +func (ast *ast) MonthWide(month time.Month) string { return ast.monthsWide[month] } // MonthsWide returns the locales wide months -func (ast *ast) MonthsWide() [][]byte { +func (ast *ast) MonthsWide() []string { return ast.monthsWide[1:] } // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided -func (ast *ast) WeekdayAbbreviated(weekday time.Weekday) []byte { +func (ast *ast) WeekdayAbbreviated(weekday time.Weekday) string { return ast.daysAbbreviated[weekday] } // WeekdaysAbbreviated returns the locales abbreviated weekdays -func (ast *ast) WeekdaysAbbreviated() [][]byte { +func (ast *ast) WeekdaysAbbreviated() []string { return ast.daysAbbreviated } // WeekdayNarrow returns the locales narrow weekday given the 'weekday' provided -func (ast *ast) WeekdayNarrow(weekday time.Weekday) []byte { +func (ast *ast) WeekdayNarrow(weekday time.Weekday) string { return ast.daysNarrow[weekday] } // WeekdaysNarrow returns the locales narrow weekdays -func (ast *ast) WeekdaysNarrow() [][]byte { +func (ast *ast) WeekdaysNarrow() []string { return ast.daysNarrow } // WeekdayShort returns the locales short weekday given the 'weekday' provided -func (ast *ast) WeekdayShort(weekday time.Weekday) []byte { +func (ast *ast) WeekdayShort(weekday time.Weekday) string { return ast.daysShort[weekday] } // WeekdaysShort returns the locales short weekdays -func (ast *ast) WeekdaysShort() [][]byte { +func (ast *ast) WeekdaysShort() []string { return ast.daysShort } // WeekdayWide returns the locales wide weekday given the 'weekday' provided -func (ast *ast) WeekdayWide(weekday time.Weekday) []byte { +func (ast *ast) WeekdayWide(weekday time.Weekday) string { return ast.daysWide[weekday] } // WeekdaysWide returns the locales wide weekdays -func (ast *ast) WeekdaysWide() [][]byte { +func (ast *ast) WeekdaysWide() []string { return ast.daysWide } // FmtNumber returns 'num' with digits/precision of 'v' for 'ast' and handles both Whole and Real numbers based on 'v' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtNumber(num float64, v uint64) []byte { +func (ast *ast) FmtNumber(num float64, v uint64) string { s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64) - l := len(s) + len(ast.decimal) + len(ast.group)*len(s[:len(s)-int(v)-1])/3 + l := len(s) + 6 + 2*len(s[:len(s)-int(v)-1])/3 count := 0 inWhole := v == 0 b := make([]byte, 0, l) @@ -204,7 +202,6 @@ func (ast *ast) FmtNumber(num float64, v uint64) []byte { for j := len(ast.decimal) - 1; j >= 0; j-- { b = append(b, ast.decimal[j]) } - inWhole = true continue } @@ -214,7 +211,6 @@ func (ast *ast) FmtNumber(num float64, v uint64) []byte { for j := len(ast.group) - 1; j >= 0; j-- { b = append(b, ast.group[j]) } - count = 1 } else { count++ @@ -235,17 +231,14 @@ func (ast *ast) FmtNumber(num float64, v uint64) []byte { b[i], b[j] = b[j], b[i] } - return b + return string(b) } // FmtPercent returns 'num' with digits/precision of 'v' for 'ast' and handles both Whole and Real numbers based on 'v' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. // NOTE: 'num' passed into FmtPercent is assumed to be in percent already -func (ast *ast) FmtPercent(num float64, v uint64) []byte { - +func (ast *ast) FmtPercent(num float64, v uint64) string { s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64) - l := len(s) + len(ast.decimal) + l := len(s) + 8 b := make([]byte, 0, l) for i := len(s) - 1; i >= 0; i-- { @@ -254,7 +247,6 @@ func (ast *ast) FmtPercent(num float64, v uint64) []byte { for j := len(ast.decimal) - 1; j >= 0; j-- { b = append(b, ast.decimal[j]) } - continue } @@ -274,17 +266,15 @@ func (ast *ast) FmtPercent(num float64, v uint64) []byte { b = append(b, ast.percent...) - return b + return string(b) } // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtCurrency(num float64, v uint64, currency currency.Type) []byte { +func (ast *ast) FmtCurrency(num float64, v uint64, currency currency.Type) string { s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64) symbol := ast.currencies[currency] - l := len(s) + len(ast.decimal) + len(ast.group)*len(s[:len(s)-int(v)-1])/3 + l := len(s) + len(symbol) + 8 + 2*len(s[:len(s)-int(v)-1])/3 count := 0 inWhole := v == 0 b := make([]byte, 0, l) @@ -295,7 +285,6 @@ func (ast *ast) FmtCurrency(num float64, v uint64, currency currency.Type) []byt for j := len(ast.decimal) - 1; j >= 0; j-- { b = append(b, ast.decimal[j]) } - inWhole = true continue } @@ -305,7 +294,6 @@ func (ast *ast) FmtCurrency(num float64, v uint64, currency currency.Type) []byt for j := len(ast.group) - 1; j >= 0; j-- { b = append(b, ast.group[j]) } - count = 1 } else { count++ @@ -341,17 +329,16 @@ func (ast *ast) FmtCurrency(num float64, v uint64, currency currency.Type) []byt b = append(b, symbol...) - return b + return string(b) } // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ast' -// in accounting notation. returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtAccounting(num float64, v uint64, currency currency.Type) []byte { +// in accounting notation. +func (ast *ast) FmtAccounting(num float64, v uint64, currency currency.Type) string { s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64) symbol := ast.currencies[currency] - l := len(s) + len(ast.decimal) + len(ast.group)*len(s[:len(s)-int(v)-1])/3 + l := len(s) + len(symbol) + 8 + 2*len(s[:len(s)-int(v)-1])/3 count := 0 inWhole := v == 0 b := make([]byte, 0, l) @@ -362,7 +349,6 @@ func (ast *ast) FmtAccounting(num float64, v uint64, currency currency.Type) []b for j := len(ast.decimal) - 1; j >= 0; j-- { b = append(b, ast.decimal[j]) } - inWhole = true continue } @@ -372,7 +358,6 @@ func (ast *ast) FmtAccounting(num float64, v uint64, currency currency.Type) []b for j := len(ast.group) - 1; j >= 0; j-- { b = append(b, ast.group[j]) } - count = 1 } else { count++ @@ -415,13 +400,11 @@ func (ast *ast) FmtAccounting(num float64, v uint64, currency currency.Type) []b b = append(b, symbol...) } - return b + return string(b) } // FmtDateShort returns the short date representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtDateShort(t time.Time) []byte { +func (ast *ast) FmtDateShort(t time.Time) string { b := make([]byte, 0, 32) @@ -436,13 +419,11 @@ func (ast *ast) FmtDateShort(t time.Time) []byte { b = append(b, strconv.Itoa(t.Year())[1:]...) } - return b + return string(b) } // FmtDateMedium returns the medium date representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtDateMedium(t time.Time) []byte { +func (ast *ast) FmtDateMedium(t time.Time) string { b := make([]byte, 0, 32) @@ -452,13 +433,11 @@ func (ast *ast) FmtDateMedium(t time.Time) []byte { b = append(b, []byte{0x20}...) b = strconv.AppendInt(b, int64(t.Year()), 10) - return b + return string(b) } // FmtDateLong returns the long date representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtDateLong(t time.Time) []byte { +func (ast *ast) FmtDateLong(t time.Time) string { b := make([]byte, 0, 32) @@ -469,13 +448,11 @@ func (ast *ast) FmtDateLong(t time.Time) []byte { b = append(b, []byte{0x27, 0x64, 0x65, 0x27, 0x20}...) b = strconv.AppendInt(b, int64(t.Year()), 10) - return b + return string(b) } // FmtDateFull returns the full date representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtDateFull(t time.Time) []byte { +func (ast *ast) FmtDateFull(t time.Time) string { b := make([]byte, 0, 32) @@ -488,13 +465,11 @@ func (ast *ast) FmtDateFull(t time.Time) []byte { b = append(b, []byte{0x27, 0x64, 0x65, 0x27, 0x20}...) b = strconv.AppendInt(b, int64(t.Year()), 10) - return b + return string(b) } // FmtTimeShort returns the short time representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtTimeShort(t time.Time) []byte { +func (ast *ast) FmtTimeShort(t time.Time) string { b := make([]byte, 0, 32) @@ -511,13 +486,11 @@ func (ast *ast) FmtTimeShort(t time.Time) []byte { b = strconv.AppendInt(b, int64(t.Minute()), 10) - return b + return string(b) } // FmtTimeMedium returns the medium time representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtTimeMedium(t time.Time) []byte { +func (ast *ast) FmtTimeMedium(t time.Time) string { b := make([]byte, 0, 32) @@ -541,13 +514,11 @@ func (ast *ast) FmtTimeMedium(t time.Time) []byte { b = strconv.AppendInt(b, int64(t.Second()), 10) - return b + return string(b) } // FmtTimeLong returns the long time representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtTimeLong(t time.Time) []byte { +func (ast *ast) FmtTimeLong(t time.Time) string { b := make([]byte, 0, 32) @@ -575,13 +546,11 @@ func (ast *ast) FmtTimeLong(t time.Time) []byte { tz, _ := t.Zone() b = append(b, tz...) - return b + return string(b) } // FmtTimeFull returns the full time representation of 't' for 'ast' -// returned as a []byte just in case the caller wishes to add more and can help -// avoid allocations; otherwise just cast as string. -func (ast *ast) FmtTimeFull(t time.Time) []byte { +func (ast *ast) FmtTimeFull(t time.Time) string { b := make([]byte, 0, 32) @@ -614,5 +583,5 @@ func (ast *ast) FmtTimeFull(t time.Time) []byte { b = append(b, tz...) } - return b + return string(b) } |