Sfoglia il codice sorgente

add locale map generation for external mapping of locale to instance function.

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

File diff suppressed because it is too large
+ 0 - 0
af/af.go


File diff suppressed because it is too large
+ 0 - 0
af_NA/af_NA.go


File diff suppressed because it is too large
+ 0 - 0
af_ZA/af_ZA.go


File diff suppressed because it is too large
+ 0 - 0
agq/agq.go


File diff suppressed because it is too large
+ 0 - 0
agq_CM/agq_CM.go


File diff suppressed because it is too large
+ 0 - 0
ak/ak.go


File diff suppressed because it is too large
+ 0 - 0
ak_GH/ak_GH.go


File diff suppressed because it is too large
+ 0 - 0
am/am.go


File diff suppressed because it is too large
+ 0 - 0
am_ET/am_ET.go


File diff suppressed because it is too large
+ 0 - 0
ar/ar.go


File diff suppressed because it is too large
+ 0 - 0
ar_001/ar_001.go


File diff suppressed because it is too large
+ 0 - 0
ar_AE/ar_AE.go


File diff suppressed because it is too large
+ 0 - 0
ar_BH/ar_BH.go


File diff suppressed because it is too large
+ 0 - 0
ar_DJ/ar_DJ.go


File diff suppressed because it is too large
+ 0 - 0
ar_DZ/ar_DZ.go


File diff suppressed because it is too large
+ 0 - 0
ar_EG/ar_EG.go


File diff suppressed because it is too large
+ 0 - 0
ar_EH/ar_EH.go


File diff suppressed because it is too large
+ 0 - 0
ar_ER/ar_ER.go


File diff suppressed because it is too large
+ 0 - 0
ar_IL/ar_IL.go


File diff suppressed because it is too large
+ 0 - 0
ar_IQ/ar_IQ.go


File diff suppressed because it is too large
+ 0 - 0
ar_JO/ar_JO.go


File diff suppressed because it is too large
+ 0 - 0
ar_KM/ar_KM.go


File diff suppressed because it is too large
+ 0 - 0
ar_KW/ar_KW.go


File diff suppressed because it is too large
+ 0 - 0
ar_LB/ar_LB.go


File diff suppressed because it is too large
+ 0 - 0
ar_LY/ar_LY.go


File diff suppressed because it is too large
+ 0 - 0
ar_MA/ar_MA.go


File diff suppressed because it is too large
+ 0 - 0
ar_MR/ar_MR.go


File diff suppressed because it is too large
+ 0 - 0
ar_OM/ar_OM.go


File diff suppressed because it is too large
+ 0 - 0
ar_PS/ar_PS.go


File diff suppressed because it is too large
+ 0 - 0
ar_QA/ar_QA.go


File diff suppressed because it is too large
+ 0 - 0
ar_SA/ar_SA.go


File diff suppressed because it is too large
+ 0 - 0
ar_SD/ar_SD.go


File diff suppressed because it is too large
+ 0 - 0
ar_SO/ar_SO.go


File diff suppressed because it is too large
+ 0 - 0
ar_SS/ar_SS.go


File diff suppressed because it is too large
+ 0 - 0
ar_SY/ar_SY.go


File diff suppressed because it is too large
+ 0 - 0
ar_TD/ar_TD.go


File diff suppressed because it is too large
+ 0 - 0
ar_TN/ar_TN.go


File diff suppressed because it is too large
+ 0 - 0
ar_YE/ar_YE.go


File diff suppressed because it is too large
+ 0 - 0
as/as.go


File diff suppressed because it is too large
+ 0 - 0
as_IN/as_IN.go


File diff suppressed because it is too large
+ 0 - 0
asa/asa.go


File diff suppressed because it is too large
+ 0 - 0
asa_TZ/asa_TZ.go


File diff suppressed because it is too large
+ 0 - 0
ast/ast.go


File diff suppressed because it is too large
+ 0 - 0
ast_ES/ast_ES.go


File diff suppressed because it is too large
+ 0 - 0
az/az.go


File diff suppressed because it is too large
+ 0 - 0
az_Cyrl/az_Cyrl.go


File diff suppressed because it is too large
+ 0 - 0
az_Cyrl_AZ/az_Cyrl_AZ.go


File diff suppressed because it is too large
+ 0 - 0
az_Latn/az_Latn.go


File diff suppressed because it is too large
+ 0 - 0
az_Latn_AZ/az_Latn_AZ.go


File diff suppressed because it is too large
+ 0 - 0
bas/bas.go


File diff suppressed because it is too large
+ 0 - 0
bas_CM/bas_CM.go


File diff suppressed because it is too large
+ 0 - 0
be/be.go


File diff suppressed because it is too large
+ 0 - 0
be_BY/be_BY.go


File diff suppressed because it is too large
+ 0 - 0
bem/bem.go


File diff suppressed because it is too large
+ 0 - 0
bem_ZM/bem_ZM.go


File diff suppressed because it is too large
+ 0 - 0
bez/bez.go


File diff suppressed because it is too large
+ 0 - 0
bez_TZ/bez_TZ.go


File diff suppressed because it is too large
+ 0 - 0
bg/bg.go


File diff suppressed because it is too large
+ 0 - 0
bg_BG/bg_BG.go


File diff suppressed because it is too large
+ 0 - 0
bm/bm.go


File diff suppressed because it is too large
+ 0 - 0
bm_ML/bm_ML.go


File diff suppressed because it is too large
+ 0 - 0
bn/bn.go


File diff suppressed because it is too large
+ 0 - 0
bn_BD/bn_BD.go


File diff suppressed because it is too large
+ 0 - 0
bn_IN/bn_IN.go


File diff suppressed because it is too large
+ 0 - 0
bo/bo.go


File diff suppressed because it is too large
+ 0 - 0
bo_CN/bo_CN.go


File diff suppressed because it is too large
+ 0 - 0
bo_IN/bo_IN.go


File diff suppressed because it is too large
+ 0 - 0
br/br.go


File diff suppressed because it is too large
+ 0 - 0
br_FR/br_FR.go


File diff suppressed because it is too large
+ 0 - 0
brx/brx.go


File diff suppressed because it is too large
+ 0 - 0
brx_IN/brx_IN.go


File diff suppressed because it is too large
+ 0 - 0
bs/bs.go


File diff suppressed because it is too large
+ 0 - 0
bs_Cyrl/bs_Cyrl.go


File diff suppressed because it is too large
+ 0 - 0
bs_Cyrl_BA/bs_Cyrl_BA.go


File diff suppressed because it is too large
+ 0 - 0
bs_Latn/bs_Latn.go


File diff suppressed because it is too large
+ 0 - 0
bs_Latn_BA/bs_Latn_BA.go


File diff suppressed because it is too large
+ 0 - 0
ca/ca.go


File diff suppressed because it is too large
+ 0 - 0
ca_AD/ca_AD.go


File diff suppressed because it is too large
+ 0 - 0
ca_ES/ca_ES.go


File diff suppressed because it is too large
+ 0 - 0
ca_ES_VALENCIA/ca_ES_VALENCIA.go


File diff suppressed because it is too large
+ 0 - 0
ca_FR/ca_FR.go


File diff suppressed because it is too large
+ 0 - 0
ca_IT/ca_IT.go


File diff suppressed because it is too large
+ 0 - 0
ce/ce.go


File diff suppressed because it is too large
+ 0 - 0
ce_RU/ce_RU.go


File diff suppressed because it is too large
+ 0 - 0
cgg/cgg.go


File diff suppressed because it is too large
+ 0 - 0
cgg_UG/cgg_UG.go


File diff suppressed because it is too large
+ 0 - 0
chr/chr.go


File diff suppressed because it is too large
+ 0 - 0
chr_US/chr_US.go


File diff suppressed because it is too large
+ 0 - 0
ckb/ckb.go


File diff suppressed because it is too large
+ 0 - 0
ckb_IQ/ckb_IQ.go


File diff suppressed because it is too large
+ 0 - 0
ckb_IR/ckb_IR.go


+ 36 - 0
cmd/generate_resources.go

@@ -216,8 +216,13 @@ func main() {
 		log.Panic(err)
 	}
 
+	var locMap string
+
 	for _, trans := range translators {
 
+		locMap += `"` + trans.Locale + `" : ` + trans.Locale + `.New,
+`
+
 		fmt.Println("Writing Data:", trans.Locale)
 
 		if err = os.MkdirAll(fmt.Sprintf(locDir, trans.Locale), 0777); err != nil {
@@ -250,6 +255,37 @@ func main() {
 			log.Panic(err)
 		}
 	}
+
+	fmt.Println("Writing final locale map")
+
+	if err = os.MkdirAll(fmt.Sprintf(locDir, "locales-list"), 0777); err != nil {
+		log.Fatal(err)
+	}
+
+	filename = fmt.Sprintf(locFilename, "locales-list", "locales")
+
+	output, err = os.Create(filename)
+	if err != nil {
+		log.Fatal(err)
+	}
+	defer output.Close()
+
+	if err := tmpl.ExecuteTemplate(output, "localeslist", locMap); err != nil {
+		log.Fatal(err)
+	}
+
+	output.Close()
+
+	// after file written run gofmt on file to ensure best formatting
+	cmd = exec.Command("goimports", "-w", filename)
+	if err = cmd.Run(); err != nil {
+		log.Panic(err)
+	}
+
+	cmd = exec.Command("gofmt", "-s", "-w", filename)
+	if err = cmd.Run(); err != nil {
+		log.Panic(err)
+	}
 }
 
 func postProcess(cldr *cldr.CLDR) {

+ 34 - 0
cmd/locale_map.tmpl

@@ -0,0 +1,34 @@
+{{ define "localeslist" }}
+package localeslist
+
+import (
+	"sync"
+)
+
+// LocaleFunc is the function to run in order to create
+// a new instance of a given locale
+type LocaleFunc func() locales.Translator
+
+// LocaleMap is map of locale string to instance function
+type LocaleMap map[string]LocaleFunc
+
+
+var (
+	once 	  sync.Once
+	localeMap LocaleMap
+)
+
+func init() {
+	once.Do(func(){
+		localeMap = map[string]LocaleFunc{
+			{{ . }}
+		}
+	})
+}
+
+// Map returns the map of locales to instance New function
+func Map() LocaleMap {
+	return localeMap
+}
+
+{{ end }}

File diff suppressed because it is too large
+ 0 - 0
cs/cs.go


File diff suppressed because it is too large
+ 0 - 0
cs_CZ/cs_CZ.go


File diff suppressed because it is too large
+ 0 - 0
cu/cu.go


File diff suppressed because it is too large
+ 0 - 0
cu_RU/cu_RU.go


File diff suppressed because it is too large
+ 0 - 0
cy/cy.go


File diff suppressed because it is too large
+ 0 - 0
cy_GB/cy_GB.go


File diff suppressed because it is too large
+ 0 - 0
da/da.go


Some files were not shown because too many files changed in this diff