Explorar o código

Revert "initial plural rule generation rewrite."

This reverts commit e2b44a56261bf8daf5060399720b3e6bff307936.
joeybloggs %!s(int64=9) %!d(string=hai) anos
pai
achega
367e66a6c5
Modificáronse 100 ficheiros con 2101 adicións e 2288 borrados
  1. 760 1153
      cmd/resources/generate_resources.go
  2. 0 29
      cmd/resources/translator.tmpl
  3. 0 36
      resources/locales/af/af.go
  4. 4 0
      resources/locales/af/calendar.go
  5. 4 0
      resources/locales/af/currency.go
  6. 18 0
      resources/locales/af/main.go
  7. 8 0
      resources/locales/af/number.go
  8. 3 0
      resources/locales/af/plural.go
  9. 0 36
      resources/locales/af_NA/af_NA.go
  10. 4 0
      resources/locales/af_NA/calendar.go
  11. 5 0
      resources/locales/af_NA/currency.go
  12. 18 0
      resources/locales/af_NA/main.go
  13. 8 0
      resources/locales/af_NA/number.go
  14. 3 0
      resources/locales/af_NA/plural.go
  15. 0 36
      resources/locales/af_ZA/af_ZA.go
  16. 0 26
      resources/locales/agq/agq.go
  17. 4 0
      resources/locales/agq/calendar.go
  18. 4 0
      resources/locales/agq/currency.go
  19. 18 0
      resources/locales/agq/main.go
  20. 8 0
      resources/locales/agq/number.go
  21. 3 0
      resources/locales/agq/plural.go
  22. 0 26
      resources/locales/agq_CM/agq_CM.go
  23. 0 36
      resources/locales/ak/ak.go
  24. 5 0
      resources/locales/ak/calendar.go
  25. 4 0
      resources/locales/ak/currency.go
  26. 18 0
      resources/locales/ak/main.go
  27. 8 0
      resources/locales/ak/number.go
  28. 3 0
      resources/locales/ak/plural.go
  29. 0 36
      resources/locales/ak_GH/ak_GH.go
  30. 813 0
      resources/locales/all.go
  31. 0 41
      resources/locales/am/am.go
  32. 4 0
      resources/locales/am/calendar.go
  33. 4 0
      resources/locales/am/currency.go
  34. 18 0
      resources/locales/am/main.go
  35. 8 0
      resources/locales/am/number.go
  36. 3 0
      resources/locales/am/plural.go
  37. 0 41
      resources/locales/am_ET/am_ET.go
  38. 0 44
      resources/locales/ar/ar.go
  39. 4 0
      resources/locales/ar/calendar.go
  40. 4 0
      resources/locales/ar/currency.go
  41. 18 0
      resources/locales/ar/main.go
  42. 8 0
      resources/locales/ar/number.go
  43. 3 0
      resources/locales/ar/plural.go
  44. 0 44
      resources/locales/ar_001/ar_001.go
  45. 0 44
      resources/locales/ar_AE/ar_AE.go
  46. 4 0
      resources/locales/ar_AE/calendar.go
  47. 5 0
      resources/locales/ar_AE/currency.go
  48. 18 0
      resources/locales/ar_AE/main.go
  49. 8 0
      resources/locales/ar_AE/number.go
  50. 3 0
      resources/locales/ar_AE/plural.go
  51. 0 44
      resources/locales/ar_BH/ar_BH.go
  52. 0 44
      resources/locales/ar_DJ/ar_DJ.go
  53. 4 0
      resources/locales/ar_DJ/calendar.go
  54. 5 0
      resources/locales/ar_DJ/currency.go
  55. 18 0
      resources/locales/ar_DJ/main.go
  56. 8 0
      resources/locales/ar_DJ/number.go
  57. 3 0
      resources/locales/ar_DJ/plural.go
  58. 0 44
      resources/locales/ar_DZ/ar_DZ.go
  59. 4 0
      resources/locales/ar_DZ/calendar.go
  60. 5 0
      resources/locales/ar_DZ/currency.go
  61. 18 0
      resources/locales/ar_DZ/main.go
  62. 8 0
      resources/locales/ar_DZ/number.go
  63. 3 0
      resources/locales/ar_DZ/plural.go
  64. 0 44
      resources/locales/ar_EG/ar_EG.go
  65. 0 44
      resources/locales/ar_EH/ar_EH.go
  66. 4 0
      resources/locales/ar_EH/calendar.go
  67. 5 0
      resources/locales/ar_EH/currency.go
  68. 18 0
      resources/locales/ar_EH/main.go
  69. 8 0
      resources/locales/ar_EH/number.go
  70. 3 0
      resources/locales/ar_EH/plural.go
  71. 0 44
      resources/locales/ar_ER/ar_ER.go
  72. 4 0
      resources/locales/ar_ER/calendar.go
  73. 5 0
      resources/locales/ar_ER/currency.go
  74. 18 0
      resources/locales/ar_ER/main.go
  75. 8 0
      resources/locales/ar_ER/number.go
  76. 3 0
      resources/locales/ar_ER/plural.go
  77. 0 44
      resources/locales/ar_IL/ar_IL.go
  78. 0 44
      resources/locales/ar_IQ/ar_IQ.go
  79. 0 44
      resources/locales/ar_JO/ar_JO.go
  80. 0 44
      resources/locales/ar_KM/ar_KM.go
  81. 0 44
      resources/locales/ar_KW/ar_KW.go
  82. 0 44
      resources/locales/ar_LB/ar_LB.go
  83. 4 0
      resources/locales/ar_LB/calendar.go
  84. 5 0
      resources/locales/ar_LB/currency.go
  85. 18 0
      resources/locales/ar_LB/main.go
  86. 8 0
      resources/locales/ar_LB/number.go
  87. 3 0
      resources/locales/ar_LB/plural.go
  88. 0 44
      resources/locales/ar_LY/ar_LY.go
  89. 4 0
      resources/locales/ar_LY/calendar.go
  90. 5 0
      resources/locales/ar_LY/currency.go
  91. 18 0
      resources/locales/ar_LY/main.go
  92. 8 0
      resources/locales/ar_LY/number.go
  93. 3 0
      resources/locales/ar_LY/plural.go
  94. 0 44
      resources/locales/ar_MA/ar_MA.go
  95. 4 0
      resources/locales/ar_MA/calendar.go
  96. 5 0
      resources/locales/ar_MA/currency.go
  97. 18 0
      resources/locales/ar_MA/main.go
  98. 8 0
      resources/locales/ar_MA/number.go
  99. 3 0
      resources/locales/ar_MA/plural.go
  100. 0 44
      resources/locales/ar_MR/ar_MR.go

+ 760 - 1153
cmd/resources/generate_resources.go

@@ -1,15 +1,22 @@
 package main
 
 import (
+	"bytes"
 	"fmt"
-	"log"
+	"go/format"
+	"io/ioutil"
 	"os"
-	"os/exec"
+	"path/filepath"
 	"strings"
+	"sync"
+	"text/template"
+	"time"
+
+	"gopkg.in/yaml.v2"
 
 	"golang.org/x/text/unicode/cldr"
 
-	"text/template"
+	i18n "github.com/go-playground/universal-translator"
 )
 
 // numbers:
@@ -29,1304 +36,904 @@ import (
 //     USD:
 //       symbol: $
 
-// type pluralInfo struct {
-// 	path   string
-// 	locale string
-// 	plural string
-// }
+type pluralInfo struct {
+	path   string
+	locale string
+	plural string
+}
 
-// type translator struct {
-// 	locale string
+func main() {
 
-// }
-//
+	//plurals
+	rules := "data/rules"
+	plurals := map[string]*pluralInfo{}
+	basePlurals := map[string]string{}
 
-const (
-	locDir      = "../../resources/locales/%s"
-	locFilename = locDir + "/%s.go"
-)
+	err := filepath.Walk(rules, func(path string, info os.FileInfo, err error) error {
 
-var (
-	prVarFuncs = map[string]string{
-		"n": `n, err := locales.N(num)
 		if err != nil {
-			return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue:num, InnerError: err}
+			panic(err)
 		}
 
-		`,
-		"i": `i, err := locales.I(num)
-		if err != nil {
-			return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue:num, InnerError: err}
+		if info.IsDir() {
+			return nil
 		}
 
-		`,
-		"v": "v := locales.V(num)\n\n",
-		"w": `w, err := locales.W(num)
+		in, err := ioutil.ReadFile(path)
 		if err != nil {
-			return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue:num, InnerError: err}
+			panic(err)
 		}
 
-		`,
-		"f": `f, err := locales.F(num)
-		if err != nil {
-			return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue:num, InnerError: err}
+		var out yaml.MapSlice
+		if err = yaml.Unmarshal(in, &out); err != nil {
+			panic(err)
 		}
 
-		`,
-		"t": `t, err := locales.T(num)
-		if err != nil {
-			return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue:num, InnerError: err}
+		var plural string
+		for _, item := range out {
+			if item.Key == "plural" {
+				plural = item.Value.(string)
+			}
 		}
 
-		`,
-	}
-)
+		locale := strings.Replace(info.Name(), filepath.Ext(info.Name()), "", 1)
+		locale = strings.ToLower(strings.Replace(locale, "-", "_", -1))
 
-type translator struct {
-	Locale       string
-	CardinalFunc string
-}
+		plurals[locale] = &pluralInfo{
+			path:   path,
+			locale: locale,
+			plural: plural,
+		}
 
-var tmpl *template.Template
+		if plural == "" {
+			return nil
+		}
 
-func main() {
+		basePlurals[locale] = plural
 
-	var err error
+		return nil
+	})
 
-	// load template
-	tmpl, err = template.ParseGlob("*.tmpl")
 	if err != nil {
-		log.Fatal(err)
+		panic(err)
 	}
 
-	// load CLDR recourses
+	for _, p := range plurals {
+
+		if p.plural == "" {
+
+			var ok bool
+
+			fmt.Print("can't find plurals in ", p.path, " attempting to locate base language plural rules...")
+
+			base := strings.SplitN(p.locale, "_", 2)
+
+			p.plural, ok = basePlurals[base[0]]
+			if !ok {
+				fmt.Println("Not Found")
+				continue
+			}
+
+			fmt.Println("Found")
+		}
+	}
+
+	// cldr
+
 	var decoder cldr.Decoder
 	cldr, err := decoder.DecodePath("data/core")
 	if err != nil {
 		panic(err)
 	}
 
-	// cardinalPlurals := map[string]
+	locs := map[string]string{}
+	numbers := map[string]i18n.Number{}
+	calendars := map[string]i18n.Calendar{}
+	locales := cldr.Locales()
+	for _, loc := range locales {
+
+		ldml := cldr.RawLDML(loc)
+		if ldml.Numbers == nil {
+			continue
+		}
+		var number i18n.Number
+
+		number.Currencies = make(i18n.CurrencyFormatValue)
 
-	// for _, p := range ldr.Supplemental().Plurals {
+		if len(ldml.Numbers.Symbols) > 0 {
+			symbol := ldml.Numbers.Symbols[0]
+			if len(symbol.Decimal) > 0 {
+				number.Symbols.Decimal = symbol.Decimal[0].Data()
+			}
+			if len(symbol.Group) > 0 {
+				number.Symbols.Group = symbol.Group[0].Data()
+			}
+			if len(symbol.MinusSign) > 0 {
+				number.Symbols.Negative = symbol.MinusSign[0].Data()
+			}
+			if len(symbol.PercentSign) > 0 {
+				number.Symbols.Percent = symbol.PercentSign[0].Data()
+			}
+			if len(symbol.PerMille) > 0 {
+				number.Symbols.PerMille = symbol.PerMille[0].Data()
+			}
+		}
+		if len(ldml.Numbers.DecimalFormats) > 0 && len(ldml.Numbers.DecimalFormats[0].DecimalFormatLength) > 0 {
+			number.Formats.Decimal = ldml.Numbers.DecimalFormats[0].DecimalFormatLength[0].DecimalFormat[0].Pattern[0].Data()
+		}
 
-	// 	for _, pr := range p.PluralRules {
+		if len(ldml.Numbers.CurrencyFormats) > 0 && len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength) > 0 {
 
-	// 		fmt.Println(pr.Locales)
+			number.Formats.Currency = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[0].Pattern[0].Data()
+			number.Formats.CurrencyAccounting = number.Formats.Currency
 
-	// 		for _, rule := range pr.PluralRule {
-	// 			fmt.Println(rule.Count, rule.Common.Data())
-	// 		}
-	// 	}
-	// }
+			if len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat) > 1 {
+				number.Formats.CurrencyAccounting = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[1].Pattern[0].Data()
+			}
+		}
+		if len(ldml.Numbers.PercentFormats) > 0 && len(ldml.Numbers.PercentFormats[0].PercentFormatLength) > 0 {
+			number.Formats.Percent = ldml.Numbers.PercentFormats[0].PercentFormatLength[0].PercentFormat[0].Pattern[0].Data()
+		}
+		if ldml.Numbers.Currencies != nil {
 
-	for _, l := range cldr.Locales() {
+			for _, currency := range ldml.Numbers.Currencies.Currency {
 
-		// // work on uk for the moment
-		// if l != "uk" && l != "fil" && l != "gd" {
-		// if l != "gd" {
-		// 	continue
-		// }
-		fmt.Println(l)
+				var c i18n.Currency
+
+				c.Currency = currency.Type
+
+				if len(currency.DisplayName) > 0 {
+					c.DisplayName = currency.DisplayName[0].Data()
+				}
 
-		baseLocale := strings.SplitN(l, "_", 2)[0]
+				if len(currency.Symbol) > 0 {
+					c.Symbol = currency.Symbol[0].Data()
+				}
 
-		trans := &translator{
-			Locale:       l,
-			CardinalFunc: parseCardinalPluralRuleFunc(cldr, baseLocale),
+				number.Currencies[c.Currency] = c
+			}
 		}
+		numbers[loc] = number
+		locs[loc] = strings.ToLower(strings.Replace(loc, "_", "", -1))
 
-		// cardinalRules := getLocaleCardinalPluralRules(cldr, baseLocale)
-		// fmt.Println("CardinalRules:", l, cardinalRules)
-		// Start Plural Rules
+		if ldml.Dates != nil && ldml.Dates.Calendars != nil {
 
-		// for _, p := range cldr.Supplemental().Plurals {
+			var calendar i18n.Calendar
+			ldmlCar := ldml.Dates.Calendars.Calendar[0]
 
-		// 	for _, pr := range p.PluralRules {
+			for _, cal := range ldml.Dates.Calendars.Calendar {
+				if cal.Type == "gregorian" {
+					ldmlCar = cal
+				}
+			}
 
-		// 		locales := strings.Split(pr.Locales, " ")
+			if ldmlCar.DateFormats != nil {
+				for _, datefmt := range ldmlCar.DateFormats.DateFormatLength {
+					switch datefmt.Type {
+					case "full":
+						calendar.Formats.DateEra.BC.Full = datefmt.DateFormat[0].Pattern[0].Data()
+						calendar.Formats.DateEra.AD.Full = calendar.Formats.DateEra.BC.Full
+
+					case "long":
+						calendar.Formats.DateEra.BC.Long = datefmt.DateFormat[0].Pattern[0].Data()
+						calendar.Formats.DateEra.AD.Long = calendar.Formats.DateEra.BC.Long
+
+						// Overrides TODO: Split Each Section into separate function, getting to big to maintain
+
+					case "medium":
+						calendar.Formats.DateEra.BC.Medium = datefmt.DateFormat[0].Pattern[0].Data()
+						calendar.Formats.DateEra.AD.Medium = calendar.Formats.DateEra.BC.Medium
+					case "short":
+						calendar.Formats.DateEra.BC.Short = datefmt.DateFormat[0].Pattern[0].Data()
+						calendar.Formats.DateEra.AD.Short = calendar.Formats.DateEra.BC.Short
+					}
+				}
 
-		// 		for _, loc := range locales {
+				// Overrides TODO: Split Each Section into separate function, getting to big to maintain
+				switch loc {
+				case "th":
+					calendar.Formats.DateEra.BC.Full = "EEEEที่ d MMMM y GGGG"
+					calendar.Formats.DateEra.AD.Full = "EEEEที่ d MMMM GGGG y"
+					calendar.Formats.DateEra.BC.Long = "d MMMM y GG"
+					calendar.Formats.DateEra.AD.Long = "d MMMM GG y"
+				case "en":
+					calendar.Formats.DateEra.BC.Full = "EEEE, MMMM d, y GGGG"
+					calendar.Formats.DateEra.BC.Long = "MMMM d, y GG"
+					// calendar.Formats.DateEra.BC.Medium = "MMM d, y GG"
+					// calendar.Formats.DateEra.BC.Short = "M/d/yy G"
+				}
+			}
 
-		// 			if loc == baseLocale {
+			if ldmlCar.TimeFormats != nil {
+				for _, datefmt := range ldmlCar.TimeFormats.TimeFormatLength {
+					switch datefmt.Type {
+					case "full":
+						calendar.Formats.Time.Full = datefmt.TimeFormat[0].Pattern[0].Data()
+					case "long":
+						calendar.Formats.Time.Long = datefmt.TimeFormat[0].Pattern[0].Data()
+					case "medium":
+						calendar.Formats.Time.Medium = datefmt.TimeFormat[0].Pattern[0].Data()
+					case "short":
+						calendar.Formats.Time.Short = datefmt.TimeFormat[0].Pattern[0].Data()
+					}
+				}
+			}
+			if ldmlCar.DateTimeFormats != nil {
+				for _, datefmt := range ldmlCar.DateTimeFormats.DateTimeFormatLength {
+					switch datefmt.Type {
+					case "full":
+						calendar.Formats.DateTime.Full = datefmt.DateTimeFormat[0].Pattern[0].Data()
+					case "long":
+						calendar.Formats.DateTime.Long = datefmt.DateTimeFormat[0].Pattern[0].Data()
+					case "medium":
+						calendar.Formats.DateTime.Medium = datefmt.DateTimeFormat[0].Pattern[0].Data()
+					case "short":
+						calendar.Formats.DateTime.Short = datefmt.DateTimeFormat[0].Pattern[0].Data()
+					}
+				}
+			}
+			if ldmlCar.Months != nil {
+
+				for _, monthctx := range ldmlCar.Months.MonthContext {
+
+					for _, months := range monthctx.MonthWidth {
+
+						i18nMonth := make(i18n.CalendarMonthFormatNameValue)
+
+						for _, m := range months.Month {
+							switch m.Type {
+							case "1":
+								i18nMonth[time.January] = m.Data()
+							case "2":
+								i18nMonth[time.February] = m.Data()
+							case "3":
+								i18nMonth[time.March] = m.Data()
+							case "4":
+								i18nMonth[time.April] = m.Data()
+							case "5":
+								i18nMonth[time.May] = m.Data()
+							case "6":
+								i18nMonth[time.June] = m.Data()
+							case "7":
+								i18nMonth[time.July] = m.Data()
+							case "8":
+								i18nMonth[time.August] = m.Data()
+							case "9":
+								i18nMonth[time.September] = m.Data()
+							case "10":
+								i18nMonth[time.October] = m.Data()
+							case "11":
+								i18nMonth[time.November] = m.Data()
+							case "12":
+								i18nMonth[time.December] = m.Data()
+							}
+						}
+						switch months.Type {
+						case "abbreviated":
+							calendar.FormatNames.Months.Abbreviated = i18nMonth
+						case "narrow":
+							calendar.FormatNames.Months.Narrow = i18nMonth
+						case "short":
+							calendar.FormatNames.Months.Short = i18nMonth
+						case "wide":
+							calendar.FormatNames.Months.Wide = i18nMonth
+						}
+					}
+				}
+			}
+			if ldmlCar.Days != nil {
+				for _, dayctx := range ldmlCar.Days.DayContext {
+
+					for _, days := range dayctx.DayWidth {
+
+						i18nDay := make(i18n.CalendarDayFormatNameValue)
+
+						for _, d := range days.Day {
+
+							switch d.Type {
+							case "sun":
+								i18nDay[time.Sunday] = d.Data()
+							case "mon":
+								i18nDay[time.Monday] = d.Data()
+							case "tue":
+								i18nDay[time.Tuesday] = d.Data()
+							case "wed":
+								i18nDay[time.Wednesday] = d.Data()
+							case "thu":
+								i18nDay[time.Thursday] = d.Data()
+							case "fri":
+								i18nDay[time.Friday] = d.Data()
+							case "sat":
+								i18nDay[time.Saturday] = d.Data()
+							}
+						}
+
+						switch days.Type {
+						case "abbreviated":
+							calendar.FormatNames.Days.Abbreviated = i18nDay
+						case "narrow":
+							calendar.FormatNames.Days.Narrow = i18nDay
+						case "short":
+							calendar.FormatNames.Days.Short = i18nDay
+						case "wide":
+							calendar.FormatNames.Days.Wide = i18nDay
+						}
+					}
+				}
+			}
+
+			if ldmlCar.DayPeriods != nil {
+
+				for _, ctx := range ldmlCar.DayPeriods.DayPeriodContext {
+
+					for _, width := range ctx.DayPeriodWidth {
 
-		// 				// plural rule found
-		// 				fmt.Println("Locale Plural Rules Found:", loc, baseLocale, l)
-		// 			}
-		// 		}
-		// 		// fmt.Println(pr.Locales)
+						// var i18nPeriod i18n.CalendarPeriodFormatNameValue
+						i18nPeriod := make(i18n.CalendarPeriodFormatNameValue)
 
-		// 		// for _, rule := range pr.PluralRule {
-		// 		// 	fmt.Println(rule.Count, rule.Common.Data())
-		// 		// }
-		// 	}
-		// }
+						for _, d := range width.DayPeriod {
 
-		// End Plural Rules
+							if _, ok := i18nPeriod[d.Type]; !ok {
+								i18nPeriod[d.Type] = d.Data()
+							}
+						}
+
+						switch width.Type {
+						case "abbreviated":
+							calendar.FormatNames.Periods.Abbreviated = i18nPeriod
+						case "narrow":
+							calendar.FormatNames.Periods.Narrow = i18nPeriod
+						case "short":
+							calendar.FormatNames.Periods.Short = i18nPeriod
+						case "wide":
+							calendar.FormatNames.Periods.Wide = i18nPeriod
+						}
+					}
+				}
+				// var empty i18n.CalendarPeriodFormatNameValue
+				// if calendar.FormatNames.Periods.Abbreviated == empty {
+				// 	calendar.FormatNames.Periods.Abbreviated = calendar.FormatNames.Periods.Wide
+				// }
+			}
+
+			if ldmlCar.Eras != nil {
+
+				var eras i18n.Eras
+
+				if ldmlCar.Eras.EraNames != nil && len(ldmlCar.Eras.EraNames.Era) > 0 {
+					eras.BC.Full = ldmlCar.Eras.EraNames.Era[0].Data()
+				}
+
+				if ldmlCar.Eras.EraAbbr != nil && len(ldmlCar.Eras.EraAbbr.Era) > 0 {
+					eras.BC.Abbrev = ldmlCar.Eras.EraAbbr.Era[0].Data()
+				}
+
+				if ldmlCar.Eras.EraNarrow != nil && len(ldmlCar.Eras.EraNarrow.Era) > 0 {
+					eras.BC.Narrow = ldmlCar.Eras.EraNarrow.Era[0].Data()
+				}
 
-		if err = os.MkdirAll(fmt.Sprintf(locDir, l), 0777); err != nil {
-			log.Fatal(err)
+				if ldmlCar.Eras.EraNames != nil && len(ldmlCar.Eras.EraNames.Era) > 2 {
+					eras.AD.Full = ldmlCar.Eras.EraNames.Era[2].Data()
+				}
+
+				if ldmlCar.Eras.EraAbbr != nil && len(ldmlCar.Eras.EraAbbr.Era) > 2 {
+					eras.AD.Abbrev = ldmlCar.Eras.EraAbbr.Era[2].Data()
+				}
+
+				if ldmlCar.Eras.EraNarrow != nil && len(ldmlCar.Eras.EraNarrow.Era) > 2 {
+					eras.AD.Narrow = ldmlCar.Eras.EraNarrow.Era[2].Data()
+				}
+
+				calendar.FormatNames.Eras = eras
+			}
+
+			calendars[loc] = calendar
 		}
+	}
 
-		filename := fmt.Sprintf(locFilename, l, l)
+	for locale := range locs {
 
-		output, err := os.Create(filename)
-		if err != nil {
-			log.Fatal(err)
+		if !strings.Contains(locale, "_") {
+			continue
 		}
-		defer output.Close()
 
-		if err := tmpl.ExecuteTemplate(output, "translator", trans); err != nil {
-			log.Fatal(err)
+		calendar := calendars[locale]
+
+		bString := strings.SplitN(locale, "_", 2)
+		base := bString[0]
+
+		baseCal := calendars[base]
+
+		// copy base calendar objects
+
+		// Dates
+		if calendar.Formats.DateEra.AD.Full == "" {
+			calendar.Formats.DateEra.BC.Full = baseCal.Formats.DateEra.BC.Full
+			calendar.Formats.DateEra.AD.Full = baseCal.Formats.DateEra.AD.Full
 		}
 
-		output.Close()
+		if calendar.Formats.DateEra.AD.Long == "" {
+			calendar.Formats.DateEra.BC.Long = baseCal.Formats.DateEra.BC.Long
+			calendar.Formats.DateEra.AD.Long = baseCal.Formats.DateEra.AD.Long
+		}
 
-		// 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)
+		if calendar.Formats.DateEra.AD.Medium == "" {
+			calendar.Formats.DateEra.BC.Medium = baseCal.Formats.DateEra.BC.Medium
+			calendar.Formats.DateEra.AD.Medium = baseCal.Formats.DateEra.AD.Medium
 		}
-	}
-}
 
-// TODO: cleanup function logic perhaps write a lexer... but it's working right now, and
-// I'm already farther down the rabbit hole than I'd like and so pulling the chute here.
-func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results string) {
-
-	var prCardinal *struct {
-		cldr.Common
-		Locales    string "xml:\"locales,attr\""
-		PluralRule []*struct {
-			cldr.Common
-			Count string "xml:\"count,attr\""
-		} "xml:\"pluralRule\""
-	}
+		if calendar.Formats.DateEra.AD.Short == "" {
+			calendar.Formats.DateEra.BC.Short = baseCal.Formats.DateEra.BC.Short
+			calendar.Formats.DateEra.AD.Short = baseCal.Formats.DateEra.AD.Short
+		}
+
+		// times
+		if calendar.Formats.Time.Full == "" {
+			calendar.Formats.Time.Full = baseCal.Formats.Time.Full
+		}
 
-	for _, p := range current.Supplemental().Plurals {
+		if calendar.Formats.Time.Long == "" {
+			calendar.Formats.Time.Long = baseCal.Formats.Time.Long
+		}
 
-		for _, pr := range p.PluralRules {
+		if calendar.Formats.Time.Medium == "" {
+			calendar.Formats.Time.Medium = baseCal.Formats.Time.Medium
+		}
 
-			locs := strings.Split(pr.Locales, " ")
+		if calendar.Formats.Time.Short == "" {
+			calendar.Formats.Time.Short = baseCal.Formats.Time.Short
+		}
 
-			for _, loc := range locs {
+		// date & times
+		if calendar.Formats.DateTime.Full == "" {
+			calendar.Formats.DateTime.Full = baseCal.Formats.DateTime.Full
+		}
 
-				if loc == baseLocale {
-					prCardinal = pr
-				}
+		if calendar.Formats.DateTime.Long == "" {
+			calendar.Formats.DateTime.Long = baseCal.Formats.DateTime.Long
+		}
+
+		if calendar.Formats.DateTime.Medium == "" {
+			calendar.Formats.DateTime.Medium = baseCal.Formats.DateTime.Medium
+		}
+
+		if calendar.Formats.DateTime.Short == "" {
+			calendar.Formats.DateTime.Short = baseCal.Formats.DateTime.Short
+		}
+
+		// months
+
+		if calendar.FormatNames.Months.Abbreviated == nil {
+			calendar.FormatNames.Months.Abbreviated = make(i18n.CalendarMonthFormatNameValue)
+		}
+
+		if calendar.FormatNames.Months.Narrow == nil {
+			calendar.FormatNames.Months.Narrow = make(i18n.CalendarMonthFormatNameValue)
+		}
+
+		if calendar.FormatNames.Months.Short == nil {
+			calendar.FormatNames.Months.Short = make(i18n.CalendarMonthFormatNameValue)
+		}
+
+		if calendar.FormatNames.Months.Wide == nil {
+			calendar.FormatNames.Months.Wide = make(i18n.CalendarMonthFormatNameValue)
+		}
+
+		for k, v := range baseCal.FormatNames.Months.Abbreviated {
+
+			val, ok := calendar.FormatNames.Months.Abbreviated[k]
+			if !ok {
+				calendar.FormatNames.Months.Abbreviated[k] = v
+				continue
+			}
+
+			if val == "" {
+				calendar.FormatNames.Months.Abbreviated[k] = v
 			}
 		}
-	}
 
-	// no plural rules for locale
-	if prCardinal == nil {
-		return
-	}
+		for k, v := range baseCal.FormatNames.Months.Narrow {
 
-	vals := make(map[string]struct{})
-	first := true
+			val, ok := calendar.FormatNames.Months.Narrow[k]
+			if !ok {
+				calendar.FormatNames.Months.Narrow[k] = v
+				continue
+			}
 
-	// pre parse for variables
-	for _, rule := range prCardinal.PluralRule {
+			if val == "" {
+				calendar.FormatNames.Months.Narrow[k] = v
+			}
+		}
 
-		data := strings.Replace(strings.Replace(strings.Replace(strings.TrimSpace(strings.SplitN(rule.Common.Data(), "@", 2)[0]), " = ", " == ", -1), " or ", " || ", -1), " and ", " && ", -1)
+		for k, v := range baseCal.FormatNames.Months.Short {
 
-		if len(data) == 0 {
-			if len(prCardinal.PluralRule) == 1 {
+			val, ok := calendar.FormatNames.Months.Short[k]
+			if !ok {
+				calendar.FormatNames.Months.Short[k] = v
+				continue
+			}
 
-				results = "return locales." + pluralStringToString(rule.Count) + ", nil"
+			if val == "" {
+				calendar.FormatNames.Months.Short[k] = v
+			}
+		}
 
-			} else {
+		for k, v := range baseCal.FormatNames.Months.Wide {
 
-				results += "\n\nreturn locales." + pluralStringToString(rule.Count) + ", nil"
-				// results += "else {\nreturn locales." + locales.PluralStringToString(rule.Count) + ", nil\n}"
+			val, ok := calendar.FormatNames.Months.Wide[k]
+			if !ok {
+				calendar.FormatNames.Months.Wide[k] = v
+				continue
 			}
 
-			continue
+			if val == "" {
+				calendar.FormatNames.Months.Wide[k] = v
+			}
 		}
 
-		if strings.Contains(data, "n") {
-			vals[prVarFuncs["n"]] = struct{}{}
+		// days
+
+		if calendar.FormatNames.Days.Abbreviated == nil {
+			calendar.FormatNames.Days.Abbreviated = make(i18n.CalendarDayFormatNameValue)
 		}
 
-		if strings.Contains(data, "i") {
-			vals[prVarFuncs["i"]] = struct{}{}
+		if calendar.FormatNames.Days.Narrow == nil {
+			calendar.FormatNames.Days.Narrow = make(i18n.CalendarDayFormatNameValue)
 		}
 
-		if strings.Contains(data, "v") {
-			vals[prVarFuncs["v"]] = struct{}{}
+		if calendar.FormatNames.Days.Short == nil {
+			calendar.FormatNames.Days.Short = make(i18n.CalendarDayFormatNameValue)
 		}
 
-		if strings.Contains(data, "w") {
-			vals[prVarFuncs["w"]] = struct{}{}
+		if calendar.FormatNames.Days.Wide == nil {
+			calendar.FormatNames.Days.Wide = make(i18n.CalendarDayFormatNameValue)
 		}
 
-		if strings.Contains(data, "f") {
-			vals[prVarFuncs["f"]] = struct{}{}
+		for k, v := range baseCal.FormatNames.Days.Abbreviated {
+
+			val, ok := calendar.FormatNames.Days.Abbreviated[k]
+			if !ok {
+				calendar.FormatNames.Days.Abbreviated[k] = v
+				continue
+			}
+
+			if val == "" {
+				calendar.FormatNames.Days.Abbreviated[k] = v
+			}
 		}
 
-		if strings.Contains(data, "t") {
-			vals[prVarFuncs["t"]] = struct{}{}
+		for k, v := range baseCal.FormatNames.Days.Narrow {
+
+			val, ok := calendar.FormatNames.Days.Narrow[k]
+			if !ok {
+				calendar.FormatNames.Days.Narrow[k] = v
+				continue
+			}
+
+			if val == "" {
+				calendar.FormatNames.Days.Narrow[k] = v
+			}
 		}
 
-		// fmt.Println(rule.Count, data)
+		for k, v := range baseCal.FormatNames.Days.Short {
+
+			val, ok := calendar.FormatNames.Days.Short[k]
+			if !ok {
+				calendar.FormatNames.Days.Short[k] = v
+				continue
+			}
 
-		if first {
-			results += "if "
-			first = false
-		} else {
-			results += "else if "
+			if val == "" {
+				calendar.FormatNames.Days.Short[k] = v
+			}
 		}
 
-		stmt := ""
+		for k, v := range baseCal.FormatNames.Days.Wide {
 
-		// real work here
-		//
-		// split by 'or' then by 'and' allowing to better
-		// determine bracketing for formula
+			val, ok := calendar.FormatNames.Days.Wide[k]
+			if !ok {
+				calendar.FormatNames.Days.Wide[k] = v
+				continue
+			}
 
-		ors := strings.Split(data, "||")
+			if val == "" {
+				calendar.FormatNames.Days.Wide[k] = v
+			}
+		}
 
-		for _, or := range ors {
+		// periods
+		if calendar.FormatNames.Periods.Abbreviated == nil {
+			calendar.FormatNames.Periods.Abbreviated = make(i18n.CalendarPeriodFormatNameValue)
+		}
 
-			stmt += "("
+		if calendar.FormatNames.Periods.Narrow == nil {
+			calendar.FormatNames.Periods.Narrow = make(i18n.CalendarPeriodFormatNameValue)
+		}
 
-			ands := strings.Split(strings.TrimSpace(or), "&&")
+		if calendar.FormatNames.Periods.Short == nil {
+			calendar.FormatNames.Periods.Short = make(i18n.CalendarPeriodFormatNameValue)
+		}
 
-			for _, and := range ands {
+		if calendar.FormatNames.Periods.Wide == nil {
+			calendar.FormatNames.Periods.Wide = make(i18n.CalendarPeriodFormatNameValue)
+		}
 
-				inArg := false
-				pre := ""
-				lft := ""
-				preOperator := ""
-				args := strings.Split(strings.TrimSpace(and), " ")
+		for k, v := range baseCal.FormatNames.Periods.Abbreviated {
 
-				for _, a := range args {
+			val, ok := calendar.FormatNames.Periods.Abbreviated[k]
+			if !ok {
+				calendar.FormatNames.Periods.Abbreviated[k] = v
+				continue
+			}
 
-					if inArg {
-						// check to see if is a value range 2..9
+			if val == "" {
+				calendar.FormatNames.Periods.Abbreviated[k] = v
+			}
+		}
 
-						multiRange := strings.Count(a, "..") > 1
-						cargs := strings.Split(strings.TrimSpace(a), ",")
-						hasBracket := len(cargs) > 1
-						bracketAdded := false
-						lastWasRange := false
+		for k, v := range baseCal.FormatNames.Periods.Narrow {
 
-						for _, carg := range cargs {
+			val, ok := calendar.FormatNames.Periods.Narrow[k]
+			if !ok {
+				calendar.FormatNames.Periods.Narrow[k] = v
+				continue
+			}
+
+			if val == "" {
+				calendar.FormatNames.Periods.Narrow[k] = v
+			}
+		}
 
-							if rng := strings.Split(carg, ".."); len(rng) > 1 {
+		for k, v := range baseCal.FormatNames.Periods.Short {
 
-								if multiRange {
-									pre += " ("
-								} else {
-									pre += " "
-								}
+			val, ok := calendar.FormatNames.Periods.Short[k]
+			if !ok {
+				calendar.FormatNames.Periods.Short[k] = v
+				continue
+			}
 
-								switch preOperator {
-								case "==":
-									pre += lft + " >= " + rng[0] + " && " + lft + "<=" + rng[1]
-								case "!=":
-									pre += lft + " < " + rng[0] + " && " + lft + " > " + rng[1]
-								}
+			if val == "" {
+				calendar.FormatNames.Periods.Short[k] = v
+			}
+		}
 
-								if multiRange {
-									pre += ") || "
-								} else {
-									pre += " || "
-								}
+		for k, v := range baseCal.FormatNames.Periods.Wide {
 
-								lastWasRange = true
-								continue
-							}
+			val, ok := calendar.FormatNames.Periods.Wide[k]
+			if !ok {
+				calendar.FormatNames.Periods.Wide[k] = v
+				continue
+			}
 
-							if lastWasRange {
-								pre = strings.TrimRight(pre, " || ") + " && "
-							}
+			if val == "" {
+				calendar.FormatNames.Periods.Wide[k] = v
+			}
+		}
 
-							lastWasRange = false
+		calendars[locale] = calendar
 
-							if hasBracket && !bracketAdded {
-								pre += "("
-								bracketAdded = true
-							}
+		number := numbers[locale]
+		baseNum := numbers[base]
 
-							// single comma separated values
-							switch preOperator {
-							case "==":
-								pre += " " + lft + preOperator + carg + " || "
-							case "!=":
-								pre += " " + lft + preOperator + carg + " && "
-							}
+		// symbols
+		if number.Symbols.Decimal == "" {
+			number.Symbols.Decimal = baseNum.Symbols.Decimal
+		}
 
-						}
+		if number.Symbols.Group == "" {
+			number.Symbols.Group = baseNum.Symbols.Group
+		}
 
-						pre = strings.TrimRight(pre, " || ")
-						pre = strings.TrimRight(pre, " && ")
-						pre = strings.TrimRight(pre, " || ")
+		if number.Symbols.Negative == "" {
+			number.Symbols.Negative = baseNum.Symbols.Negative
+		}
 
-						if hasBracket && bracketAdded {
-							pre += ")"
-						}
+		if number.Symbols.Percent == "" {
+			number.Symbols.Percent = baseNum.Symbols.Percent
+		}
 
-						continue
-					}
+		if number.Symbols.PerMille == "" {
+			number.Symbols.PerMille = baseNum.Symbols.PerMille
+		}
 
-					if strings.Contains(a, "=") || a == ">" || a == "<" {
-						inArg = true
-						preOperator = a
-						continue
-					}
+		// formats
+		if number.Formats.Decimal == "" {
+			number.Formats.Decimal = baseNum.Formats.Decimal
+		}
 
-					lft += a
-				}
+		if number.Formats.Currency == "" {
+			number.Formats.Currency = baseNum.Formats.Currency
+		}
 
-				stmt += pre + " && "
-			}
+		if number.Formats.CurrencyAccounting == "" {
+			number.Formats.CurrencyAccounting = baseNum.Formats.CurrencyAccounting
+		}
 
-			stmt = strings.TrimRight(stmt, " && ") + ") || "
+		if number.Formats.Percent == "" {
+			number.Formats.Percent = baseNum.Formats.Percent
 		}
 
-		stmt = strings.TrimRight(stmt, " || ")
+		// currency
+		for k, v := range baseNum.Currencies {
 
-		results += stmt
+			val, ok := number.Currencies[k]
+			if !ok {
+				// number.Currencies[k] = v
+				continue
+			}
 
-		results += " {\n"
+			if val.Currency == "" {
+				val.Currency = v.Currency
+			}
 
-		// return plural rule here
-		results += "return locales." + pluralStringToString(rule.Count) + ", nil\n"
+			if val.DisplayName == "" {
+				val.DisplayName = v.DisplayName
+			}
 
-		results += "}"
-	}
+			if val.Symbol == "" {
+				val.Symbol = v.Symbol
+			}
 
-	pre := "\n"
+			number.Currencies[k] = val
+		}
 
-	for k := range vals {
-		pre += k
+		numbers[locale] = number
 	}
 
-	pre += "\n"
+	var wg sync.WaitGroup
+	wg.Add(len(numbers))
+	for locale, number := range numbers {
+		go func(locale string, number i18n.Number) {
 
-	if len(results) == 0 {
-		results = "return locales.PluralRuleUnknown,nil"
-	}
+			localeLowercase := strings.ToLower(locale)
 
-	results = pre + results
+			defer func() { wg.Done() }()
+			path := "../../resources/locales/" + locale
 
-	return
-}
+			if _, err := os.Stat(path); err != nil {
+				if err = os.MkdirAll(path, 0777); err != nil {
+					panic(err)
+				}
+			}
 
-func pluralStringToString(pr string) string {
-
-	pr = strings.TrimSpace(pr)
-
-	switch pr {
-	case "zero":
-		return "PluralRuleZero"
-	case "one":
-		return "PluralRuleOne"
-	case "two":
-		return "PluralRuleTwo"
-	case "few":
-		return "PluralRuleFew"
-	case "many":
-		return "PluralRuleMany"
-	case "other":
-		return "PluralRuleOther"
-	default:
-		return "PluralRuleUnknown"
-	}
-}
+			path += "/"
 
-// //plurals
-// rules := "data/rules"
-// plurals := map[string]*pluralInfo{}
-// basePlurals := map[string]string{}
+			mainFile, err := os.Create(path + "main.go")
+			if err != nil {
+				panic(err)
+			}
+			defer mainFile.Close()
+
+			calendar := calendars[locale]
+
+			mainCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
+			import "github.com/go-playground/universal-translator"
+
+			var locale = &ut.Locale{
+				Locale: %q,
+				Number: ut.Number{
+					Symbols: symbols,
+					Formats: formats,
+					Currencies: currencies,
+				},
+				Calendar: calendar,
+				PluralRule:   pluralRule,
+			}
 
-// err := filepath.Walk(rules, func(path string, info os.FileInfo, err error) error {
-
-// 	if err != nil {
-// 		panic(err)
-// 	}
-
-// 	if info.IsDir() {
-// 		return nil
-// 	}
-
-// 	in, err := ioutil.ReadFile(path)
-// 	if err != nil {
-// 		panic(err)
-// 	}
-
-// 	var out yaml.MapSlice
-// 	if err = yaml.Unmarshal(in, &out); err != nil {
-// 		panic(err)
-// 	}
-
-// 	var plural string
-// 	for _, item := range out {
-// 		if item.Key == "plural" {
-// 			plural = item.Value.(string)
-// 		}
-// 	}
-
-// 	locale := strings.Replace(info.Name(), filepath.Ext(info.Name()), "", 1)
-// 	locale = strings.ToLower(strings.Replace(locale, "-", "_", -1))
-
-// 	plurals[locale] = &pluralInfo{
-// 		path:   path,
-// 		locale: locale,
-// 		plural: plural,
-// 	}
-
-// 	if plural == "" {
-// 		return nil
-// 	}
-
-// 	basePlurals[locale] = plural
-
-// 	return nil
-// })
-
-// if err != nil {
-// 	panic(err)
-// }
-
-// for _, p := range plurals {
-
-// 	if p.plural == "" {
-
-// 		var ok bool
-
-// 		fmt.Print("can't find plurals in ", p.path, " attempting to locate base language plural rules...")
-
-// 		base := strings.SplitN(p.locale, "_", 2)
-
-// 		p.plural, ok = basePlurals[base[0]]
-// 		if !ok {
-// 			fmt.Println("Not Found")
-// 			continue
-// 		}
-
-// 		fmt.Println("Found")
-// 	}
-// }
-
-// cldr
-
-// var decoder cldr.Decoder
-// cldr, err := decoder.DecodePath("data/core")
-// if err != nil {
-// 	panic(err)
-// }
-
-// 	locs := map[string]string{}
-// 	numbers := map[string]i18n.Number{}
-// 	calendars := map[string]i18n.Calendar{}
-// 	locales := cldr.Locales()
-// 	for _, loc := range locales {
-
-// 		ldml := cldr.RawLDML(loc)
-// 		if ldml.Numbers == nil {
-// 			continue
-// 		}
-// 		var number i18n.Number
-
-// 		number.Currencies = make(i18n.CurrencyFormatValue)
-
-// 		if len(ldml.Numbers.Symbols) > 0 {
-// 			symbol := ldml.Numbers.Symbols[0]
-// 			if len(symbol.Decimal) > 0 {
-// 				number.Symbols.Decimal = symbol.Decimal[0].Data()
-// 			}
-// 			if len(symbol.Group) > 0 {
-// 				number.Symbols.Group = symbol.Group[0].Data()
-// 			}
-// 			if len(symbol.MinusSign) > 0 {
-// 				number.Symbols.Negative = symbol.MinusSign[0].Data()
-// 			}
-// 			if len(symbol.PercentSign) > 0 {
-// 				number.Symbols.Percent = symbol.PercentSign[0].Data()
-// 			}
-// 			if len(symbol.PerMille) > 0 {
-// 				number.Symbols.PerMille = symbol.PerMille[0].Data()
-// 			}
-// 		}
-// 		if len(ldml.Numbers.DecimalFormats) > 0 && len(ldml.Numbers.DecimalFormats[0].DecimalFormatLength) > 0 {
-// 			number.Formats.Decimal = ldml.Numbers.DecimalFormats[0].DecimalFormatLength[0].DecimalFormat[0].Pattern[0].Data()
-// 		}
-
-// 		if len(ldml.Numbers.CurrencyFormats) > 0 && len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength) > 0 {
-
-// 			number.Formats.Currency = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[0].Pattern[0].Data()
-// 			number.Formats.CurrencyAccounting = number.Formats.Currency
-
-// 			if len(ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat) > 1 {
-// 				number.Formats.CurrencyAccounting = ldml.Numbers.CurrencyFormats[0].CurrencyFormatLength[0].CurrencyFormat[1].Pattern[0].Data()
-// 			}
-// 		}
-// 		if len(ldml.Numbers.PercentFormats) > 0 && len(ldml.Numbers.PercentFormats[0].PercentFormatLength) > 0 {
-// 			number.Formats.Percent = ldml.Numbers.PercentFormats[0].PercentFormatLength[0].PercentFormat[0].Pattern[0].Data()
-// 		}
-// 		if ldml.Numbers.Currencies != nil {
-
-// 			for _, currency := range ldml.Numbers.Currencies.Currency {
-
-// 				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
-// 			}
-// 		}
-// 		numbers[loc] = number
-// 		locs[loc] = strings.ToLower(strings.Replace(loc, "_", "", -1))
-
-// 		if ldml.Dates != nil && ldml.Dates.Calendars != nil {
-
-// 			var calendar i18n.Calendar
-// 			ldmlCar := ldml.Dates.Calendars.Calendar[0]
-
-// 			for _, cal := range ldml.Dates.Calendars.Calendar {
-// 				if cal.Type == "gregorian" {
-// 					ldmlCar = cal
-// 				}
-// 			}
-
-// 			if ldmlCar.DateFormats != nil {
-// 				for _, datefmt := range ldmlCar.DateFormats.DateFormatLength {
-// 					switch datefmt.Type {
-// 					case "full":
-// 						calendar.Formats.DateEra.BC.Full = datefmt.DateFormat[0].Pattern[0].Data()
-// 						calendar.Formats.DateEra.AD.Full = calendar.Formats.DateEra.BC.Full
-
-// 					case "long":
-// 						calendar.Formats.DateEra.BC.Long = datefmt.DateFormat[0].Pattern[0].Data()
-// 						calendar.Formats.DateEra.AD.Long = calendar.Formats.DateEra.BC.Long
-
-// 						// Overrides TODO: Split Each Section into separate function, getting to big to maintain
-
-// 					case "medium":
-// 						calendar.Formats.DateEra.BC.Medium = datefmt.DateFormat[0].Pattern[0].Data()
-// 						calendar.Formats.DateEra.AD.Medium = calendar.Formats.DateEra.BC.Medium
-// 					case "short":
-// 						calendar.Formats.DateEra.BC.Short = datefmt.DateFormat[0].Pattern[0].Data()
-// 						calendar.Formats.DateEra.AD.Short = calendar.Formats.DateEra.BC.Short
-// 					}
-// 				}
-
-// 				// Overrides TODO: Split Each Section into separate function, getting to big to maintain
-// 				switch loc {
-// 				case "th":
-// 					calendar.Formats.DateEra.BC.Full = "EEEEที่ d MMMM y GGGG"
-// 					calendar.Formats.DateEra.AD.Full = "EEEEที่ d MMMM GGGG y"
-// 					calendar.Formats.DateEra.BC.Long = "d MMMM y GG"
-// 					calendar.Formats.DateEra.AD.Long = "d MMMM GG y"
-// 				case "en":
-// 					calendar.Formats.DateEra.BC.Full = "EEEE, MMMM d, y GGGG"
-// 					calendar.Formats.DateEra.BC.Long = "MMMM d, y GG"
-// 					// calendar.Formats.DateEra.BC.Medium = "MMM d, y GG"
-// 					// calendar.Formats.DateEra.BC.Short = "M/d/yy G"
-// 				}
-// 			}
-
-// 			if ldmlCar.TimeFormats != nil {
-// 				for _, datefmt := range ldmlCar.TimeFormats.TimeFormatLength {
-// 					switch datefmt.Type {
-// 					case "full":
-// 						calendar.Formats.Time.Full = datefmt.TimeFormat[0].Pattern[0].Data()
-// 					case "long":
-// 						calendar.Formats.Time.Long = datefmt.TimeFormat[0].Pattern[0].Data()
-// 					case "medium":
-// 						calendar.Formats.Time.Medium = datefmt.TimeFormat[0].Pattern[0].Data()
-// 					case "short":
-// 						calendar.Formats.Time.Short = datefmt.TimeFormat[0].Pattern[0].Data()
-// 					}
-// 				}
-// 			}
-// 			if ldmlCar.DateTimeFormats != nil {
-// 				for _, datefmt := range ldmlCar.DateTimeFormats.DateTimeFormatLength {
-// 					switch datefmt.Type {
-// 					case "full":
-// 						calendar.Formats.DateTime.Full = datefmt.DateTimeFormat[0].Pattern[0].Data()
-// 					case "long":
-// 						calendar.Formats.DateTime.Long = datefmt.DateTimeFormat[0].Pattern[0].Data()
-// 					case "medium":
-// 						calendar.Formats.DateTime.Medium = datefmt.DateTimeFormat[0].Pattern[0].Data()
-// 					case "short":
-// 						calendar.Formats.DateTime.Short = datefmt.DateTimeFormat[0].Pattern[0].Data()
-// 					}
-// 				}
-// 			}
-// 			if ldmlCar.Months != nil {
-
-// 				for _, monthctx := range ldmlCar.Months.MonthContext {
-
-// 					for _, months := range monthctx.MonthWidth {
-
-// 						i18nMonth := make(i18n.CalendarMonthFormatNameValue)
-
-// 						for _, m := range months.Month {
-// 							switch m.Type {
-// 							case "1":
-// 								i18nMonth[time.January] = m.Data()
-// 							case "2":
-// 								i18nMonth[time.February] = m.Data()
-// 							case "3":
-// 								i18nMonth[time.March] = m.Data()
-// 							case "4":
-// 								i18nMonth[time.April] = m.Data()
-// 							case "5":
-// 								i18nMonth[time.May] = m.Data()
-// 							case "6":
-// 								i18nMonth[time.June] = m.Data()
-// 							case "7":
-// 								i18nMonth[time.July] = m.Data()
-// 							case "8":
-// 								i18nMonth[time.August] = m.Data()
-// 							case "9":
-// 								i18nMonth[time.September] = m.Data()
-// 							case "10":
-// 								i18nMonth[time.October] = m.Data()
-// 							case "11":
-// 								i18nMonth[time.November] = m.Data()
-// 							case "12":
-// 								i18nMonth[time.December] = m.Data()
-// 							}
-// 						}
-// 						switch months.Type {
-// 						case "abbreviated":
-// 							calendar.FormatNames.Months.Abbreviated = i18nMonth
-// 						case "narrow":
-// 							calendar.FormatNames.Months.Narrow = i18nMonth
-// 						case "short":
-// 							calendar.FormatNames.Months.Short = i18nMonth
-// 						case "wide":
-// 							calendar.FormatNames.Months.Wide = i18nMonth
-// 						}
-// 					}
-// 				}
-// 			}
-// 			if ldmlCar.Days != nil {
-// 				for _, dayctx := range ldmlCar.Days.DayContext {
-
-// 					for _, days := range dayctx.DayWidth {
-
-// 						i18nDay := make(i18n.CalendarDayFormatNameValue)
-
-// 						for _, d := range days.Day {
-
-// 							switch d.Type {
-// 							case "sun":
-// 								i18nDay[time.Sunday] = d.Data()
-// 							case "mon":
-// 								i18nDay[time.Monday] = d.Data()
-// 							case "tue":
-// 								i18nDay[time.Tuesday] = d.Data()
-// 							case "wed":
-// 								i18nDay[time.Wednesday] = d.Data()
-// 							case "thu":
-// 								i18nDay[time.Thursday] = d.Data()
-// 							case "fri":
-// 								i18nDay[time.Friday] = d.Data()
-// 							case "sat":
-// 								i18nDay[time.Saturday] = d.Data()
-// 							}
-// 						}
-
-// 						switch days.Type {
-// 						case "abbreviated":
-// 							calendar.FormatNames.Days.Abbreviated = i18nDay
-// 						case "narrow":
-// 							calendar.FormatNames.Days.Narrow = i18nDay
-// 						case "short":
-// 							calendar.FormatNames.Days.Short = i18nDay
-// 						case "wide":
-// 							calendar.FormatNames.Days.Wide = i18nDay
-// 						}
-// 					}
-// 				}
-// 			}
-
-// 			if ldmlCar.DayPeriods != nil {
-
-// 				for _, ctx := range ldmlCar.DayPeriods.DayPeriodContext {
-
-// 					for _, width := range ctx.DayPeriodWidth {
-
-// 						// var i18nPeriod i18n.CalendarPeriodFormatNameValue
-// 						i18nPeriod := make(i18n.CalendarPeriodFormatNameValue)
-
-// 						for _, d := range width.DayPeriod {
-
-// 							if _, ok := i18nPeriod[d.Type]; !ok {
-// 								i18nPeriod[d.Type] = d.Data()
-// 							}
-// 						}
-
-// 						switch width.Type {
-// 						case "abbreviated":
-// 							calendar.FormatNames.Periods.Abbreviated = i18nPeriod
-// 						case "narrow":
-// 							calendar.FormatNames.Periods.Narrow = i18nPeriod
-// 						case "short":
-// 							calendar.FormatNames.Periods.Short = i18nPeriod
-// 						case "wide":
-// 							calendar.FormatNames.Periods.Wide = i18nPeriod
-// 						}
-// 					}
-// 				}
-// 				// var empty i18n.CalendarPeriodFormatNameValue
-// 				// if calendar.FormatNames.Periods.Abbreviated == empty {
-// 				// 	calendar.FormatNames.Periods.Abbreviated = calendar.FormatNames.Periods.Wide
-// 				// }
-// 			}
-
-// 			if ldmlCar.Eras != nil {
-
-// 				var eras i18n.Eras
-
-// 				if ldmlCar.Eras.EraNames != nil && len(ldmlCar.Eras.EraNames.Era) > 0 {
-// 					eras.BC.Full = ldmlCar.Eras.EraNames.Era[0].Data()
-// 				}
-
-// 				if ldmlCar.Eras.EraAbbr != nil && len(ldmlCar.Eras.EraAbbr.Era) > 0 {
-// 					eras.BC.Abbrev = ldmlCar.Eras.EraAbbr.Era[0].Data()
-// 				}
-
-// 				if ldmlCar.Eras.EraNarrow != nil && len(ldmlCar.Eras.EraNarrow.Era) > 0 {
-// 					eras.BC.Narrow = ldmlCar.Eras.EraNarrow.Era[0].Data()
-// 				}
-
-// 				if ldmlCar.Eras.EraNames != nil && len(ldmlCar.Eras.EraNames.Era) > 2 {
-// 					eras.AD.Full = ldmlCar.Eras.EraNames.Era[2].Data()
-// 				}
-
-// 				if ldmlCar.Eras.EraAbbr != nil && len(ldmlCar.Eras.EraAbbr.Era) > 2 {
-// 					eras.AD.Abbrev = ldmlCar.Eras.EraAbbr.Era[2].Data()
-// 				}
-
-// 				if ldmlCar.Eras.EraNarrow != nil && len(ldmlCar.Eras.EraNarrow.Era) > 2 {
-// 					eras.AD.Narrow = ldmlCar.Eras.EraNarrow.Era[2].Data()
-// 				}
-
-// 				calendar.FormatNames.Eras = eras
-// 			}
-
-// 			calendars[loc] = calendar
-// 		}
-// 	}
-
-// 	for locale := range locs {
-
-// 		if !strings.Contains(locale, "_") {
-// 			continue
-// 		}
-
-// 		calendar := calendars[locale]
-
-// 		bString := strings.SplitN(locale, "_", 2)
-// 		base := bString[0]
-
-// 		baseCal := calendars[base]
-
-// 		// copy base calendar objects
-
-// 		// Dates
-// 		if calendar.Formats.DateEra.AD.Full == "" {
-// 			calendar.Formats.DateEra.BC.Full = baseCal.Formats.DateEra.BC.Full
-// 			calendar.Formats.DateEra.AD.Full = baseCal.Formats.DateEra.AD.Full
-// 		}
-
-// 		if calendar.Formats.DateEra.AD.Long == "" {
-// 			calendar.Formats.DateEra.BC.Long = baseCal.Formats.DateEra.BC.Long
-// 			calendar.Formats.DateEra.AD.Long = baseCal.Formats.DateEra.AD.Long
-// 		}
-
-// 		if calendar.Formats.DateEra.AD.Medium == "" {
-// 			calendar.Formats.DateEra.BC.Medium = baseCal.Formats.DateEra.BC.Medium
-// 			calendar.Formats.DateEra.AD.Medium = baseCal.Formats.DateEra.AD.Medium
-// 		}
+			func init() {
+				ut.RegisterLocale(locale)
+			}
+		`, locale, locale)))
 
-// 		if calendar.Formats.DateEra.AD.Short == "" {
-// 			calendar.Formats.DateEra.BC.Short = baseCal.Formats.DateEra.BC.Short
-// 			calendar.Formats.DateEra.AD.Short = baseCal.Formats.DateEra.AD.Short
-// 		}
-
-// 		// times
-// 		if calendar.Formats.Time.Full == "" {
-// 			calendar.Formats.Time.Full = baseCal.Formats.Time.Full
-// 		}
-
-// 		if calendar.Formats.Time.Long == "" {
-// 			calendar.Formats.Time.Long = baseCal.Formats.Time.Long
-// 		}
-
-// 		if calendar.Formats.Time.Medium == "" {
-// 			calendar.Formats.Time.Medium = baseCal.Formats.Time.Medium
-// 		}
-
-// 		if calendar.Formats.Time.Short == "" {
-// 			calendar.Formats.Time.Short = baseCal.Formats.Time.Short
-// 		}
-
-// 		// date & times
-// 		if calendar.Formats.DateTime.Full == "" {
-// 			calendar.Formats.DateTime.Full = baseCal.Formats.DateTime.Full
-// 		}
+			if err != nil {
+				panic(err)
+			}
 
-// 		if calendar.Formats.DateTime.Long == "" {
-// 			calendar.Formats.DateTime.Long = baseCal.Formats.DateTime.Long
-// 		}
+			fmt.Fprintf(mainFile, "%s", mainCodes)
 
-// 		if calendar.Formats.DateTime.Medium == "" {
-// 			calendar.Formats.DateTime.Medium = baseCal.Formats.DateTime.Medium
-// 		}
+			numberFile, err := os.Create(path + "number.go")
+			if err != nil {
+				panic(err)
+			}
+			defer numberFile.Close()
+
+			numberCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
+			import "github.com/go-playground/universal-translator"
+			var (
+				symbols = %#v
+				formats = %#v
+			)
+		`, locale, number.Symbols, number.Formats)))
+			if err != nil {
+				panic(err)
+			}
+			fmt.Fprintf(numberFile, "%s", numberCodes)
 
-// 		if calendar.Formats.DateTime.Short == "" {
-// 			calendar.Formats.DateTime.Short = baseCal.Formats.DateTime.Short
-// 		}
+			currencyFile, err := os.Create(path + "currency.go")
+			if err != nil {
+				panic(err)
+			}
+			defer currencyFile.Close()
+
+			currencyCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
+			import "github.com/go-playground/universal-translator"
+			var currencies = %# v
+		`, locale, number.Currencies)))
+			if err != nil {
+				panic(err)
+			}
+			fmt.Fprintf(currencyFile, "%s", currencyCodes)
 
-// 		// months
+			calendarFile, err := os.Create(path + "calendar.go")
+			if err != nil {
+				panic(err)
+			}
+			defer calendarFile.Close()
+
+			calendarCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
+			import "github.com/go-playground/universal-translator"
+			var calendar = %#v
+		`, locale, calendar)))
+			if err != nil {
+				panic(err)
+			}
+			fmt.Fprintf(calendarFile, "%s", calendarCodes)
 
-// 		if calendar.FormatNames.Months.Abbreviated == nil {
-// 			calendar.FormatNames.Months.Abbreviated = make(i18n.CalendarMonthFormatNameValue)
-// 		}
+			var ok bool
+			pluralCode := "1"
 
-// 		if calendar.FormatNames.Months.Narrow == nil {
-// 			calendar.FormatNames.Months.Narrow = make(i18n.CalendarMonthFormatNameValue)
-// 		}
+			pInfo, ok := plurals[localeLowercase]
+			if ok && pInfo.plural != "" {
+				pluralCode = pInfo.plural
+			}
 
-// 		if calendar.FormatNames.Months.Short == nil {
-// 			calendar.FormatNames.Months.Short = make(i18n.CalendarMonthFormatNameValue)
-// 		}
+			pluralFile, err := os.Create(path + "plural.go")
+			if err != nil {
+				panic(err)
+			}
+			defer pluralFile.Close()
 
-// 		if calendar.FormatNames.Months.Wide == nil {
-// 			calendar.FormatNames.Months.Wide = make(i18n.CalendarMonthFormatNameValue)
-// 		}
+			pluralCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
 
-// 		for k, v := range baseCal.FormatNames.Months.Abbreviated {
+			var pluralRule = %q
+		`, locale, pluralCode)))
+			if err != nil {
+				panic(err)
+			}
+			fmt.Fprintf(pluralFile, "%s", pluralCodes)
+		}(locale, number)
+	}
 
-// 			val, ok := calendar.FormatNames.Months.Abbreviated[k]
-// 			if !ok {
-// 				calendar.FormatNames.Months.Abbreviated[k] = v
-// 				continue
-// 			}
+	wg.Wait()
 
-// 			if val == "" {
-// 				calendar.FormatNames.Months.Abbreviated[k] = v
-// 			}
-// 		}
+	localesFile, err := os.Create("../../resources/locales/all.go")
+	if err != nil {
+		panic(err)
+	}
+	defer localesFile.Close()
+
+	tmpl, err := template.New("").Parse(`package locales
 
-// 		for k, v := range baseCal.FormatNames.Months.Narrow {
-
-// 			val, ok := calendar.FormatNames.Months.Narrow[k]
-// 			if !ok {
-// 				calendar.FormatNames.Months.Narrow[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Months.Narrow[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Months.Short {
-
-// 			val, ok := calendar.FormatNames.Months.Short[k]
-// 			if !ok {
-// 				calendar.FormatNames.Months.Short[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Months.Short[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Months.Wide {
-
-// 			val, ok := calendar.FormatNames.Months.Wide[k]
-// 			if !ok {
-// 				calendar.FormatNames.Months.Wide[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Months.Wide[k] = v
-// 			}
-// 		}
-
-// 		// days
-
-// 		if calendar.FormatNames.Days.Abbreviated == nil {
-// 			calendar.FormatNames.Days.Abbreviated = make(i18n.CalendarDayFormatNameValue)
-// 		}
-
-// 		if calendar.FormatNames.Days.Narrow == nil {
-// 			calendar.FormatNames.Days.Narrow = make(i18n.CalendarDayFormatNameValue)
-// 		}
-
-// 		if calendar.FormatNames.Days.Short == nil {
-// 			calendar.FormatNames.Days.Short = make(i18n.CalendarDayFormatNameValue)
-// 		}
-
-// 		if calendar.FormatNames.Days.Wide == nil {
-// 			calendar.FormatNames.Days.Wide = make(i18n.CalendarDayFormatNameValue)
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Days.Abbreviated {
-
-// 			val, ok := calendar.FormatNames.Days.Abbreviated[k]
-// 			if !ok {
-// 				calendar.FormatNames.Days.Abbreviated[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Days.Abbreviated[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Days.Narrow {
-
-// 			val, ok := calendar.FormatNames.Days.Narrow[k]
-// 			if !ok {
-// 				calendar.FormatNames.Days.Narrow[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Days.Narrow[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Days.Short {
-
-// 			val, ok := calendar.FormatNames.Days.Short[k]
-// 			if !ok {
-// 				calendar.FormatNames.Days.Short[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Days.Short[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Days.Wide {
-
-// 			val, ok := calendar.FormatNames.Days.Wide[k]
-// 			if !ok {
-// 				calendar.FormatNames.Days.Wide[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Days.Wide[k] = v
-// 			}
-// 		}
-
-// 		// periods
-// 		if calendar.FormatNames.Periods.Abbreviated == nil {
-// 			calendar.FormatNames.Periods.Abbreviated = make(i18n.CalendarPeriodFormatNameValue)
-// 		}
-
-// 		if calendar.FormatNames.Periods.Narrow == nil {
-// 			calendar.FormatNames.Periods.Narrow = make(i18n.CalendarPeriodFormatNameValue)
-// 		}
-
-// 		if calendar.FormatNames.Periods.Short == nil {
-// 			calendar.FormatNames.Periods.Short = make(i18n.CalendarPeriodFormatNameValue)
-// 		}
-
-// 		if calendar.FormatNames.Periods.Wide == nil {
-// 			calendar.FormatNames.Periods.Wide = make(i18n.CalendarPeriodFormatNameValue)
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Periods.Abbreviated {
-
-// 			val, ok := calendar.FormatNames.Periods.Abbreviated[k]
-// 			if !ok {
-// 				calendar.FormatNames.Periods.Abbreviated[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Periods.Abbreviated[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Periods.Narrow {
-
-// 			val, ok := calendar.FormatNames.Periods.Narrow[k]
-// 			if !ok {
-// 				calendar.FormatNames.Periods.Narrow[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Periods.Narrow[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Periods.Short {
-
-// 			val, ok := calendar.FormatNames.Periods.Short[k]
-// 			if !ok {
-// 				calendar.FormatNames.Periods.Short[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Periods.Short[k] = v
-// 			}
-// 		}
-
-// 		for k, v := range baseCal.FormatNames.Periods.Wide {
-
-// 			val, ok := calendar.FormatNames.Periods.Wide[k]
-// 			if !ok {
-// 				calendar.FormatNames.Periods.Wide[k] = v
-// 				continue
-// 			}
-
-// 			if val == "" {
-// 				calendar.FormatNames.Periods.Wide[k] = v
-// 			}
-// 		}
+		// Imports for all locales
+		import (
+			{{range $locale, $_ := .}}// Locale "{{$locale}}" import that automatically registers itslef with the universal-translator package
+			_ "github.com/go-playground/universal-translator/resources/locales/{{$locale}}"
+		{{end}})
+	`)
 
-// 		calendars[locale] = calendar
-
-// 		number := numbers[locale]
-// 		baseNum := numbers[base]
-
-// 		// symbols
-// 		if number.Symbols.Decimal == "" {
-// 			number.Symbols.Decimal = baseNum.Symbols.Decimal
-// 		}
-
-// 		if number.Symbols.Group == "" {
-// 			number.Symbols.Group = baseNum.Symbols.Group
-// 		}
-
-// 		if number.Symbols.Negative == "" {
-// 			number.Symbols.Negative = baseNum.Symbols.Negative
-// 		}
-
-// 		if number.Symbols.Percent == "" {
-// 			number.Symbols.Percent = baseNum.Symbols.Percent
-// 		}
-
-// 		if number.Symbols.PerMille == "" {
-// 			number.Symbols.PerMille = baseNum.Symbols.PerMille
-// 		}
-
-// 		// formats
-// 		if number.Formats.Decimal == "" {
-// 			number.Formats.Decimal = baseNum.Formats.Decimal
-// 		}
-
-// 		if number.Formats.Currency == "" {
-// 			number.Formats.Currency = baseNum.Formats.Currency
-// 		}
-
-// 		if number.Formats.CurrencyAccounting == "" {
-// 			number.Formats.CurrencyAccounting = baseNum.Formats.CurrencyAccounting
-// 		}
-
-// 		if number.Formats.Percent == "" {
-// 			number.Formats.Percent = baseNum.Formats.Percent
-// 		}
-
-// 		// currency
-// 		for k, v := range baseNum.Currencies {
-
-// 			val, ok := number.Currencies[k]
-// 			if !ok {
-// 				// number.Currencies[k] = v
-// 				continue
-// 			}
-
-// 			if val.Currency == "" {
-// 				val.Currency = v.Currency
-// 			}
-
-// 			if val.DisplayName == "" {
-// 				val.DisplayName = v.DisplayName
-// 			}
-
-// 			if val.Symbol == "" {
-// 				val.Symbol = v.Symbol
-// 			}
-
-// 			number.Currencies[k] = val
-// 		}
-
-// 		numbers[locale] = number
-// 	}
-
-// 	var wg sync.WaitGroup
-// 	wg.Add(len(numbers))
-// 	for locale, number := range numbers {
-// 		go func(locale string, number i18n.Number) {
-
-// 			localeLowercase := strings.ToLower(locale)
-
-// 			defer func() { wg.Done() }()
-// 			path := "../../resources/locales/" + locale
-
-// 			if _, err := os.Stat(path); err != nil {
-// 				if err = os.MkdirAll(path, 0777); err != nil {
-// 					panic(err)
-// 				}
-// 			}
-
-// 			path += "/"
-
-// 			mainFile, err := os.Create(path + "main.go")
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			defer mainFile.Close()
-
-// 			calendar := calendars[locale]
-
-// 			mainCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
-// 			import "github.com/go-playground/universal-translator"
-
-// 			var locale = &ut.Locale{
-// 				Locale: %q,
-// 				Number: ut.Number{
-// 					Symbols: symbols,
-// 					Formats: formats,
-// 					Currencies: currencies,
-// 				},
-// 				Calendar: calendar,
-// 				PluralRule:   pluralRule,
-// 			}
-
-// 			func init() {
-// 				ut.RegisterLocale(locale)
-// 			}
-// 		`, locale, locale)))
-
-// 			if err != nil {
-// 				panic(err)
-// 			}
-
-// 			fmt.Fprintf(mainFile, "%s", mainCodes)
-
-// 			numberFile, err := os.Create(path + "number.go")
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			defer numberFile.Close()
-
-// 			numberCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
-// 			import "github.com/go-playground/universal-translator"
-// 			var (
-// 				symbols = %#v
-// 				formats = %#v
-// 			)
-// 		`, locale, number.Symbols, number.Formats)))
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			fmt.Fprintf(numberFile, "%s", numberCodes)
-
-// 			currencyFile, err := os.Create(path + "currency.go")
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			defer currencyFile.Close()
-
-// 			currencyCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
-// 			import "github.com/go-playground/universal-translator"
-// 			var currencies = %# v
-// 		`, locale, number.Currencies)))
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			fmt.Fprintf(currencyFile, "%s", currencyCodes)
-
-// 			calendarFile, err := os.Create(path + "calendar.go")
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			defer calendarFile.Close()
-
-// 			calendarCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
-// 			import "github.com/go-playground/universal-translator"
-// 			var calendar = %#v
-// 		`, locale, calendar)))
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			fmt.Fprintf(calendarFile, "%s", calendarCodes)
-
-// 			var ok bool
-// 			pluralCode := "1"
-
-// 			pInfo, ok := plurals[localeLowercase]
-// 			if ok && pInfo.plural != "" {
-// 				pluralCode = pInfo.plural
-// 			}
-
-// 			pluralFile, err := os.Create(path + "plural.go")
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			defer pluralFile.Close()
-
-// 			pluralCodes, err := format.Source([]byte(fmt.Sprintf(`package %s
-
-// 			var pluralRule = %q
-// 		`, locale, pluralCode)))
-// 			if err != nil {
-// 				panic(err)
-// 			}
-// 			fmt.Fprintf(pluralFile, "%s", pluralCodes)
-// 		}(locale, number)
-// 	}
-
-// 	wg.Wait()
-
-// 	localesFile, err := os.Create("../../resources/locales/all.go")
-// 	if err != nil {
-// 		panic(err)
-// 	}
-// 	defer localesFile.Close()
-
-// 	tmpl, err := template.New("").Parse(`package locales
-
-// 		// Imports for all locales
-// 		import (
-// 			{{range $locale, $_ := .}}// Locale "{{$locale}}" import that automatically registers itslef with the universal-translator package
-// 			_ "github.com/go-playground/universal-translator/resources/locales/{{$locale}}"
-// 		{{end}})
-// 	`)
-
-// 	if err != nil {
-// 		panic(err)
-// 	}
-// 	var buf bytes.Buffer
-// 	if err := tmpl.Execute(&buf, locs); err != nil {
-// 		panic(err)
-// 	}
-// 	allCodes, err := format.Source(buf.Bytes())
-// 	if err != nil {
-// 		panic(err)
-// 	}
-// 	_, err = localesFile.Write(allCodes)
-// 	if err != nil {
-// 		panic(err)
-// 	}
-// }
+	if err != nil {
+		panic(err)
+	}
+	var buf bytes.Buffer
+	if err := tmpl.Execute(&buf, locs); err != nil {
+		panic(err)
+	}
+	allCodes, err := format.Source(buf.Bytes())
+	if err != nil {
+		panic(err)
+	}
+	_, err = localesFile.Write(allCodes)
+	if err != nil {
+		panic(err)
+	}
+}

+ 0 - 29
cmd/resources/translator.tmpl

@@ -1,29 +0,0 @@
-{{ define "translator" }}
-package {{ .Locale }}
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type {{ .Locale }} struct {
-	locale string
-}
-
-// New returns a new instance of translator for the '{{ .Locale }}' locale
-func New() locales.Translator {
-	return &{{ .Locale }}{
-		locale: "{{ .Locale }}",
-	}
-}
-
-// Locale returns the current translators string locale
-func(l *{{ .Locale }}) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func(l *{{ .Locale }}) CardinalPluralRule(num string) (locales.PluralRule, error) {
-	{{ .CardinalFunc }}
-}
-
-{{ end }}

+ 0 - 36
resources/locales/af/af.go

@@ -1,36 +0,0 @@
-package af
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type af struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'af' locale
-func New() locales.Translator {
-	return &af{
-		locale: "af",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *af) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *af) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 1 {
-		return locales.PluralRuleOne, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/af/calendar.go


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/af/currency.go


+ 18 - 0
resources/locales/af/main.go

@@ -0,0 +1,18 @@
+package af
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "af",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/af/number.go

@@ -0,0 +1,8 @@
+package af
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ",", Group: "\u00a0", Negative: "-", Percent: "%", PerMille: "‰"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤#,##0.00", CurrencyAccounting: "¤#,##0.00;(¤#,##0.00)", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/af/plural.go

@@ -0,0 +1,3 @@
+package af
+
+var pluralRule = "2A"

+ 0 - 36
resources/locales/af_NA/af_NA.go

@@ -1,36 +0,0 @@
-package af_NA
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type af_NA struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'af_NA' locale
-func New() locales.Translator {
-	return &af_NA{
-		locale: "af_NA",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *af_NA) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *af_NA) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 1 {
-		return locales.PluralRuleOne, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/af_NA/calendar.go


+ 5 - 0
resources/locales/af_NA/currency.go

@@ -0,0 +1,5 @@
+package af_NA
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{"NAD": ut.Currency{Currency: "NAD", DisplayName: "Namibiese dollar", Symbol: "$"}}

+ 18 - 0
resources/locales/af_NA/main.go

@@ -0,0 +1,18 @@
+package af_NA
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "af_NA",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/af_NA/number.go

@@ -0,0 +1,8 @@
+package af_NA
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ",", Group: "\u00a0", Negative: "-", Percent: "%", PerMille: "‰"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤#,##0.00", CurrencyAccounting: "¤#,##0.00;(¤#,##0.00)", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/af_NA/plural.go

@@ -0,0 +1,3 @@
+package af_NA
+
+var pluralRule = "1"

+ 0 - 36
resources/locales/af_ZA/af_ZA.go

@@ -1,36 +0,0 @@
-package af_ZA
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type af_ZA struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'af_ZA' locale
-func New() locales.Translator {
-	return &af_ZA{
-		locale: "af_ZA",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *af_ZA) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *af_ZA) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 1 {
-		return locales.PluralRuleOne, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 26
resources/locales/agq/agq.go

@@ -1,26 +0,0 @@
-package agq
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type agq struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'agq' locale
-func New() locales.Translator {
-	return &agq{
-		locale: "agq",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *agq) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *agq) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/agq/calendar.go


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/agq/currency.go


+ 18 - 0
resources/locales/agq/main.go

@@ -0,0 +1,18 @@
+package agq
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "agq",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/agq/number.go

@@ -0,0 +1,8 @@
+package agq
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ",", Group: "\u00a0", Negative: "", Percent: "", PerMille: ""}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "#,##0.00¤", CurrencyAccounting: "#,##0.00¤", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/agq/plural.go

@@ -0,0 +1,3 @@
+package agq
+
+var pluralRule = "1"

+ 0 - 26
resources/locales/agq_CM/agq_CM.go

@@ -1,26 +0,0 @@
-package agq_CM
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type agq_CM struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'agq_CM' locale
-func New() locales.Translator {
-	return &agq_CM{
-		locale: "agq_CM",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *agq_CM) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *agq_CM) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-}

+ 0 - 36
resources/locales/ak/ak.go

@@ -1,36 +0,0 @@
-package ak
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ak struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ak' locale
-func New() locales.Translator {
-	return &ak{
-		locale: "ak",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ak) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ak) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n >= 0 && n <= 1 {
-		return locales.PluralRuleOne, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 5 - 0
resources/locales/ak/calendar.go

@@ -0,0 +1,5 @@
+package ak
+
+import "github.com/go-playground/universal-translator"
+
+var calendar = ut.Calendar{Formats: ut.CalendarFormats{DateEra: ut.DateEra{BC: ut.CalendarDateFormat{Full: "EEEE, y MMMM dd", Long: "y MMMM d", Medium: "y MMM d", Short: "yy/MM/dd"}, AD: ut.CalendarDateFormat{Full: "EEEE, y MMMM dd", Long: "y MMMM d", Medium: "y MMM d", Short: "yy/MM/dd"}}, Time: ut.CalendarDateFormat{Full: "h:mm:ss a zzzz", Long: "h:mm:ss a z", Medium: "h:mm:ss a", Short: "h:mm a"}, DateTime: ut.CalendarDateFormat{Full: "", Long: "", Medium: "", Short: ""}}, FormatNames: ut.CalendarFormatNames{Months: ut.CalendarMonthFormatNames{Abbreviated: ut.CalendarMonthFormatNameValue{12: "M-Ɔ", 2: "K-Ɔ", 6: "O-A", 7: "A-K", 11: "Ɔ-O", 8: "D-Ɔ", 9: "F-Ɛ", 10: "Ɔ-A", 1: "S-Ɔ", 3: "E-Ɔ", 4: "E-O", 5: "E-K"}, Narrow: ut.CalendarMonthFormatNameValue(nil), Short: ut.CalendarMonthFormatNameValue(nil), Wide: ut.CalendarMonthFormatNameValue{12: "Mumu-Ɔpɛnimba", 1: "Sanda-Ɔpɛpɔn", 3: "Ebɔw-Ɔbenem", 4: "Ebɔbira-Oforisuo", 6: "Obirade-Ayɛwohomumu", 7: "Ayɛwoho-Kitawonsa", 9: "Fankwa-Ɛbɔ", 10: "Ɔbɛsɛ-Ahinime", 2: "Kwakwar-Ɔgyefuo", 5: "Esusow Aketseaba-Kɔtɔnimba", 8: "Difuu-Ɔsandaa", 11: "Ɔberɛfɛw-Obubuo"}}, Days: ut.CalendarDayFormatNames{Abbreviated: ut.CalendarDayFormatNameValue{1: "Dwo", 2: "Ben", 3: "Wuk", 4: "Yaw", 5: "Fia", 6: "Mem", 0: "Kwe"}, Narrow: ut.CalendarDayFormatNameValue{2: "B", 3: "W", 4: "Y", 5: "F", 6: "M", 0: "K", 1: "D"}, Short: ut.CalendarDayFormatNameValue(nil), Wide: ut.CalendarDayFormatNameValue{3: "Wukuda", 4: "Yawda", 5: "Fida", 6: "Memeneda", 0: "Kwesida", 1: "Dwowda", 2: "Benada"}}, Periods: ut.CalendarPeriodFormatNames{Abbreviated: ut.CalendarPeriodFormatNameValue{"pm": "EW", "am": "AN"}, Narrow: ut.CalendarPeriodFormatNameValue(nil), Short: ut.CalendarPeriodFormatNameValue(nil), Wide: ut.CalendarPeriodFormatNameValue{"am": "AN", "pm": "EW"}}, Eras: ut.Eras{AD: ut.CalendarEraFormatNames{Full: "", Abbrev: "", Narrow: ""}, BC: ut.CalendarEraFormatNames{Full: "Ansa Kristo", Abbrev: "AK", Narrow: ""}}}}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ak/currency.go


+ 18 - 0
resources/locales/ak/main.go

@@ -0,0 +1,18 @@
+package ak
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ak",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ak/number.go

@@ -0,0 +1,8 @@
+package ak
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ".", Group: ",", Negative: "", Percent: "", PerMille: ""}
+	formats = ut.NumberFormats{Decimal: "", Currency: "¤#,##0.00", CurrencyAccounting: "¤#,##0.00", Percent: ""}
+)

+ 3 - 0
resources/locales/ak/plural.go

@@ -0,0 +1,3 @@
+package ak
+
+var pluralRule = "2B"

+ 0 - 36
resources/locales/ak_GH/ak_GH.go

@@ -1,36 +0,0 @@
-package ak_GH
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ak_GH struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ak_GH' locale
-func New() locales.Translator {
-	return &ak_GH{
-		locale: "ak_GH",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ak_GH) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ak_GH) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n >= 0 && n <= 1 {
-		return locales.PluralRuleOne, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 813 - 0
resources/locales/all.go

@@ -0,0 +1,813 @@
+package locales
+
+// Imports for all locales
+import (
+	// Locale "af" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/af"
+	// Locale "af_NA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/af_NA"
+	// Locale "agq" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/agq"
+	// Locale "ak" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ak"
+	// Locale "am" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/am"
+	// Locale "ar" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar"
+	// Locale "ar_AE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_AE"
+	// Locale "ar_DJ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_DJ"
+	// Locale "ar_DZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_DZ"
+	// Locale "ar_EH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_EH"
+	// Locale "ar_ER" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_ER"
+	// Locale "ar_LB" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_LB"
+	// Locale "ar_LY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_LY"
+	// Locale "ar_MA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_MA"
+	// Locale "ar_MR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_MR"
+	// Locale "ar_SO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_SO"
+	// Locale "ar_SS" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_SS"
+	// Locale "ar_TN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ar_TN"
+	// Locale "as" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/as"
+	// Locale "asa" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/asa"
+	// Locale "ast" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ast"
+	// Locale "az" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/az"
+	// Locale "az_Cyrl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/az_Cyrl"
+	// Locale "bas" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bas"
+	// Locale "be" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/be"
+	// Locale "bem" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bem"
+	// Locale "bez" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bez"
+	// Locale "bg" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bg"
+	// Locale "bm" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bm"
+	// Locale "bn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bn"
+	// Locale "bo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bo"
+	// Locale "bo_IN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bo_IN"
+	// Locale "br" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/br"
+	// Locale "brx" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/brx"
+	// Locale "bs" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bs"
+	// Locale "bs_Cyrl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/bs_Cyrl"
+	// Locale "ca" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ca"
+	// Locale "ca_ES_VALENCIA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ca_ES_VALENCIA"
+	// Locale "ca_FR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ca_FR"
+	// Locale "ce" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ce"
+	// Locale "cgg" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/cgg"
+	// Locale "chr" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/chr"
+	// Locale "ckb" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ckb"
+	// Locale "cs" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/cs"
+	// Locale "cu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/cu"
+	// Locale "cy" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/cy"
+	// Locale "da" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/da"
+	// Locale "dav" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/dav"
+	// Locale "de" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/de"
+	// Locale "de_AT" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/de_AT"
+	// Locale "de_CH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/de_CH"
+	// Locale "de_LI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/de_LI"
+	// Locale "de_LU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/de_LU"
+	// Locale "dje" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/dje"
+	// Locale "dsb" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/dsb"
+	// Locale "dua" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/dua"
+	// Locale "dyo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/dyo"
+	// Locale "dz" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/dz"
+	// Locale "ebu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ebu"
+	// Locale "ee" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ee"
+	// Locale "el" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/el"
+	// Locale "en" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en"
+	// Locale "en_001" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_001"
+	// Locale "en_150" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_150"
+	// Locale "en_AG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_AG"
+	// Locale "en_AI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_AI"
+	// Locale "en_AT" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_AT"
+	// Locale "en_AU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_AU"
+	// Locale "en_BB" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_BB"
+	// Locale "en_BE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_BE"
+	// Locale "en_BI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_BI"
+	// Locale "en_BM" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_BM"
+	// Locale "en_BS" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_BS"
+	// Locale "en_BW" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_BW"
+	// Locale "en_BZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_BZ"
+	// Locale "en_CA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_CA"
+	// Locale "en_CC" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_CC"
+	// Locale "en_CH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_CH"
+	// Locale "en_CK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_CK"
+	// Locale "en_CX" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_CX"
+	// Locale "en_DE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_DE"
+	// Locale "en_DK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_DK"
+	// Locale "en_DM" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_DM"
+	// Locale "en_ER" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_ER"
+	// Locale "en_FI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_FI"
+	// Locale "en_FJ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_FJ"
+	// Locale "en_FK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_FK"
+	// Locale "en_GB" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_GB"
+	// Locale "en_GD" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_GD"
+	// Locale "en_GG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_GG"
+	// Locale "en_GH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_GH"
+	// Locale "en_GI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_GI"
+	// Locale "en_GM" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_GM"
+	// Locale "en_GY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_GY"
+	// Locale "en_IM" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_IM"
+	// Locale "en_IN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_IN"
+	// Locale "en_JE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_JE"
+	// Locale "en_JM" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_JM"
+	// Locale "en_KE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_KE"
+	// Locale "en_KI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_KI"
+	// Locale "en_KN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_KN"
+	// Locale "en_KY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_KY"
+	// Locale "en_LC" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_LC"
+	// Locale "en_LR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_LR"
+	// Locale "en_LS" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_LS"
+	// Locale "en_MG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_MG"
+	// Locale "en_MO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_MO"
+	// Locale "en_MS" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_MS"
+	// Locale "en_MT" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_MT"
+	// Locale "en_MU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_MU"
+	// Locale "en_MW" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_MW"
+	// Locale "en_MY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_MY"
+	// Locale "en_NA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_NA"
+	// Locale "en_NF" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_NF"
+	// Locale "en_NG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_NG"
+	// Locale "en_NL" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_NL"
+	// Locale "en_NR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_NR"
+	// Locale "en_NU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_NU"
+	// Locale "en_NZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_NZ"
+	// Locale "en_PG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_PG"
+	// Locale "en_PH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_PH"
+	// Locale "en_PK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_PK"
+	// Locale "en_PN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_PN"
+	// Locale "en_RW" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_RW"
+	// Locale "en_SB" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SB"
+	// Locale "en_SC" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SC"
+	// Locale "en_SE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SE"
+	// Locale "en_SG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SG"
+	// Locale "en_SH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SH"
+	// Locale "en_SI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SI"
+	// Locale "en_SL" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SL"
+	// Locale "en_SS" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SS"
+	// Locale "en_SX" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SX"
+	// Locale "en_SZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_SZ"
+	// Locale "en_TK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_TK"
+	// Locale "en_TO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_TO"
+	// Locale "en_TT" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_TT"
+	// Locale "en_TV" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_TV"
+	// Locale "en_TZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_TZ"
+	// Locale "en_UG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_UG"
+	// Locale "en_US_POSIX" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_US_POSIX"
+	// Locale "en_VC" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_VC"
+	// Locale "en_VU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_VU"
+	// Locale "en_WS" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_WS"
+	// Locale "en_ZA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_ZA"
+	// Locale "en_ZM" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/en_ZM"
+	// Locale "eo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/eo"
+	// Locale "es" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es"
+	// Locale "es_419" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_419"
+	// Locale "es_AR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_AR"
+	// Locale "es_BO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_BO"
+	// Locale "es_BR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_BR"
+	// Locale "es_CL" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_CL"
+	// Locale "es_CO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_CO"
+	// Locale "es_CR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_CR"
+	// Locale "es_CU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_CU"
+	// Locale "es_DO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_DO"
+	// Locale "es_EC" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_EC"
+	// Locale "es_GQ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_GQ"
+	// Locale "es_GT" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_GT"
+	// Locale "es_HN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_HN"
+	// Locale "es_MX" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_MX"
+	// Locale "es_NI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_NI"
+	// Locale "es_PA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_PA"
+	// Locale "es_PE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_PE"
+	// Locale "es_PH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_PH"
+	// Locale "es_PR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_PR"
+	// Locale "es_PY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_PY"
+	// Locale "es_SV" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_SV"
+	// Locale "es_US" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_US"
+	// Locale "es_UY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_UY"
+	// Locale "es_VE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/es_VE"
+	// Locale "et" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/et"
+	// Locale "eu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/eu"
+	// Locale "ewo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ewo"
+	// Locale "fa" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fa"
+	// Locale "fa_AF" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fa_AF"
+	// Locale "ff" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ff"
+	// Locale "ff_GN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ff_GN"
+	// Locale "ff_MR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ff_MR"
+	// Locale "fi" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fi"
+	// Locale "fil" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fil"
+	// Locale "fo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fo"
+	// Locale "fo_DK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fo_DK"
+	// Locale "fr" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr"
+	// Locale "fr_BE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_BE"
+	// Locale "fr_BI" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_BI"
+	// Locale "fr_CA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_CA"
+	// Locale "fr_CD" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_CD"
+	// Locale "fr_CH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_CH"
+	// Locale "fr_DJ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_DJ"
+	// Locale "fr_DZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_DZ"
+	// Locale "fr_GN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_GN"
+	// Locale "fr_HT" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_HT"
+	// Locale "fr_KM" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_KM"
+	// Locale "fr_LU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_LU"
+	// Locale "fr_MA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_MA"
+	// Locale "fr_MG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_MG"
+	// Locale "fr_MR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_MR"
+	// Locale "fr_MU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_MU"
+	// Locale "fr_RW" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_RW"
+	// Locale "fr_SC" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_SC"
+	// Locale "fr_SY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_SY"
+	// Locale "fr_TN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_TN"
+	// Locale "fr_VU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fr_VU"
+	// Locale "fur" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fur"
+	// Locale "fy" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/fy"
+	// Locale "ga" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ga"
+	// Locale "gd" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/gd"
+	// Locale "gl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/gl"
+	// Locale "gsw" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/gsw"
+	// Locale "gu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/gu"
+	// Locale "guz" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/guz"
+	// Locale "gv" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/gv"
+	// Locale "ha" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ha"
+	// Locale "ha_GH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ha_GH"
+	// Locale "haw" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/haw"
+	// Locale "he" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/he"
+	// Locale "hi" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/hi"
+	// Locale "hr" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/hr"
+	// Locale "hr_BA" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/hr_BA"
+	// Locale "hsb" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/hsb"
+	// Locale "hu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/hu"
+	// Locale "hy" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/hy"
+	// Locale "id" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/id"
+	// Locale "ig" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ig"
+	// Locale "ii" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ii"
+	// Locale "is" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/is"
+	// Locale "it" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/it"
+	// Locale "it_CH" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/it_CH"
+	// Locale "ja" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ja"
+	// Locale "jgo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/jgo"
+	// Locale "jmc" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/jmc"
+	// Locale "ka" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ka"
+	// Locale "kab" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kab"
+	// Locale "kam" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kam"
+	// Locale "kde" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kde"
+	// Locale "kea" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kea"
+	// Locale "khq" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/khq"
+	// Locale "ki" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ki"
+	// Locale "kk" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kk"
+	// Locale "kkj" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kkj"
+	// Locale "kl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kl"
+	// Locale "kln" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kln"
+	// Locale "km" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/km"
+	// Locale "kn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kn"
+	// Locale "ko" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ko"
+	// Locale "kok" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kok"
+	// Locale "ks" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ks"
+	// Locale "ksb" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ksb"
+	// Locale "ksf" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ksf"
+	// Locale "ksh" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ksh"
+	// Locale "kw" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/kw"
+	// Locale "ky" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ky"
+	// Locale "lag" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lag"
+	// Locale "lb" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lb"
+	// Locale "lg" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lg"
+	// Locale "lkt" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lkt"
+	// Locale "ln" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ln"
+	// Locale "ln_AO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ln_AO"
+	// Locale "lo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lo"
+	// Locale "lrc" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lrc"
+	// Locale "lt" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lt"
+	// Locale "lu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lu"
+	// Locale "luo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/luo"
+	// Locale "luy" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/luy"
+	// Locale "lv" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/lv"
+	// Locale "mas" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mas"
+	// Locale "mas_TZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mas_TZ"
+	// Locale "mer" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mer"
+	// Locale "mfe" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mfe"
+	// Locale "mg" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mg"
+	// Locale "mgh" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mgh"
+	// Locale "mgo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mgo"
+	// Locale "mk" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mk"
+	// Locale "ml" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ml"
+	// Locale "mn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mn"
+	// Locale "mr" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mr"
+	// Locale "ms" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ms"
+	// Locale "ms_BN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ms_BN"
+	// Locale "ms_SG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ms_SG"
+	// Locale "mt" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mt"
+	// Locale "mua" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mua"
+	// Locale "my" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/my"
+	// Locale "mzn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/mzn"
+	// Locale "naq" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/naq"
+	// Locale "nb" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nb"
+	// Locale "nd" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nd"
+	// Locale "ne" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ne"
+	// Locale "nl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nl"
+	// Locale "nl_AW" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nl_AW"
+	// Locale "nl_BE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nl_BE"
+	// Locale "nl_BQ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nl_BQ"
+	// Locale "nl_CW" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nl_CW"
+	// Locale "nl_SR" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nl_SR"
+	// Locale "nl_SX" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nl_SX"
+	// Locale "nmg" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nmg"
+	// Locale "nn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nn"
+	// Locale "nnh" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nnh"
+	// Locale "nus" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nus"
+	// Locale "nyn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/nyn"
+	// Locale "om" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/om"
+	// Locale "om_KE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/om_KE"
+	// Locale "or" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/or"
+	// Locale "os" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/os"
+	// Locale "os_RU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/os_RU"
+	// Locale "pa" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pa"
+	// Locale "pa_Arab" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pa_Arab"
+	// Locale "pl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pl"
+	// Locale "prg" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/prg"
+	// Locale "ps" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ps"
+	// Locale "pt" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt"
+	// Locale "pt_AO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt_AO"
+	// Locale "pt_CV" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt_CV"
+	// Locale "pt_LU" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt_LU"
+	// Locale "pt_MO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt_MO"
+	// Locale "pt_MZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt_MZ"
+	// Locale "pt_PT" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt_PT"
+	// Locale "pt_ST" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/pt_ST"
+	// Locale "qu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/qu"
+	// Locale "qu_BO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/qu_BO"
+	// Locale "qu_EC" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/qu_EC"
+	// Locale "rm" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/rm"
+	// Locale "rn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/rn"
+	// Locale "ro" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ro"
+	// Locale "ro_MD" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ro_MD"
+	// Locale "rof" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/rof"
+	// Locale "root" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/root"
+	// Locale "ru" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ru"
+	// Locale "ru_BY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ru_BY"
+	// Locale "ru_KG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ru_KG"
+	// Locale "ru_KZ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ru_KZ"
+	// Locale "ru_MD" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ru_MD"
+	// Locale "rw" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/rw"
+	// Locale "rwk" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/rwk"
+	// Locale "sah" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sah"
+	// Locale "saq" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/saq"
+	// Locale "sbp" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sbp"
+	// Locale "se" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/se"
+	// Locale "se_SE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/se_SE"
+	// Locale "seh" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/seh"
+	// Locale "ses" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ses"
+	// Locale "sg" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sg"
+	// Locale "shi" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/shi"
+	// Locale "shi_Latn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/shi_Latn"
+	// Locale "si" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/si"
+	// Locale "sk" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sk"
+	// Locale "sl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sl"
+	// Locale "smn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/smn"
+	// Locale "sn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sn"
+	// Locale "so" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/so"
+	// Locale "so_DJ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/so_DJ"
+	// Locale "so_ET" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/so_ET"
+	// Locale "so_KE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/so_KE"
+	// Locale "sq" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sq"
+	// Locale "sq_MK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sq_MK"
+	// Locale "sr" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sr"
+	// Locale "sr_Latn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sr_Latn"
+	// Locale "sv" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sv"
+	// Locale "sw" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sw"
+	// Locale "sw_CD" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sw_CD"
+	// Locale "sw_UG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/sw_UG"
+	// Locale "ta" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ta"
+	// Locale "ta_LK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ta_LK"
+	// Locale "ta_MY" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ta_MY"
+	// Locale "ta_SG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ta_SG"
+	// Locale "te" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/te"
+	// Locale "teo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/teo"
+	// Locale "teo_KE" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/teo_KE"
+	// Locale "th" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/th"
+	// Locale "ti" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ti"
+	// Locale "ti_ER" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ti_ER"
+	// Locale "tk" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/tk"
+	// Locale "to" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/to"
+	// Locale "tr" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/tr"
+	// Locale "twq" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/twq"
+	// Locale "tzm" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/tzm"
+	// Locale "ug" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ug"
+	// Locale "uk" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/uk"
+	// Locale "ur" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ur"
+	// Locale "ur_IN" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/ur_IN"
+	// Locale "uz" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/uz"
+	// Locale "uz_Arab" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/uz_Arab"
+	// Locale "uz_Cyrl" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/uz_Cyrl"
+	// Locale "vai" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/vai"
+	// Locale "vai_Latn" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/vai_Latn"
+	// Locale "vi" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/vi"
+	// Locale "vun" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/vun"
+	// Locale "wae" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/wae"
+	// Locale "xog" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/xog"
+	// Locale "yav" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/yav"
+	// Locale "yi" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/yi"
+	// Locale "yo" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/yo"
+	// Locale "yo_BJ" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/yo_BJ"
+	// Locale "yue" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/yue"
+	// Locale "zgh" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zgh"
+	// Locale "zh" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zh"
+	// Locale "zh_Hans_HK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zh_Hans_HK"
+	// Locale "zh_Hans_MO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zh_Hans_MO"
+	// Locale "zh_Hans_SG" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zh_Hans_SG"
+	// Locale "zh_Hant" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zh_Hant"
+	// Locale "zh_Hant_HK" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zh_Hant_HK"
+	// Locale "zh_Hant_MO" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zh_Hant_MO"
+	// Locale "zu" import that automatically registers itslef with the universal-translator package
+	_ "github.com/go-playground/universal-translator/resources/locales/zu"
+)

+ 0 - 41
resources/locales/am/am.go

@@ -1,41 +0,0 @@
-package am
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type am struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'am' locale
-func New() locales.Translator {
-	return &am{
-		locale: "am",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *am) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *am) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	i, err := locales.I(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if (i == 0) || (n == 1) {
-		return locales.PluralRuleOne, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/am/calendar.go


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/am/currency.go


+ 18 - 0
resources/locales/am/main.go

@@ -0,0 +1,18 @@
+package am
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "am",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/am/number.go

@@ -0,0 +1,8 @@
+package am
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ".", Group: ",", Negative: "-", Percent: "%", PerMille: "‰"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤#,##0.00", CurrencyAccounting: "¤#,##0.00;(¤#,##0.00)", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/am/plural.go

@@ -0,0 +1,3 @@
+package am
+
+var pluralRule = "2B"

+ 0 - 41
resources/locales/am_ET/am_ET.go

@@ -1,41 +0,0 @@
-package am_ET
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type am_ET struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'am_ET' locale
-func New() locales.Translator {
-	return &am_ET{
-		locale: "am_ET",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *am_ET) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *am_ET) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	i, err := locales.I(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if (i == 0) || (n == 1) {
-		return locales.PluralRuleOne, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar/ar.go

@@ -1,44 +0,0 @@
-package ar
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar' locale
-func New() locales.Translator {
-	return &ar{
-		locale: "ar",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar/calendar.go


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar/currency.go


+ 18 - 0
resources/locales/ar/main.go

@@ -0,0 +1,18 @@
+package ar
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar/number.go

@@ -0,0 +1,8 @@
+package ar
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: "٫", Group: "٬", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar/plural.go

@@ -0,0 +1,3 @@
+package ar
+
+var pluralRule = "6A"

+ 0 - 44
resources/locales/ar_001/ar_001.go

@@ -1,44 +0,0 @@
-package ar_001
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_001 struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_001' locale
-func New() locales.Translator {
-	return &ar_001{
-		locale: "ar_001",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_001) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_001) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_AE/ar_AE.go

@@ -1,44 +0,0 @@
-package ar_AE
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_AE struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_AE' locale
-func New() locales.Translator {
-	return &ar_AE{
-		locale: "ar_AE",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_AE) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_AE) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_AE/calendar.go


+ 5 - 0
resources/locales/ar_AE/currency.go

@@ -0,0 +1,5 @@
+package ar_AE
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{"BND": ut.Currency{Currency: "BND", DisplayName: "دولار بروناي", Symbol: "$"}}

+ 18 - 0
resources/locales/ar_AE/main.go

@@ -0,0 +1,18 @@
+package ar_AE
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_AE",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_AE/number.go

@@ -0,0 +1,8 @@
+package ar_AE
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: "٫", Group: "٬", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_AE/plural.go

@@ -0,0 +1,3 @@
+package ar_AE
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_BH/ar_BH.go

@@ -1,44 +0,0 @@
-package ar_BH
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_BH struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_BH' locale
-func New() locales.Translator {
-	return &ar_BH{
-		locale: "ar_BH",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_BH) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_BH) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_DJ/ar_DJ.go

@@ -1,44 +0,0 @@
-package ar_DJ
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_DJ struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_DJ' locale
-func New() locales.Translator {
-	return &ar_DJ{
-		locale: "ar_DJ",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_DJ) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_DJ) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_DJ/calendar.go


+ 5 - 0
resources/locales/ar_DJ/currency.go

@@ -0,0 +1,5 @@
+package ar_DJ
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{"DJF": ut.Currency{Currency: "DJF", DisplayName: "فرنك جيبوتي", Symbol: "Fdj"}}

+ 18 - 0
resources/locales/ar_DJ/main.go

@@ -0,0 +1,18 @@
+package ar_DJ
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_DJ",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_DJ/number.go

@@ -0,0 +1,8 @@
+package ar_DJ
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: "٫", Group: "٬", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_DJ/plural.go

@@ -0,0 +1,3 @@
+package ar_DJ
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_DZ/ar_DZ.go

@@ -1,44 +0,0 @@
-package ar_DZ
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_DZ struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_DZ' locale
-func New() locales.Translator {
-	return &ar_DZ{
-		locale: "ar_DZ",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_DZ) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_DZ) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_DZ/calendar.go


+ 5 - 0
resources/locales/ar_DZ/currency.go

@@ -0,0 +1,5 @@
+package ar_DZ
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{}

+ 18 - 0
resources/locales/ar_DZ/main.go

@@ -0,0 +1,18 @@
+package ar_DZ
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_DZ",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_DZ/number.go

@@ -0,0 +1,8 @@
+package ar_DZ
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ",", Group: ".", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_DZ/plural.go

@@ -0,0 +1,3 @@
+package ar_DZ
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_EG/ar_EG.go

@@ -1,44 +0,0 @@
-package ar_EG
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_EG struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_EG' locale
-func New() locales.Translator {
-	return &ar_EG{
-		locale: "ar_EG",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_EG) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_EG) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_EH/ar_EH.go

@@ -1,44 +0,0 @@
-package ar_EH
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_EH struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_EH' locale
-func New() locales.Translator {
-	return &ar_EH{
-		locale: "ar_EH",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_EH) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_EH) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_EH/calendar.go


+ 5 - 0
resources/locales/ar_EH/currency.go

@@ -0,0 +1,5 @@
+package ar_EH
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{}

+ 18 - 0
resources/locales/ar_EH/main.go

@@ -0,0 +1,18 @@
+package ar_EH
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_EH",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_EH/number.go

@@ -0,0 +1,8 @@
+package ar_EH
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: "٫", Group: "٬", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_EH/plural.go

@@ -0,0 +1,3 @@
+package ar_EH
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_ER/ar_ER.go

@@ -1,44 +0,0 @@
-package ar_ER
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_ER struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_ER' locale
-func New() locales.Translator {
-	return &ar_ER{
-		locale: "ar_ER",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_ER) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_ER) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_ER/calendar.go


+ 5 - 0
resources/locales/ar_ER/currency.go

@@ -0,0 +1,5 @@
+package ar_ER
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{"ERN": ut.Currency{Currency: "ERN", DisplayName: "ناكفا أريتري", Symbol: "Nfk"}}

+ 18 - 0
resources/locales/ar_ER/main.go

@@ -0,0 +1,18 @@
+package ar_ER
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_ER",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_ER/number.go

@@ -0,0 +1,8 @@
+package ar_ER
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: "٫", Group: "٬", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_ER/plural.go

@@ -0,0 +1,3 @@
+package ar_ER
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_IL/ar_IL.go

@@ -1,44 +0,0 @@
-package ar_IL
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_IL struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_IL' locale
-func New() locales.Translator {
-	return &ar_IL{
-		locale: "ar_IL",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_IL) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_IL) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_IQ/ar_IQ.go

@@ -1,44 +0,0 @@
-package ar_IQ
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_IQ struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_IQ' locale
-func New() locales.Translator {
-	return &ar_IQ{
-		locale: "ar_IQ",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_IQ) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_IQ) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_JO/ar_JO.go

@@ -1,44 +0,0 @@
-package ar_JO
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_JO struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_JO' locale
-func New() locales.Translator {
-	return &ar_JO{
-		locale: "ar_JO",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_JO) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_JO) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_KM/ar_KM.go

@@ -1,44 +0,0 @@
-package ar_KM
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_KM struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_KM' locale
-func New() locales.Translator {
-	return &ar_KM{
-		locale: "ar_KM",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_KM) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_KM) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_KW/ar_KW.go

@@ -1,44 +0,0 @@
-package ar_KW
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_KW struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_KW' locale
-func New() locales.Translator {
-	return &ar_KW{
-		locale: "ar_KW",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_KW) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_KW) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

+ 0 - 44
resources/locales/ar_LB/ar_LB.go

@@ -1,44 +0,0 @@
-package ar_LB
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_LB struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_LB' locale
-func New() locales.Translator {
-	return &ar_LB{
-		locale: "ar_LB",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_LB) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_LB) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_LB/calendar.go


+ 5 - 0
resources/locales/ar_LB/currency.go

@@ -0,0 +1,5 @@
+package ar_LB
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{"SDG": ut.Currency{Currency: "SDG", DisplayName: "جنيه سوداني", Symbol: "SDG"}}

+ 18 - 0
resources/locales/ar_LB/main.go

@@ -0,0 +1,18 @@
+package ar_LB
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_LB",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_LB/number.go

@@ -0,0 +1,8 @@
+package ar_LB
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ",", Group: ".", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_LB/plural.go

@@ -0,0 +1,3 @@
+package ar_LB
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_LY/ar_LY.go

@@ -1,44 +0,0 @@
-package ar_LY
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_LY struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_LY' locale
-func New() locales.Translator {
-	return &ar_LY{
-		locale: "ar_LY",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_LY) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_LY) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_LY/calendar.go


+ 5 - 0
resources/locales/ar_LY/currency.go

@@ -0,0 +1,5 @@
+package ar_LY
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{}

+ 18 - 0
resources/locales/ar_LY/main.go

@@ -0,0 +1,18 @@
+package ar_LY
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_LY",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_LY/number.go

@@ -0,0 +1,8 @@
+package ar_LY
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ",", Group: ".", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_LY/plural.go

@@ -0,0 +1,3 @@
+package ar_LY
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_MA/ar_MA.go

@@ -1,44 +0,0 @@
-package ar_MA
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_MA struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_MA' locale
-func New() locales.Translator {
-	return &ar_MA{
-		locale: "ar_MA",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_MA) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_MA) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 4 - 0
resources/locales/ar_MA/calendar.go


+ 5 - 0
resources/locales/ar_MA/currency.go

@@ -0,0 +1,5 @@
+package ar_MA
+
+import "github.com/go-playground/universal-translator"
+
+var currencies = ut.CurrencyFormatValue{}

+ 18 - 0
resources/locales/ar_MA/main.go

@@ -0,0 +1,18 @@
+package ar_MA
+
+import "github.com/go-playground/universal-translator"
+
+var locale = &ut.Locale{
+	Locale: "ar_MA",
+	Number: ut.Number{
+		Symbols:    symbols,
+		Formats:    formats,
+		Currencies: currencies,
+	},
+	Calendar:   calendar,
+	PluralRule: pluralRule,
+}
+
+func init() {
+	ut.RegisterLocale(locale)
+}

+ 8 - 0
resources/locales/ar_MA/number.go

@@ -0,0 +1,8 @@
+package ar_MA
+
+import "github.com/go-playground/universal-translator"
+
+var (
+	symbols = ut.Symbols{Decimal: ",", Group: ".", Negative: "\u200f-", Percent: "٪", PerMille: "؉"}
+	formats = ut.NumberFormats{Decimal: "#,##0.###", Currency: "¤\u00a0#,##0.00", CurrencyAccounting: "¤\u00a0#,##0.00", Percent: "#,##0%"}
+)

+ 3 - 0
resources/locales/ar_MA/plural.go

@@ -0,0 +1,3 @@
+package ar_MA
+
+var pluralRule = "1"

+ 0 - 44
resources/locales/ar_MR/ar_MR.go

@@ -1,44 +0,0 @@
-package ar_MR
-
-import (
-	"github.com/go-playground/universal-translator/resources/locales"
-)
-
-type ar_MR struct {
-	locale string
-}
-
-// New returns a new instance of translator for the 'ar_MR' locale
-func New() locales.Translator {
-	return &ar_MR{
-		locale: "ar_MR",
-	}
-}
-
-// Locale returns the current translators string locale
-func (l *ar_MR) Locale() string {
-	return l.locale
-}
-
-// CardinalPluralRule returns the PluralRule given 'num'
-func (l *ar_MR) CardinalPluralRule(num string) (locales.PluralRule, error) {
-
-	n, err := locales.N(num)
-	if err != nil {
-		return locales.PluralRuleUnknown, &locales.ErrBadNumberValue{NumberValue: num, InnerError: err}
-	}
-
-	if n == 0 {
-		return locales.PluralRuleZero, nil
-	} else if n == 1 {
-		return locales.PluralRuleOne, nil
-	} else if n == 2 {
-		return locales.PluralRuleTwo, nil
-	} else if n%100 >= 3 && n%100 <= 10 {
-		return locales.PluralRuleFew, nil
-	} else if n%100 >= 11 && n%100 <= 99 {
-		return locales.PluralRuleMany, nil
-	}
-
-	return locales.PluralRuleOther, nil
-}

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio