소스 검색

reworked pre + post processing structure to handle the currencies coming next.

joeybloggs 9 년 전
부모
커밋
301720042f
100개의 변경된 파일1846개의 추가작업 그리고 535개의 파일을 삭제
  1. 245 63
      cmd/resources/generate_resources.go
  2. 16 4
      cmd/resources/translator.tmpl
  3. 16 4
      resources/locales/af/af.go
  4. 16 4
      resources/locales/af_NA/af_NA.go
  5. 16 4
      resources/locales/af_ZA/af_ZA.go
  6. 18 10
      resources/locales/agq/agq.go
  7. 18 10
      resources/locales/agq_CM/agq_CM.go
  8. 16 4
      resources/locales/ak/ak.go
  9. 16 4
      resources/locales/ak_GH/ak_GH.go
  10. 16 4
      resources/locales/am/am.go
  11. 16 4
      resources/locales/am_ET/am_ET.go
  12. 16 4
      resources/locales/ar/ar.go
  13. 16 4
      resources/locales/ar_001/ar_001.go
  14. 16 4
      resources/locales/ar_AE/ar_AE.go
  15. 16 4
      resources/locales/ar_BH/ar_BH.go
  16. 16 4
      resources/locales/ar_DJ/ar_DJ.go
  17. 16 4
      resources/locales/ar_DZ/ar_DZ.go
  18. 16 4
      resources/locales/ar_EG/ar_EG.go
  19. 16 4
      resources/locales/ar_EH/ar_EH.go
  20. 16 4
      resources/locales/ar_ER/ar_ER.go
  21. 16 4
      resources/locales/ar_IL/ar_IL.go
  22. 16 4
      resources/locales/ar_IQ/ar_IQ.go
  23. 16 4
      resources/locales/ar_JO/ar_JO.go
  24. 16 4
      resources/locales/ar_KM/ar_KM.go
  25. 16 4
      resources/locales/ar_KW/ar_KW.go
  26. 16 4
      resources/locales/ar_LB/ar_LB.go
  27. 16 4
      resources/locales/ar_LY/ar_LY.go
  28. 16 4
      resources/locales/ar_MA/ar_MA.go
  29. 16 4
      resources/locales/ar_MR/ar_MR.go
  30. 16 4
      resources/locales/ar_OM/ar_OM.go
  31. 16 4
      resources/locales/ar_PS/ar_PS.go
  32. 16 4
      resources/locales/ar_QA/ar_QA.go
  33. 16 4
      resources/locales/ar_SA/ar_SA.go
  34. 16 4
      resources/locales/ar_SD/ar_SD.go
  35. 16 4
      resources/locales/ar_SO/ar_SO.go
  36. 16 4
      resources/locales/ar_SS/ar_SS.go
  37. 16 4
      resources/locales/ar_SY/ar_SY.go
  38. 16 4
      resources/locales/ar_TD/ar_TD.go
  39. 16 4
      resources/locales/ar_TN/ar_TN.go
  40. 16 4
      resources/locales/ar_YE/ar_YE.go
  41. 16 4
      resources/locales/as/as.go
  42. 16 4
      resources/locales/as_IN/as_IN.go
  43. 16 4
      resources/locales/asa/asa.go
  44. 16 4
      resources/locales/asa_TZ/asa_TZ.go
  45. 16 4
      resources/locales/ast/ast.go
  46. 16 4
      resources/locales/ast_ES/ast_ES.go
  47. 16 4
      resources/locales/az/az.go
  48. 16 4
      resources/locales/az_Cyrl/az_Cyrl.go
  49. 16 4
      resources/locales/az_Cyrl_AZ/az_Cyrl_AZ.go
  50. 16 4
      resources/locales/az_Latn/az_Latn.go
  51. 16 4
      resources/locales/az_Latn_AZ/az_Latn_AZ.go
  52. 18 10
      resources/locales/bas/bas.go
  53. 18 10
      resources/locales/bas_CM/bas_CM.go
  54. 16 4
      resources/locales/be/be.go
  55. 16 4
      resources/locales/be_BY/be_BY.go
  56. 16 4
      resources/locales/bem/bem.go
  57. 16 4
      resources/locales/bem_ZM/bem_ZM.go
  58. 16 4
      resources/locales/bez/bez.go
  59. 16 4
      resources/locales/bez_TZ/bez_TZ.go
  60. 16 4
      resources/locales/bg/bg.go
  61. 16 4
      resources/locales/bg_BG/bg_BG.go
  62. 17 12
      resources/locales/bm/bm.go
  63. 17 12
      resources/locales/bm_ML/bm_ML.go
  64. 16 4
      resources/locales/bn/bn.go
  65. 16 4
      resources/locales/bn_BD/bn_BD.go
  66. 16 4
      resources/locales/bn_IN/bn_IN.go
  67. 17 12
      resources/locales/bo/bo.go
  68. 17 12
      resources/locales/bo_CN/bo_CN.go
  69. 17 12
      resources/locales/bo_IN/bo_IN.go
  70. 16 4
      resources/locales/br/br.go
  71. 16 4
      resources/locales/br_FR/br_FR.go
  72. 16 4
      resources/locales/brx/brx.go
  73. 16 4
      resources/locales/brx_IN/brx_IN.go
  74. 16 4
      resources/locales/bs/bs.go
  75. 16 4
      resources/locales/bs_Cyrl/bs_Cyrl.go
  76. 16 4
      resources/locales/bs_Cyrl_BA/bs_Cyrl_BA.go
  77. 16 4
      resources/locales/bs_Latn/bs_Latn.go
  78. 16 4
      resources/locales/bs_Latn_BA/bs_Latn_BA.go
  79. 16 4
      resources/locales/ca/ca.go
  80. 16 4
      resources/locales/ca_AD/ca_AD.go
  81. 16 4
      resources/locales/ca_ES/ca_ES.go
  82. 16 4
      resources/locales/ca_ES_VALENCIA/ca_ES_VALENCIA.go
  83. 16 4
      resources/locales/ca_FR/ca_FR.go
  84. 16 4
      resources/locales/ca_IT/ca_IT.go
  85. 16 4
      resources/locales/ce/ce.go
  86. 16 4
      resources/locales/ce_RU/ce_RU.go
  87. 16 4
      resources/locales/cgg/cgg.go
  88. 16 4
      resources/locales/cgg_UG/cgg_UG.go
  89. 16 4
      resources/locales/chr/chr.go
  90. 16 4
      resources/locales/chr_US/chr_US.go
  91. 16 4
      resources/locales/ckb/ckb.go
  92. 16 4
      resources/locales/ckb_IQ/ckb_IQ.go
  93. 16 4
      resources/locales/ckb_IR/ckb_IR.go
  94. 16 4
      resources/locales/cs/cs.go
  95. 16 4
      resources/locales/cs_CZ/cs_CZ.go
  96. 18 10
      resources/locales/cu/cu.go
  97. 18 10
      resources/locales/cu_RU/cu_RU.go
  98. 16 4
      resources/locales/cy/cy.go
  99. 16 4
      resources/locales/cy_GB/cy_GB.go
  100. 16 4
      resources/locales/da/da.go

+ 245 - 63
cmd/resources/generate_resources.go

@@ -58,16 +58,35 @@ var (
 		"f": "f := locales.F(n, v)\n",
 		"t": "t := locales.T(n, v)\n",
 	}
+
+	translators     = make(map[string]*translator)
+	baseTranslators = make(map[string]*translator)
+	tmpl            *template.Template
 )
 
 type translator struct {
 	Locale       string
+	BaseLocale   string
 	Plurals      string
 	CardinalFunc string
+	Decimal      string
+	Group        string
+	Minus        string
+	Percent      string
+	PerMille     string
+	Symbol       string
+	// Currency     string
+	// CurrencyAbbrev string
+	// decimal  string
+	// group    string
+	// minus    string
+	// percent  string
+	// perMille string
+	// currency string
+	// currencyName   string
+	// currencyAbbrev string
 }
 
-var tmpl *template.Template
-
 func main() {
 
 	var err error
@@ -80,98 +99,258 @@ func main() {
 
 	// load CLDR recourses
 	var decoder cldr.Decoder
+
 	cldr, err := decoder.DecodePath("data/core")
 	if err != nil {
 		panic(err)
 	}
 
-	for _, l := range cldr.Locales() {
+	preProcess(cldr)
+	postProcess(cldr)
 
-		fmt.Println(l)
+	for _, trans := range translators {
 
-		baseLocale := strings.SplitN(l, "_", 2)[0]
+		fmt.Println("Writing Data:", trans.Locale)
 
-		trans := &translator{
-			Locale: l,
+		if err = os.MkdirAll(fmt.Sprintf(locDir, trans.Locale), 0777); err != nil {
+			log.Fatal(err)
+		}
+
+		filename := fmt.Sprintf(locFilename, trans.Locale, trans.Locale)
+
+		output, err := os.Create(filename)
+		if err != nil {
+			log.Fatal(err)
 		}
+		defer output.Close()
+
+		if err := tmpl.ExecuteTemplate(output, "translator", trans); err != nil {
+			log.Fatal(err)
+		}
+
+		output.Close()
+
+		// after file written run gofmt on file to ensure best formatting
+		cmd := exec.Command("goimports", "-w", filename)
+		if err = cmd.Run(); err != nil {
+			log.Panic(err)
+		}
+	}
+}
+
+func postProcess(cldr *cldr.CLDR) {
+
+	var base *translator
+	var found bool
+
+	for _, trans := range translators {
+
+		fmt.Println("Post Processing:", trans.Locale)
 
 		// plural rules
-		trans.CardinalFunc, trans.Plurals = parseCardinalPluralRuleFunc(cldr, baseLocale)
+		trans.CardinalFunc, trans.Plurals = parseCardinalPluralRuleFunc(cldr, trans.BaseLocale)
+
+		// ignore base locales
+		if trans.BaseLocale == trans.Locale {
+			found = false
+		} else {
 
-		// // number values
-		// ldml := cldr.RawLDML(l)
+			base, found = baseTranslators[trans.BaseLocale]
+		}
 
-		// var decimal, group, minus, percent, permille string
+		// Numbers
 
-		// // some just have no data...
-		// if ldml.Numbers != nil {
+		if len(trans.Decimal) == 0 {
 
-		// 	symbol := ldml.Numbers.Symbols[0]
+			if found {
+				trans.Decimal = fmt.Sprintf("%#v", []byte(base.Decimal))
+			}
 
-		// 	if len(symbol.Decimal) > 0 {
-		// 		decimal = symbol.Decimal[0].Data()
-		// 	}
-		// 	if len(symbol.Group) > 0 {
-		// 		group = symbol.Group[0].Data()
-		// 	}
-		// 	if len(symbol.MinusSign) > 0 {
-		// 		minus = symbol.MinusSign[0].Data()
-		// 	}
-		// 	if len(symbol.PercentSign) > 0 {
-		// 		percent = symbol.PercentSign[0].Data()
-		// 	}
-		// 	if len(symbol.PerMille) > 0 {
-		// 		permille = symbol.PerMille[0].Data()
-		// 	}
-		// }
+			if len(trans.Decimal) == 0 {
+				trans.Decimal = "[]byte{}"
+			}
+		}
 
-		// var decimalFormat, currencyFormat, currencyAccountingFormat, percentageFormat string
+		if len(trans.Group) == 0 {
 
-		// if len(ldml.Numbers.DecimalFormats) > 0 && len(ldml.Numbers.DecimalFormats[0].DecimalFormatLength) > 0 {
-		// 	decimalFormat = ldml.Numbers.DecimalFormats[0].DecimalFormatLength[0].DecimalFormat[0].Pattern[0].Data()
-		// }
+			if found {
+				trans.Group = fmt.Sprintf("%#v", []byte(base.Group))
+			}
 
-		// if len(ldml.Numbers.CurrencyFormats) > 0 && len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength) > 0 {
+			if len(trans.Group) == 0 {
+				trans.Group = "[]byte{}"
+			}
+		}
 
-		// 	currencyFormat = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[0].Pattern[0].Data()
-		// 	currencyAccountingFormat = currencyFormat
+		if len(trans.Minus) == 0 {
 
-		// 	if len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat) > 1 {
-		// 		currencyAccountingFormat = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[1].Pattern[0].Data()
+			if found {
+				trans.Minus = fmt.Sprintf("%#v", []byte(base.Minus))
+			}
+
+			if len(trans.Minus) == 0 {
+				trans.Minus = "[]byte{}"
+			}
+		}
+
+		if len(trans.Percent) == 0 {
+
+			if found {
+				trans.Percent = fmt.Sprintf("%#v", []byte(base.Percent))
+			}
+
+			if len(trans.Percent) == 0 {
+				trans.Percent = "[]byte{}"
+			}
+		}
+
+		if len(trans.PerMille) == 0 {
+
+			if found {
+				trans.PerMille = fmt.Sprintf("%#v", []byte(base.PerMille))
+			}
+
+			if len(trans.PerMille) == 0 {
+				trans.PerMille = "[]byte{}"
+			}
+		}
+
+		// Currency
+
+		if len(trans.Symbol) == 0 {
+
+			if found {
+				trans.Symbol = fmt.Sprintf("%#v", []byte(base.Symbol))
+			}
+
+			if len(trans.Symbol) == 0 {
+				trans.Symbol = "[]byte{}"
+			}
+		}
+
+		// if len(trans.Currency) == 0 {
+
+		// 	if found {
+		// 		trans.Currency = fmt.Sprintf("%#v", []byte(base.Currency))
 		// 	}
-		// }
 
-		// if len(ldml.Numbers.PercentFormats) > 0 && len(ldml.Numbers.PercentFormats[0].PercentFormatLength) > 0 {
-		// 	percentageFormat = ldml.Numbers.PercentFormats[0].PercentFormatLength[0].PercentFormat[0].Pattern[0].Data()
+		// 	if len(trans.Currency) == 0 {
+		// 		trans.Currency = "[]byte{}"
+		// 	}
 		// }
+	}
+}
 
-		// // parse Number values
-		// parseNumbers(decimal, group, minus, percent, permille, decimalFormat, currencyFormat, currencyAccountingFormat, percentageFormat)
+// preprocesses maps, array etc... just requires multiple passes no choice....
+func preProcess(cldr *cldr.CLDR) {
 
-		// end number values
+	for _, l := range cldr.Locales() {
 
-		if err = os.MkdirAll(fmt.Sprintf(locDir, l), 0777); err != nil {
-			log.Fatal(err)
-		}
+		fmt.Println("Pre Processing:", l)
 
-		filename := fmt.Sprintf(locFilename, l, l)
+		split := strings.SplitN(l, "_", 2)
+		baseLocale := split[0]
 
-		output, err := os.Create(filename)
-		if err != nil {
-			log.Fatal(err)
+		trans := &translator{
+			Locale:     l,
+			BaseLocale: baseLocale,
 		}
-		defer output.Close()
 
-		if err := tmpl.ExecuteTemplate(output, "translator", trans); err != nil {
-			log.Fatal(err)
+		// if is a base locale
+		if len(split) == 1 {
+			baseTranslators[baseLocale] = trans
 		}
 
-		output.Close()
+		translators[l] = trans
 
-		// after file written run gofmt on file to ensure best formatting
-		cmd := exec.Command("gofmt", "-s", "-w", filename)
-		if err = cmd.Run(); err != nil {
-			log.Panic(err)
+		// get number, currency and datetime symbols
+
+		// number values
+		ldml := cldr.RawLDML(l)
+
+		// some just have no data...
+		if ldml.Numbers != nil && len(ldml.Numbers.Symbols) > 0 {
+
+			symbol := ldml.Numbers.Symbols[0]
+
+			if len(symbol.Decimal) > 0 {
+				trans.Decimal = fmt.Sprintf("%#v", []byte(symbol.Decimal[0].Data()))
+			}
+			if len(symbol.Group) > 0 {
+				trans.Group = fmt.Sprintf("%#v", []byte(symbol.Group[0].Data()))
+			}
+			if len(symbol.MinusSign) > 0 {
+				trans.Minus = fmt.Sprintf("%#v", []byte(symbol.MinusSign[0].Data()))
+			}
+			if len(symbol.PercentSign) > 0 {
+				trans.Percent = fmt.Sprintf("%#v", []byte(symbol.PercentSign[0].Data()))
+			}
+			if len(symbol.PerMille) > 0 {
+				trans.PerMille = fmt.Sprintf("%#v", []byte(symbol.PerMille[0].Data()))
+			}
+
+			// if ldml.Numbers.Currencies != nil {
+
+			// 	for _, currency := range ldml.Numbers.Currencies.Currency {
+
+			// 		if len(currency.Symbol) == 0 {
+			// 			continue
+			// 		}
+
+			// 		trans.Symbol = currency.Symbol[0].Data()
+
+			// 		if len(trans.Currency) == 0 {
+			// 			continue
+			// 		}
+
+			// 		trans.Currency = fmt.Sprintf("%#v", []byte(currency.Type))
+
+			// 		// if len(currency.DisplayName) > 0 {
+			// 		// 	trans.CurrencyName = fmt.Sprintf("%#v", []byte(currency.DisplayName[0].Data()))
+			// 		// } else {
+			// 		// 	trans.CurrencyName = "[]byte{}"
+			// 		// }
+
+			// 		// var c i18n.Currency
+
+			// 		// c.Currency = currency.Type
+
+			// 		// if len(currency.DisplayName) > 0 {
+			// 		// 	c.DisplayName = currency.DisplayName[0].Data()
+			// 		// }
+
+			// 		// if len(currency.Symbol) > 0 {
+			// 		// 	c.Symbol = currency.Symbol[0].Data()
+			// 		// }
+
+			// 		// number.Currencies[c.Currency] = c
+			// 	}
+			// }
+
+			// var decimalFormat, currencyFormat, currencyAccountingFormat, percentageFormat string
+
+			// if len(ldml.Numbers.DecimalFormats) > 0 && len(ldml.Numbers.DecimalFormats[0].DecimalFormatLength) > 0 {
+			// 	decimalFormat = ldml.Numbers.DecimalFormats[0].DecimalFormatLength[0].DecimalFormat[0].Pattern[0].Data()
+			// }
+
+			// if len(ldml.Numbers.CurrencyFormats) > 0 && len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength) > 0 {
+
+			// 	currencyFormat = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[0].Pattern[0].Data()
+			// 	currencyAccountingFormat = currencyFormat
+
+			// 	if len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat) > 1 {
+			// 		currencyAccountingFormat = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[1].Pattern[0].Data()
+			// 	}
+			// }
+
+			// if len(ldml.Numbers.PercentFormats) > 0 && len(ldml.Numbers.PercentFormats[0].PercentFormatLength) > 0 {
+			// 	percentageFormat = ldml.Numbers.PercentFormats[0].PercentFormatLength[0].PercentFormat[0].Pattern[0].Data()
+			// }
+
+			// // parse Number values
+			// parseNumbers(decimal, group, minus, percent, permille, decimalFormat, currencyFormat, currencyAccountingFormat, percentageFormat)
+
+			// end number values
 		}
 	}
 }
@@ -337,7 +516,7 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
 	// no plural rules for locale
 	if prCardinal == nil {
 		plurals = "nil"
-		results = "return locales.PluralRuleUnknown,nil"
+		results = "return locales.PluralRuleUnknown"
 		return
 	}
 
@@ -567,9 +746,12 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
 
 	if len(results) == 0 {
 		results = "return locales.PluralRuleUnknown"
-	}
+	} else {
 
-	results = pre + results
+		if !strings.HasPrefix(results, "return") {
+			results = pre + results
+		}
+	}
 
 	if len(pluralArr) == 0 {
 		plurals = "nil"

+ 16 - 4
cmd/resources/translator.tmpl

@@ -8,15 +8,27 @@ import (
 )
 
 type {{ .Locale }} struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale    string
+	plurals   []locales.PluralRule
+	decimal   []byte
+	group     []byte
+	minus     []byte
+	percent   []byte
+	perMille  []byte
+	symbol    []byte
 }
 
 // New returns a new instance of translator for the '{{ .Locale }}' locale
 func New() locales.Translator {
 	return &{{ .Locale }}{
-		locale:  "{{ .Locale }}",
-		plurals: {{ .Plurals }},
+		locale:   		"{{ .Locale }}",
+		plurals:  		{{ .Plurals }},
+		decimal:  		{{ .Decimal }},
+		group:    		{{ .Group }},
+		minus:    		{{ .Minus }},
+		percent:  		{{ .Percent }},
+		perMille:       {{ .PerMille }},
+		symbol:         {{ .Symbol }},
 	}
 }
 

+ 16 - 4
resources/locales/af/af.go

@@ -7,15 +7,27 @@ import (
 )
 
 type af struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'af' locale
 func New() locales.Translator {
 	return &af{
-		locale:  "af",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "af",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0xc2, 0xa0},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/af_NA/af_NA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type af_NA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'af_NA' locale
 func New() locales.Translator {
 	return &af_NA{
-		locale:  "af_NA",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "af_NA",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x63, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x30, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/af_ZA/af_ZA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type af_ZA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'af_ZA' locale
 func New() locales.Translator {
 	return &af_ZA{
-		locale:  "af_ZA",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "af_ZA",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x63, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x30, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 18 - 10
resources/locales/agq/agq.go

@@ -1,21 +1,29 @@
 package agq
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type agq struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'agq' locale
 func New() locales.Translator {
 	return &agq{
-		locale:  "agq",
-		plurals: nil,
+		locale:   "agq",
+		plurals:  nil,
+		decimal:  []byte{0x2c},
+		group:    []byte{0xc2, 0xa0},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,5 +39,5 @@ func (t *agq) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'agq'
 func (t *agq) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-	return locales.PluralRuleUnknown, nil
+	return locales.PluralRuleUnknown
 }

+ 18 - 10
resources/locales/agq_CM/agq_CM.go

@@ -1,21 +1,29 @@
 package agq_CM
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type agq_CM struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'agq_CM' locale
 func New() locales.Translator {
 	return &agq_CM{
-		locale:  "agq_CM",
-		plurals: nil,
+		locale:   "agq_CM",
+		plurals:  nil,
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x63, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x30, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 
@@ -31,5 +39,5 @@ func (t *agq_CM) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'agq_CM'
 func (t *agq_CM) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-	return locales.PluralRuleUnknown, nil
+	return locales.PluralRuleUnknown
 }

+ 16 - 4
resources/locales/ak/ak.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ak struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ak' locale
 func New() locales.Translator {
 	return &ak{
-		locale:  "ak",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ak",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2e},
+		group:    []byte{0x2c},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ak_GH/ak_GH.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ak_GH struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ak_GH' locale
 func New() locales.Translator {
 	return &ak_GH{
-		locale:  "ak_GH",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ak_GH",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/am/am.go

@@ -7,15 +7,27 @@ import (
 )
 
 type am struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'am' locale
 func New() locales.Translator {
 	return &am{
-		locale:  "am",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "am",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2e},
+		group:    []byte{0x2c},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/am_ET/am_ET.go

@@ -7,15 +7,27 @@ import (
 )
 
 type am_ET struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'am_ET' locale
 func New() locales.Translator {
 	return &am_ET{
-		locale:  "am_ET",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "am_ET",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar/ar.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar' locale
 func New() locales.Translator {
 	return &ar{
-		locale:  "ar",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0xd9, 0xab},
+		group:    []byte{0xd9, 0xac},
+		minus:    []byte{0xe2, 0x80, 0x8f, 0x2d},
+		percent:  []byte{0xd9, 0xaa},
+		perMille: []byte{0xd8, 0x89},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_001/ar_001.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_001 struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_001' locale
 func New() locales.Translator {
 	return &ar_001{
-		locale:  "ar_001",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_001",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_AE/ar_AE.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_AE struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_AE' locale
 func New() locales.Translator {
 	return &ar_AE{
-		locale:  "ar_AE",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_AE",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_BH/ar_BH.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_BH struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_BH' locale
 func New() locales.Translator {
 	return &ar_BH{
-		locale:  "ar_BH",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_BH",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_DJ/ar_DJ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_DJ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_DJ' locale
 func New() locales.Translator {
 	return &ar_DJ{
-		locale:  "ar_DJ",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_DJ",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_DZ/ar_DZ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_DZ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_DZ' locale
 func New() locales.Translator {
 	return &ar_DZ{
-		locale:  "ar_DZ",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_DZ",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_EG/ar_EG.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_EG struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_EG' locale
 func New() locales.Translator {
 	return &ar_EG{
-		locale:  "ar_EG",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_EG",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_EH/ar_EH.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_EH struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_EH' locale
 func New() locales.Translator {
 	return &ar_EH{
-		locale:  "ar_EH",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_EH",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_ER/ar_ER.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_ER struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_ER' locale
 func New() locales.Translator {
 	return &ar_ER{
-		locale:  "ar_ER",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_ER",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_IL/ar_IL.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_IL struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_IL' locale
 func New() locales.Translator {
 	return &ar_IL{
-		locale:  "ar_IL",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_IL",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_IQ/ar_IQ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_IQ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_IQ' locale
 func New() locales.Translator {
 	return &ar_IQ{
-		locale:  "ar_IQ",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_IQ",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_JO/ar_JO.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_JO struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_JO' locale
 func New() locales.Translator {
 	return &ar_JO{
-		locale:  "ar_JO",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_JO",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_KM/ar_KM.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_KM struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_KM' locale
 func New() locales.Translator {
 	return &ar_KM{
-		locale:  "ar_KM",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_KM",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_KW/ar_KW.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_KW struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_KW' locale
 func New() locales.Translator {
 	return &ar_KW{
-		locale:  "ar_KW",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_KW",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_LB/ar_LB.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_LB struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_LB' locale
 func New() locales.Translator {
 	return &ar_LB{
-		locale:  "ar_LB",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_LB",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_LY/ar_LY.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_LY struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_LY' locale
 func New() locales.Translator {
 	return &ar_LY{
-		locale:  "ar_LY",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_LY",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_MA/ar_MA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_MA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_MA' locale
 func New() locales.Translator {
 	return &ar_MA{
-		locale:  "ar_MA",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_MA",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_MR/ar_MR.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_MR struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_MR' locale
 func New() locales.Translator {
 	return &ar_MR{
-		locale:  "ar_MR",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_MR",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_OM/ar_OM.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_OM struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_OM' locale
 func New() locales.Translator {
 	return &ar_OM{
-		locale:  "ar_OM",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_OM",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_PS/ar_PS.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_PS struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_PS' locale
 func New() locales.Translator {
 	return &ar_PS{
-		locale:  "ar_PS",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_PS",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_QA/ar_QA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_QA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_QA' locale
 func New() locales.Translator {
 	return &ar_QA{
-		locale:  "ar_QA",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_QA",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_SA/ar_SA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_SA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_SA' locale
 func New() locales.Translator {
 	return &ar_SA{
-		locale:  "ar_SA",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_SA",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_SD/ar_SD.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_SD struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_SD' locale
 func New() locales.Translator {
 	return &ar_SD{
-		locale:  "ar_SD",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_SD",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_SO/ar_SO.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_SO struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_SO' locale
 func New() locales.Translator {
 	return &ar_SO{
-		locale:  "ar_SO",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_SO",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ar_SS/ar_SS.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_SS struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_SS' locale
 func New() locales.Translator {
 	return &ar_SS{
-		locale:  "ar_SS",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_SS",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_SY/ar_SY.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_SY struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_SY' locale
 func New() locales.Translator {
 	return &ar_SY{
-		locale:  "ar_SY",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_SY",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_TD/ar_TD.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_TD struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_TD' locale
 func New() locales.Translator {
 	return &ar_TD{
-		locale:  "ar_TD",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_TD",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_TN/ar_TN.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_TN struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_TN' locale
 func New() locales.Translator {
 	return &ar_TN{
-		locale:  "ar_TN",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_TN",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ar_YE/ar_YE.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ar_YE struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ar_YE' locale
 func New() locales.Translator {
 	return &ar_YE{
-		locale:  "ar_YE",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "ar_YE",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/as/as.go

@@ -7,15 +7,27 @@ import (
 )
 
 type as struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'as' locale
 func New() locales.Translator {
 	return &as{
-		locale:  "as",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "as",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/as_IN/as_IN.go

@@ -7,15 +7,27 @@ import (
 )
 
 type as_IN struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'as_IN' locale
 func New() locales.Translator {
 	return &as_IN{
-		locale:  "as_IN",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "as_IN",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/asa/asa.go

@@ -7,15 +7,27 @@ import (
 )
 
 type asa struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'asa' locale
 func New() locales.Translator {
 	return &asa{
-		locale:  "asa",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "asa",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/asa_TZ/asa_TZ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type asa_TZ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'asa_TZ' locale
 func New() locales.Translator {
 	return &asa_TZ{
-		locale:  "asa_TZ",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "asa_TZ",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ast/ast.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ast struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ast' locale
 func New() locales.Translator {
 	return &ast{
-		locale:  "ast",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ast",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0xd9, 0xab},
+		group:    []byte{0xd9, 0xac},
+		minus:    []byte{0xe2, 0x80, 0x8f, 0x2d},
+		percent:  []byte{0xd9, 0xaa},
+		perMille: []byte{0xd8, 0x89},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ast_ES/ast_ES.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ast_ES struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ast_ES' locale
 func New() locales.Translator {
 	return &ast_ES{
-		locale:  "ast_ES",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ast_ES",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x62, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x66, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x39, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/az/az.go

@@ -7,15 +7,27 @@ import (
 )
 
 type az struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'az' locale
 func New() locales.Translator {
 	return &az{
-		locale:  "az",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "az",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/az_Cyrl/az_Cyrl.go

@@ -7,15 +7,27 @@ import (
 )
 
 type az_Cyrl struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'az_Cyrl' locale
 func New() locales.Translator {
 	return &az_Cyrl{
-		locale:  "az_Cyrl",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "az_Cyrl",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/az_Cyrl_AZ/az_Cyrl_AZ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type az_Cyrl_AZ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'az_Cyrl_AZ' locale
 func New() locales.Translator {
 	return &az_Cyrl_AZ{
-		locale:  "az_Cyrl_AZ",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "az_Cyrl_AZ",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/az_Latn/az_Latn.go

@@ -7,15 +7,27 @@ import (
 )
 
 type az_Latn struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'az_Latn' locale
 func New() locales.Translator {
 	return &az_Latn{
-		locale:  "az_Latn",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "az_Latn",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/az_Latn_AZ/az_Latn_AZ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type az_Latn_AZ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'az_Latn_AZ' locale
 func New() locales.Translator {
 	return &az_Latn_AZ{
-		locale:  "az_Latn_AZ",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "az_Latn_AZ",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 18 - 10
resources/locales/bas/bas.go

@@ -1,21 +1,29 @@
 package bas
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type bas struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bas' locale
 func New() locales.Translator {
 	return &bas{
-		locale:  "bas",
-		plurals: nil,
+		locale:   "bas",
+		plurals:  nil,
+		decimal:  []byte{0x2c},
+		group:    []byte{0xc2, 0xa0},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,5 +39,5 @@ func (t *bas) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'bas'
 func (t *bas) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-	return locales.PluralRuleUnknown, nil
+	return locales.PluralRuleUnknown
 }

+ 18 - 10
resources/locales/bas_CM/bas_CM.go

@@ -1,21 +1,29 @@
 package bas_CM
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type bas_CM struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bas_CM' locale
 func New() locales.Translator {
 	return &bas_CM{
-		locale:  "bas_CM",
-		plurals: nil,
+		locale:   "bas_CM",
+		plurals:  nil,
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x63, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x30, 0x7d},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,5 +39,5 @@ func (t *bas_CM) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'bas_CM'
 func (t *bas_CM) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-	return locales.PluralRuleUnknown, nil
+	return locales.PluralRuleUnknown
 }

+ 16 - 4
resources/locales/be/be.go

@@ -7,15 +7,27 @@ import (
 )
 
 type be struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'be' locale
 func New() locales.Translator {
 	return &be{
-		locale:  "be",
-		plurals: []locales.PluralRule{2, 4, 5, 6},
+		locale:   "be",
+		plurals:  []locales.PluralRule{2, 4, 5, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0xc2, 0xa0},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/be_BY/be_BY.go

@@ -7,15 +7,27 @@ import (
 )
 
 type be_BY struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'be_BY' locale
 func New() locales.Translator {
 	return &be_BY{
-		locale:  "be_BY",
-		plurals: []locales.PluralRule{2, 4, 5, 6},
+		locale:   "be_BY",
+		plurals:  []locales.PluralRule{2, 4, 5, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x63, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x30, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/bem/bem.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bem struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bem' locale
 func New() locales.Translator {
 	return &bem{
-		locale:  "bem",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bem",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/bem_ZM/bem_ZM.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bem_ZM struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bem_ZM' locale
 func New() locales.Translator {
 	return &bem_ZM{
-		locale:  "bem_ZM",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bem_ZM",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/bez/bez.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bez struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bez' locale
 func New() locales.Translator {
 	return &bez{
-		locale:  "bez",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bez",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/bez_TZ/bez_TZ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bez_TZ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bez_TZ' locale
 func New() locales.Translator {
 	return &bez_TZ{
-		locale:  "bez_TZ",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bez_TZ",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/bg/bg.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bg struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bg' locale
 func New() locales.Translator {
 	return &bg{
-		locale:  "bg",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bg",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0xc2, 0xa0},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/bg_BG/bg_BG.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bg_BG struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bg_BG' locale
 func New() locales.Translator {
 	return &bg_BG{
-		locale:  "bg_BG",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bg_BG",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x63, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x30, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 17 - 12
resources/locales/bm/bm.go

@@ -1,21 +1,29 @@
 package bm
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type bm struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bm' locale
 func New() locales.Translator {
 	return &bm{
-		locale:  "bm",
-		plurals: []locales.PluralRule{6},
+		locale:   "bm",
+		plurals:  []locales.PluralRule{6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,8 +39,5 @@ func (t *bm) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'bm'
 func (t *bm) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-
-	n := math.Abs(num)
-
 	return locales.PluralRuleOther
 }

+ 17 - 12
resources/locales/bm_ML/bm_ML.go

@@ -1,21 +1,29 @@
 package bm_ML
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type bm_ML struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bm_ML' locale
 func New() locales.Translator {
 	return &bm_ML{
-		locale:  "bm_ML",
-		plurals: []locales.PluralRule{6},
+		locale:   "bm_ML",
+		plurals:  []locales.PluralRule{6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,8 +39,5 @@ func (t *bm_ML) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'bm_ML'
 func (t *bm_ML) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-
-	n := math.Abs(num)
-
 	return locales.PluralRuleOther
 }

+ 16 - 4
resources/locales/bn/bn.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bn struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bn' locale
 func New() locales.Translator {
 	return &bn{
-		locale:  "bn",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bn",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/bn_BD/bn_BD.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bn_BD struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bn_BD' locale
 func New() locales.Translator {
 	return &bn_BD{
-		locale:  "bn_BD",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bn_BD",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/bn_IN/bn_IN.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bn_IN struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bn_IN' locale
 func New() locales.Translator {
 	return &bn_IN{
-		locale:  "bn_IN",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "bn_IN",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 17 - 12
resources/locales/bo/bo.go

@@ -1,21 +1,29 @@
 package bo
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type bo struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bo' locale
 func New() locales.Translator {
 	return &bo{
-		locale:  "bo",
-		plurals: []locales.PluralRule{6},
+		locale:   "bo",
+		plurals:  []locales.PluralRule{6},
+		decimal:  []byte{0x2e},
+		group:    []byte{0x2c},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,8 +39,5 @@ func (t *bo) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'bo'
 func (t *bo) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-
-	n := math.Abs(num)
-
 	return locales.PluralRuleOther
 }

+ 17 - 12
resources/locales/bo_CN/bo_CN.go

@@ -1,21 +1,29 @@
 package bo_CN
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type bo_CN struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bo_CN' locale
 func New() locales.Translator {
 	return &bo_CN{
-		locale:  "bo_CN",
-		plurals: []locales.PluralRule{6},
+		locale:   "bo_CN",
+		plurals:  []locales.PluralRule{6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 
@@ -31,8 +39,5 @@ func (t *bo_CN) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'bo_CN'
 func (t *bo_CN) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-
-	n := math.Abs(num)
-
 	return locales.PluralRuleOther
 }

+ 17 - 12
resources/locales/bo_IN/bo_IN.go

@@ -1,21 +1,29 @@
 package bo_IN
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type bo_IN struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bo_IN' locale
 func New() locales.Translator {
 	return &bo_IN{
-		locale:  "bo_IN",
-		plurals: []locales.PluralRule{6},
+		locale:   "bo_IN",
+		plurals:  []locales.PluralRule{6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,8 +39,5 @@ func (t *bo_IN) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'bo_IN'
 func (t *bo_IN) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-
-	n := math.Abs(num)
-
 	return locales.PluralRuleOther
 }

+ 16 - 4
resources/locales/br/br.go

@@ -7,15 +7,27 @@ import (
 )
 
 type br struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'br' locale
 func New() locales.Translator {
 	return &br{
-		locale:  "br",
-		plurals: []locales.PluralRule{2, 3, 4, 5, 6},
+		locale:   "br",
+		plurals:  []locales.PluralRule{2, 3, 4, 5, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/br_FR/br_FR.go

@@ -7,15 +7,27 @@ import (
 )
 
 type br_FR struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'br_FR' locale
 func New() locales.Translator {
 	return &br_FR{
-		locale:  "br_FR",
-		plurals: []locales.PluralRule{2, 3, 4, 5, 6},
+		locale:   "br_FR",
+		plurals:  []locales.PluralRule{2, 3, 4, 5, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/brx/brx.go

@@ -7,15 +7,27 @@ import (
 )
 
 type brx struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'brx' locale
 func New() locales.Translator {
 	return &brx{
-		locale:  "brx",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "brx",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2e},
+		group:    []byte{0x2c},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/brx_IN/brx_IN.go

@@ -7,15 +7,27 @@ import (
 )
 
 type brx_IN struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'brx_IN' locale
 func New() locales.Translator {
 	return &brx_IN{
-		locale:  "brx_IN",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "brx_IN",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/bs/bs.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bs struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bs' locale
 func New() locales.Translator {
 	return &bs{
-		locale:  "bs",
-		plurals: []locales.PluralRule{2, 4, 6},
+		locale:   "bs",
+		plurals:  []locales.PluralRule{2, 4, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/bs_Cyrl/bs_Cyrl.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bs_Cyrl struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bs_Cyrl' locale
 func New() locales.Translator {
 	return &bs_Cyrl{
-		locale:  "bs_Cyrl",
-		plurals: []locales.PluralRule{2, 4, 6},
+		locale:   "bs_Cyrl",
+		plurals:  []locales.PluralRule{2, 4, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/bs_Cyrl_BA/bs_Cyrl_BA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bs_Cyrl_BA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bs_Cyrl_BA' locale
 func New() locales.Translator {
 	return &bs_Cyrl_BA{
-		locale:  "bs_Cyrl_BA",
-		plurals: []locales.PluralRule{2, 4, 6},
+		locale:   "bs_Cyrl_BA",
+		plurals:  []locales.PluralRule{2, 4, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/bs_Latn/bs_Latn.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bs_Latn struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bs_Latn' locale
 func New() locales.Translator {
 	return &bs_Latn{
-		locale:  "bs_Latn",
-		plurals: []locales.PluralRule{2, 4, 6},
+		locale:   "bs_Latn",
+		plurals:  []locales.PluralRule{2, 4, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/bs_Latn_BA/bs_Latn_BA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type bs_Latn_BA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'bs_Latn_BA' locale
 func New() locales.Translator {
 	return &bs_Latn_BA{
-		locale:  "bs_Latn_BA",
-		plurals: []locales.PluralRule{2, 4, 6},
+		locale:   "bs_Latn_BA",
+		plurals:  []locales.PluralRule{2, 4, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ca/ca.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ca struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ca' locale
 func New() locales.Translator {
 	return &ca{
-		locale:  "ca",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ca",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ca_AD/ca_AD.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ca_AD struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ca_AD' locale
 func New() locales.Translator {
 	return &ca_AD{
-		locale:  "ca_AD",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ca_AD",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ca_ES/ca_ES.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ca_ES struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ca_ES' locale
 func New() locales.Translator {
 	return &ca_ES{
-		locale:  "ca_ES",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ca_ES",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ca_ES_VALENCIA/ca_ES_VALENCIA.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ca_ES_VALENCIA struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ca_ES_VALENCIA' locale
 func New() locales.Translator {
 	return &ca_ES_VALENCIA{
-		locale:  "ca_ES_VALENCIA",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ca_ES_VALENCIA",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ca_FR/ca_FR.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ca_FR struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ca_FR' locale
 func New() locales.Translator {
 	return &ca_FR{
-		locale:  "ca_FR",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ca_FR",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/ca_IT/ca_IT.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ca_IT struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ca_IT' locale
 func New() locales.Translator {
 	return &ca_IT{
-		locale:  "ca_IT",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ca_IT",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ce/ce.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ce struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ce' locale
 func New() locales.Translator {
 	return &ce{
-		locale:  "ce",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ce",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2e},
+		group:    []byte{0x2c},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ce_RU/ce_RU.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ce_RU struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ce_RU' locale
 func New() locales.Translator {
 	return &ce_RU{
-		locale:  "ce_RU",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ce_RU",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 

+ 16 - 4
resources/locales/cgg/cgg.go

@@ -7,15 +7,27 @@ import (
 )
 
 type cgg struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cgg' locale
 func New() locales.Translator {
 	return &cgg{
-		locale:  "cgg",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "cgg",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/cgg_UG/cgg_UG.go

@@ -7,15 +7,27 @@ import (
 )
 
 type cgg_UG struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cgg_UG' locale
 func New() locales.Translator {
 	return &cgg_UG{
-		locale:  "cgg_UG",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "cgg_UG",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/chr/chr.go

@@ -7,15 +7,27 @@ import (
 )
 
 type chr struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'chr' locale
 func New() locales.Translator {
 	return &chr{
-		locale:  "chr",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "chr",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2e},
+		group:    []byte{0x2c},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/chr_US/chr_US.go

@@ -7,15 +7,27 @@ import (
 )
 
 type chr_US struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'chr_US' locale
 func New() locales.Translator {
 	return &chr_US{
-		locale:  "chr_US",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "chr_US",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x65, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x62, 0x30, 0x7d},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ckb/ckb.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ckb struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ckb' locale
 func New() locales.Translator {
 	return &ckb{
-		locale:  "ckb",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ckb",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{0xe2, 0x80, 0x8e, 0x2d},
+		percent:  []byte{0xd9, 0xaa},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ckb_IQ/ckb_IQ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ckb_IQ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ckb_IQ' locale
 func New() locales.Translator {
 	return &ckb_IQ{
-		locale:  "ckb_IQ",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ckb_IQ",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x65, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/ckb_IR/ckb_IR.go

@@ -7,15 +7,27 @@ import (
 )
 
 type ckb_IR struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'ckb_IR' locale
 func New() locales.Translator {
 	return &ckb_IR{
-		locale:  "ckb_IR",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "ckb_IR",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x65, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x65, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x64, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x61, 0x7d},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/cs/cs.go

@@ -7,15 +7,27 @@ import (
 )
 
 type cs struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cs' locale
 func New() locales.Translator {
 	return &cs{
-		locale:  "cs",
-		plurals: []locales.PluralRule{2, 4, 5, 6},
+		locale:   "cs",
+		plurals:  []locales.PluralRule{2, 4, 5, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/cs_CZ/cs_CZ.go

@@ -7,15 +7,27 @@ import (
 )
 
 type cs_CZ struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cs_CZ' locale
 func New() locales.Translator {
 	return &cs_CZ{
-		locale:  "cs_CZ",
-		plurals: []locales.PluralRule{2, 4, 5, 6},
+		locale:   "cs_CZ",
+		plurals:  []locales.PluralRule{2, 4, 5, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 18 - 10
resources/locales/cu/cu.go

@@ -1,21 +1,29 @@
 package cu
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type cu struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cu' locale
 func New() locales.Translator {
 	return &cu{
-		locale:  "cu",
-		plurals: nil,
+		locale:   "cu",
+		plurals:  nil,
+		decimal:  []byte{0x2c},
+		group:    []byte{0xc2, 0xa0},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 
@@ -31,5 +39,5 @@ func (t *cu) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'cu'
 func (t *cu) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-	return locales.PluralRuleUnknown, nil
+	return locales.PluralRuleUnknown
 }

+ 18 - 10
resources/locales/cu_RU/cu_RU.go

@@ -1,21 +1,29 @@
 package cu_RU
 
-import (
-	"math"
-
-	"github.com/go-playground/universal-translator/resources/locales"
-)
+import "github.com/go-playground/universal-translator/resources/locales"
 
 type cu_RU struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cu_RU' locale
 func New() locales.Translator {
 	return &cu_RU{
-		locale:  "cu_RU",
-		plurals: nil,
+		locale:   "cu_RU",
+		plurals:  nil,
+		decimal:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x63, 0x7d},
+		group:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x63, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x61, 0x30, 0x7d},
+		minus:    []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x64, 0x7d},
+		percent:  []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x30, 0x78, 0x32, 0x35, 0x7d},
+		perMille: []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
+		symbol:   []byte{0x5b, 0x5d, 0x62, 0x79, 0x74, 0x65, 0x7b, 0x7d},
 	}
 }
 
@@ -31,5 +39,5 @@ func (t *cu_RU) Plurals() []locales.PluralRule {
 
 // cardinalPluralRule returns the PluralRule given 'num' and digits/precision of 'v' for 'cu_RU'
 func (t *cu_RU) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
-	return locales.PluralRuleUnknown, nil
+	return locales.PluralRuleUnknown
 }

+ 16 - 4
resources/locales/cy/cy.go

@@ -7,15 +7,27 @@ import (
 )
 
 type cy struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cy' locale
 func New() locales.Translator {
 	return &cy{
-		locale:  "cy",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "cy",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/cy_GB/cy_GB.go

@@ -7,15 +7,27 @@ import (
 )
 
 type cy_GB struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'cy_GB' locale
 func New() locales.Translator {
 	return &cy_GB{
-		locale:  "cy_GB",
-		plurals: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		locale:   "cy_GB",
+		plurals:  []locales.PluralRule{1, 2, 3, 4, 5, 6},
+		decimal:  []byte{},
+		group:    []byte{},
+		minus:    []byte{},
+		percent:  []byte{},
+		perMille: []byte{},
+		symbol:   []byte{},
 	}
 }
 

+ 16 - 4
resources/locales/da/da.go

@@ -7,15 +7,27 @@ import (
 )
 
 type da struct {
-	locale  string
-	plurals []locales.PluralRule
+	locale   string
+	plurals  []locales.PluralRule
+	decimal  []byte
+	group    []byte
+	minus    []byte
+	percent  []byte
+	perMille []byte
+	symbol   []byte
 }
 
 // New returns a new instance of translator for the 'da' locale
 func New() locales.Translator {
 	return &da{
-		locale:  "da",
-		plurals: []locales.PluralRule{2, 6},
+		locale:   "da",
+		plurals:  []locales.PluralRule{2, 6},
+		decimal:  []byte{0x2c},
+		group:    []byte{0x2e},
+		minus:    []byte{0x2d},
+		percent:  []byte{0x25},
+		perMille: []byte{0xe2, 0x80, 0xb0},
+		symbol:   []byte{},
 	}
 }
 

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.